Advertisement
fmbalvarez

Simulacro 1 - Ejercicio 1 y 2 - Entrenamiento

Nov 12th, 2014
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.62 KB | None | 0 0
  1.  
  2. public class Entrenamiento {
  3.    
  4.     private double[] diasDeEntrenamiento;
  5.    
  6.     /**
  7.      * pre: se indican días de entrenamiento mayores a cero
  8.      * post: inicializa el array diasDeEntrenamiento en cero
  9.      *       en la cantidad de días indicados.
  10.      * @param diasDeEntrenamiento
  11.      */
  12.     Entrenamiento(int diasDeEntrenamiento){
  13.        
  14.         if (diasDeEntrenamiento <= 0){
  15.            
  16.             throw new Error("La cantidad de días de entremiento debe ser mayor a cero.");
  17.         }
  18.        
  19.         this.diasDeEntrenamiento = new double[diasDeEntrenamiento];
  20.        
  21.         for (int i = 0; i == diasDeEntrenamiento; i++){
  22.            
  23.             this.diasDeEntrenamiento[i] = 0;
  24.         }
  25.     }
  26.    
  27.     /**
  28.      * pre: se indica día (valores mayores a cero) y cantidad de kilómetros
  29.      *      recorridos (mayores a cero).
  30.      * post: modifica el valor del array en la posición indicada.
  31.      * @param dia
  32.      * @param cantidadDeKM
  33.      */
  34.     public void setKilometrosRecorridos(int dia, double cantidadDeKM){
  35.        
  36.         if (cantidadDeKM <= 0 || dia <= 0){
  37.            
  38.             throw new Error("La cantidad de días y kilómetros debe ser mayor a cero.");
  39.         }
  40.        
  41.         this.diasDeEntrenamiento[dia-1] = cantidadDeKM;
  42.     }
  43.    
  44.     /**
  45.      * post: devuelve el promedio de kilómetros recorridos
  46.      *       por día de entrenamiento.
  47.      * @return
  48.      */
  49.     public double calcularPromedio(){
  50.        
  51.         double recorridoTotal = 0;
  52.         int cantidadDeDias = 0;
  53.        
  54.         for (; cantidadDeDias < diasDeEntrenamiento.length; cantidadDeDias++){
  55.            
  56.             recorridoTotal += this.diasDeEntrenamiento[cantidadDeDias];
  57.         }
  58.        
  59.         return (recorridoTotal/cantidadDeDias);
  60.     }
  61.    
  62.     /**
  63.      * pre: indicar valor de referencia a comparar mayor a cero.
  64.      * post: devuelve la cantidad de días en los que se recorrió
  65.      *       más que el valor indicado.
  66.      * @param valorDeReferencia
  67.      * @return
  68.      */
  69.     public int diasEnLosQueSeCorrioMas(int valorDeReferencia){
  70.        
  71.         if (valorDeReferencia <= 0){
  72.            
  73.             throw new Error("El valor de referencia debe ser mayor a cero.");
  74.         }
  75.        
  76.         int diasQueSuperanValorDeReferencia = 0;
  77.        
  78.         for (int i = 0; i < this.diasDeEntrenamiento.length; i++){
  79.            
  80.             if (this.diasDeEntrenamiento[i] > valorDeReferencia){
  81.                
  82.                 diasQueSuperanValorDeReferencia++;
  83.             }
  84.         }
  85.        
  86.         return diasQueSuperanValorDeReferencia;
  87.     }
  88. }
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98. import org.junit.Test;
  99. import org.junit.Assert;
  100.  
  101. public class PruebaEntrenamiento {
  102.    
  103.     @Test
  104.     public void calcularPromedio(){
  105.        
  106.         Entrenamiento entrenamiento = new Entrenamiento(2);
  107.        
  108.         entrenamiento.setKilometrosRecorridos(1, 10);
  109.         entrenamiento.setKilometrosRecorridos(2, 8);
  110.        
  111.         Assert.assertEquals(9, entrenamiento.calcularPromedio(), 0.01);
  112.     }
  113.    
  114.     @Test
  115.     public void diasEnLoQueSeCorrieronMasDeDiezKM(){
  116.        
  117.         Entrenamiento entrenamiento = new Entrenamiento(3);
  118.        
  119.         entrenamiento.setKilometrosRecorridos(1, 12);
  120.         entrenamiento.setKilometrosRecorridos(2, 8);
  121.         entrenamiento.setKilometrosRecorridos(3, 15);
  122.        
  123.         Assert.assertEquals(2, entrenamiento.diasEnLosQueSeCorrioMas(10));
  124.     }
  125.    
  126.     @Test (expected = Error.class)
  127.     public void inicializarConCantidadDeDiasNegativa(){
  128.        
  129.         Entrenamiento entrenamiento = new Entrenamiento(-3);
  130.     }
  131.    
  132.     @Test (expected = Error.class)
  133.     public void setKMEnDiaNegativo(){
  134.        
  135.         Entrenamiento entrenamiento = new Entrenamiento(3);
  136.        
  137.         entrenamiento.setKilometrosRecorridos(-4, 10);
  138.     }
  139.    
  140.     @Test (expected = Error.class)
  141.     public void setKMEnCantidadNegativa(){
  142.        
  143.         Entrenamiento entrenamiento = new Entrenamiento(3);
  144.        
  145.         entrenamiento.setKilometrosRecorridos(2, -10);
  146.     }
  147.    
  148.     @Test (expected = Error.class)
  149.     public void valorDeReferenciaNegativo(){
  150.        
  151.         Entrenamiento entrenamiento = new Entrenamiento(3);
  152.        
  153.         entrenamiento.diasEnLosQueSeCorrioMas(-5);
  154.     }
  155.    
  156.  
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement