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");
+	}
+	
+	
+
+}