diff --git a/src/es/markse/TCombinado.java b/src/es/markse/Combinado.java similarity index 50% rename from src/es/markse/TCombinado.java rename to src/es/markse/Combinado.java index d2b3cf4e0b5942432802bee9a6b13669cfc8b864..cc461bc3c11494336d9bdc5575380c5c518fd965 100644 --- a/src/es/markse/TCombinado.java +++ b/src/es/markse/Combinado.java @@ -9,10 +9,10 @@ import java.util.ArrayList; * @author javcalv * @author victorm */ -public abstract class TCombinado extends Trayecto { +public abstract class Combinado extends Trayecto { //ArrayList para guardar todos los trayectos simples - protected ArrayList<TSimple> trayectosSimples; + protected ArrayList<Simple> trayectosSimples; /** * Constructor de la clase abstracta TrayectoCombinado @@ -23,7 +23,7 @@ public abstract class TCombinado extends Trayecto { * @param puertoDestino Puerto en el que finaliza un Trayecto * @param fechaFinTrayecto Fecha en la que finaliza un Trayecto */ - public TCombinado(Muelle muelleOrigen, Puerto puertoOrigen, Fecha fechaInicioTrayecto, Muelle muelleDestino, Puerto puertoDestino, Fecha fechaFinTrayecto) { + public Combinado(Muelle muelleOrigen, Puerto puertoOrigen, Fecha fechaInicioTrayecto, Muelle muelleDestino, Puerto puertoDestino, Fecha fechaFinTrayecto) { super(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleDestino, puertoDestino, fechaFinTrayecto); this.trayectosSimples = new ArrayList<>(); } @@ -31,7 +31,7 @@ public abstract class TCombinado extends Trayecto { /********************************************************* * METODOS EJECUTADOS POR EL COSTRUCTOR DE LAS SUBCLASES * *********************************************************/ - protected boolean estanVacios(ArrayList<TSimple> ts) { + protected boolean estanVacios(ArrayList<Simple> ts) { return (ts.isEmpty() || ts == null) ? true : false; } @@ -40,9 +40,9 @@ public abstract class TCombinado extends Trayecto { * @param trayectos ArrayList de los trayectos simples a comprobar * @return true si hay trayectos de camion o false si no los hay */ - protected boolean comprobarSiHayTrayectosCamion(ArrayList<TSimple> ts) { + protected boolean comprobarSiHayTrayectosCamion(ArrayList<Simple> ts) { int trayectosCamiones = 0; - for (TSimple t : ts) { + for (Simple t : ts) { if (t instanceof TCamion) trayectosCamiones++; } return (trayectosCamiones == 0)? false : true; @@ -55,10 +55,10 @@ public abstract class TCombinado extends Trayecto { * @return true si es un orden correcto o false si no lo es * @throws IllegalArgumentException Si hay elementos vacios de poer medio */ - protected boolean ordenTrayectosCorrecto(ArrayList<TSimple> ts) { + protected boolean ordenTrayectosCorrecto(ArrayList<Simple> ts) { for (int i = 0; i<(ts.size() - 1); i++) { - TSimple t1 = ts.get(i); - TSimple t2 = ts.get(i + 1); + Simple t1 = ts.get(i); + Simple t2 = ts.get(i + 1); if (t1 == null || t2 == null) { throw new IllegalArgumentException("Hay trayectos nulos en la lista"); } @@ -69,62 +69,38 @@ public abstract class TCombinado extends Trayecto { } /** - * Metodo que comprueba si el puerto y muelle destino son el origen del siguiente trayecto + * Metodo que comprueba si 2 trayectos (puerto/muelle) son iguales * @param t1 trayecto simple primero - * @param t2 trayecto compuesto posterior + * @param t2 trayecto simple segundo * @return true si el destino y el origen de siguiente son iguales o false si no lo son */ - private boolean comprobarDestinoOrigenIguales(TSimple t1, TSimple t2) { + private boolean comprobarDestinoOrigenIguales(Simple t1, Simple t2) { return (t1.getMuelleDestino().getIdentificador().equals(t2.getMuelleOrigen().getIdentificador()) && t1.getPuertoDestino().identificadorPuerto().equals(t2.getPuertoOrigen().identificadorPuerto())) ? true : false; } /** - * Método que Devuelve el primer Muelle de Origen de la lista - * @return muelleOrigen - */ - public Muelle getMuelleOrigen() { - return this.trayectosSimples.get(0).muelleOrigen; - } - - /** - * Método que Devuelve el ultimo Muelle de Destino de la lista - * @return muelleOrigen - */ - public Muelle getMuelleDestino() { - return this.trayectosSimples.get(this.trayectosSimples.size()-1).muelleDestino; - } - - /** - * Método que Devuelve el Puerto de Origen de la lista - * @return puertoOrigen - */ - public Puerto getPuertoOrigen(){ - return this.trayectosSimples.get(0).puertoOrigen; - } - - /** - * Método que Devuelve el ultimo Puerto de Destino de la lista - * @return puertoDestino - */ - public Puerto getPuertoDestino() { - return this.trayectosSimples.get(this.trayectosSimples.size()-1).puertoDestino; - } - - /** - * Método que Devuelve la primera Fecha del Inicio del Trayecto de la lista - * @return fechaInicioTrayecto - */ - public Fecha getFechaInicioTrayecto() { - return this.trayectosSimples.get(0).fechaInicioTrayecto; - } - - /** - * Método que Devuelve la ultima Fecha del Fin del Trayecto de la lista - * @return fechaFinTrayecto - */ - public Fecha getFechaFinTrayecto() { - return this.trayectosSimples.get(this.trayectosSimples.size()-1).fechaFinTrayecto; - } + * Metodo que compara si el puerto/muelle/fecha origen y destino, son iguales a las del primer trayecto + * y ultimo trayecto de la listas del trayecto del pack repectivamente + * @param simples Lista de los trayectos (combinados) + * @throws IllegalArgumentException si el puerto/muelle/fecha origen no coinciden con los de la primera lista del pack de trayectos + * @throws IllegalArgumentException si el puerto/muelle/fecha destino no coinciden con los de el ultimo de lista del pack de trayectos + */ + protected void compararTrayectosDeLaLista(ArrayList<Simple> simples) { + Simple primerT = this.trayectosSimples.get(0); + Simple ultimoT = this.trayectosSimples.get(this.trayectosSimples.size() -1); + + //Comparamos los datos de origen si son iguales que los del primer trayecto del pack + if (!(this.muelleOrigen.getIdentificador().equals(primerT.getMuelleOrigen().getIdentificador()) && + this.puertoOrigen.identificadorPuerto().equals(primerT.getPuertoOrigen().identificadorPuerto())&& + this.fechaInicioTrayecto == primerT.getFechaInicioTrayecto())) + throw new IllegalArgumentException("El puerto/muelle/fecha origen no coinciden con los de la primera lista del pack de trayectos"); + + //Comparamos los datos de destino si son iguales que los del ultimo trayecto del pack + if (!(this.muelleDestino.getIdentificador().equals(ultimoT.getMuelleDestino().getIdentificador()) && + this.puertoDestino.identificadorPuerto().equals(ultimoT.getPuertoDestino().identificadorPuerto())&& + this.fechaFinTrayecto == ultimoT.getFechaFinTrayecto())) + throw new IllegalArgumentException("El puerto/muelle/fecha destino no coinciden con los de el ultimo de lista del pack de trayectos"); + } } diff --git a/src/es/markse/PackCamionBarco.java b/src/es/markse/PackCamionBarco.java index f12e73c403443c6d7d1cbd0c8634a6fd07e9571f..fa12cdc6139985b15da660ede634b0c0bcd4b765 100644 --- a/src/es/markse/PackCamionBarco.java +++ b/src/es/markse/PackCamionBarco.java @@ -10,7 +10,7 @@ import java.util.ArrayList; * @author javcalv * @author victorm */ -public class PackCamionBarco extends TCombinado { +public class PackCamionBarco extends Combinado { //Descuentos que se aplican private final double DESCUENTO = 0.85; @@ -27,7 +27,7 @@ public class PackCamionBarco extends TCombinado { * @param trayectosBarco */ public PackCamionBarco(Muelle muelleOrigen, Puerto puertoOrigen, Fecha fechaInicioTrayecto, Muelle muelleDestino, - Puerto puertoDestino, Fecha fechaFinTrayecto, ArrayList<TSimple> trayectosSimples) { + Puerto puertoDestino, Fecha fechaFinTrayecto, ArrayList<Simple> trayectosSimples) { super(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleDestino, puertoDestino, fechaFinTrayecto); //Comprobamos si los trayectos no estan nulos (Debe de tener uno al menos) @@ -49,6 +49,7 @@ public class PackCamionBarco extends TCombinado { throw new IllegalArgumentException("El orden de los trayectos no es correcto. " + "Comprueba si el destino es el mismo que el origen del siguiente trayecto"); + compararTrayectosDeLaLista(trayectosSimples); this.trayectosSimples = trayectosSimples; } @@ -58,8 +59,8 @@ public class PackCamionBarco extends TCombinado { * @param ts Arraylist con los Trayectos a comparar * @return true si son correctos o false si no lo son */ - private boolean trayectosCorrectos(ArrayList<TSimple> ts) { - for (TSimple t : ts) { + private boolean trayectosCorrectos(ArrayList<Simple> ts) { + for (Simple t : ts) { if (!(t instanceof TCamion || t instanceof TBarco)) { return false; } @@ -72,9 +73,9 @@ public class PackCamionBarco extends TCombinado { * @param trayectos ArrayList de los trayectos simples a comprobar * @return true si hay trayectos de tren o false si no los hay */ - private boolean comprobarSiHayTrayectosBarco(ArrayList<TSimple> trayectos) { + private boolean comprobarSiHayTrayectosBarco(ArrayList<Simple> trayectos) { int trayectosBarco = 0; - for (TSimple t : trayectos) { + for (Simple t : trayectos) { if (t instanceof TBarco) trayectosBarco++; } return (trayectosBarco == 0)? false : true; @@ -91,7 +92,7 @@ public class PackCamionBarco extends TCombinado { @Override public double costeTrayecto() { double coste = 0; - for (TSimple ts: this.trayectosSimples) { + for (Simple ts: this.trayectosSimples) { if (ts instanceof TBarco) { TBarco tb = (TBarco) ts; coste += tb.costeTrayecto() * this.DESCUENTO; diff --git a/src/es/markse/PackCamionTren.java b/src/es/markse/PackCamionTren.java index c15e7f510b8b0b6250ba5da49d480d0e1d0f7e57..5847e23df40cc88a781eb3aabcafafe6d39b4930 100644 --- a/src/es/markse/PackCamionTren.java +++ b/src/es/markse/PackCamionTren.java @@ -9,7 +9,7 @@ import java.util.ArrayList; * @author javcalv * @author victorm */ -public class PackCamionTren extends TCombinado { +public class PackCamionTren extends Combinado { //Reduccion de los precios private final int RED_COSTE_FIJO = 0; @@ -31,7 +31,7 @@ public class PackCamionTren extends TCombinado { * @throws IllegalArgumentException Si El orden de los trayectos no es correcto */ public PackCamionTren(Muelle muelleOrigen, Puerto puertoOrigen, Fecha fechaInicioTrayecto, Muelle muelleDestino, - Puerto puertoDestino, Fecha fechaFinTrayecto, ArrayList<TSimple> trayectosSimples){ + Puerto puertoDestino, Fecha fechaFinTrayecto, ArrayList<Simple> trayectosSimples){ super(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleDestino, puertoDestino, fechaFinTrayecto); //Comprobamos que los trayectos no sean nulos/vacios @@ -53,6 +53,7 @@ public class PackCamionTren extends TCombinado { throw new IllegalArgumentException("El orden de los trayectos no es correcto. " + "Comprueba si el destino es el mismo que el origen del siguiente trayecto"); + compararTrayectosDeLaLista(trayectosSimples); this.trayectosSimples = trayectosSimples; } @@ -61,9 +62,9 @@ public class PackCamionTren extends TCombinado { * @param trayectos ArrayList de los trayectos simples a comprobar * @return true si hay trayectos de tren o false si no los hay */ - private boolean comprobarSiHayTrayectosTren(ArrayList<TSimple> trayectos) { + private boolean comprobarSiHayTrayectosTren(ArrayList<Simple> trayectos) { int trayectosTren = 0; - for (TSimple t : trayectos) { + for (Simple t : trayectos) { if (t instanceof TTren) trayectosTren++; } return (trayectosTren == 0)? false : true; @@ -74,8 +75,8 @@ public class PackCamionTren extends TCombinado { * @param ts Arraylist con los Trayectos a comparar * @return true si son correctos o false si no lo son */ - private boolean trayectosCorrectos(ArrayList<TSimple> ts) { - for (TSimple t : ts) { + private boolean trayectosCorrectos(ArrayList<Simple> ts) { + for (Simple t : ts) { if (!(t instanceof TCamion || t instanceof TTren)) { return false; } @@ -95,7 +96,7 @@ public class PackCamionTren extends TCombinado { @Override public double costeTrayecto() { double coste = 0; - for (TSimple ts : this.trayectosSimples) { + for (Simple ts : this.trayectosSimples) { TVehiculoTierra tv = (TVehiculoTierra) ts; tv.COSTE_FIJO = this.RED_COSTE_FIJO; tv.COSTE_POR_KILOMETRO = this.RED_COSTE_POR_KILOMETRO; diff --git a/src/es/markse/Simple.java b/src/es/markse/Simple.java new file mode 100644 index 0000000000000000000000000000000000000000..03b8300d62e50abd6728ad8754004d5075ec540c --- /dev/null +++ b/src/es/markse/Simple.java @@ -0,0 +1,61 @@ +/** + * Copyright Universidad de Valladolid 2024 + */ +package es.markse; + +/** + * Implementacion de la clase abstracta TrayectoSimple + * @author javcalv + * @author victorm + */ +public abstract class Simple extends Trayecto { + + protected double distanciaKilometros; + private final float MILLAS_A_KILOMETROS = 1.852f; + + /** + * Constructor del TrayectoSimple + * @param muelleOrigen Muelle desde el que empieza el Trayecto + * @param puertoOrigen Puerto desde el que empieza el Trayecto + * @param fechaInicioTrayecto Fecha en la que comienza el Trayecto + * @param muelleDestino Muelle en el que finaliza un Trayecto + * @param puertoDestino Puerto en el que finaliza un Trayecto + * @param fechaFinTrayecto Fecha en la que finaliza un Trayecto + */ + public Simple(Muelle muelleOrigen, Puerto puertoOrigen, Fecha fechaInicioTrayecto, Muelle muelleDestino, Puerto puertoDestino, Fecha fechaFinTrayecto) { + super(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleDestino, puertoDestino, fechaFinTrayecto); + + if (!comprobacionMuellesDistintos(muelleOrigen, muelleDestino, puertoOrigen, puertoDestino)) + throw new IllegalArgumentException("El muelle de origen no puede ser igual al de destino"); + + //Obtenemos la distancia en millas marinas del trayecto y las convertimos en kilometros + this.distanciaKilometros = convertirMillasAKilometros(distanciaMillasMarinas()); + + } + + + /** + * Método que Comprueba si los Muelles Introducidos son Distintos o no + * @param muelleOrigen Muelle desde el que comienza el Trayecto + * @param muelleDestino Muelle en el que finaliza el Trayecto + * @return true si los muelles son distintos o false si son los mismos + */ + private boolean comprobacionMuellesDistintos(Muelle muelleOrigen, Muelle muelleDestino, Puerto puertoOrigen, Puerto puertoDestino) { + return (muelleOrigen.getIdentificador() == muelleDestino.getIdentificador() && + puertoOrigen.identificadorPuerto().equals(puertoDestino.identificadorPuerto())) ? false : true; + } + + /****************** + * METODOS SIMPLE * + ******************/ + + /** + * Metodo que sirve para convertir las Millas marinas a Kilometros + * @param millas Millas de un trayecto + * @return Kilometros de un trayecto + */ + private double convertirMillasAKilometros(double millas) { + return millas * this.MILLAS_A_KILOMETROS; + } +} + diff --git a/src/es/markse/TBarco.java b/src/es/markse/TBarco.java index 2e896082e4f960b1c8e55d8e18f67a68641b41de..bda17a497d18c61bd9df6a9e9580b21503a55328 100644 --- a/src/es/markse/TBarco.java +++ b/src/es/markse/TBarco.java @@ -8,7 +8,7 @@ package es.markse; * @author javcalv * @author victorm */ -public class TBarco extends TSimple { +public class TBarco extends Simple { private final double COSTE_DIARIO = 4000; diff --git a/src/es/markse/TSimple.java b/src/es/markse/TSimple.java deleted file mode 100644 index cf863c25e12a211b5cb63ac1aeaf25c37aefc8bc..0000000000000000000000000000000000000000 --- a/src/es/markse/TSimple.java +++ /dev/null @@ -1,93 +0,0 @@ -/** - * Copyright Universidad de Valladolid 2024 - */ -package es.markse; - -/** - * Implementacion de la clase abstracta TrayectoSimple - * @author javcalv - * @author victorm - */ -public abstract class TSimple extends Trayecto { - - protected double distanciaKilometros; - private final float MILLAS_A_KILOMETROS = 1.852f; - - /** - * Constructor del TrayectoSimple - * @param muelleOrigen Muelle desde el que empieza el Trayecto - * @param puertoOrigen Puerto desde el que empieza el Trayecto - * @param fechaInicioTrayecto Fecha en la que comienza el Trayecto - * @param muelleDestino Muelle en el que finaliza un Trayecto - * @param puertoDestino Puerto en el que finaliza un Trayecto - * @param fechaFinTrayecto Fecha en la que finaliza un Trayecto - */ - public TSimple(Muelle muelleOrigen, Puerto puertoOrigen, Fecha fechaInicioTrayecto, Muelle muelleDestino, Puerto puertoDestino, Fecha fechaFinTrayecto) { - super(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleDestino, puertoDestino, fechaFinTrayecto); - - //Obtenemos la distancia en millas marinas del trayecto y las convertimos en kilometros - this.distanciaKilometros = convertirMillasAKilometros(distanciaMillasMarinas()); - } - - /** - * Metodo que sirve para convertir las Millas marinas a Kilometros - * @param millas Millas de un trayecto - * @return Kilometros de un trayecto - */ - private double convertirMillasAKilometros(double millas) { - return millas * this.MILLAS_A_KILOMETROS; - } - - /******************************************** - * OBTENCION DE LOS VALORES PARA EL TSIMPLE * - ********************************************/ - - /** - * Método que Devuelve el Muelle de Origen - * @return muelleOrigen - */ - public Muelle getMuelleOrigen() { - return this.muelleOrigen; - } - - /** - * Método que Devuelve el Muelle de Destino - * @return muelleDestino - */ - public Muelle getMuelleDestino() { - return this.muelleDestino; - } - - /** - * Método que Devuelve el Puerto de Origen - * @return puertoOrigen - */ - public Puerto getPuertoOrigen() { - return this.puertoOrigen; - } - - /** - * Método que Devuelve el Puerto de Destino - * @return puertoDestino - */ - public Puerto getPuertoDestino() { - return this.puertoDestino; - } - - /** - * Método que Devuelve la Fecha del Inicio del Trayecto - * @return fechaInicioTrayecto - */ - public Fecha getFechaInicioTrayecto() { - return this.fechaInicioTrayecto; - } - - /** - * Método que Devuelve la Fecha del Fin del Trayecto - * @return fechaFinTrayecto - */ - public Fecha getFechaFinTrayecto() { - return this.fechaFinTrayecto; - } -} - diff --git a/src/es/markse/TVehiculoTierra.java b/src/es/markse/TVehiculoTierra.java index 5af5d9e7757f50eb89c8f059332a287e4b504dcc..2569c4775baa47e0b6d9989235d8c63b1c0f61eb 100644 --- a/src/es/markse/TVehiculoTierra.java +++ b/src/es/markse/TVehiculoTierra.java @@ -1,6 +1,6 @@ package es.markse; -public abstract class TVehiculoTierra extends TSimple{ +public abstract class TVehiculoTierra extends Simple{ protected double COSTE_FIJO; protected double COSTE_POR_KILOMETRO; diff --git a/src/es/markse/Trayecto.java b/src/es/markse/Trayecto.java index 0578f6c730e83d7854a6a7ea228d920100200e97..bdc62e72d2caac2623536ca6561092abd6b65856 100644 --- a/src/es/markse/Trayecto.java +++ b/src/es/markse/Trayecto.java @@ -47,11 +47,13 @@ public abstract class Trayecto{ if (!puertoDestino.comprobarMuelleEnPuerto(muelleDestino)) throw new IllegalStateException("El muelle no pertenece al puerto"); - if (!comprobacionMuellesDistintos(muelleOrigen, muelleDestino, puertoOrigen, puertoDestino)) - throw new IllegalArgumentException("El muelle de origen no puede ser igual al de destino"); if(fechaInicioTrayecto.getDiasDesdeEpoch()>fechaFinTrayecto.getDiasDesdeEpoch()) throw new IllegalArgumentException ("La Fecha del Inicio del Trayecto no puede ser posterior a la fecha del Fin del Trayecto"); + + if (!comprobacionMuellesDistintos(muelleOrigen, muelleDestino, puertoOrigen, puertoDestino)) + throw new IllegalArgumentException("El muelle de origen no puede ser igual al de destino"); + this.muelleOrigen=muelleOrigen; this.puertoOrigen=puertoOrigen; this.fechaInicioTrayecto=fechaInicioTrayecto; @@ -144,35 +146,47 @@ public abstract class Trayecto{ * Método que Devuelve el Muelle de Origen * @return muelleOrigen */ - public abstract Muelle getMuelleOrigen(); + public Muelle getMuelleOrigen() { + return this.muelleOrigen; + } /** * Método que Devuelve el Muelle de Destino * @return muelleDestino */ - public abstract Muelle getMuelleDestino(); + public Muelle getMuelleDestino() { + return this.muelleDestino; + } /** * Método que Devuelve el Puerto de Origen * @return puertoOrigen */ - public abstract Puerto getPuertoOrigen(); + public Puerto getPuertoOrigen() { + return this.puertoOrigen; + } /** * Método que Devuelve el Puerto de Destino * @return puertoDestino */ - public abstract Puerto getPuertoDestino(); + public Puerto getPuertoDestino() { + return this.puertoDestino; + } /** * Método que Devuelve la Fecha del Inicio del Trayecto * @return fechaInicioTrayecto */ - public abstract Fecha getFechaInicioTrayecto(); + public Fecha getFechaInicioTrayecto() { + return this.fechaInicioTrayecto; + } /** * Método que Devuelve la Fecha del Fin del Trayecto * @return fechaFinTrayecto */ - public abstract Fecha getFechaFinTrayecto(); + public Fecha getFechaFinTrayecto() { + return this.fechaFinTrayecto; + } } \ No newline at end of file diff --git a/uses/es/markse/PackCamionBarcoTest.java b/uses/es/markse/PackCamionBarcoTest.java new file mode 100644 index 0000000000000000000000000000000000000000..18107450e0ad42079442728e7661043563365f92 --- /dev/null +++ b/uses/es/markse/PackCamionBarcoTest.java @@ -0,0 +1,41 @@ +/** + * + */ +package es.markse; + +import static org.junit.Assert.*; + +import java.util.ArrayList; + +import org.junit.Test; +import es.uva.inf.poo.maps.GPSCoordinate; +import es.markse.Muelle.estado; + +/** + * @author Javier + * + */ +public class PackCamionBarcoTest { + + @Test + public void testPackCamionBarco() { + Muelle muelleOrigen = new Muelle("01", new GPSCoordinate(10.0, 15.0), estado.OPERATIVO, 10, 3, true, true); + Muelle muelleDestino = new Muelle("02", new GPSCoordinate(15.0, -15.0), estado.OPERATIVO, 10, 3, true, true); + Puerto puertoOrigen = new Puerto("ES", "BAR"); + Puerto puertoDestino = new Puerto("ES", "VAL"); + puertoOrigen.anyadirMuelle(muelleOrigen); + puertoDestino.anyadirMuelle(muelleDestino); + Fecha fechaInicioTrayecto = new Fecha(20, 10, 2015); + Fecha fechaFinTrayecto = new Fecha(30, 10, 2015); + ArrayList<Simple> trayectosSimples = new ArrayLis + PackCamionBarco pcb = new PackCamionBarco(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleDestino, puertoDestino, fechaFinTrayecto, trayectosSimples) + } + + @Test + public void testCosteTrayecto() { + fail("Not yet implemented"); + } + + + +}