Advertisement
KaiserRego

AyP1 - Preparcial - Playlist

Nov 14th, 2014
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.59 KB | None | 0 0
  1. public class Cancion {
  2.    
  3.     private String titulo;
  4.     private double duracion;
  5.    
  6.     /** pre: se ingresa un título y una duración (mayor a 0) en segundos.
  7.      * post: se inicializa la canción con el título y la duración ingresados.
  8.      * @param titulo
  9.      * @param duracion
  10.      */
  11.     public Cancion (String titulo, double duracion){
  12.        
  13.         if (duracion <= 0.0){
  14.             Error duracionInvalida = new Error ("La duración de la canción no es válida.");
  15.             throw duracionInvalida;
  16.         }
  17.        
  18.         this.titulo = titulo;
  19.         this.duracion = duracion;
  20.        
  21.     }
  22.    
  23.     public String obtenerTitulo(){
  24.        
  25.         return (titulo);
  26.     }
  27.  
  28.     public double obtenerDuracion() {
  29.        
  30.         return (duracion);
  31.     }
  32. }
  33.  
  34. public class Playlist {
  35.    
  36.     Cancion[] canciones;
  37.     int ultimaPosicion = 0;
  38.    
  39.     /** pre: se ingresa una cantidadDeCanciones (mayor o igual cero).
  40.      * post: se inicializa la Playlist con la cantidadDeCanciones ingresada.
  41.      * @param cantidadDeCanciones
  42.      */
  43.     public Playlist (int cantidadDeCanciones){
  44.        
  45.         if (cantidadDeCanciones < 0){
  46.             Error cantidadDeCancionesInvalida = new Error ("La cantidadDeCanciones no es válida.");
  47.             throw cantidadDeCancionesInvalida;
  48.         }
  49.        
  50.         canciones = new Cancion[cantidadDeCanciones];
  51.        
  52.     }
  53.    
  54.     public void agregarCancion (String titulo, double duracion){
  55.        
  56.         if (ultimaPosicion >= (canciones.length-1) ){
  57.            
  58.             Error noSePuedenAgregarMasCanciones = new Error ("No se pueden agregar más canciones debido a que superan"
  59.                     + "la cantidadDeCanciones");
  60.             throw noSePuedenAgregarMasCanciones;
  61.         }
  62.        
  63.         canciones [ultimaPosicion] = new Cancion (titulo, duracion);
  64.         ultimaPosicion++;
  65.     }
  66.    
  67.    
  68.     public String devolverTituloAPartirDePosicion (int posicion){
  69.        
  70.         return (canciones[posicion-1].obtenerTitulo());
  71.     }
  72.    
  73.     public int devolverCantidadDeCancionesQueTienePlaylist(){
  74.        
  75.         int cantidadDeCancionesQueTienePlaylist = 0;
  76.        
  77.         for (int i=0; i < canciones.length; i++){
  78.            
  79.             if (canciones [i] != null){
  80.                 cantidadDeCancionesQueTienePlaylist ++;
  81.             }
  82.         }
  83.        
  84.         return (cantidadDeCancionesQueTienePlaylist);
  85.     }
  86.    
  87.     public double devolverDuracionTotal(){
  88.        
  89.         double duracionTotal = 0;
  90.        
  91.                
  92.         for (int i=0; i <= ultimaPosicion; i++){
  93.            
  94.             if (canciones[i] != null){
  95.            
  96.                 duracionTotal += canciones[i].obtenerDuracion();
  97.             }
  98.            
  99.         }
  100.        
  101.         return duracionTotal;
  102.     }
  103.    
  104.     public int devolverCantidadDeCanciones(){
  105.        
  106.         return (canciones.length);
  107.     }
  108. }
  109.  
  110. import org.junit.Before;
  111. import org.junit.Assert;
  112. import org.junit.Test;
  113.  
  114.  
  115. public class PruebaPlaylist {
  116.  
  117.     Playlist mezcla = new Playlist (10);
  118.    
  119.     @Before
  120.     public void crear(){
  121.        
  122.         mezcla.agregarCancion("Martin Solveig - The night out", 4.43);
  123.         mezcla.agregarCancion("Martin Solveig - Hello (Feat. Dragonette)", 4.42);
  124.         mezcla.agregarCancion("Queen - Hello Mary Lou (Goodbye heart)", 1.51);
  125.        
  126.     }
  127.    
  128.     @Test
  129.     public void pruebaCrear(){
  130.        
  131.         Assert.assertEquals(10, mezcla.devolverCantidadDeCanciones());
  132.        
  133.     }
  134.    
  135.     @Test
  136.     public void pruebaDevolverTituloAPartirDePosicion(){
  137.        
  138.         Assert.assertEquals ("Martin Solveig - The night out", mezcla.devolverTituloAPartirDePosicion(1));
  139.         Assert.assertEquals("Martin Solveig - Hello (Feat. Dragonette)", mezcla.devolverTituloAPartirDePosicion(2));
  140.         Assert.assertEquals("Queen - Hello Mary Lou (Goodbye heart)", mezcla.devolverTituloAPartirDePosicion(3));
  141.     }
  142.    
  143.     @Test
  144.     public void pruebaDevolverCantidadDeCancionesQueTienePlaylist(){
  145.        
  146.         Assert.assertEquals(3, mezcla.devolverCantidadDeCancionesQueTienePlaylist());
  147.     }
  148.    
  149.     @Test
  150.     public void pruebaDevolverDuracionTotal(){
  151.        
  152.         Assert.assertEquals (10.36, mezcla.devolverDuracionTotal(), 0.1);
  153.     }
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement