diff --git a/src/es/markse/Contenedor.java b/src/es/markse/Contenedor.java
index 5814c8d1c509135167e8a3262540afa2558c9e50..8d74873aa9bdf69da280ddf1298f614d7ca7bca6 100644
--- a/src/es/markse/Contenedor.java
+++ b/src/es/markse/Contenedor.java
@@ -3,6 +3,9 @@
  */
 package es.markse;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * Implementacion de la clase Contenedor
  * @author javcalv
@@ -15,6 +18,7 @@ public class Contenedor {
 	private float volumen;
 	private boolean transito;
 	private boolean techo;
+	private List<Trayecto> trayectos = new ArrayList<>();
 	
 	/**
 	 * Constructor del Objeto Contenedor
@@ -165,7 +169,6 @@ public class Contenedor {
 		return this.pesoTara*2.20462f;	
 	}
 	
-	
 	//AÑADIR METODO PARA AÑADIR TRAYECTOS
 	
 }
\ No newline at end of file
diff --git a/src/es/markse/Muelle.java b/src/es/markse/Muelle.java
index 6844d88dcb286606d1d35f1a41f5c5cd0a56aaf7..2954afc0f90f9c1b5a2dc59729e28be7917a7504 100644
--- a/src/es/markse/Muelle.java
+++ b/src/es/markse/Muelle.java
@@ -115,7 +115,7 @@ public class Muelle {
 	
 	/**
 	 * 1.1.9 Metodo que devuelve la plaza de un contenedor dentro del muelle.
-	 * Las plazas van en orden, del 1 hasta la ultima plaza del muelle disponible
+	 * Las plazas van en orden, del 0 hasta la ultima plaza del muelle disponible
 	 * @param codigo: codigo del contenedor para ver su plaza actual
 	 * @return la plaza del contenedor o -1 si no se encuentra en ninguna plaza
 	 */
@@ -143,33 +143,25 @@ public class Muelle {
         return -1;
     }
 
-	
 	/**
-	 * 1.1.11 Metodo para colocar un contenedor en una plaza y apilarlo si es posible
+	 * Metodo para colocar un contenedor en una plaza y apilarlo si es posible
 	 * @param codigo Codigo del contenedor que queremos colocar
 	 * @param plaza La plaza del contenedor
 	 * @return Error si el contenedor ya esta apilado en ese muelle, si la plaza esta llena o si la plaza
 	 * no pertenece al muelle (una plaza mayor a las que hay o menor a 0)
 	 */
 	public void colocarContenedorEnPlaza(Contenedor contenedor, int plaza) {
-		if (this.plazaActual(contenedor.getCodigo()) != -1) {
-			throw new IllegalArgumentException("El contenedor ya esta apilado en este muelle");
-		}
-		else if(plaza<0 || plaza>this.plazas.length) {
-			throw new IllegalArgumentException("La plaza esta fuera del rango de las plazas del muelle. 0 -" + (this.numeroDePlazasTotales()-1));
-			
-		}
-		else {
-			boolean teniaTecho = this.plazas[plaza].ultimoContenedor().tieneTecho();
-			if (this.plazas[plaza].colocarContenedor(contenedor)) {
-				int plazasDespues = this.plazas[plaza].numeroContenedores();
-				int plazasAntes = plazasDespues -1;
-				this.actualizarPlazas(plazasAntes, plazasDespues, this.plazas[plaza], teniaTecho);	
-			}
-			else {
-				throw new IllegalArgumentException("La plaza esta llena");
-			}
-		}
+	    Contenedor ultimo = this.plazas[plaza].ultimoContenedor();
+	    // Verificar si hay un último contenedor y si tiene techo
+	    boolean teniaTecho = (ultimo != null && ultimo.tieneTecho());
+	    if (this.plazas[plaza].colocarContenedor(contenedor)) {
+	        int plazasDespues = this.plazas[plaza].numeroContenedores();
+	        int plazasAntes = plazasDespues - 1;
+	        this.actualizarPlazas(plazasAntes, plazasDespues, this.plazas[plaza], teniaTecho);
+	    }
+	    else {
+	        throw new IllegalArgumentException("La plaza está llena");
+	    }
 	}
 
 	/**
@@ -218,6 +210,13 @@ public class Muelle {
 		}
 	}
 	
+	/**
+	 * Metodo para alternar techo (Test)
+	 */
+	public void alternarOperativo() {
+        this.operativo = !this.operativo;
+    }
+	
 	/**
 	 * Metodo que actualiza el numero de plazas (vacias, llenas, semillenas) al añadir o eliminar un contenedor
 	 * @param plazasAntes El numero de plazas antes de añadir o eliminar un contenedor
diff --git a/src/es/markse/Plaza.java b/src/es/markse/Plaza.java
index a8c1ae560498df9542bf2b619893da678ca599a1..8b27d6525682d45577cbe13c0dbbb25624c33956 100644
--- a/src/es/markse/Plaza.java
+++ b/src/es/markse/Plaza.java
@@ -86,9 +86,12 @@ public class Plaza {
 	
 	/**
 	 * Metod que devuelve el ultimo contenedor de la Plaza
-	 * @return ultimo contenedor de la plaza
+	 * @return ultimo contenedor de la plaza o null si esta vacio
 	 */
 	public Contenedor ultimoContenedor() {
+		if (contenedores.isEmpty()) {
+	        return null;
+	    }
 		return contenedores.get(contenedores.size() -1);
 	}
 	
diff --git a/src/es/markse/Puerto.java b/src/es/markse/Puerto.java
index 64433aa3413bd3949722964a38f33413af26bc7d..6372f988a5464022e05f95e80c536016b28c119d 100644
--- a/src/es/markse/Puerto.java
+++ b/src/es/markse/Puerto.java
@@ -16,7 +16,8 @@ import es.uva.inf.poo.maps.GPSCoordinate;
  *
  */
 public class Puerto {
-	private String identificador;
+	private String pais;
+	private String ciudad;
 	private List<Muelle> muelles = new ArrayList<>();
 
 	/**
@@ -26,7 +27,8 @@ public class Puerto {
 	 */
 	public Puerto(String pais, String ciudad) {
 		comprobarIdentificador(pais, ciudad);
-		this.identificador = pais.toUpperCase()+"-"+ciudad.toUpperCase();
+		this.pais = pais.toUpperCase();
+		this.ciudad = ciudad.toUpperCase();
 	}
 	
 	/**
@@ -45,18 +47,19 @@ public class Puerto {
 	 * Si no lo esta, lo agrega, si ya se encuentra agregado, no.
 	 * @param m objeto tipo Muelle
 	 */
-	public void anyadirMuelle(Muelle m) {
+	public boolean anyadirMuelle(Muelle m) {
 		if (!this.comprobarMuelleEnPuerto(m)) {
-			this.muelles.add(m);
-		}		
+			return this.muelles.add(m);
+		}
+		return false;
 	}
 	
 	/**
 	 * 1.1.2 Método que elimina un muelle del puerto.
 	 * @param id : Identificador del muelle que se elimina
 	 */
-	public void eliminarMuelle(String id) {
-		this.muelles.removeIf(muelle -> muelle.getIdentificador().equals(id));
+	public boolean eliminarMuelle(String id) {
+		return this.muelles.removeIf(muelle -> muelle.getIdentificador().equals(id));
 	}
 	
 	/**
@@ -67,8 +70,9 @@ public class Puerto {
 	 */
 	private boolean comprobarMuelleEnPuerto(Muelle m) {
 	    String id = m.getIdentificador();
+	    GPSCoordinate cord = m.getGPSCoordinate();
 	    for (Muelle muelle : this.muelles) {
-	        if (id.equals(muelle.getIdentificador())) {
+	        if (id.equals(muelle.getIdentificador())|| (cord.getDistanceTo(muelle.getGPSCoordinate())==0)) {
 	            return true;
 	        }
 	    }
@@ -143,4 +147,47 @@ public class Puerto {
 	    return cercanos.toArray(new Muelle[0]);
 	}
 	
-}
\ No newline at end of file
+	/**
+	 * 1.1.11 Metodo que almacena un Contenedor en el Muelle (Comprueba que ese contenedor no este en
+	 * un puerto)
+	 * @param m Muelle donde se almacena el contenedor
+	 * @param c Contenedor a almacenar
+	 * @param plaza Plaza donde se apilara el contenedor
+	 * @return
+	 */
+	
+	public void colocarContenedorEnMuelle(Muelle m, Contenedor c, int plaza) {
+	    // Verificar si el muelle m está en la lista de muelles del puerto
+	    if (!this.muelles.contains(m)) {
+	        throw new IllegalArgumentException("El muelle no está en el puerto.");
+	    }
+	    // Comprobamos si la plaza está fuera del rango
+	    if (plaza < 0 || plaza >= m.numeroDePlazasTotales()) {
+	        throw new IllegalArgumentException("La plaza está fuera del rango de las plazas del muelle. 0 - " + (m.numeroDePlazasTotales() - 1));
+	    }
+	    // Comprobamos si ese contenedor ya está apilado en algún muelle
+	    for (Muelle muelle : this.muelles) {
+	        if (muelle.plazaActual(c.getCodigo()) != -1) {
+	            throw new IllegalArgumentException("El contenedor ya está apilado en un muelle.");
+	        }
+	    }
+	    // Si todas las verificaciones anteriores pasan, colocamos el contenedor en la plaza especificada
+	    m.colocarContenedorEnPlaza(c, plaza);
+	}
+	
+	/**
+	 * Metodo que devuelve el pais del puerto
+	 * @return pais del perto
+	 */
+	public String paisDelPuerto() {
+		return this.pais;
+	}
+	
+	/**
+	 * Metodo que devuelve la ciudad del puerto
+	 * @return ciudad del puerto
+	 */
+	public String ciudadDelPuerto() {
+		return this.ciudad;
+	}
+}
diff --git a/src/es/markse/Trayecto.java b/src/es/markse/Trayecto.java
index 875b08df9b6c57643a4fdc85f19f8a763581dff8..c1a277b3a2f5da5ad5712d28d1a5a41ea64f4a01 100644
--- a/src/es/markse/Trayecto.java
+++ b/src/es/markse/Trayecto.java
@@ -11,62 +11,51 @@ import java.time.LocalDate;
  */
 public class Trayecto {
 
-	public String MuelleOrigen;
-	public String PuertoOrigen;
-	//public String FechaInicioTrayecto;
-	LocalDate FechaInicioTrayecto;
-	public String MuelleDestino;
-	public String PuertoDestino;
-	//public String FechaFinTrayecto;
-	LocalDate FechaFinTrayecto = LocalDate.of(2024, 11, 6);
-	//hola
+	private Muelle muelleOrigen;
+	private Puerto puertoOrigen;
+	private LocalDate fechaInicioTrayecto;
+	private Muelle muelleDestino;
+	private Puerto puertoDestino;
+	private LocalDate fechaFinTrayecto;
 	
-	
-	public Trayecto() {
-		
-	}
-	
-	
-	public Trayecto(LocalDate FechaInicioTrayecto) {
-		this.FechaInicioTrayecto = FechaInicioTrayecto;
-	}
-	
-	
-	
-	public Trayecto (String MuelleOrigen, String PuertoOrigen, LocalDate FechaInicioTrayecto, String MuelleDestino, String PuertoDestino, LocalDate FechaFinTrayecto) {
-		this.MuelleOrigen=MuelleOrigen;
-		this.PuertoOrigen=PuertoOrigen;
-		this.FechaInicioTrayecto=FechaInicioTrayecto;
-		this.MuelleDestino = MuelleDestino;
-		this.PuertoDestino = PuertoDestino;
-		this.FechaFinTrayecto = FechaFinTrayecto;
+	public Trayecto (Muelle MuelleOrigen, Puerto PuertoOrigen, LocalDate FechaInicioTrayecto, Muelle MuelleDestino, Puerto PuertoDestino, LocalDate FechaFinTrayecto) {
+		this.muelleOrigen=MuelleOrigen;
+		this.puertoOrigen=PuertoOrigen;
+		this.fechaInicioTrayecto=FechaInicioTrayecto;
+		this.muelleDestino = MuelleDestino;
+		this.puertoDestino = PuertoDestino;
+		this.fechaFinTrayecto = FechaFinTrayecto;
 	}
 
 	public boolean errorFechaFinTrayecto(LocalDate fechaDada) {
-		if(FechaFinTrayecto.compareTo(fechaDada)!=0) {
+		if(fechaFinTrayecto.compareTo(fechaDada)!=0) {
 			System.out.println("Las Fechas No Coinciden");
 			return true;
 		};
 		System.out.println("Las Fechas Coinciden");
 		return false;
-		
 	}
-
-
-	public int precioTrayectoEnEuros() {
-		return 0;
+	
+	public double precioTrayectoEnEuros(int costeDiarioTrayecto, int costePorMilla) {
+		int dias = fechaFinTrayecto.getDayOfYear()-fechaInicioTrayecto.getDayOfYear();
+		double dist = distanciaMillasMarinas();
+		return ((dias*costeDiarioTrayecto)+(dist*costePorMilla));	
 	}
-
-
-	public int distanciaMillasMarinas() {
-		return 0;
-		
+	
+	public double distanciaMillasMarinas() {
+		return muelleOrigen.getGPSCoordinate().getDistanceTo(muelleDestino.getGPSCoordinate());
 	}
 
 	public String inforTrayecto() {
-		return"Puerto de Origen: "+this.PuertoOrigen;
+		String ciudadOrig = this.puertoOrigen.ciudadDelPuerto();
+		String paisOrig = this.puertoOrigen.paisDelPuerto();
+		String FechaInicio = this.fechaInicioTrayecto.toString();
+		String ciudadDest = this.puertoDestino.ciudadDelPuerto();
+		String paisDest = this.puertoDestino.paisDelPuerto();
+		String FechaFin = this.fechaFinTrayecto.toString();
+
+		return"INFORMACION SOBRE EL ORIGEN: \nCiudad Origen: "+ciudadOrig+"\nPais Origen: "+paisOrig+"\nFecha del Inicio: "+FechaInicio+
+				"\nINFORMACION SOBRE EL DESTINO: \nCiudad Destino: "+ciudadDest+"\nPais Destino: "+paisDest+"\nFecha del Fin: "+FechaFin;
 		
 	}
-
-
 }
diff --git a/uses/es/markse/PuertoTest.java b/uses/es/markse/PuertoTest.java
index 6fafc7a0cb6df3942cc2dcd7f81ca1a8952e80d8..1c415156785128996385dc3022059b54848250bb 100644
--- a/uses/es/markse/PuertoTest.java
+++ b/uses/es/markse/PuertoTest.java
@@ -13,17 +13,29 @@ import es.uva.inf.poo.maps.GPSCoordinate;
  * @author victorm
  */
 public class PuertoTest {
-
-	@Test(expected = IllegalArgumentException.class)
-	public void testCreacionPuertoInvalida() {
-		Puerto p = new Puerto("ES", "455");
-	}
 	
 	@Test
 	public void testPuerto() {
 		Puerto p = new Puerto("ES","BAR");
+		assertEquals("ES", p.paisDelPuerto());
+        assertEquals("BAR", p.ciudadDelPuerto());
 	}
-	
+
+	@Test(expected = IllegalArgumentException.class)
+	public void testCreacionPuertoCiudadInvalida() {
+	    new Puerto("ES", "455");
+	}
+
+	@Test(expected = IllegalArgumentException.class)
+	public void testCreacionPuertoPaisInvalido() {
+	    new Puerto("R3", "VAL");
+	}
+
+	@Test(expected = IllegalArgumentException.class)
+	public void testCreacionPuertoTodoInvalido() {
+	    new Puerto("4R", "e32");
+	}
+
 	@Test
 	public void testAnyadirMuelle() {
 		Puerto p = new Puerto("ES","BAR");
@@ -33,36 +45,177 @@ public class PuertoTest {
 	}
 	
 	@Test
-	public void testAnyadirMuelleConMismoIDoMismaCoordenada() {
+	public void testAnyadirMuelleRepetido() {
 		Puerto p = new Puerto("ES","BAR");
 		GPSCoordinate cord1 = new GPSCoordinate(5d, 10d);
 		GPSCoordinate cord2 = new GPSCoordinate(20d, -10d);
 		Muelle m = new Muelle("03", cord1, true, 40, 5);
-		p.anyadirMuelle(m);
 		Muelle mismoID = new Muelle("03", cord2, true, 40, 5);
 		Muelle mismaCoordenada = new Muelle("05", cord1, true, 40, 5);
+		p.anyadirMuelle(m);
 		assertFalse(p.anyadirMuelle(mismaCoordenada));
 		assertFalse(p.anyadirMuelle(mismoID));	
 	}
 	
-	
 	@Test
 	public void testEliminarMuelle() {
-		fail("Not yet implemented"); // TODO
+		Puerto p = new Puerto("ES","BAR");
+		GPSCoordinate cord = new GPSCoordinate(5d, 10d);
+		Muelle m = new Muelle("03", cord, true, 40, 5);
+		p.anyadirMuelle(m);
+		assertTrue(p.eliminarMuelle("03"));
 	}
-
+	
+	@Test
+	public void testEliminarMuelleQueNoEstaEnPuerto() {
+		Puerto p = new Puerto("ES","BAR");
+		assertFalse(p.eliminarMuelle("05"));
+	}
+	
+	@Test
+	public void testComprobarSiEstaLleno() {
+		Puerto p = new Puerto("ES","BAR");
+		GPSCoordinate cord1 = new GPSCoordinate(5d, 10d);
+		GPSCoordinate cord2 = new GPSCoordinate(20d, -10d);
+		Muelle m1 = new Muelle("01", cord1, true, 1, 1);
+		Muelle m2 = new Muelle("04", cord2, true, 2, 1);
+		p.anyadirMuelle(m1);
+		p.anyadirMuelle(m2);
+		Contenedor c11 = new Contenedor("ZRE", 'J', "056731", 100, 400, 500, false, true);
+		Contenedor c21 = new Contenedor("RTZ", 'Z', "569026", 100, 400, 500, false, true);
+		Contenedor c22 = new Contenedor("WCD", 'Z', "432012", 100, 400, 500, false, true);
+		p.colocarContenedorEnMuelle(m1, c11, 0);
+		p.colocarContenedorEnMuelle(m2, c21, 0);
+		p.colocarContenedorEnMuelle(m2, c22, 1);
+		assertTrue(p.comprobarSiEstaLleno());
+	}
+	
+	@Test
+	public void testComprobarSiEstaLlenoEsFalso() {
+		Puerto p = new Puerto("ES","BAR");
+		GPSCoordinate cord1 = new GPSCoordinate(5d, 10d);
+		GPSCoordinate cord2 = new GPSCoordinate(20d, -10d);
+		Muelle m1 = new Muelle("01", cord1, true, 1, 1);
+		Muelle m2 = new Muelle("04", cord2, true, 2, 1);
+		p.anyadirMuelle(m1);
+		p.anyadirMuelle(m2);
+		Contenedor c11 = new Contenedor("ZRE", 'J', "056731", 100, 400, 500, false, true);
+		Contenedor c21 = new Contenedor("RTZ", 'Z', "569026", 100, 400, 500, false, true);
+		p.colocarContenedorEnMuelle(m1, c11, 0);
+		p.colocarContenedorEnMuelle(m2, c21, 0);
+		assertFalse(p.comprobarSiEstaLleno());
+	}
+	
 	@Test
 	public void testMuellesOperativos() {
-		fail("Not yet implemented"); // TODO
+		Puerto p = new Puerto("ES","BAR");
+		GPSCoordinate cord1 = new GPSCoordinate(5d, 10d);
+		GPSCoordinate cord2 = new GPSCoordinate(20d, -10d);
+		Muelle m1 = new Muelle("01", cord1, false, 1, 1);
+		Muelle m2 = new Muelle("04", cord2, false, 2, 1);
+		p.anyadirMuelle(m1);
+		p.anyadirMuelle(m2);
+		assertEquals(0, p.muellesOperativos().length);
+		m1.alternarOperativo();
+		m2.alternarOperativo();
+		Muelle[] muellesEsperados = {m1, m2};
+		assertArrayEquals(muellesEsperados, p.muellesOperativos());
 	}
-
+	
+	
 	@Test
 	public void testMuellesConEspacio() {
-		fail("Not yet implemented"); // TODO
+		Puerto p = new Puerto("ES","BAR");
+		GPSCoordinate cord1 = new GPSCoordinate(5d, 10d);
+		Muelle m1 = new Muelle("01", cord1, true, 1, 1);
+		p.anyadirMuelle(m1);
+		Muelle[] muellesEsperados = {m1};
+		assertArrayEquals(muellesEsperados, p.muellesConEspacio());
+		Contenedor c11 = new Contenedor("ZRE", 'J', "056731", 100, 400, 500, false, true);
+		p.colocarContenedorEnMuelle(m1, c11, 0);
+		assertEquals(0, p.muellesConEspacio().length);
 	}
-
+	
+	
 	@Test
 	public void testMuellesCercanoAPunto() {
-		fail("Not yet implemented"); // TODO
+		Puerto p = new Puerto("ES","BAR");
+		GPSCoordinate cord1 = new GPSCoordinate(10d, 10d);
+		GPSCoordinate cord2 = new GPSCoordinate(-10d, -10d);
+		Muelle m1 = new Muelle("01", cord1, true, 1, 1);
+		Muelle m2 = new Muelle("05", cord2, true, 2, 2);
+		GPSCoordinate puntoDado = new GPSCoordinate(15d , 15d);
+		p.anyadirMuelle(m1);
+		p.anyadirMuelle(m2);
+		Muelle[] muelleCercanos = {m1};
+		assertArrayEquals(muelleCercanos, p.muellesCercanoAPunto(puntoDado));
+		puntoDado = new GPSCoordinate(0d , 0d);
+		Muelle[] muellesCercanos = {m1,m2};
+		assertArrayEquals(muellesCercanos, p.muellesCercanoAPunto(puntoDado));
+	}
+	
+	@Test
+	public void testColocarContenedorEnMuelle() {
+		Puerto p = new Puerto("ES","BAR");
+		GPSCoordinate cord1 = new GPSCoordinate(10d, 10d);
+		Muelle m1 = new Muelle("01", cord1, true, 1, 1);
+		p.anyadirMuelle(m1);
+		Contenedor c11 = new Contenedor("ZRE", 'J', "056731", 100, 400, 500, false, true);
+		p.colocarContenedorEnMuelle(m1, c11, 0);
+		assertEquals(1, m1.plazasLlenas());
+		assertEquals(0, m1.plazasVacias());
+		assertEquals(0, m1.plazasSemillenas());
+	}
+	
+	@Test(expected = IllegalArgumentException.class)
+	public void testColocarContenedorEnMuelleQueNoEstaEnPuerto() {
+		Puerto p = new Puerto("ES","BAR");
+		GPSCoordinate cord1 = new GPSCoordinate(10d, 10d);
+		Muelle m1 = new Muelle("01", cord1, true, 1, 1);
+		Contenedor c11 = new Contenedor("ZRE", 'J', "056731", 100, 400, 500, false, true);
+		p.colocarContenedorEnMuelle(m1, c11, 0);
+	}
+	
+	@Test(expected = IllegalArgumentException.class)
+	public void testColocarContenedorEnMuelleConPlazaFueraDeRangoPorArriba(){
+		Puerto p = new Puerto("ES","BAR");
+		GPSCoordinate cord1 = new GPSCoordinate(10d, 10d);
+		Muelle m1 = new Muelle("01", cord1, true, 1, 1);
+		p.anyadirMuelle(m1);
+		Contenedor c11 = new Contenedor("ZRE", 'J', "056731", 100, 400, 500, false, true);
+		p.colocarContenedorEnMuelle(m1, c11, 1);
+	}
+	
+	@Test(expected = IllegalArgumentException.class)
+	public void testColocarContenedorEnMuelleConPlazaFueraDeRangoPorAbajo(){
+		Puerto p = new Puerto("ES","BAR");
+		GPSCoordinate cord1 = new GPSCoordinate(10d, 10d);
+		Muelle m1 = new Muelle("01", cord1, true, 1, 1);
+		p.anyadirMuelle(m1);
+		Contenedor c11 = new Contenedor("ZRE", 'J', "056731", 100, 400, 500, false, true);
+		p.colocarContenedorEnMuelle(m1, c11, -1);
+	}
+	
+	@Test(expected = IllegalArgumentException.class)
+	public void testColocarContenedorEnMuelleYaApilado() {
+		Puerto p = new Puerto("ES","BAR");
+		GPSCoordinate cord1 = new GPSCoordinate(10d, 10d);
+		Muelle m1 = new Muelle("01", cord1, true, 1, 1);
+		p.anyadirMuelle(m1);
+		Contenedor c11 = new Contenedor("ZRE", 'J', "056731", 100, 400, 500, false, true);
+		p.colocarContenedorEnMuelle(m1, c11, 0);
+		p.colocarContenedorEnMuelle(m1, c11, 0);
+	}
+	
+	@Test(expected = IllegalArgumentException.class)
+	public void testColocarContenedorEnMuelleLleno() {
+		Puerto p = new Puerto("ES","BAR");
+		GPSCoordinate cord1 = new GPSCoordinate(10d, 10d);
+		Muelle m1 = new Muelle("01", cord1, true, 1, 1);
+		p.anyadirMuelle(m1);
+		Contenedor c11 = new Contenedor("ZRE", 'J', "056731", 100, 400, 500, false, true);
+		Contenedor c12 = new Contenedor("RTA", 'J', "056731", 100, 400, 500, false, true);
+		p.colocarContenedorEnMuelle(m1, c11, 0);
+		p.colocarContenedorEnMuelle(m1, c12, 0);
 	}
-}
+}
\ No newline at end of file
diff --git a/uses/es/markse/UsaContenedor.java b/uses/es/markse/UsaContenedor.java
deleted file mode 100644
index 3c875c3338f64eae854c4f230625e06b620a6ec7..0000000000000000000000000000000000000000
--- a/uses/es/markse/UsaContenedor.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * 
- */
-package es.markse;
-
-/**
- * @author javcavl
- *
- */
-public class UsaContenedor {
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		//CONTENEDOR
-		Contenedor c = new Contenedor();
-		String codigo = c.getCodigo();
-		
-		//cambiar el estado de un contenedor para reflejar que está en recogida 
-		c.cambiarEstadoARecogida();	
-		
-		//cambiar el estado de un contenedor para reflejar que está en tránsito 
-		c.cambiarEstadoATransito();
-		
-		//cambiar a contenedor tiene techo o no
-		c.alternarTecho();
-		
-		//obtener el volumen del contenedor en metros cúbicos
-		c.volumenEnMetrosCubicos();
-		
-		//obtener el volumen del contenedor en pies cúbicos 
-		c.volumenEnPiesCubicos();
-		
-		//obtener el peso del contenedor en Kilogramos 
-		c.obtenerPesoKilos();
-		
-		//obtener el peso del contenedor en Libras
-		c.obtenerPesoLibras();
-	}
-}
diff --git a/uses/es/markse/UsaMuelle.java b/uses/es/markse/UsaMuelle.java
deleted file mode 100644
index db4550ba50793ed6f0470045c73de2d1af99407f..0000000000000000000000000000000000000000
--- a/uses/es/markse/UsaMuelle.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * 
- */
-package es.markse;
-
-import es.uva.inf.poo.maps.GPSCoordinate;
-
-/**
- * @author vicma
- *
- */
-public class UsaMuelle {
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		GPSCoordinate cord = new GPSCoordinate(0d, 0d);
-		Muelle m = new Muelle(01, cord , true, 20, 3);
-		Puerto p = new Puerto("ES", "VAL");
-		Contenedor c = new Contenedor(01);
-		
-		//Numero de plazas del muelle
-		int plazas = m.numeroDePlazasTotales();
-		//Numero de plazas vacias, semi-llenas, llenas
-		int plazasVacias = m.plazasVacias();
-		int plazasSemillenas = m.plazasSemillenas();
-		int plazasLlenas = m.plazasLlenas();
-		
-		//Dado un codigo de contenedor, indicar la plaza en la que está
-		//Obtenemos el codigo del contenedor
-		String codigo = c.getCodigo();
-		int plaza = m.plazaActual(codigo);
-		
-		//Dado un codigo de contenedor, indicar en que nivel de la plaza está
-		int nivel = m.nivelEnPlaza(codigo);
-		
-		//Asignar un contenedor a una plaza y apilarlo encima de otro si es posible
-		int plazaElegida = 10;
-		boolean colocar = m.colocarContenedorEnPlaza(c, plazaElegida);	
-		boolean sacar = m.sacarContenedorDePlaza(c);
-	}
-}
diff --git a/uses/es/markse/UsaPuerto.java b/uses/es/markse/UsaPuerto.java
deleted file mode 100644
index a4a9bff0f66cc2293a0a167973a8f4e5383af523..0000000000000000000000000000000000000000
--- a/uses/es/markse/UsaPuerto.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * Copyright UVa 2024/2025
- */
-
-package es.markse;
-import java.time.LocalDate;
-import es.uva.inf.poo.maps.GPSCoordinate;
-
-/**
- * @author javcalv
- * @author victorm
- *
- */
-public class UsaPuerto {
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		// TODO Auto-generated method stub
-		definicionInicial();
-	}
-
-	private static void definicionInicial() {
-		
-		//APARTADO DE PUERTO
-		GPSCoordinate cord = new GPSCoordinate(0d, 0d);
-		Muelle m = new Muelle(01, cord , true, 20, 3);
-		Puerto p = new Puerto("ES", "VAL");
-		
-		//Añadir muelle
-		p.anyadirMuelle(m);
-		
-		//Eliminar Muelle por su identificador
-		int id = m.getIdentificador();
-		p.eliminarMuelle(id);
-		
-		//Comprobar si el puerto esta lleno o no
-		boolean llevo = p.comprobarSiEstaLleno();
-		
-		//Obtener una lista de los muelles operativos
-		Muelle[] muellesOperativos = p.muellesOperativos();
-		
-		//Obtener una lista de los muelles que tengan espacio
-		Muelle[] muellesConEspacio = p.muellesConEspacio();
-		
-		//Muelles que se encuentren a una distancia inferior de punto GPS
-		GPSCoordinate puntoDado = new GPSCoordinate(0d, 0d);
-		double radio = 30d;
-		Muelle[] muelles = p.muellesCercanoAPunto(puntoDado);
-		
-	
-		
-		
-		
-		//TRAYECTO
-		/**
-		Trayecto t = new Trayecto();
-		LocalDate fechaDada = LocalDate.of(2024, 10, 10);
-		t.esFechaSuperior(fechaDada)?
-		if (t.esFechaSuperior(fechaDada)) {
-			System.out.println("Si");
-		}
-		else {
-			System.out.println("No");
-		}
-		 */
-
-	}
-
-}
diff --git a/uses/es/markse/UsaTrayecto.java b/uses/es/markse/UsaTrayecto.java
deleted file mode 100644
index 31c9f4d926b51a035deb438967186bf1241f6256..0000000000000000000000000000000000000000
--- a/uses/es/markse/UsaTrayecto.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package es.markse;
-import java.time.LocalDate;
-import java.util.*;
-public class UsaTrayecto {
-	public static void main(String []args) {
-		
-		Trayecto t = new Trayecto();
-		LocalDate fechaDada = LocalDate.of(2023, 11, 6);
-		//LocalDate t2 = LocalDate.of(2024, 11, 6);
-		//System.out.println(t1.compareTo(t2));
-		
-		System.out.println(t.errorFechaFinTrayecto(fechaDada));
-		
-		}
-		
-	
-	}
-