Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Entrenamiento {
- private double[] diasDeEntrenamiento;
- /**
- * pre: se indican días de entrenamiento mayores a cero
- * post: inicializa el array diasDeEntrenamiento en cero
- * en la cantidad de días indicados.
- * @param diasDeEntrenamiento
- */
- Entrenamiento(int diasDeEntrenamiento){
- if (diasDeEntrenamiento <= 0){
- throw new Error("La cantidad de días de entremiento debe ser mayor a cero.");
- }
- this.diasDeEntrenamiento = new double[diasDeEntrenamiento];
- for (int i = 0; i == diasDeEntrenamiento; i++){
- this.diasDeEntrenamiento[i] = 0;
- }
- }
- /**
- * pre: se indica día (valores mayores a cero) y cantidad de kilómetros
- * recorridos (mayores a cero).
- * post: modifica el valor del array en la posición indicada.
- * @param dia
- * @param cantidadDeKM
- */
- public void setKilometrosRecorridos(int dia, double cantidadDeKM){
- if (cantidadDeKM <= 0 || dia <= 0){
- throw new Error("La cantidad de días y kilómetros debe ser mayor a cero.");
- }
- this.diasDeEntrenamiento[dia-1] = cantidadDeKM;
- }
- /**
- * post: devuelve el promedio de kilómetros recorridos
- * por día de entrenamiento.
- * @return
- */
- public double calcularPromedio(){
- double recorridoTotal = 0;
- int cantidadDeDias = 0;
- for (; cantidadDeDias < diasDeEntrenamiento.length; cantidadDeDias++){
- recorridoTotal += this.diasDeEntrenamiento[cantidadDeDias];
- }
- return (recorridoTotal/cantidadDeDias);
- }
- /**
- * pre: indicar valor de referencia a comparar mayor a cero.
- * post: devuelve la cantidad de días en los que se recorrió
- * más que el valor indicado.
- * @param valorDeReferencia
- * @return
- */
- public int diasEnLosQueSeCorrioMas(int valorDeReferencia){
- if (valorDeReferencia <= 0){
- throw new Error("El valor de referencia debe ser mayor a cero.");
- }
- int diasQueSuperanValorDeReferencia = 0;
- for (int i = 0; i < this.diasDeEntrenamiento.length; i++){
- if (this.diasDeEntrenamiento[i] > valorDeReferencia){
- diasQueSuperanValorDeReferencia++;
- }
- }
- return diasQueSuperanValorDeReferencia;
- }
- }
- import org.junit.Test;
- import org.junit.Assert;
- public class PruebaEntrenamiento {
- @Test
- public void calcularPromedio(){
- Entrenamiento entrenamiento = new Entrenamiento(2);
- entrenamiento.setKilometrosRecorridos(1, 10);
- entrenamiento.setKilometrosRecorridos(2, 8);
- Assert.assertEquals(9, entrenamiento.calcularPromedio(), 0.01);
- }
- @Test
- public void diasEnLoQueSeCorrieronMasDeDiezKM(){
- Entrenamiento entrenamiento = new Entrenamiento(3);
- entrenamiento.setKilometrosRecorridos(1, 12);
- entrenamiento.setKilometrosRecorridos(2, 8);
- entrenamiento.setKilometrosRecorridos(3, 15);
- Assert.assertEquals(2, entrenamiento.diasEnLosQueSeCorrioMas(10));
- }
- @Test (expected = Error.class)
- public void inicializarConCantidadDeDiasNegativa(){
- Entrenamiento entrenamiento = new Entrenamiento(-3);
- }
- @Test (expected = Error.class)
- public void setKMEnDiaNegativo(){
- Entrenamiento entrenamiento = new Entrenamiento(3);
- entrenamiento.setKilometrosRecorridos(-4, 10);
- }
- @Test (expected = Error.class)
- public void setKMEnCantidadNegativa(){
- Entrenamiento entrenamiento = new Entrenamiento(3);
- entrenamiento.setKilometrosRecorridos(2, -10);
- }
- @Test (expected = Error.class)
- public void valorDeReferenciaNegativo(){
- Entrenamiento entrenamiento = new Entrenamiento(3);
- entrenamiento.diasEnLosQueSeCorrioMas(-5);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement