Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Cancion {
- private String titulo;
- private double duracion;
- /** pre: se ingresa un título y una duración (mayor a 0) en segundos.
- * post: se inicializa la canción con el título y la duración ingresados.
- * @param titulo
- * @param duracion
- */
- public Cancion (String titulo, double duracion){
- if (duracion <= 0.0){
- Error duracionInvalida = new Error ("La duración de la canción no es válida.");
- throw duracionInvalida;
- }
- this.titulo = titulo;
- this.duracion = duracion;
- }
- public String obtenerTitulo(){
- return (titulo);
- }
- public double obtenerDuracion() {
- return (duracion);
- }
- }
- public class Playlist {
- Cancion[] canciones;
- int ultimaPosicion = 0;
- /** pre: se ingresa una cantidadDeCanciones (mayor o igual cero).
- * post: se inicializa la Playlist con la cantidadDeCanciones ingresada.
- * @param cantidadDeCanciones
- */
- public Playlist (int cantidadDeCanciones){
- if (cantidadDeCanciones < 0){
- Error cantidadDeCancionesInvalida = new Error ("La cantidadDeCanciones no es válida.");
- throw cantidadDeCancionesInvalida;
- }
- canciones = new Cancion[cantidadDeCanciones];
- }
- public void agregarCancion (String titulo, double duracion){
- if (ultimaPosicion >= (canciones.length-1) ){
- Error noSePuedenAgregarMasCanciones = new Error ("No se pueden agregar más canciones debido a que superan"
- + "la cantidadDeCanciones");
- throw noSePuedenAgregarMasCanciones;
- }
- canciones [ultimaPosicion] = new Cancion (titulo, duracion);
- ultimaPosicion++;
- }
- public String devolverTituloAPartirDePosicion (int posicion){
- return (canciones[posicion-1].obtenerTitulo());
- }
- public int devolverCantidadDeCancionesQueTienePlaylist(){
- int cantidadDeCancionesQueTienePlaylist = 0;
- for (int i=0; i < canciones.length; i++){
- if (canciones [i] != null){
- cantidadDeCancionesQueTienePlaylist ++;
- }
- }
- return (cantidadDeCancionesQueTienePlaylist);
- }
- public double devolverDuracionTotal(){
- double duracionTotal = 0;
- for (int i=0; i <= ultimaPosicion; i++){
- if (canciones[i] != null){
- duracionTotal += canciones[i].obtenerDuracion();
- }
- }
- return duracionTotal;
- }
- public int devolverCantidadDeCanciones(){
- return (canciones.length);
- }
- }
- import org.junit.Before;
- import org.junit.Assert;
- import org.junit.Test;
- public class PruebaPlaylist {
- Playlist mezcla = new Playlist (10);
- @Before
- public void crear(){
- mezcla.agregarCancion("Martin Solveig - The night out", 4.43);
- mezcla.agregarCancion("Martin Solveig - Hello (Feat. Dragonette)", 4.42);
- mezcla.agregarCancion("Queen - Hello Mary Lou (Goodbye heart)", 1.51);
- }
- @Test
- public void pruebaCrear(){
- Assert.assertEquals(10, mezcla.devolverCantidadDeCanciones());
- }
- @Test
- public void pruebaDevolverTituloAPartirDePosicion(){
- Assert.assertEquals ("Martin Solveig - The night out", mezcla.devolverTituloAPartirDePosicion(1));
- Assert.assertEquals("Martin Solveig - Hello (Feat. Dragonette)", mezcla.devolverTituloAPartirDePosicion(2));
- Assert.assertEquals("Queen - Hello Mary Lou (Goodbye heart)", mezcla.devolverTituloAPartirDePosicion(3));
- }
- @Test
- public void pruebaDevolverCantidadDeCancionesQueTienePlaylist(){
- Assert.assertEquals(3, mezcla.devolverCantidadDeCancionesQueTienePlaylist());
- }
- @Test
- public void pruebaDevolverDuracionTotal(){
- Assert.assertEquals (10.36, mezcla.devolverDuracionTotal(), 0.1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement