Advertisement
fmbalvarez

Guía 7 - Ejercicio 1 - PronosticoSemanal

Oct 26th, 2014
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.74 KB | None | 0 0
  1. public class PronosticoSemanal {
  2.        
  3.         private double [] semana;
  4.        
  5.         /**
  6.          * post: inicializa las temperaturas de la semana en 0.
  7.          */
  8.         public PronosticoSemanal() {
  9.                
  10.                 semana = new double [7];
  11.                
  12.                 for  (int i = 0; i < semana.length; i++){
  13.                        
  14.                         semana [i] = 0;
  15.                 }
  16.         }
  17.        
  18.         /**
  19.          * pre: se ingresa una temperatura en grados centigrados y un día de acuerdo a:
  20.          * 0 = lunes;
  21.          * 1 = martes;
  22.          * 2 = miercoles;
  23.          * 3 = jueves;
  24.          * 4 = viernes;
  25.          * 5 = sabado;
  26.          * 6 = domingo.
  27.          * post: cambia la temperatura del día indicado.
  28.          * @param dia
  29.          * @param temperatura
  30.          */
  31.         public void modificarTemperatura(int dia, double temperatura){
  32.                
  33.                 validarDia (dia);
  34.                 validarTemperatura (temperatura);
  35.                
  36.                 semana [dia] = temperatura;    
  37.         }
  38.        
  39.         /**
  40.          * pre: se indica el día a validar
  41.          * post: devuelve si el día está en rango o no
  42.          * @param dia
  43.          */
  44.         private void validarDia(int dia){
  45.                
  46.                 if (dia < 0 || dia > 6){
  47.                        
  48.                         Error diaFueraDeRango = new Error ("El día no está comprendido dentro del rango");
  49.                         throw diaFueraDeRango;
  50.                 }
  51.         }
  52.        
  53.         /**
  54.          * pre: se indica temperatura en grados centígrados a validar
  55.          * post: indica si está en rango o no
  56.          * @param temperatura
  57.          */
  58.         private void validarTemperatura(double temperatura){
  59.                
  60.                 if (temperatura < -40 || temperatura > 50){
  61.                        
  62.                         Error temperaturaFueraDeRango = new Error ("El sol se comió la tierra");
  63.                         throw temperaturaFueraDeRango;
  64.                 }
  65.         }
  66.        
  67.         /**
  68.          * pre: se indica el día del que se quiere conocer la temperatura
  69.          * post: devuelve la temperatura en grados centígrados
  70.          * @param dia
  71.          * @return
  72.          */
  73.         public double getTemperatura(int dia){
  74.                
  75.                 validarDia(dia);
  76.                
  77.                 return semana[dia];
  78.         }
  79.        
  80.         /**
  81.          * post: devuelve la temperatura máxima entre los siete días de
  82.          *       la semana en grados centígrados.
  83.          * @return
  84.          */
  85.         public double getTemperaturaMaxima(){
  86.                
  87.                 double temperaturaMaxima = -40;
  88.                
  89.                 for (int i = 0; i < semana.length; i++){
  90.                        
  91.                         if (semana[i] > temperaturaMaxima){
  92.                                
  93.                                 temperaturaMaxima = semana[i];
  94.                         }
  95.                 }
  96.                
  97.                 return temperaturaMaxima;
  98.         }
  99.        
  100.         /**
  101.          * post: devuelve la temperatura mínima entre los siete días de
  102.          *       la semana en grados centígrados.
  103.          * @return
  104.          */
  105.         public double getTemperaturaMinima(){
  106.                
  107.                 double temperaturaMinima = -40;
  108.                
  109.                 for (int i = 0; i < semana.length; i++){
  110.                        
  111.                         if (semana[i] > temperaturaMinima){
  112.                                
  113.                                 semana[i] = temperaturaMinima;
  114.                         }
  115.                 }
  116.                
  117.                 return temperaturaMinima;
  118.         }
  119.        
  120.         /**
  121.          * post: devuelve la temperatura promedio entre los siete días de
  122.          *       la semana en grados centígrados.
  123.          * @return
  124.          */
  125.         public double getTemperaturaPromedio(){
  126.            
  127.             double temperaturaTotal = 0;
  128.            
  129.             for (int i = 0; i < semana.length; i++){
  130.                
  131.                 temperaturaTotal = temperaturaTotal + semana[i];
  132.             }
  133.            
  134.             return (temperaturaTotal/7);
  135.         }
  136.        
  137.        
  138.        
  139.        
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166. import org.junit.Before;
  167. import org.junit.Test;
  168. import org.junit.Assert;
  169.  
  170. public class PruebaPronosticoSemanal {
  171.  
  172.         PronosticoSemanal pronostico;
  173.        
  174.         @Before
  175.         public void crearPronosticoSemanal() {
  176.                
  177.                 PronosticoSemanal pronostico = new PronosticoSemanal();
  178.                 this.pronostico = pronostico;
  179.         }
  180.        
  181.         @Test
  182.         public void modificarTemperaturaLunes(){
  183.                
  184.                 pronostico.modificarTemperatura(0, 40);
  185.                
  186.                 Assert.assertEquals(pronostico.getTemperatura(0), 40, 0.001);
  187.         }
  188.        
  189.         @Test
  190.         public void modificarTemperaturaMartes(){
  191.                
  192.                 pronostico.modificarTemperatura(1, 30);
  193.                
  194.                 Assert.assertEquals(pronostico.getTemperatura(1), 30, 0.001);
  195.         }
  196.        
  197.         @Test
  198.         public void modificarTemperaturaMiercoles(){
  199.                
  200.                 pronostico.modificarTemperatura(2, 30);
  201.                
  202.                 Assert.assertEquals(pronostico.getTemperatura(2), 30, 0.001);
  203.         }
  204.        
  205.         @Test
  206.         public void modificarTemperaturaJueves(){
  207.                
  208.                 pronostico.modificarTemperatura(3, 30);
  209.                
  210.                 Assert.assertEquals(pronostico.getTemperatura(3), 30, 0.001);
  211.         }
  212.        
  213.         @Test
  214.         public void modificarTemperaturaViernes(){
  215.                
  216.                 pronostico.modificarTemperatura(4, 25);
  217.                
  218.                 Assert.assertEquals(pronostico.getTemperatura(4), 25, 0.001);
  219.         }
  220.        
  221.         @Test
  222.         public void modificarTemperaturaSabado(){
  223.                
  224.                 pronostico.modificarTemperatura(5, 25);
  225.                
  226.                 Assert.assertEquals(pronostico.getTemperatura(5), 25, 0.001);
  227.         }
  228.        
  229.         @Test
  230.         public void modificarTemperaturaDomingo(){
  231.                
  232.                 pronostico.modificarTemperatura(6, 25);
  233.                
  234.                 Assert.assertEquals(pronostico.getTemperatura(6), 25, 0.001);
  235.         }
  236.        
  237.         @Test (expected = Error.class)
  238.         public void diaFueraDeRango(){
  239.                
  240.                 pronostico.modificarTemperatura(10, 25);
  241.         }
  242.        
  243.         public void pasarParametroParaObtenerTemperatura(){
  244.            
  245.             pronostico.modificarTemperatura(1, 20);
  246.            
  247.             double temperatura = pronostico.getTemperatura(1);
  248.            
  249.             Assert.assertEquals(20, temperatura, 0.001);
  250.         }
  251.        
  252.         @Test (expected = Error.class)
  253.         public void temperaturaFueraDeRango(){
  254.                
  255.                 pronostico.modificarTemperatura(2, 148);
  256.         }
  257.        
  258.         @Test
  259.         public void lunesConTemperaturaMaxima(){
  260.                
  261.                 pronostico.modificarTemperatura(0, 38);
  262.                
  263.                 Assert.assertEquals(pronostico.getTemperaturaMaxima(), 38, 0.001);
  264.         }
  265.        
  266.         @Test
  267.         public void martesConTemperaturaMaxima(){
  268.                
  269.                 pronostico.modificarTemperatura(1, 38);
  270.                
  271.                 Assert.assertEquals(pronostico.getTemperaturaMaxima(), 38, 0.001);
  272.         }
  273.        
  274.         @Test
  275.         public void miercolesConTemperaturaMaxima(){
  276.                
  277.                 pronostico.modificarTemperatura(2, 38);
  278.                
  279.                 Assert.assertEquals(pronostico.getTemperaturaMaxima(), 38, 0.001);
  280.         }
  281.        
  282.         @Test
  283.         public void juevesConTemperaturaMaxima(){
  284.                
  285.                 pronostico.modificarTemperatura(3, 38);
  286.                
  287.                 Assert.assertEquals(pronostico.getTemperaturaMaxima(), 38, 0.001);
  288.         }
  289.        
  290.         @Test
  291.         public void viernesConTemperaturaMaxima(){
  292.                
  293.                 pronostico.modificarTemperatura(4, 38);
  294.                
  295.                 Assert.assertEquals(pronostico.getTemperaturaMaxima(), 38, 0.001);
  296.         }
  297.        
  298.         @Test
  299.         public void sabadoConTemperaturaMaxima(){
  300.                
  301.                 pronostico.modificarTemperatura(5, 38);
  302.                
  303.                 Assert.assertEquals(pronostico.getTemperaturaMaxima(), 38, 0.001);
  304.         }
  305.        
  306.         @Test
  307.         public void domingoConTemperaturaMaxima(){
  308.                
  309.                 pronostico.modificarTemperatura(6, 38);
  310.                
  311.                 Assert.assertEquals(pronostico.getTemperaturaMaxima(), 38, 0.001);
  312.         }
  313.        
  314.         @Test
  315.         public void temperaturaPromedio(){
  316.            
  317.             pronostico.modificarTemperatura(0, 10);
  318.             pronostico.modificarTemperatura(1, 15);
  319.             pronostico.modificarTemperatura(2, 20);
  320.             pronostico.modificarTemperatura(3, 15);
  321.             pronostico.modificarTemperatura(4, 15);
  322.             pronostico.modificarTemperatura(5, 20);
  323.             pronostico.modificarTemperatura(6, 25);
  324.            
  325.             double temperaturaPromedio = pronostico.getTemperaturaPromedio();
  326.            
  327.             Assert.assertEquals(17.142, temperaturaPromedio, 0.001);
  328.            
  329.         }    
  330. }
  331.        
  332.        
  333.        
  334.        
  335.        
  336.        
  337.        
  338.        
  339.        
  340.        
  341.        
  342.        
  343.        
  344.        
  345.        
  346.        
  347.        
  348.        
  349.        
  350.        
  351.        
  352.        
  353.        
  354.        
  355.        
  356.        
  357.        
  358.        
  359. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement