package pruebas; import java.util.Date; import java.util.Vector; import junit.framework.TestCase; import dominio.Arco; import dominio.ArcoEspera; import dominio.Ciudad; import dominio.Cruce; import dominio.Nodo; import dominio.Posicion; import dominio.Salida; import dominio.Semaforo; import dominio.Utilidades; import dominio.Vehiculo; /** * @author Sergio * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class CiudadTester extends TestCase { private Ciudad cr; private Arco tinte1, tinte2, tinte3; private Arco reySanto1, reySanto2, reySanto3; private Arco ciruela1, ciruela2, ciruela3; private Arco alarcos1, alarcos2; private Arco gOrtega, avdaMancha, juanCaba, montesa; private Arco ronda1e, ronda2e, ronda3e, ronda4e; private Arco ronda1s, ronda2s, ronda3s, ronda4s; private Arco ronda1be, ronda2be, ronda3be, ronda4be; private Arco ronda1bs, ronda2bs, ronda3bs, ronda4bs; private Arco ficticio1, ficticio2, ficticio3e, ficticio3s, ficticio4e, ficticio4s; private Arco ficticio3be, ficticio3bs, ficticio4be, ficticio4bs; private Arco ficticio5, ficticio6, ficticio7, ficticio8; private Arco ficticio9, ficticio10e, ficticio10s, ficticio11, ficticio12e, ficticio12s; private Arco ficticio10be, ficticio10bs, ficticio12be, ficticio12bs; private Nodo nodo1, nodo3, nodo4, nodo5, nodo6, nodo7; private Nodo nodo8, nodo10, nodo11, nodo12, nodo13, nodo14; private Nodo nodo2_1, nodo2_2, nodo2_3, nodo2_4, nodo2_5; private Nodo nodo7_1, nodo7_2, nodo7_3, nodo7_4, nodo7_5; private Nodo nodo9_1, nodo9_2, nodo9_3, nodo9_4; private Vehiculo coche, coche2; private Cruce cruce1, cruce2_2, cruce7_2, cruce8, cruce6, cruce5, cruce4, cruce3, cruce11; private Cruce cruce10, cruce12, cruce13, cruce14, cruce2_3, cruce7_5; private Cruce cruce9_1, cruce9_2, cruce9_3, cruce9_4; private Semaforo semaforo2_1, semaforo2_5, semaforo2_4; private Semaforo semaforo7_1, semaforo7_3, semaforo7_4; private Salida salida; private String fecha = ""; public void setUp(){ Date cal = new Date(); fecha = ""+cal.getDate()+"-"+(cal.getMonth()+1)+"-"+(cal.getYear()+1900)+" "+cal.getHours()+"."+cal.getMinutes()+"."+cal.getSeconds(); //Construir los elementos de la ciudad cr = new Ciudad(); salida = cr.getSalida(); tinte1 = new Arco("tinte1",1,60.0,"stop",false); //nombre,nºcarriles,longitud,preferencia,secundario tinte2 = new Arco("tinte2",1,20.0,"preferencia",false); tinte3 = new Arco("tinte3",1,45.0,"preferencia",false); reySanto1 = new Arco("reySanto1",1,35.0,"preferencia",false); reySanto2 = new Arco("reySanto2",1,60.0,"stop",false); reySanto3 = new Arco("reySanto3",1,150.0,"stop",false); ciruela1 = new Arco("ciruela1",1,110.0,"preferencia",false); ciruela2 = new Arco("ciruela2",1,50.0,"preferencia",false); ciruela3 = new Arco("ciruela3",1,100.0,"preferencia",false); alarcos1 = new Arco("alarcos1",1,100.0,"preferencia",false); alarcos2 = new Arco("alarcos2",1,100.0,"preferencia",false); gOrtega = new Arco("gOrtega",1,50.0,"stop",false); ronda1e = new Arco("ronda1e",2,30.0,"preferencia",false); ronda2e = new Arco("ronda2e",2,75.0,"preferencia",false); ronda3e = new Arco("ronda3e",2,300.0,"preferencia",false); ronda4e = new Arco("ronda4e",2,150.0,"preferencia",false); ronda1s = new Arco("ronda1s",2,30.0,"preferencia",false); ronda2s = new Arco("ronda2s",2,75.0,"preferencia",false); ronda3s = new Arco("ronda3s",2,300.0,"preferencia",false); ronda4s = new Arco("ronda4s",2,150.0,"preferencia",false); ronda1be = new Arco("ronda1be",1,30.0,"preferencia",true); ronda2be = new Arco("ronda2be",1,75.0,"preferencia",true); ronda3be = new Arco("ronda3be",1,300.0,"preferencia",true); ronda4be = new Arco("ronda4be",1,150.0,"preferencia",true); ronda1bs = new Arco("ronda1bs",1,30.0,"preferencia",true); ronda2bs = new Arco("ronda2bs",1,75.0,"preferencia",true); ronda3bs = new Arco("ronda3bs",1,300.0,"preferencia",true); ronda4bs = new Arco("ronda4bs",1,150.0,"preferencia",true); avdaMancha = new Arco("avdaMancha",1,100.0,"preferencia",false); juanCaba = new Arco("juanCaba",1,60.0,"preferencia",false); montesa = new Arco("montesa",1,150.0,"stop",false); ficticio1 = new Arco("ficticio1",1,6.0,"preferencia",false); ficticio2 = new Arco("ficticio2",2,6.0,"preferencia",false); ficticio3e = new Arco("ficticio3e",2,6.0,"preferencia",false); ficticio3s = new Arco("ficticio3s",2,6.0,"preferencia",false); ficticio4e = new Arco("ficticio4e",2,6.0,"preferencia",false); ficticio4s = new Arco("ficticio4s",2,6.0,"preferencia",false); ficticio3be = new Arco("ficticio3be",1,6.0,"preferencia",true); ficticio3bs = new Arco("ficticio3bs",1,6.0,"preferencia",true); ficticio4be = new Arco("ficticio4be",1,6.0,"preferencia",true); ficticio4bs = new Arco("ficticio4bs",1,6.0,"preferencia",true); ficticio5 = new Arco("ficticio5",1,15.0,"preferencia",false); ficticio6 = new Arco("ficticio6",1,15.0,"preferencia",false); ficticio7 = new Arco("ficticio7",1,15.0,"preferencia",false); ficticio8 = new Arco("ficticio8",1,15.0,"preferencia",false); ficticio9 = new Arco("ficticio9",1,6.0,"preferencia",false); ficticio10e = new Arco("ficticio10e",2,6.0,"preferencia",false); ficticio10s = new Arco("ficticio10s",2,6.0,"preferencia",false); ficticio11 = new Arco("ficticio11",1,6.0,"preferencia",false); ficticio12e = new Arco("ficticio12e",2,6.0,"preferencia",false); ficticio12s = new Arco("ficticio12s",2,6.0,"preferencia",false); ficticio10be = new Arco("ficticio10be",1,6.0,"preferencia",true); ficticio10bs = new Arco("ficticio10bs",1,6.0,"preferencia",true); ficticio12be = new Arco("ficticio12be",1,6.0,"preferencia",true); ficticio12bs = new Arco("ficticio12bs",1,6.0,"preferencia",true); nodo1 = new Nodo("nodo1"); nodo3 = new Nodo("nodo3"); nodo4 = new Nodo("nodo4"); nodo5 = new Nodo("nodo5"); nodo6 = new Nodo("nodo6"); nodo7 = new Nodo("nodo7"); nodo8 = new Nodo("nodo8"); nodo10 = new Nodo("nodo10"); nodo11 = new Nodo("nodo11"); nodo12 = new Nodo("nodo12"); nodo13 = new Nodo("nodo13"); nodo14 = new Nodo("nodo14"); nodo2_1 = new Nodo("nodo2_1"); nodo2_2 = new Nodo("nodo2_2"); nodo2_3 = new Nodo("nodo2_3"); nodo2_4 = new Nodo("nodo2_4"); nodo2_5 = new Nodo("nodo2_5"); nodo7_1 = new Nodo("nodo7_1"); nodo7_2 = new Nodo("nodo7_2"); nodo7_3 = new Nodo("nodo7_3"); nodo7_4 = new Nodo("nodo7_4"); nodo7_5 = new Nodo("nodo7_5"); nodo9_1 = new Nodo("nodo9_1"); nodo9_2 = new Nodo("nodo9_2"); nodo9_3 = new Nodo("nodo9_3"); nodo9_4 = new Nodo("nodo9_4"); //elementos de los nodos cruce1 = new Cruce("cruce1"); cruce2_2 = new Cruce("cruce2_2"); cruce7_2 = new Cruce("cruce7_2"); cruce8 = new Cruce("cruce8"); cruce6 = new Cruce("cruce6"); cruce5 = new Cruce("cruce5"); cruce4 = new Cruce("cruce4"); cruce3 = new Cruce("cruce3"); cruce11 = new Cruce("cruce11"); cruce10 = new Cruce("cruce10"); cruce12 = new Cruce("cruce12"); cruce13 = new Cruce("cruce13"); cruce14 = new Cruce("cruce14"); cruce2_3 = new Cruce("cruce2_3"); cruce7_5 = new Cruce("cruce7_5"); cruce9_1 = new Cruce("cruce9_1"); cruce9_2 = new Cruce("cruce9_2"); cruce9_3 = new Cruce("cruce9_3"); cruce9_4 = new Cruce("cruce9_4"); semaforo2_1 = new Semaforo("semaforo2_1","rojo",5.0,1.0,5.0,1.0); semaforo2_4 = new Semaforo("semaforo2_4","verde",5.0,1.0,5.0,1.0); semaforo2_5 = new Semaforo("semaforo2_5","verde",5.0,1.0,5.0,1.0); semaforo7_1 = new Semaforo("semaforo7_1","verde",5.0,1.0,5.0,1.0); semaforo7_3 = new Semaforo("semaforo7_3","rojo",5.0,1.0,5.0,1.0); semaforo7_4 = new Semaforo("semaforo7_4","rojo",5.0,1.0,5.0,1.0); //origen y destino de un imagenes.arco tinte1.setOrigen(nodo13); tinte1.setDestino(nodo9_2); tinte2.setOrigen(nodo9_4); tinte2.setDestino(nodo6); tinte3.setOrigen(nodo6); tinte3.setDestino(nodo5); reySanto1.setOrigen(nodo11); reySanto1.setDestino(nodo10); reySanto2.setOrigen(nodo10); reySanto2.setDestino(nodo9_1); reySanto3.setOrigen(nodo8); reySanto3.setDestino(nodo9_3); ciruela1.setOrigen(nodo4); ciruela1.setDestino(nodo2_1); ciruela2.setOrigen(nodo5); ciruela2.setDestino(nodo4); ciruela3.setOrigen(nodo5); ciruela3.setDestino(nodo11); alarcos1.setOrigen(nodo14); alarcos1.setDestino(nodo13); alarcos2.setOrigen(nodo13); alarcos2.setDestino(nodo12); gOrtega.setOrigen(nodo10); gOrtega.setDestino(nodo12); avdaMancha.setOrigen(nodo6); avdaMancha.setDestino(nodo7_1); juanCaba.setOrigen(nodo4); juanCaba.setDestino(nodo3); montesa.setOrigen(nodo3); montesa.setDestino(nodo11); ronda1e.setOrigen(nodo14); ronda1e.setDestino(nodo8); ronda2e.setOrigen(nodo8); ronda2e.setDestino(nodo7_4); ronda3e.setOrigen(nodo7_3); ronda3e.setDestino(nodo2_4); ronda4e.setOrigen(nodo2_5); ronda4e.setDestino(nodo1); ronda1s.setOrigen(nodo8); ronda1s.setDestino(nodo14); ronda2s.setOrigen(nodo7_4); ronda2s.setDestino(nodo8); ronda3s.setOrigen(nodo2_4); ronda3s.setDestino(nodo7_3); ronda4s.setOrigen(nodo1); ronda4s.setDestino(nodo2_5); ficticio1.setOrigen(nodo2_1); ficticio1.setDestino(nodo2_2); ficticio2.setOrigen(nodo2_2); ficticio2.setDestino(nodo2_3); ficticio3e.setOrigen(nodo2_4); ficticio3e.setDestino(nodo2_2); ficticio3s.setOrigen(nodo2_2); ficticio3s.setDestino(nodo2_4); ficticio4e.setOrigen(nodo2_5); ficticio4e.setDestino(nodo2_2); ficticio4s.setOrigen(nodo2_2); ficticio4s.setDestino(nodo2_5); ficticio5.setOrigen(nodo9_2); ficticio5.setDestino(nodo9_3); ficticio6.setOrigen(nodo9_3); ficticio6.setDestino(nodo9_4); ficticio7.setOrigen(nodo9_4); ficticio7.setDestino(nodo9_1); ficticio8.setOrigen(nodo9_1); ficticio8.setDestino(nodo9_2); ficticio9.setOrigen(nodo7_1); ficticio9.setDestino(nodo7_2); ficticio10e.setOrigen(nodo7_4); ficticio10e.setDestino(nodo7_2); ficticio10s.setOrigen(nodo7_2); ficticio10s.setDestino(nodo7_4); ficticio11.setOrigen(nodo7_2); ficticio11.setDestino(nodo7_5); ficticio12e.setOrigen(nodo7_2); ficticio12e.setDestino(nodo7_3); ficticio12s.setOrigen(nodo7_3); ficticio12s.setDestino(nodo7_2); //añadir los elementos a los nodos nodo1.addElemento(cruce1); nodo2_1.addElemento(semaforo2_1); nodo2_4.addElemento(semaforo2_4); nodo2_5.addElemento(semaforo2_5); nodo2_2.addElemento(cruce2_2); nodo2_3.addElemento(cruce2_3); nodo3.addElemento(cruce3); nodo4.addElemento(cruce4); nodo5.addElemento(cruce5); nodo6.addElemento(cruce6); nodo7_3.addElemento(semaforo7_3); nodo7_2.addElemento(cruce7_2); nodo7_4.addElemento(semaforo7_4); nodo7_1.addElemento(semaforo7_1); nodo7_5.addElemento(cruce7_5); nodo8.addElemento(cruce8); nodo9_1.addElemento(cruce9_1); nodo9_2.addElemento(cruce9_2); nodo9_3.addElemento(cruce9_3); nodo9_4.addElemento(cruce9_4); nodo10.addElemento(cruce10); nodo11.addElemento(cruce11); nodo12.addElemento(cruce12); nodo13.addElemento(cruce13); nodo14.addElemento(cruce14); //añadir elementos a la ciudad //añadir los nodos cr.addNodo(nodo1); cr.addNodo(nodo3); cr.addNodo(nodo4); cr.addNodo(nodo5); cr.addNodo(nodo6); cr.addNodo(nodo7); cr.addNodo(nodo8); cr.addNodo(nodo10); cr.addNodo(nodo11); cr.addNodo(nodo12); cr.addNodo(nodo13); cr.addNodo(nodo14); cr.addNodo(nodo2_1); cr.addNodo(nodo2_2); cr.addNodo(nodo2_3); cr.addNodo(nodo2_4); cr.addNodo(nodo2_5); cr.addNodo(nodo7_1); cr.addNodo(nodo7_2); cr.addNodo(nodo7_3); cr.addNodo(nodo7_4); cr.addNodo(nodo7_5); cr.addNodo(nodo9_1); cr.addNodo(nodo9_2); cr.addNodo(nodo9_3); cr.addNodo(nodo9_4); //añadir los arcos cr.addArco(tinte1); cr.addArco(tinte2); cr.addArco(tinte3); cr.addArco(reySanto1); cr.addArco(reySanto2); cr.addArco(reySanto3); cr.addArco(ciruela1); cr.addArco(ciruela2); cr.addArco(ciruela3); cr.addArco(alarcos1); cr.addArco(alarcos2); cr.addArco(gOrtega); cr.addArco(avdaMancha); cr.addArco(juanCaba); cr.addArco(montesa); cr.addArco(ficticio1); cr.addArco(ficticio2); cr.addArco(ficticio5);cr.addArco(ficticio6); cr.addArco(ficticio7); cr.addArco(ficticio8); cr.addArco(ficticio9); cr.addArco(ficticio11); cr.addArco(ronda1e); cr.addArco(ronda2e); cr.addArco(ronda3e); cr.addArco(ronda4e); cr.addArco(ronda1s); cr.addArco(ronda2s); cr.addArco(ronda3s); cr.addArco(ronda4s); cr.addArco(ficticio3e); cr.addArco(ficticio3s); cr.addArco(ficticio4e); cr.addArco(ficticio4s); cr.addArco(ficticio10e); cr.addArco(ficticio10s); cr.addArco(ficticio12e); cr.addArco(ficticio12s); } /********************************** METODOS DE PRUEBA ************************************/ public void testExisteCamino(){ String tituloPrueba = "testExisteCamino"; try{ assertTrue(cr.existeCamino(nodo1,nodo7_3)); assertTrue(cr.existeCamino(nodo1,nodo3)); assertTrue(cr.existeCamino(nodo3,nodo1)); assertTrue(cr.existeCamino(nodo5,nodo12)); assertTrue(cr.existeCamino(nodo14,nodo1)); assertTrue(cr.existeCamino(nodo1,nodo13)); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testNoExisteCamino(){ String tituloPrueba = "testNoExisteCamino"; try{ assertTrue(!cr.existeCamino(nodo12,nodo1)); assertTrue(!cr.existeCamino(nodo12,nodo6)); assertTrue(!cr.existeCamino(nodo1,nodo1)); assertTrue(!cr.existeCamino(nodo12,nodo13)); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testCaminoMinimo(){ String tituloPrueba = "testCaminoMinimo"; try{ Vector caminoMinimo = cr.caminoMinimo(nodo1,nodo5); assertTrue(caminoMinimo.size() == 12); assertTrue(((Nodo)caminoMinimo.elementAt(0)).equals(nodo1)); assertTrue(((Nodo)caminoMinimo.elementAt(1)).equals(nodo2_5)); assertTrue(((Nodo)caminoMinimo.elementAt(2)).equals(nodo2_2)); assertTrue(((Nodo)caminoMinimo.elementAt(3)).equals(nodo2_4)); assertTrue(((Nodo)caminoMinimo.elementAt(4)).equals(nodo7_3)); assertTrue(((Nodo)caminoMinimo.elementAt(5)).equals(nodo7_2)); assertTrue(((Nodo)caminoMinimo.elementAt(6)).equals(nodo7_4)); assertTrue(((Nodo)caminoMinimo.elementAt(7)).equals(nodo8)); assertTrue(((Nodo)caminoMinimo.elementAt(8)).equals(nodo9_3)); assertTrue(((Nodo)caminoMinimo.elementAt(9)).equals(nodo9_4)); assertTrue(((Nodo)caminoMinimo.elementAt(10)).equals(nodo6)); assertTrue(((Nodo)caminoMinimo.elementAt(11)).equals(nodo5)); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testOperacionesDeTiempoSemaforos(){ //funcionamiento de los semaforos String tituloPrueba = "testOperacionesDeTiempoSemaforos"; double tiempo = 1.0; boolean terminar = false; //para la prueba 2_1 verde, 2_4 rojo, 2_5 rojo semaforo2_1.setEstado("verde"); semaforo2_4.setEstado("rojo"); semaforo2_5.setEstado("rojo"); try{ while(!terminar){ nodo2_1.operacionesDeTiempo(); nodo2_4.operacionesDeTiempo(); nodo2_5.operacionesDeTiempo(); if(tiempo == 1.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("verde")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("rojo")); }else if(tiempo == 6.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("ambar")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("rojo")); }else if(tiempo == 7.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("verde")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("verde")); }else if(tiempo == 12.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("ambar")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("ambar")); }else if(tiempo == 13.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("verde")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("rojo")); }else if(tiempo == 14.0){ terminar = true; } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testOperacionesDeTiempoSemaforos2(){ //en nodos que no tienen imagenes.semaforo String tituloPrueba = "testOperacionesDeTiempoSemaforos2"; double tiempo = 0.0; boolean terminar = false; try{ while(!terminar){ nodo1.operacionesDeTiempo(); if(tiempo == 0.0){ assertTrue(((Semaforo)nodo1.getElemento()).getEstado().equals("verde")); fail("Deberia haberse lanzado una excepcion"); } } }catch(Exception e){ System.err.println("Capturada excepción en "+tituloPrueba+": "+e.getMessage()); } } public void testOperacionesDeTiempoSemaforos3(){ //funcionamiento de los semaforos con retraso de uno String tituloPrueba = "testOperacionesDeTiempoSemaforos3"; double tiempo = 1.0; boolean terminar = false; semaforo2_1 = new Semaforo("semaforo2_1","verde",5.0,1.0,10.0,1.0); semaforo2_4 = new Semaforo("semaforo2_4","rojo",5.0,1.0,10.0,5.0); semaforo2_5 = new Semaforo("semaforo2_5","rojo",5.0,1.0,10.0,1.0); nodo2_1.addElemento(semaforo2_1); nodo2_4.addElemento(semaforo2_4); nodo2_5.addElemento(semaforo2_5); try{ while(!terminar){ nodo2_1.operacionesDeTiempo(); nodo2_4.operacionesDeTiempo(); nodo2_5.operacionesDeTiempo(); if(tiempo == 1.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("verde")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("rojo")); }else if(tiempo == 6.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("ambar")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("rojo")); }else if(tiempo == 7.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("verde")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("rojo")); }else if(tiempo == 12.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("ambar")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("rojo")); }else if(tiempo == 13.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("verde")); }else if(tiempo == 17.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("verde")); }else if(tiempo == 18.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("ambar")); }else if(tiempo == 19.0){ terminar = true; } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testOperacionesDeTiempoSemaforos4(){ //funcionamiento de los semaforos con retraso en uno String tituloPrueba = "testOperacionesDeTiempoSemaforos4"; double tiempo = 1.0; boolean terminar = false; semaforo2_1 = new Semaforo("semaforo2_1","verde",20.0,1.0,40.0,1.0); semaforo2_4 = new Semaforo("semaforo2_4","rojo",20.0,1.0,40.0,20.0); semaforo2_5 = new Semaforo("semaforo2_5","rojo",20.0,1.0,40.0,1.0); nodo2_1.addElemento(semaforo2_1); nodo2_4.addElemento(semaforo2_4); nodo2_5.addElemento(semaforo2_5); try{ while(!terminar){ nodo2_1.operacionesDeTiempo(); nodo2_4.operacionesDeTiempo(); nodo2_5.operacionesDeTiempo(); if(tiempo == 1.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("verde")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("rojo")); }else if(tiempo == 21.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("ambar")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("rojo")); }else if(tiempo == 22.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("verde")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("rojo")); }else if(tiempo == 42.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("ambar")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("rojo")); }else if(tiempo == 43.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("verde")); }else if(tiempo == 63.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("ambar")); }else if(tiempo == 64.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("verde")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("rojo")); }else if(tiempo == 65.0){ terminar = true; } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testOperacionesDeTiempoSemaforos5(){ //funcionamiento de los semaforos con retraso en uno String tituloPrueba = "testOperacionesDeTiempoSemaforos5"; double tiempo = 1.0; boolean terminar = false; semaforo2_1 = new Semaforo("semaforo2_1","verde",20.0,3.0,40.0,1.0); semaforo2_4 = new Semaforo("semaforo2_4","rojo",20.0,3.0,40.0,20.0); semaforo2_5 = new Semaforo("semaforo2_5","rojo",20.0,3.0,40.0,1.0); nodo2_1.addElemento(semaforo2_1); nodo2_4.addElemento(semaforo2_4); nodo2_5.addElemento(semaforo2_5); try{ while(!terminar){ nodo2_1.operacionesDeTiempo(); nodo2_4.operacionesDeTiempo(); nodo2_5.operacionesDeTiempo(); if(tiempo == 1.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("verde")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("rojo")); }else if(tiempo == 23.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("ambar")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("rojo")); }else if(tiempo == 24.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("verde")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("rojo")); }else if(tiempo == 45.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("ambar")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("rojo")); }else if(tiempo == 47.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("verde")); }else if(tiempo == 67.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("ambar")); }else if(tiempo == 68.0){ assertTrue(((Semaforo)nodo2_1.getElemento()).getEstado().equals("verde")); assertTrue(((Semaforo)nodo2_4.getElemento()).getEstado().equals("rojo")); assertTrue(((Semaforo)nodo2_5.getElemento()).getEstado().equals("rojo")); }else if(tiempo == 65.0){ terminar = true; } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoCruce(){ //un coche por varios cruces con preferencia String tituloPrueba = "testRecorridoVehiculoCruce"; double tiempo = 1.0; Posicion posicion; try{ coche = new Vehiculo("coche",36.0,nodo6,nodo3,cr,0); cr.addVehiculo(coche); while(!coche.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); if(tiempo == 1.0){ comprobarPosicion(posicion,"nodo6","tinte3",2.5); }else if(tiempo == 2.0){ comprobarPosicion(posicion,"nodo6","tinte3",7.5); }else if(tiempo == 3.0){ comprobarPosicion(posicion,"nodo6","tinte3",15.0); }else if(tiempo == 4.0){ comprobarPosicion(posicion,"nodo6","tinte3",25.0); }else if(tiempo == 6.0){ comprobarPosicion(posicion,"nodo5","tinte3",45.0); }else if(tiempo == 11.0){ comprobarPosicion(posicion,"nodo4","ciruela2",50.0); }else if(tiempo == 17.0){ comprobarPosicion(posicion,"nodo3","juanCaba",60.0); } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } salida.crearLog(tituloPrueba,fecha); salida.crearInformeDeTiempos(tituloPrueba,cr,fecha); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoCruce2(){ //2 coches por los mismos cruces, uno mas rapido que otro String tituloPrueba = "testRecorridoVehiculoCruce2"; double tiempo = 1.0; double retraso = 3.0; //tres segundos de retraso entre coche y coche double diferencia = retraso - tiempo; Posicion posicion = new Posicion(); Posicion posicion2 = new Posicion(); try{ coche = new Vehiculo("coche",36.0,nodo6,nodo3,cr,0); coche2 = new Vehiculo("coche2",54.0,nodo6,nodo3,cr,(int)retraso); cr.addVehiculo(coche); cr.addVehiculo(coche2); while(!coche.getEstado().equals("eliminado") || !coche2.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); if(!coche.getEstado().equals("eliminado")){ coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); } if(!coche2.getEstado().equals("eliminado") && tiempo >= coche2.getRetraso()){ coche2.actualizarPosicion(tiempo - diferencia); posicion2 = coche2.determinarPosicion(); coche2.showPosicion(tiempo); } if(tiempo == 1.0){ comprobarPosicion(posicion,"nodo6","tinte3",2.5); }else if(tiempo == 3.0){ comprobarPosicion(posicion,"nodo6","tinte3",15.0); comprobarPosicion(posicion2,"nodo6","tinte3",2.5); }else if(tiempo == 6.0){ comprobarPosicion(posicion,"nodo5","tinte3",45.0); comprobarPosicion(posicion2,"nodo6","tinte3",25.0); }else if(tiempo == 7.0){ comprobarPosicion(posicion,"nodo5","ciruela2",10.0); comprobarPosicion(posicion2,"nodo6","tinte3",37.5); }else if(tiempo == 9.0){ comprobarPosicion(posicion,"nodo5","ciruela2",30.0); comprobarPosicion(posicion2,"nodo5","ciruela2",15.0); }else if(tiempo == 11.0){ comprobarPosicion(posicion,"nodo4","ciruela2",50.0); comprobarPosicion(posicion2,"nodo5","ciruela2",44.0); }else if(tiempo == 13.0){ comprobarPosicion(posicion,"nodo4","juanCaba",20.0); comprobarPosicion(posicion2,"nodo4","juanCaba",14.0);//velocidad inicial y separacionTotal }else if(tiempo == 14.0){ comprobarPosicion(posicion,"nodo4","juanCaba",30.0); comprobarPosicion(posicion2,"nodo4","juanCaba",24.0);//separacion }else if(tiempo == 16.0){ comprobarPosicion(posicion,"nodo4","juanCaba",50.0); comprobarPosicion(posicion2,"nodo4","juanCaba",44.0);//velocidad reducida }else if(tiempo == 17.0){ comprobarPosicion(posicion,"nodo3"); }else if(tiempo == 18.0){ comprobarPosicion(posicion2,"nodo3"); } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } salida.crearLog(tituloPrueba,fecha); salida.crearInformeDeTiempos(tituloPrueba,cr,fecha); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoCruce3(){ //6 coches por los mismos cruces, unos mas rapidos que otros String tituloPrueba = "testRecorridoVehiculoCruce3"; double tiempo = 1.0; double retraso = 2.0; double diferencia = retraso - tiempo; Posicion posicion = new Posicion(); Posicion posicion2 = new Posicion(); Posicion posicion3 = new Posicion(); Posicion posicion4 = new Posicion(); Posicion posicion5 = new Posicion(); Posicion posicion6 = new Posicion(); Vehiculo coche3, coche4, coche5, coche6; try{ coche = new Vehiculo("coche",9.0,nodo9_4,nodo5,cr,0); coche2 = new Vehiculo("coche2",9.0,nodo9_4,nodo5,cr,(int)retraso); coche3 = new Vehiculo("coche3",9.0,nodo9_4,nodo5,cr,(int)retraso+1); coche4 = new Vehiculo("coche4",9.0,nodo9_4,nodo5,cr,(int)retraso+2); coche5 = new Vehiculo("coche5",9.0,nodo9_4,nodo5,cr,(int)retraso+3); coche6 = new Vehiculo("coche6",9.0,nodo9_4,nodo5,cr,(int)retraso+4); cr.addVehiculo(coche); cr.addVehiculo(coche2); cr.addVehiculo(coche3); cr.addVehiculo(coche4); cr.addVehiculo(coche5); cr.addVehiculo(coche6); while(!coche.getEstado().equals("eliminado") || !coche2.getEstado().equals("eliminado") || !coche3.getEstado().equals("eliminado") || !coche4.getEstado().equals("eliminado") || !coche5.getEstado().equals("eliminado") || !coche6.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); if(!coche.getEstado().equals("eliminado")){ coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); } if(!coche2.getEstado().equals("eliminado") && tiempo >= coche2.getRetraso()){ coche2.actualizarPosicion(tiempo - diferencia); posicion2 = coche2.determinarPosicion(); coche2.showPosicion(tiempo); } if(!coche3.getEstado().equals("eliminado") && tiempo >= coche3.getRetraso()){ coche3.actualizarPosicion(tiempo - diferencia - 1); posicion3 = coche3.determinarPosicion(); coche3.showPosicion(tiempo); } if(!coche4.getEstado().equals("eliminado") && tiempo >= coche4.getRetraso()){ coche4.actualizarPosicion(tiempo - diferencia - 2); posicion4 = coche4.determinarPosicion(); coche4.showPosicion(tiempo); } if(!coche5.getEstado().equals("eliminado") && tiempo >= coche5.getRetraso()){ coche5.actualizarPosicion(tiempo - diferencia - 3); posicion5 = coche5.determinarPosicion(); coche5.showPosicion(tiempo); } if(!coche6.getEstado().equals("eliminado") && tiempo >= coche6.getRetraso()){ coche6.actualizarPosicion(tiempo - diferencia - 4); posicion6 = coche6.determinarPosicion(); coche6.showPosicion(tiempo); } if(tiempo == 6.0){ comprobarPosicion(posicion,"nodo9_4","tinte2",15.0); comprobarPosicion(posicion2,"nodo9_4","tinte2",9.0); //los demas coches aun no se han lanzado }else if(tiempo == 9.0){//coche4 ya puede entrar ya que salio coche comprobarPosicion(posicion,"nodo6","tinte3",2.5); comprobarPosicion(posicion2,"nodo9_4","tinte2",16.5); comprobarPosicion(posicion3,"nodo9_4","tinte2",10.5); comprobarPosicion(posicion4,"nodo9_4","tinte2",2.5); }else if(tiempo == 13.0){//coche6 aun no tiene espacio para entrar al imagenes.arco comprobarPosicion(posicion,"nodo6","tinte3",12.5); comprobarPosicion(posicion2,"nodo6","tinte3",5.0); comprobarPosicion(posicion3,"nodo9_4","tinte2",19.0); comprobarPosicion(posicion4,"nodo9_4","tinte2",12.5); comprobarPosicion(posicion5,"nodo9_4","tinte2",5.0); }else if(tiempo == 14.0){//coche6 ya tiene espacio para entrar al imagenes.arco comprobarPosicion(posicion,"nodo6","tinte3",15.0); comprobarPosicion(posicion2,"nodo6","tinte3",7.5); comprobarPosicion(posicion3,"nodo6","tinte2",20.0); comprobarPosicion(posicion4,"nodo9_4","tinte2",14.0); //podria entrar pero el imagenes.arco esta lleno de coches, solo caben 3 comprobarPosicion(posicion5,"nodo9_4","tinte2",7.5); comprobarPosicion(posicion6,"nodo9_4","tinte2",0.0); }else if(tiempo == 26.0){//coche llega a su destino comprobarPosicion(posicion,"nodo5","tinte3",45.0); //fin comprobarPosicion(posicion2,"nodo6","tinte3",37.5); comprobarPosicion(posicion3,"nodo6","tinte3",30.0); comprobarPosicion(posicion4,"nodo6","tinte3",22.5); comprobarPosicion(posicion5,"nodo6","tinte3",15.0); comprobarPosicion(posicion6,"nodo6","tinte3",7.5); }else if(tiempo == 29.0){ comprobarPosicion(posicion2,"nodo5"); }else if(tiempo == 32.0){ comprobarPosicion(posicion3,"nodo5"); }else if(tiempo == 35.0){ comprobarPosicion(posicion4,"nodo5"); }else if(tiempo == 38.0){ comprobarPosicion(posicion5,"nodo5"); }else if(tiempo == 41.0){ comprobarPosicion(posicion6,"nodo5"); } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } salida.crearLog(tituloPrueba,fecha); salida.crearInformeDeTiempos(tituloPrueba,cr,fecha); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoCruce4(){ //varios coches por los mismos cruces, uno mas rapido que otro, con carril doble String tituloPrueba = "testRecorridoVehiculoCruce4"; double tiempo = 1.0; double retraso = 3.0; //tres segundos de retraso entre coche y coche double diferencia = retraso - tiempo; Posicion posicion = new Posicion(); Posicion posicion2 = new Posicion(); try{ coche = new Vehiculo("coche",36.0,nodo14,nodo7_5,cr,0); coche2 = new Vehiculo("coche2",54.0,nodo14,nodo7_5,cr,(int)retraso); cr.addVehiculo(coche); cr.addVehiculo(coche2); while(!coche.getEstado().equals("eliminado") || !coche2.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); if(!coche.getEstado().equals("eliminado")){ coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); } if(!coche2.getEstado().equals("eliminado") && tiempo >= coche2.getRetraso()){ coche2.actualizarPosicion(tiempo - diferencia); posicion2 = coche2.determinarPosicion(); coche2.showPosicion(tiempo); } if(tiempo == 3.0){ comprobarPosicion(posicion,"nodo14","ronda1e",15.0); comprobarPosicion(posicion2,"nodo14","ronda1e",2.5); }else if(tiempo == 5.0){ comprobarPosicion(posicion,"nodo8","ronda1e",30.0); comprobarPosicion(posicion2,"nodo14","ronda1e",15.0); }else if(tiempo == 10.0){ comprobarPosicion(posicion,"nodo8","ronda2e",50.0); comprobarPosicion(posicion2,"nodo8","ronda2eb",45.0); //cambia de carril }else if(tiempo == 12.0){ comprobarPosicion(posicion,"nodo8","ronda2e",70.0); comprobarPosicion(posicion2,"nodo7_4","ronda2eb",75.0); }else if(tiempo == 13.0){ comprobarPosicion(posicion,"nodo7_4","ronda2e",75.0);//semaforo en rojo comprobarPosicion(posicion2,"nodo7_4","ronda2eb",75.0);//semaforo en rojo }else if(tiempo == 19.0){ comprobarPosicion(posicion,"nodo7_4","ronda2e",75.0); comprobarPosicion(posicion2,"nodo7_4","ficticio10e",2.5);//sale primero }else if(tiempo == 20.0){ comprobarPosicion(posicion,"nodo7_4","ronda2e",75.0); //aun no puede salir comprobarPosicion(posicion2,"nodo7_2","ficticio10e",6.0); }else if(tiempo == 21.0){ comprobarPosicion(posicion,"nodo7_4","ficticio10eb",2.5);//sale comprobarPosicion(posicion2,"nodo7_5","ficticio11",6.0); //fin }else if(tiempo == 22.0){ comprobarPosicion(posicion,"nodo7_2","ficticio10eb",6.0);//fin } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } salida.crearLog(tituloPrueba,fecha); salida.crearInformeDeTiempos(tituloPrueba,cr,fecha); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoCruce5(){ //dos coches en nodos en los que hay preferencia y stop String tituloPrueba = "testRecorridoVehiculoCruce5"; double tiempo = 1.0; double retraso = 3.0; //tres segundos de retraso entre coche y coche double diferencia = retraso - tiempo; Posicion posicion = new Posicion(); Posicion posicion2 = new Posicion(); try{ coche = new Vehiculo("coche",36.0,nodo10,nodo6,cr,0); coche2 = new Vehiculo("coche2",36.0,nodo13,nodo6,cr,(int)retraso); cr.addVehiculo(coche); cr.addVehiculo(coche2); while(!coche.getEstado().equals("eliminado") || !coche2.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); if(!coche2.getEstado().equals("eliminado") && tiempo >= coche2.getRetraso()){ coche2.actualizarPosicion(tiempo - diferencia); posicion2 = coche2.determinarPosicion(); coche2.showPosicion(tiempo); } if(!coche.getEstado().equals("eliminado")){ coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); } if(tiempo == 10.0){ comprobarPosicion(posicion2,"nodo9_2","tinte1",60.0); //llega primero, pero tiene stop comprobarPosicion(posicion,"nodo9_2","ficticio8",15.0); //llega segundo, tiene preferencia }else if(tiempo == 11.0){ comprobarPosicion(posicion2,"nodo9_2","tinte1",60.0); //espera comprobarPosicion(posicion,"nodo9_2","ficticio5",10.0); //al tener preferencia sale }else if(tiempo == 12.0){ comprobarPosicion(posicion2,"nodo9_2","ficticio5",2.5); comprobarPosicion(posicion,"nodo9_3","ficticio5",15.0); }else if(tiempo == 17.0){ comprobarPosicion(posicion,"nodo6"); //fin }else if(tiempo == 18.0){ comprobarPosicion(posicion2,"nodo6"); //fin } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } salida.crearLog(tituloPrueba,fecha); salida.crearInformeDeTiempos(tituloPrueba,cr,fecha); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoCruce6(){ //un coche por varios cruces alguno sin preferencia String tituloPrueba = "testRecorridoVehiculoCruce6"; double tiempo = 1.0; Posicion posicion; Vector colaEntradaNodo = new Vector(); try{ coche = new Vehiculo("coche",36.0,nodo6,nodo3,cr,0); coche2 = new Vehiculo("coche2",54.0,nodo6,nodo3,cr,0); cr.addVehiculo(coche); cr.addVehiculo(coche2); while(!coche.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); if(tiempo == 1.0){ comprobarPosicion(posicion,"nodo6","tinte3",2.5); }else if(tiempo == 6.0){ comprobarPosicion(posicion,"nodo5","tinte3",45.0); }else if(tiempo == 11.0){ comprobarPosicion(posicion,"nodo4","ciruela2",50.0); //colaEntradaNodo = nodo4.getColaEntrada(); //colaEntradaNodo.add(0,coche2); nodo4.setOcupado(true,coche2,ciruela2); //se ocupa el nodo 4, el coche tendra que esperar }else if(tiempo == 12.0){ comprobarPosicion(posicion,"nodo4","ciruela2",50.0); //se queda esperando ya que no puede entrar }else if(tiempo == 16.0){ //colaEntradaNodo.removeElementAt(0); nodo4.setOcupado(false,coche2,ciruela2); //el nodo se queda desocupado }else if(tiempo == 17.0){ comprobarPosicion(posicion,"nodo4","juanCaba",2.5); }else if(tiempo == 24.0){ comprobarPosicion(posicion,"nodo3"); } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } salida.crearLog(tituloPrueba,fecha); salida.crearInformeDeTiempos(tituloPrueba,cr,fecha); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoCruce7(){ //2 coches circulando por arcos de sentidos contrarios String tituloPrueba = "testRecorridoVehiculoCruce7"; double tiempo = 1.0; double retraso = 9.0; //tres segundos de retraso entre coche y coche double diferencia = retraso - tiempo; Posicion posicion = new Posicion(); Posicion posicion2 = new Posicion(); try{ coche = new Vehiculo("coche",54.0,nodo7_4,nodo14,cr,(int)retraso-2); coche2 = new Vehiculo("coche2",36.0,nodo14,nodo7_4,cr,(int)retraso); cr.addVehiculo(coche); cr.addVehiculo(coche2); while(!coche.getEstado().equals("eliminado") || !coche2.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); if(!coche.getEstado().equals("eliminado") && tiempo >= coche.getRetraso()){ coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); } if(!coche2.getEstado().equals("eliminado") && tiempo >= coche2.getRetraso()){ coche2.actualizarPosicion(tiempo - diferencia); posicion2 = coche2.determinarPosicion(); coche2.showPosicion(tiempo); } if(tiempo == 7.0){ comprobarPosicion(posicion,"nodo7_4","ronda2s",15.0); }else if(tiempo == 13.0){ comprobarPosicion(posicion,"nodo8","ronda2s",75.0); //ocupa el nodo comprobarPosicion(posicion2,"nodo8","ronda1e",30.0); //ocupa el nodo }else if(tiempo == 14.0){ comprobarPosicion(posicion,"nodo8","ronda1s",15.0); //no tienen que esperar comprobarPosicion(posicion2,"nodo8","ronda2e",10.0); }else if(tiempo == 15.0){ comprobarPosicion(posicion,"nodo14","ronda1s",30.0); comprobarPosicion(posicion2,"nodo8","ronda2e",20.0); }else if(tiempo == 21.0){ comprobarPosicion(posicion2,"nodo7_4","ronda2e",75.0); } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } salida.crearLog(tituloPrueba,fecha); salida.crearInformeDeTiempos(tituloPrueba,cr,fecha); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoCruce8(){ //4 coches circulando por el mismo arco String tituloPrueba = "testRecorridoVehiculoCruce8"; double tiempo = 1.0; Posicion posicion = new Posicion(); Posicion posicion2 = new Posicion(); Posicion posicion3 = new Posicion(); Posicion posicion4 = new Posicion(); try{ coche = new Vehiculo("coche",36.0,nodo1,nodo2_5,cr,0); coche2 = new Vehiculo("coche2",62.0,nodo1,nodo2_5,cr,0); Vehiculo coche3 = new Vehiculo("coche",62.0,nodo1,nodo2_5,cr,0); Vehiculo coche4 = new Vehiculo("coche2",62.0,nodo1,nodo2_5,cr,0); cr.addVehiculo(coche); cr.addVehiculo(coche2); cr.addVehiculo(coche3); cr.addVehiculo(coche4); while(!coche.getEstado().equals("eliminado") || !coche2.getEstado().equals("eliminado") || !coche3.getEstado().equals("eliminado") || !coche4.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); if(!coche.getEstado().equals("eliminado") && tiempo >= coche.getRetraso()){ coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); } if(!coche2.getEstado().equals("eliminado") && tiempo >= coche2.getRetraso()){ coche2.actualizarPosicion(tiempo); posicion2 = coche2.determinarPosicion(); coche2.showPosicion(tiempo); } if(!coche3.getEstado().equals("eliminado") && tiempo >= coche3.getRetraso()){ coche3.actualizarPosicion(tiempo); posicion3 = coche3.determinarPosicion(); coche3.showPosicion(tiempo); } if(!coche4.getEstado().equals("eliminado") && tiempo >= coche4.getRetraso()){ coche4.actualizarPosicion(tiempo); posicion4 = coche4.determinarPosicion(); coche4.showPosicion(tiempo); } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } //salida.crearLog(tituloPrueba); //salida.crearInformeDeTiempos(tituloPrueba,cr); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoCruce9(){ //4 coches circulando por el mismo arco String tituloPrueba = "testRecorridoVehiculoCruce9"; double tiempo = 1.0; Posicion posicion = new Posicion(); Posicion posicion2 = new Posicion(); Posicion posicion3 = new Posicion(); Posicion posicion4 = new Posicion(); try{ coche = new Vehiculo("coche",36.0,nodo1,nodo2_5,cr,0); coche2 = new Vehiculo("coche2",45.0,nodo1,nodo2_5,cr,3); Vehiculo coche3 = new Vehiculo("coche3",36.0,nodo1,nodo2_5,cr,6); Vehiculo coche4 = new Vehiculo("coche4",50.0,nodo1,nodo2_5,cr,7); cr.addVehiculo(coche); cr.addVehiculo(coche2); cr.addVehiculo(coche3); cr.addVehiculo(coche4); while(!coche.getEstado().equals("eliminado") || !coche2.getEstado().equals("eliminado") || !coche3.getEstado().equals("eliminado") || !coche4.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); if(!coche.getEstado().equals("eliminado") && tiempo >= coche.getRetraso()){ coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); } if(!coche2.getEstado().equals("eliminado") && tiempo >= coche2.getRetraso()){ coche2.actualizarPosicion(tiempo); posicion2 = coche2.determinarPosicion(); coche2.showPosicion(tiempo); } if(!coche3.getEstado().equals("eliminado") && tiempo >= coche3.getRetraso()){ coche3.actualizarPosicion(tiempo); posicion3 = coche3.determinarPosicion(); coche3.showPosicion(tiempo); } if(!coche4.getEstado().equals("eliminado") && tiempo >= coche4.getRetraso()){ coche4.actualizarPosicion(tiempo); posicion4 = coche4.determinarPosicion(); coche4.showPosicion(tiempo); } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } //salida.crearLog(tituloPrueba); //salida.crearInformeDeTiempos(tituloPrueba,cr); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoCruce10(){ //8 coches circulando por el mismo arco String tituloPrueba = "testRecorridoVehiculoCruce10"; double tiempo = 1.0; Posicion posicion = new Posicion(); Posicion posicion2 = new Posicion(); Posicion posicion3 = new Posicion(); Posicion posicion4 = new Posicion(); Posicion posicion5 = new Posicion(); Posicion posicion6 = new Posicion(); Posicion posicion7 = new Posicion(); Posicion posicion8 = new Posicion(); try{ coche = new Vehiculo("coche",1,nodo8,nodo14,cr,0); coche2 = new Vehiculo("coche2",2,nodo8,nodo14,cr,0); Vehiculo coche3 = new Vehiculo("coche3",54,nodo8,nodo14,cr,0); Vehiculo coche4 = new Vehiculo("coche4",54,nodo8,nodo14,cr,0); Vehiculo coche5 = new Vehiculo("coche5",54,nodo8,nodo14,cr,0); Vehiculo coche6 = new Vehiculo("coche6",54,nodo8,nodo14,cr,0); Vehiculo coche7 = new Vehiculo("coche7",54,nodo8,nodo14,cr,0); Vehiculo coche8 = new Vehiculo("coche8",54,nodo8,nodo14,cr,0); cr.addVehiculo(coche); cr.addVehiculo(coche2); cr.addVehiculo(coche); cr.addVehiculo(coche2); cr.addVehiculo(coche5); cr.addVehiculo(coche7); cr.addVehiculo(coche6); cr.addVehiculo(coche8); while(!coche.getEstado().equals("eliminado") || !coche2.getEstado().equals("eliminado") || !coche3.getEstado().equals("eliminado") || !coche4.getEstado().equals("eliminado") || !coche5.getEstado().equals("eliminado") || !coche6.getEstado().equals("eliminado") || !coche7.getEstado().equals("eliminado") || !coche8.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); if(!coche.getEstado().equals("eliminado") && tiempo >= coche.getRetraso()){ coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); } if(!coche2.getEstado().equals("eliminado") && tiempo >= coche2.getRetraso()){ coche2.actualizarPosicion(tiempo); posicion2 = coche2.determinarPosicion(); coche2.showPosicion(tiempo); } if(!coche3.getEstado().equals("eliminado") && tiempo >= coche3.getRetraso()){ coche3.actualizarPosicion(tiempo); posicion3 = coche3.determinarPosicion(); coche3.showPosicion(tiempo); } if(!coche4.getEstado().equals("eliminado") && tiempo >= coche4.getRetraso()){ coche4.actualizarPosicion(tiempo); posicion4 = coche4.determinarPosicion(); coche4.showPosicion(tiempo); } if(!coche5.getEstado().equals("eliminado") && tiempo >= coche5.getRetraso()){ coche5.actualizarPosicion(tiempo); posicion5 = coche5.determinarPosicion(); coche5.showPosicion(tiempo); } if(!coche6.getEstado().equals("eliminado") && tiempo >= coche6.getRetraso()){ coche6.actualizarPosicion(tiempo); posicion6 = coche6.determinarPosicion(); coche6.showPosicion(tiempo); } if(!coche7.getEstado().equals("eliminado") && tiempo >= coche7.getRetraso()){ coche7.actualizarPosicion(tiempo); posicion7 = coche7.determinarPosicion(); coche7.showPosicion(tiempo); } if(!coche8.getEstado().equals("eliminado") && tiempo >= coche8.getRetraso()){ coche8.actualizarPosicion(tiempo); posicion8 = coche8.determinarPosicion(); coche8.showPosicion(tiempo); } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } //salida.crearLog(tituloPrueba); //salida.crearInformeDeTiempos(tituloPrueba,cr); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoCruce11(){ //2 coches circulando hacia un mismo nodo, uno preferencia, otro no String tituloPrueba = "testRecorridoVehiculoCruce11"; double tiempo = 1.0; Posicion posicion = new Posicion(); Posicion posicion2 = new Posicion(); try{ coche = new Vehiculo("coche",54.0,nodo3,nodo10,cr,0); coche2 = new Vehiculo("coche2",36.0,nodo5,nodo10,cr,2); cr.addVehiculo(coche); cr.addVehiculo(coche2); while(!coche.getEstado().equals("eliminado") || !coche2.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); if(!coche.getEstado().equals("eliminado") && tiempo >= coche.getRetraso()){ coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); } if(!coche2.getEstado().equals("eliminado") && tiempo >= coche2.getRetraso()){ coche2.actualizarPosicion(tiempo); posicion2 = coche2.determinarPosicion(); coche2.showPosicion(tiempo); } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } salida.crearLog(tituloPrueba,fecha); salida.crearInformeDeTiempos(tituloPrueba,cr,fecha); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoCruce12(){ //llenar un arco de coches String tituloPrueba = "testRecorridoVehiculoCruce12"; double tiempo = 1.0; Posicion posicion = new Posicion(); Posicion posicion2 = new Posicion(); Posicion posicion3 = new Posicion(); Posicion posicion4 = new Posicion(); try{ coche = new Vehiculo("coche",1,nodo9_4,nodo6,cr,0); coche2 = new Vehiculo("coche2",1,nodo9_4,nodo6,cr,0); Vehiculo coche3 = new Vehiculo("coche3",1,nodo9_4,nodo6,cr,0); Vehiculo coche4 = new Vehiculo("coche4",1,nodo9_4,nodo6,cr,0); cr.addVehiculo(coche); cr.addVehiculo(coche2); while(!coche.getEstado().equals("eliminado") || !coche2.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); if(!coche.getEstado().equals("eliminado") && tiempo >= coche.getRetraso()){ coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); } if(!coche2.getEstado().equals("eliminado") && tiempo >= coche2.getRetraso()){ coche2.actualizarPosicion(tiempo); posicion2 = coche2.determinarPosicion(); coche2.showPosicion(tiempo); } if(!coche3.getEstado().equals("eliminado") && tiempo >= coche3.getRetraso()){ coche3.actualizarPosicion(tiempo); posicion3 = coche3.determinarPosicion(); coche3.showPosicion(tiempo); } if(!coche4.getEstado().equals("eliminado") && tiempo >= coche4.getRetraso()){ coche4.actualizarPosicion(tiempo); posicion4 = coche4.determinarPosicion(); coche4.showPosicion(tiempo); } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } salida.crearLog(tituloPrueba,fecha); salida.crearInformeDeTiempos(tituloPrueba,cr,fecha); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoCruce13(){ //un coche pasa al segundo carril y se encuentra otro q va mas lento q el String tituloPrueba = "testRecorridoVehiculoCruce13"; double tiempo = 1.0; Posicion posicion = new Posicion(); Posicion posicion2 = new Posicion(); Posicion posicion3 = new Posicion(); Posicion posicion4 = new Posicion(); try{ coche = new Vehiculo("coche",1,nodo1,nodo2_5,cr,0); coche2 = new Vehiculo("coche2",3,nodo1,nodo2_5,cr,0); Vehiculo coche3 = new Vehiculo("coche3",36,nodo1,nodo2_5,cr,0); cr.addVehiculo(coche); cr.addVehiculo(coche2); cr.addVehiculo(coche3); while(!coche.getEstado().equals("eliminado") || !coche2.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); if(!coche.getEstado().equals("eliminado") && tiempo >= coche.getRetraso()){ coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); } if(!coche2.getEstado().equals("eliminado") && tiempo >= coche2.getRetraso()){ coche2.actualizarPosicion(tiempo); posicion2 = coche2.determinarPosicion(); coche2.showPosicion(tiempo); } if(!coche3.getEstado().equals("eliminado") && tiempo >= coche3.getRetraso()){ coche3.actualizarPosicion(tiempo); posicion3 = coche3.determinarPosicion(); coche3.showPosicion(tiempo); } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } salida.crearLog(tituloPrueba,fecha); salida.crearInformeDeTiempos(tituloPrueba,cr,fecha); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoSemaforo1(){ //un coche por varios semaforos String tituloPrueba = "testRecorridoVehiculoSemaforo1"; double tiempo = 1.0; Posicion posicion; try{ coche = new Vehiculo("coche",36.0,nodo1,nodo8,cr,0); cr.addVehiculo(coche); while(!coche.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); if(tiempo == 17.0){ comprobarPosicion(posicion,"nodo2_5","ronda4s",150.0); //semaforo en verde }else if(tiempo == 18.0){ comprobarPosicion(posicion,"nodo2_5","ronda4s",150.0); //semaforo en ambar }else if(tiempo == 24.0){ comprobarPosicion(posicion,"nodo2_5","ronda4s",150.0); //semaforo en rojo }else if(tiempo == 25.0){ comprobarPosicion(posicion,"nodo2_5","ficticio4e",2.5); //semaforo en verde }else if(tiempo == 58.0){ comprobarPosicion(posicion,"nodo7_2","ficticio12s",6.0); //semaforo en verde }else if(tiempo == 59.0){ comprobarPosicion(posicion,"nodo7_4","ficticio10s",6.0); //semaforo en verde }else if(tiempo == 60.0){ comprobarPosicion(posicion,"nodo7_4","ficticio10s",6.0); //semaforo en ambar }else if(tiempo == 75.0){ comprobarPosicion(posicion,"nodo8"); } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } salida.crearLog(tituloPrueba,fecha); salida.crearInformeDeTiempos(tituloPrueba,cr,fecha); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoSemaforo2(){ //dos coches a distintas velocidades por varios semaforos String tituloPrueba = "testRecorridoVehiculoSemaforo2"; double tiempo = 1.0; double retraso = 6.0; double diferencia = retraso - tiempo; Posicion posicion = new Posicion(); Posicion posicion2 = new Posicion(); try{ coche = new Vehiculo("coche",36.0,nodo1,nodo8,cr,(int)retraso-3); coche2 = new Vehiculo("coche2",54.0,nodo1,nodo8,cr,(int)retraso); cr.addVehiculo(coche); while(!coche.getEstado().equals("eliminado") || !coche2.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); if(!coche.getEstado().equals("eliminado") && tiempo >= coche.getRetraso()){ coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); } if(!coche2.getEstado().equals("eliminado") && tiempo >= coche2.getRetraso()){ coche2.actualizarPosicion(tiempo - diferencia); posicion2 = coche2.determinarPosicion(); coche2.showPosicion(tiempo); } if(tiempo == 15.0){ comprobarPosicion(posicion,"nodo1","ronda4s",115.0); comprobarPosicion(posicion2,"nodo1","ronda4sb",112.5); }else if(tiempo == 18.0){ comprobarPosicion(posicion,"nodo1","ronda4s",145.0); comprobarPosicion(posicion2,"nodo2_5","ronda4sb",150.0); }else if(tiempo == 19.0){ comprobarPosicion(posicion,"nodo2_5","ronda4s",150.0);//rojo comprobarPosicion(posicion2,"nodo2_5","ronda4sb",150.0);//rojo }else if(tiempo == 26.0){ comprobarPosicion(posicion,"nodo2_5","ronda4s",150.0); comprobarPosicion(posicion2,"nodo2_2","ficticio4e",6.0); }else if(tiempo == 28.0){ comprobarPosicion(posicion,"nodo2_2","ficticio4eb",6.0); comprobarPosicion(posicion2,"nodo2_4","ronda3s",10.0);//verde }else if(tiempo == 30.0){ comprobarPosicion(posicion,"nodo2_4","ficticio3s",6.0);//ambar comprobarPosicion(posicion2,"nodo2_4","ronda3s",37.5); }else if(tiempo == 37.0){ comprobarPosicion(posicion,"nodo2_4","ronda3s",2.5); //verde comprobarPosicion(posicion2,"nodo2_4","ronda3s",142.5); }else if(tiempo == 48.0){ comprobarPosicion(posicion,"nodo2_4","ronda3s",105.0); comprobarPosicion(posicion2,"nodo7_3","ronda3s",300.0); }else if(tiempo == 49.0){ comprobarPosicion(posicion,"nodo2_4","ronda3s",115.0); comprobarPosicion(posicion2,"nodo7_3","ronda3s",300.0); //rojo }else if(tiempo == 55.0){ comprobarPosicion(posicion,"nodo2_4","ronda3s",175.0); comprobarPosicion(posicion2,"nodo7_3","ficticio12s",2.5); //verde }else if(tiempo == 58.0){ comprobarPosicion(posicion,"nodo2_4","ronda3s",205.0); comprobarPosicion(posicion2,"nodo7_4","ronda2s",10.0); //verde }else if(tiempo == 63.0){ comprobarPosicion(posicion2,"nodo8"); }else if(tiempo == 78.0){ comprobarPosicion(posicion,"nodo8"); } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } salida.crearLog(tituloPrueba,fecha); salida.crearInformeDeTiempos(tituloPrueba,cr,fecha); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoSemaforo3(){ //muchos coches esperando en un semaforo para llenar arcos con coches esperando String tituloPrueba = "testRecorridoVehiculoSemaforo3"; double tiempo = 1.0; double retraso = 2.0; double diferencia = retraso - tiempo; Posicion posicion = new Posicion(); Posicion posicion2 = new Posicion(); Posicion posicion3 = new Posicion(); Posicion posicion4 = new Posicion(); Posicion posicion5 = new Posicion(); Posicion posicion6 = new Posicion(); Posicion posicion7 = new Posicion(); Posicion posicion8 = new Posicion(); Posicion posicion9 = new Posicion(); Posicion posicion10 = new Posicion(); Posicion posicion11 = new Posicion(); Posicion posicion12 = new Posicion(); Posicion posicion13 = new Posicion(); Posicion posicion14 = new Posicion(); Posicion posicion15 = new Posicion(); Posicion posicion16 = new Posicion(); Posicion posicion17 = new Posicion(); Posicion posicion18 = new Posicion(); Posicion posicion19 = new Posicion(); Posicion posicion20 = new Posicion(); Vehiculo coche3, coche4, coche5, coche6, coche7, coche8, coche9, coche10, coche11, coche12, coche13, coche14, coche15, coche16, coche17, coche18, coche19, coche20; try{ coche = new Vehiculo("coche",36.0,nodo9_4,nodo7_2,cr,0); coche2 = new Vehiculo("coche2",54.0,nodo9_4,nodo7_2,cr,(int)retraso); coche3 = new Vehiculo("coche3",54.0,nodo9_4,nodo7_2,cr,(int)retraso+1); coche4 = new Vehiculo("coche4",36.0,nodo9_4,nodo7_2,cr,(int)retraso+2); coche5 = new Vehiculo("coche5",36.0,nodo9_4,nodo7_2,cr,(int)retraso+3); coche6 = new Vehiculo("coche6",54.0,nodo9_4,nodo7_2,cr,(int)retraso+4); coche7 = new Vehiculo("coche7",54.0,nodo9_4,nodo7_2,cr,(int)retraso+5); coche8 = new Vehiculo("coche8",36.0,nodo9_4,nodo7_2,cr,(int)retraso+6); coche9 = new Vehiculo("coche9",36.0,nodo9_4,nodo7_2,cr,(int)retraso+7); coche10 = new Vehiculo("coche10",54.0,nodo9_4,nodo7_2,cr,(int)retraso+8); coche11 = new Vehiculo("coche11",54.0,nodo9_4,nodo7_2,cr,(int)retraso+9); coche12 = new Vehiculo("coche12",36.0,nodo9_4,nodo7_2,cr,(int)retraso+10); coche13 = new Vehiculo("coche13",36.0,nodo9_4,nodo7_2,cr,(int)retraso+11); coche14 = new Vehiculo("coche14",54.0,nodo9_4,nodo7_2,cr,(int)retraso+12); coche15 = new Vehiculo("coche15",54.0,nodo9_4,nodo7_2,cr,(int)retraso+13); coche16 = new Vehiculo("coche16",36.0,nodo9_4,nodo7_2,cr,(int)retraso+14); coche17 = new Vehiculo("coche17",36.0,nodo9_4,nodo7_2,cr,(int)retraso+15); coche18 = new Vehiculo("coche18",54.0,nodo9_4,nodo7_2,cr,(int)retraso+16); coche19 = new Vehiculo("coche19",54.0,nodo9_4,nodo7_2,cr,(int)retraso+17); coche20 = new Vehiculo("coche20",36.0,nodo9_4,nodo7_2,cr,(int)retraso+18); cr.addVehiculo(coche); cr.addVehiculo(coche2); cr.addVehiculo(coche3); cr.addVehiculo(coche4); cr.addVehiculo(coche5); cr.addVehiculo(coche6); cr.addVehiculo(coche7); cr.addVehiculo(coche8); cr.addVehiculo(coche9); cr.addVehiculo(coche10); cr.addVehiculo(coche11); cr.addVehiculo(coche12); cr.addVehiculo(coche13); cr.addVehiculo(coche14); cr.addVehiculo(coche15); cr.addVehiculo(coche16); cr.addVehiculo(coche17); cr.addVehiculo(coche18); cr.addVehiculo(coche19); cr.addVehiculo(coche20); //para la prueba modificamos semaforo7_1 semaforo7_1.setTRojo(22); semaforo7_1.setTVerde(10); while(!coche.getEstado().equals("eliminado") || !coche2.getEstado().equals("eliminado") || !coche3.getEstado().equals("eliminado") || !coche4.getEstado().equals("eliminado") || !coche5.getEstado().equals("eliminado") || !coche6.getEstado().equals("eliminado") || !coche7.getEstado().equals("eliminado") || !coche8.getEstado().equals("eliminado") || !coche9.getEstado().equals("eliminado") || !coche10.getEstado().equals("eliminado") || !coche11.getEstado().equals("eliminado") || !coche12.getEstado().equals("eliminado") || !coche13.getEstado().equals("eliminado") || !coche14.getEstado().equals("eliminado") || !coche15.getEstado().equals("eliminado") || !coche16.getEstado().equals("eliminado") || !coche17.getEstado().equals("eliminado") || !coche18.getEstado().equals("eliminado") || !coche19.getEstado().equals("eliminado") || !coche20.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); if(!coche.getEstado().equals("eliminado")){ coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); }if(!coche2.getEstado().equals("eliminado") && tiempo >= coche2.getRetraso()){ coche2.actualizarPosicion(tiempo - diferencia); posicion2 = coche2.determinarPosicion(); coche2.showPosicion(tiempo); }if(!coche3.getEstado().equals("eliminado") && tiempo >= coche3.getRetraso()){ coche3.actualizarPosicion(tiempo - diferencia - 1); posicion3 = coche3.determinarPosicion(); coche3.showPosicion(tiempo); }if(!coche4.getEstado().equals("eliminado") && tiempo >= coche4.getRetraso()){ coche4.actualizarPosicion(tiempo - diferencia - 2); posicion4 = coche4.determinarPosicion(); coche4.showPosicion(tiempo); }if(!coche5.getEstado().equals("eliminado") && tiempo >= coche5.getRetraso()){ coche5.actualizarPosicion(tiempo - diferencia - 3); posicion5 = coche5.determinarPosicion(); coche5.showPosicion(tiempo); }if(!coche6.getEstado().equals("eliminado") && tiempo >= coche6.getRetraso()){ coche6.actualizarPosicion(tiempo - diferencia - 4); posicion6 = coche6.determinarPosicion(); coche6.showPosicion(tiempo); }if(!coche7.getEstado().equals("eliminado") && tiempo >= coche7.getRetraso()){ coche7.actualizarPosicion(tiempo - diferencia - 5); posicion7 = coche7.determinarPosicion(); coche7.showPosicion(tiempo); }if(!coche8.getEstado().equals("eliminado") && tiempo >= coche8.getRetraso()){ coche8.actualizarPosicion(tiempo - diferencia - 6); posicion8 = coche8.determinarPosicion(); coche8.showPosicion(tiempo); }if(!coche9.getEstado().equals("eliminado") && tiempo >= coche9.getRetraso()){ coche9.actualizarPosicion(tiempo - diferencia - 7); posicion9 = coche9.determinarPosicion(); coche9.showPosicion(tiempo); }if(!coche10.getEstado().equals("eliminado") && tiempo >= coche10.getRetraso()){ coche10.actualizarPosicion(tiempo - diferencia - 8); posicion10 = coche10.determinarPosicion(); coche10.showPosicion(tiempo); }if(!coche11.getEstado().equals("eliminado") && tiempo >= coche11.getRetraso()){ coche11.actualizarPosicion(tiempo - diferencia - 9); posicion11 = coche11.determinarPosicion(); coche11.showPosicion(tiempo); }if(!coche12.getEstado().equals("eliminado") && tiempo >= coche12.getRetraso()){ coche12.actualizarPosicion(tiempo - diferencia - 10); posicion12 = coche12.determinarPosicion(); coche12.showPosicion(tiempo); }if(!coche13.getEstado().equals("eliminado") && tiempo >= coche13.getRetraso()){ coche13.actualizarPosicion(tiempo - diferencia - 11); posicion13 = coche13.determinarPosicion(); coche13.showPosicion(tiempo); }if(!coche14.getEstado().equals("eliminado") && tiempo >= coche14.getRetraso()){ coche14.actualizarPosicion(tiempo - diferencia - 12); posicion14 = coche14.determinarPosicion(); coche14.showPosicion(tiempo); }if(!coche15.getEstado().equals("eliminado") && tiempo >= coche15.getRetraso()){ coche15.actualizarPosicion(tiempo - diferencia - 13); posicion15 = coche15.determinarPosicion(); coche15.showPosicion(tiempo); }if(!coche16.getEstado().equals("eliminado") && tiempo >= coche16.getRetraso()){ coche16.actualizarPosicion(tiempo - diferencia - 14); posicion16 = coche16.determinarPosicion(); coche16.showPosicion(tiempo); }if(!coche17.getEstado().equals("eliminado") && tiempo >= coche17.getRetraso()){ coche17.actualizarPosicion(tiempo - diferencia - 15); posicion17 = coche17.determinarPosicion(); coche17.showPosicion(tiempo); }if(!coche18.getEstado().equals("eliminado") && tiempo >= coche18.getRetraso()){ coche18.actualizarPosicion(tiempo - diferencia - 16); posicion18 = coche18.determinarPosicion(); coche18.showPosicion(tiempo); }if(!coche19.getEstado().equals("eliminado") && tiempo >= coche19.getRetraso()){ coche19.actualizarPosicion(tiempo - diferencia - 17); posicion19 = coche19.determinarPosicion(); coche19.showPosicion(tiempo); }if(!coche20.getEstado().equals("eliminado") && tiempo >= coche20.getRetraso()){ coche20.actualizarPosicion(tiempo - diferencia - 18); posicion20 = coche20.determinarPosicion(); coche20.showPosicion(tiempo); } if(tiempo == 20.0){ comprobarPosicion(posicion,"nodo7_1","avdaMancha",100.0);//semaforo en rojo comprobarPosicion(posicion2,"nodo6","avdaMancha",94.0); comprobarPosicion(posicion3,"nodo6","avdaMancha",88.0); comprobarPosicion(posicion4,"nodo6","avdaMancha",82.0); comprobarPosicion(posicion5,"nodo6","avdaMancha",76.0); comprobarPosicion(posicion6,"nodo6","avdaMancha",70.0); comprobarPosicion(posicion7,"nodo6","avdaMancha",64.0); comprobarPosicion(posicion8,"nodo6","avdaMancha",58.0); comprobarPosicion(posicion9,"nodo6","avdaMancha",52.0); comprobarPosicion(posicion10,"nodo6","avdaMancha",46.0); comprobarPosicion(posicion11,"nodo6","avdaMancha",40.0); comprobarPosicion(posicion12,"nodo6","avdaMancha",20.0); comprobarPosicion(posicion13,"nodo6","tinte2",20.0); }else if(tiempo == 24.0){ comprobarPosicion(posicion,"nodo7_1","avdaMancha",100.0);//semaforo en rojo comprobarPosicion(posicion2,"nodo6","avdaMancha",94.0); comprobarPosicion(posicion3,"nodo6","avdaMancha",88.0); comprobarPosicion(posicion4,"nodo6","avdaMancha",82.0); comprobarPosicion(posicion5,"nodo6","avdaMancha",76.0); comprobarPosicion(posicion6,"nodo6","avdaMancha",70.0); comprobarPosicion(posicion7,"nodo6","avdaMancha",64.0); comprobarPosicion(posicion8,"nodo6","avdaMancha",58.0); comprobarPosicion(posicion9,"nodo6","avdaMancha",52.0); comprobarPosicion(posicion10,"nodo6","avdaMancha",46.0); comprobarPosicion(posicion11,"nodo6","avdaMancha",40.0); comprobarPosicion(posicion12,"nodo6","avdaMancha",34.0); comprobarPosicion(posicion13,"nodo6","avdaMancha",28.0); comprobarPosicion(posicion14,"nodo6","avdaMancha",22.0); comprobarPosicion(posicion15,"nodo6","avdaMancha",16.0); comprobarPosicion(posicion16,"nodo6","tinte2",20.0); comprobarPosicion(posicion17,"nodo9_4","tinte2",14.0); }else if(tiempo == 38.0){ comprobarPosicion(posicion,"nodo7_1","ficticio9",2.5);//semaforo en verde comprobarPosicion(posicion2,"nodo6","avdaMancha",96.5); comprobarPosicion(posicion3,"nodo6","avdaMancha",90.5); comprobarPosicion(posicion4,"nodo6","avdaMancha",84.5); comprobarPosicion(posicion5,"nodo6","avdaMancha",78.5); comprobarPosicion(posicion6,"nodo6","avdaMancha",72.5); comprobarPosicion(posicion7,"nodo6","avdaMancha",66.5); comprobarPosicion(posicion8,"nodo6","avdaMancha",60.5); comprobarPosicion(posicion9,"nodo6","avdaMancha",54.5); comprobarPosicion(posicion10,"nodo6","avdaMancha",48.5); comprobarPosicion(posicion12,"nodo6","avdaMancha",36.5); comprobarPosicion(posicion13,"nodo6","avdaMancha",30.5); comprobarPosicion(posicion14,"nodo6","avdaMancha",24.5); comprobarPosicion(posicion15,"nodo6","avdaMancha",18.5); comprobarPosicion(posicion16,"nodo6","avdaMancha",12.5); comprobarPosicion(posicion17,"nodo6","avdaMancha",2.5); comprobarPosicion(posicion18,"nodo9_4","tinte2",16.5); comprobarPosicion(posicion19,"nodo9_4","tinte2",10.5); comprobarPosicion(posicion20,"nodo9_4","tinte2",2.5); }else if(tiempo == 196.0){ comprobarPosicion(posicion20,"nodo7_2","ficticio9",6.0); } tiempo += 1.0; //Thread.sleep(500); //0,5 segundos } salida.crearLog(tituloPrueba,fecha); salida.crearInformeDeTiempos(tituloPrueba,cr,fecha); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoGlorieta1(){ //Dos vehiculos circulando por la glorieta, uno con preferencia String tituloPrueba = "testRecorridoVehiculoGlorieta1"; double tiempo = 1.0; double retraso = 6.0; double diferencia = retraso - tiempo; Posicion posicion = new Posicion(); Posicion posicion2 = new Posicion(); try{ coche = new Vehiculo("coche",54.0,nodo8,nodo5,cr,0); coche2 = new Vehiculo("coche2",54.0,nodo13,nodo5,cr,(int)retraso); cr.addVehiculo(coche); cr.addVehiculo(coche2); while(!coche.getEstado().equals("eliminado") || !coche2.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); if(!coche2.getEstado().equals("eliminado") && tiempo >= coche2.getRetraso()){ coche2.actualizarPosicion(tiempo - diferencia); posicion2 = coche2.determinarPosicion(); coche2.showPosicion(tiempo); } if(!coche.getEstado().equals("eliminado")){ coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); } if(tiempo == 13.0){ comprobarPosicion(posicion,"nodo8","reySanto3",150.0); comprobarPosicion(posicion2,"nodo9_3","ficticio5",15.0);//coche2 llega antes al nodo }else if(tiempo == 14.0){ comprobarPosicion(posicion,"nodo9_3","reySanto3",150.0); comprobarPosicion(posicion2,"nodo9_4","ficticio6",15.0);//coche2 va delante }else if(tiempo == 15.0){ comprobarPosicion(posicion,"nodo9_3","ficticio6",2.5); comprobarPosicion(posicion2,"nodo9_4","tinte2",15.0); }else if(tiempo == 17.0){ comprobarPosicion(posicion,"nodo9_4","ficticio6",15.0); comprobarPosicion(posicion2,"nodo6","tinte3",15.0); }else if(tiempo == 19.0){ comprobarPosicion(posicion2,"nodo5"); }else if(tiempo == 22.0){ comprobarPosicion(posicion,"nodo5"); } tiempo += 1.0; //Thread.sleep(250); //0,25 segundos } salida.crearLog(tituloPrueba,fecha); salida.crearInformeDeTiempos(tituloPrueba,cr,fecha); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoGlorieta2(){ //6 vehiculos circulando por la glorieta (por los mismos nodos con el fin de llenar los arcos y ver preferencias) String tituloPrueba = "testRecorridoVehiculoGlorieta2"; double tiempo = 1.0; double retraso = 2.0; double diferencia = retraso - tiempo; Posicion posicion = new Posicion(); Posicion posicion2 = new Posicion(); Posicion posicion3 = new Posicion(); Posicion posicion4 = new Posicion(); Posicion posicion5 = new Posicion(); Posicion posicion6 = new Posicion(); Vehiculo coche3, coche4, coche5, coche6; try{ coche = new Vehiculo("coche",9.0,nodo13,nodo9_1,cr,0); coche2 = new Vehiculo("coche2",9.0,nodo13,nodo9_1,cr,(int)retraso); coche3 = new Vehiculo("coche3",9.0,nodo13,nodo9_1,cr,(int)retraso+1); coche4 = new Vehiculo("coche4",9.0,nodo13,nodo9_1,cr,(int)retraso+2); coche5 = new Vehiculo("coche5",9.0,nodo13,nodo9_1,cr,(int)retraso+3); coche6 = new Vehiculo("coche6",9.0,nodo13,nodo9_1,cr,(int)retraso+4); cr.addVehiculo(coche); cr.addVehiculo(coche2); cr.addVehiculo(coche3); cr.addVehiculo(coche4); cr.addVehiculo(coche5); cr.addVehiculo(coche6); while(!coche.getEstado().equals("eliminado") || !coche2.getEstado().equals("eliminado") || !coche3.getEstado().equals("eliminado") || !coche4.getEstado().equals("eliminado") || !coche5.getEstado().equals("eliminado") || !coche6.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); if(!coche.getEstado().equals("eliminado")){ coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); } if(!coche2.getEstado().equals("eliminado") && tiempo >= coche2.getRetraso()){ coche2.actualizarPosicion(tiempo - diferencia); posicion2 = coche2.determinarPosicion(); coche2.showPosicion(tiempo); } if(!coche3.getEstado().equals("eliminado") && tiempo >= coche3.getRetraso()){ coche3.actualizarPosicion(tiempo - diferencia - 1); posicion3 = coche3.determinarPosicion(); coche3.showPosicion(tiempo); } if(!coche4.getEstado().equals("eliminado") && tiempo >= coche4.getRetraso()){ coche4.actualizarPosicion(tiempo - diferencia - 23); posicion4 = coche4.determinarPosicion(); coche4.showPosicion(tiempo); } if(!coche5.getEstado().equals("eliminado") && tiempo >= coche5.getRetraso()){ coche5.actualizarPosicion(tiempo - diferencia - 3); posicion5 = coche5.determinarPosicion(); coche5.showPosicion(tiempo); } if(!coche6.getEstado().equals("eliminado") && tiempo >= coche6.getRetraso()){ coche6.actualizarPosicion(tiempo - diferencia - 4); posicion6 = coche6.determinarPosicion(); coche6.showPosicion(tiempo); } if(tiempo == 24.0){ comprobarPosicion(posicion,"nodo9_2","tinte1",60.0); comprobarPosicion(posicion2,"nodo13","tinte1",54.0); comprobarPosicion(posicion3,"nodo13","tinte1",48.0); comprobarPosicion(posicion4,"nodo13","tinte1",42.0); comprobarPosicion(posicion5,"nodo13","tinte1",36.0); comprobarPosicion(posicion6,"nodo13","tinte1",30.0); }else if(tiempo == 30.0){//no hay esperas porque no coinciden el maximo de coches en el imagenes.arco comprobarPosicion(posicion,"nodo9_3","ficticio5",15.0); comprobarPosicion(posicion2,"nodo9_2","ficticio5",7.5); comprobarPosicion(posicion3,"nodo9_2","tinte1",60.0); comprobarPosicion(posicion4,"nodo13","tinte1",54.0); comprobarPosicion(posicion5,"nodo13","tinte1",48.0); comprobarPosicion(posicion6,"nodo13","tinte1",42.0); }else if(tiempo == 42.0){ comprobarPosicion(posicion,"nodo9_1","ficticio7",15.0); comprobarPosicion(posicion2,"nodo9_4","ficticio7",7.5); comprobarPosicion(posicion3,"nodo9_4","ficticio6",15.0); comprobarPosicion(posicion4,"nodo9_3","ficticio6",7.5); comprobarPosicion(posicion5,"nodo9_3","ficticio5",15.0); comprobarPosicion(posicion6,"nodo9_2","ficticio5",7.5); }else if(tiempo == 45.0){ comprobarPosicion(posicion2,"nodo9_1"); }else if(tiempo == 48.0){ comprobarPosicion(posicion3,"nodo9_1"); }else if(tiempo == 51.0){ comprobarPosicion(posicion4,"nodo9_1"); }else if(tiempo == 54.0){ comprobarPosicion(posicion5,"nodo9_1"); }else if(tiempo == 57.0){ comprobarPosicion(posicion6,"nodo9_1"); } tiempo += 1.0; //Thread.sleep(250); //0,25 segundos } salida.crearLog(tituloPrueba,fecha); salida.crearInformeDeTiempos(tituloPrueba,cr,fecha); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoGeneral(){ //10 vehiculos circulando por la ciudad //mirar las colas de entrada a los nodos, los cambios de carril String tituloPrueba = "testRecorridoVehiculoGeneral"; double tiempo = 1.0; Posicion posicion = new Posicion(); Posicion posicion2 = new Posicion(); Posicion posicion3 = new Posicion(); Posicion posicion4 = new Posicion(); Posicion posicion5 = new Posicion(); Posicion posicion6 = new Posicion(); Posicion posicion7 = new Posicion(); Posicion posicion8 = new Posicion(); Posicion posicion9 = new Posicion(); Posicion posicion10 = new Posicion(); Vehiculo coche3, coche4, coche5, coche6, coche7, coche8, coche9, coche10; try{ coche = new Vehiculo("coche",36.0,nodo1,nodo12,cr,0); coche2 = new Vehiculo("coche2",54.0,nodo1,nodo12,cr,0); coche3 = new Vehiculo("coche3",36.0,nodo5,nodo2_3,cr,0); coche4 = new Vehiculo("coche4",54.0,nodo5,nodo2_3,cr,0); coche5 = new Vehiculo("coche5",36.0,nodo8,nodo12,cr,0); coche6 = new Vehiculo("coche6",54.0,nodo8,nodo12,cr,0); coche7 = new Vehiculo("coche7",36.0,nodo13,nodo10,cr,0); coche8 = new Vehiculo("coche8",54.0,nodo13,nodo10,cr,0); coche9 = new Vehiculo("coche9",36.0,nodo8,nodo13,cr,0); coche10 = new Vehiculo("coche10",54.0,nodo8,nodo13,cr,0); cr.addVehiculo(coche); cr.addVehiculo(coche2); cr.addVehiculo(coche3); cr.addVehiculo(coche4); cr.addVehiculo(coche5); cr.addVehiculo(coche6); cr.addVehiculo(coche7); cr.addVehiculo(coche8); cr.addVehiculo(coche9); cr.addVehiculo(coche10); while(!coche.getEstado().equals("eliminado") || !coche2.getEstado().equals("eliminado") || !coche3.getEstado().equals("eliminado") || !coche4.getEstado().equals("eliminado") || !coche5.getEstado().equals("eliminado") || !coche6.getEstado().equals("eliminado") || !coche7.getEstado().equals("eliminado") || !coche8.getEstado().equals("eliminado") || !coche9.getEstado().equals("eliminado") || !coche10.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); if(!coche.getEstado().equals("eliminado")){ coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); }if(!coche2.getEstado().equals("eliminado")){ coche2.actualizarPosicion(tiempo); posicion2 = coche2.determinarPosicion(); coche2.showPosicion(tiempo); }if(!coche3.getEstado().equals("eliminado")){ coche3.actualizarPosicion(tiempo); posicion3 = coche3.determinarPosicion(); coche3.showPosicion(tiempo); }if(!coche4.getEstado().equals("eliminado")){ coche4.actualizarPosicion(tiempo); posicion4 = coche4.determinarPosicion(); coche4.showPosicion(tiempo); }if(!coche5.getEstado().equals("eliminado")){ coche5.actualizarPosicion(tiempo); posicion5 = coche5.determinarPosicion(); coche5.showPosicion(tiempo); }if(!coche6.getEstado().equals("eliminado")){ coche6.actualizarPosicion(tiempo); posicion6 = coche6.determinarPosicion(); coche6.showPosicion(tiempo); }if(!coche7.getEstado().equals("eliminado")){ coche7.actualizarPosicion(tiempo); posicion7 = coche7.determinarPosicion(); coche7.showPosicion(tiempo); }if(!coche8.getEstado().equals("eliminado")){ coche8.actualizarPosicion(tiempo); posicion8 = coche8.determinarPosicion(); coche8.showPosicion(tiempo); }if(!coche9.getEstado().equals("eliminado")){ coche9.actualizarPosicion(tiempo); posicion9 = coche9.determinarPosicion(); coche9.showPosicion(tiempo); }if(!coche10.getEstado().equals("eliminado")){ coche10.actualizarPosicion(tiempo); posicion10 = coche10.determinarPosicion(); coche10.showPosicion(tiempo); } if(tiempo == 2.0){ comprobarPosicion(posicion,"nodo1","ronda4s",7.5); comprobarPosicion(posicion2,"nodo1","ronda4sb",2.5); //cambia de carril al ir mas rapido comprobarPosicion(posicion3,"nodo5","ciruela2",7.5); comprobarPosicion(posicion5,"nodo8","ronda1s",7.5); comprobarPosicion(posicion6,"nodo8","ronda1sb",2.5); //cambia de carril al ir mas rapido comprobarPosicion(posicion7,"nodo13","tinte1",7.5); }else if(tiempo == 3.0){ comprobarPosicion(posicion,"nodo1","ronda4s",15.0); comprobarPosicion(posicion2,"nodo1","ronda4sb",7.5); comprobarPosicion(posicion3,"nodo5","ciruela2",15.0); comprobarPosicion(posicion4,"nodo5","ciruela2",6.5); comprobarPosicion(posicion5,"nodo8","ronda1s",15.0); comprobarPosicion(posicion6,"nodo8","ronda1sb",7.5); comprobarPosicion(posicion7,"nodo13","tinte1",15.0); comprobarPosicion(posicion8,"nodo13","tinte1",6.5); comprobarPosicion(posicion9,"nodo8","ronda1s",2.5); //ahora puede entrar }else if(tiempo == 4.0){ comprobarPosicion(posicion,"nodo1","ronda4s",25.0); comprobarPosicion(posicion2,"nodo1","ronda4sb",15.0); comprobarPosicion(posicion3,"nodo5","ciruela2",25.0); comprobarPosicion(posicion4,"nodo5","ciruela2",14.0); comprobarPosicion(posicion5,"nodo8","ronda1s",25.0); comprobarPosicion(posicion6,"nodo8","ronda1sb",15.0); comprobarPosicion(posicion7,"nodo13","tinte1",25.0); comprobarPosicion(posicion8,"nodo13","tinte1",14.0); comprobarPosicion(posicion9,"nodo8","ronda1s",7.5); comprobarPosicion(posicion10,"nodo8","ronda1sb",2.5); }else if(tiempo == 6.0){ comprobarPosicion(posicion,"nodo1","ronda4s",45.0); comprobarPosicion(posicion2,"nodo1","ronda4sb",37.5); comprobarPosicion(posicion3,"nodo5","ciruela2",45.0); comprobarPosicion(posicion4,"nodo5","ciruela2",36.5); comprobarPosicion(posicion5,"nodo14","alarcos1",10.0); comprobarPosicion(posicion6,"nodo14","ronda1sb",30.0); comprobarPosicion(posicion7,"nodo13","tinte1",45.0); comprobarPosicion(posicion8,"nodo13","tinte1",36.5); comprobarPosicion(posicion9,"nodo8","ronda1s",25.0); comprobarPosicion(posicion10,"nodo8","ronda1sb",15.0); } tiempo += 1.0; //Thread.sleep(250); //0,25 segundos } salida.crearLog(tituloPrueba,fecha); salida.crearInformeDeTiempos(tituloPrueba,cr,fecha); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoGeneral2(){ //20 vehiculos circulando por la ciudad String tituloPrueba = "testRecorridoVehiculoGeneral2"; double tiempo = 1.0; double retraso = 2.0; double diferencia = retraso - tiempo; Posicion posicion = new Posicion(); Posicion posicion2 = new Posicion(); Posicion posicion3 = new Posicion(); Posicion posicion4 = new Posicion(); Posicion posicion5 = new Posicion(); Posicion posicion6 = new Posicion(); Posicion posicion7 = new Posicion(); Posicion posicion8 = new Posicion(); Posicion posicion9 = new Posicion(); Posicion posicion10 = new Posicion(); Posicion posicion11 = new Posicion(); Posicion posicion12 = new Posicion(); Posicion posicion13 = new Posicion(); Posicion posicion14 = new Posicion(); Posicion posicion15 = new Posicion(); Posicion posicion16 = new Posicion(); Posicion posicion17 = new Posicion(); Posicion posicion18 = new Posicion(); Posicion posicion19 = new Posicion(); Posicion posicion20 = new Posicion(); Vehiculo coche3, coche4, coche5, coche6, coche7, coche8, coche9, coche10, coche11, coche12, coche13, coche14, coche15, coche16, coche17, coche18, coche19, coche20; try{ coche = new Vehiculo("coche",36.0,nodo1,nodo12,cr,0); coche2 = new Vehiculo("coche2",54.0,nodo1,nodo12,cr,(int)retraso); coche3 = new Vehiculo("coche3",54.0,nodo4,nodo2_3,cr,0); coche4 = new Vehiculo("coche4",36.0,nodo5,nodo12,cr,0); coche5 = new Vehiculo("coche5",36.0,nodo8,nodo12,cr,0); coche6 = new Vehiculo("coche6",54.0,nodo8,nodo12,cr,(int)retraso); coche7 = new Vehiculo("coche7",54.0,nodo14,nodo2_3,cr,0); coche8 = new Vehiculo("coche8",36.0,nodo14,nodo2_3,cr,(int)retraso); coche9 = new Vehiculo("coche9",36.0,nodo6,nodo2_3,cr,0); coche10 = new Vehiculo("coche10",54.0,nodo6,nodo2_3,cr,(int)retraso); coche11 = new Vehiculo("coche11",54.0,nodo13,nodo1,cr,0); coche12 = new Vehiculo("coche12",36.0,nodo13,nodo1,cr,1); coche13 = new Vehiculo("coche13",36.0,nodo13,nodo1,cr,(int)retraso+1); coche14 = new Vehiculo("coche14",54.0,nodo3,nodo12,cr,0); coche15 = new Vehiculo("coche15",54.0,nodo10,nodo6,cr,0); coche16 = new Vehiculo("coche16",36.0,nodo10,nodo6,cr,0); coche17 = new Vehiculo("coche17",36.0,nodo13,nodo11,cr,(int)retraso+2); coche18 = new Vehiculo("coche18",54.0,nodo13,nodo11,cr,(int)retraso+3); coche19 = new Vehiculo("coche19",54.0,nodo13,nodo7_5,cr,(int)retraso+4); coche20 = new Vehiculo("coche20",36.0,nodo13,nodo7_5,cr,(int)retraso+5); cr.addVehiculo(coche); cr.addVehiculo(coche2); cr.addVehiculo(coche3); cr.addVehiculo(coche4); cr.addVehiculo(coche5); cr.addVehiculo(coche6); cr.addVehiculo(coche7); cr.addVehiculo(coche8); cr.addVehiculo(coche9); cr.addVehiculo(coche10); cr.addVehiculo(coche11); cr.addVehiculo(coche12); cr.addVehiculo(coche13); cr.addVehiculo(coche14); cr.addVehiculo(coche15); cr.addVehiculo(coche16); cr.addVehiculo(coche17); cr.addVehiculo(coche18); cr.addVehiculo(coche19); cr.addVehiculo(coche20); while(!coche.getEstado().equals("eliminado") || !coche2.getEstado().equals("eliminado") || !coche3.getEstado().equals("eliminado") || !coche4.getEstado().equals("eliminado") || !coche5.getEstado().equals("eliminado") || !coche6.getEstado().equals("eliminado") || !coche7.getEstado().equals("eliminado") || !coche8.getEstado().equals("eliminado") || !coche9.getEstado().equals("eliminado") || !coche10.getEstado().equals("eliminado") || !coche11.getEstado().equals("eliminado") || !coche12.getEstado().equals("eliminado") || !coche13.getEstado().equals("eliminado") || !coche14.getEstado().equals("eliminado") || !coche15.getEstado().equals("eliminado") || !coche16.getEstado().equals("eliminado") || !coche17.getEstado().equals("eliminado") || !coche18.getEstado().equals("eliminado") || !coche19.getEstado().equals("eliminado") || !coche20.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); if(!coche12.getEstado().equals("eliminado") && tiempo >= coche12.getRetraso()){ coche12.actualizarPosicion(tiempo - diferencia); posicion12 = coche12.determinarPosicion(); coche12.showPosicion(tiempo); }if(!coche16.getEstado().equals("eliminado") && tiempo >= coche16.getRetraso()){ coche16.actualizarPosicion(tiempo); posicion16 = coche16.determinarPosicion(); coche16.showPosicion(tiempo); }if(!coche.getEstado().equals("eliminado")){ coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); }if(!coche3.getEstado().equals("eliminado")){ coche3.actualizarPosicion(tiempo); posicion3 = coche3.determinarPosicion(); coche3.showPosicion(tiempo); }if(!coche4.getEstado().equals("eliminado")){ coche4.actualizarPosicion(tiempo); posicion4 = coche4.determinarPosicion(); coche4.showPosicion(tiempo); }if(!coche5.getEstado().equals("eliminado")){ coche5.actualizarPosicion(tiempo); posicion5 = coche5.determinarPosicion(); coche5.showPosicion(tiempo); }if(!coche9.getEstado().equals("eliminado")){ coche9.actualizarPosicion(tiempo); posicion9 = coche9.determinarPosicion(); coche9.showPosicion(tiempo); }if(!coche11.getEstado().equals("eliminado")){ coche11.actualizarPosicion(tiempo); posicion11 = coche11.determinarPosicion(); coche11.showPosicion(tiempo); }if(!coche14.getEstado().equals("eliminado")){ coche14.actualizarPosicion(tiempo); posicion14 = coche14.determinarPosicion(); coche14.showPosicion(tiempo); }if(!coche15.getEstado().equals("eliminado")){ coche15.actualizarPosicion(tiempo); posicion15 = coche15.determinarPosicion(); coche15.showPosicion(tiempo); }if(!coche7.getEstado().equals("eliminado")){ coche7.actualizarPosicion(tiempo); posicion7 = coche7.determinarPosicion(); coche7.showPosicion(tiempo); }if(!coche2.getEstado().equals("eliminado") && tiempo >= coche2.getRetraso()){ coche2.actualizarPosicion(tiempo - diferencia); posicion2 = coche2.determinarPosicion(); coche2.showPosicion(tiempo); }if(!coche6.getEstado().equals("eliminado") && tiempo >= coche6.getRetraso()){ coche6.actualizarPosicion(tiempo - diferencia); posicion6 = coche6.determinarPosicion(); coche6.showPosicion(tiempo); }if(!coche8.getEstado().equals("eliminado") && tiempo >= coche8.getRetraso()){ coche8.actualizarPosicion(tiempo - diferencia); posicion8 = coche8.determinarPosicion(); coche8.showPosicion(tiempo); }if(!coche10.getEstado().equals("eliminado") && tiempo >= coche10.getRetraso()){ coche10.actualizarPosicion(tiempo - diferencia); posicion10 = coche10.determinarPosicion(); coche10.showPosicion(tiempo); }if(!coche13.getEstado().equals("eliminado") && tiempo >= coche13.getRetraso()){ coche13.actualizarPosicion(tiempo - diferencia - 1); posicion13 = coche13.determinarPosicion(); coche13.showPosicion(tiempo); }if(!coche17.getEstado().equals("eliminado") && tiempo >= coche17.getRetraso()){ coche17.actualizarPosicion(tiempo - diferencia - 2); posicion17 = coche17.determinarPosicion(); coche17.showPosicion(tiempo); }if(!coche18.getEstado().equals("eliminado") && tiempo >= coche18.getRetraso()){ coche18.actualizarPosicion(tiempo - diferencia - 3); posicion18 = coche18.determinarPosicion(); coche18.showPosicion(tiempo); }if(!coche19.getEstado().equals("eliminado") && tiempo >= coche19.getRetraso()){ coche19.actualizarPosicion(tiempo - diferencia - 4); posicion19 = coche19.determinarPosicion(); coche19.showPosicion(tiempo); }if(!coche20.getEstado().equals("eliminado") && tiempo >= coche20.getRetraso()){ coche20.actualizarPosicion(tiempo - diferencia - 5); posicion20 = coche20.determinarPosicion(); coche20.showPosicion(tiempo); } tiempo += 1.0; //Thread.sleep(250); //0,25 segundos } salida.crearLog(tituloPrueba,fecha); salida.crearInformeDeTiempos(tituloPrueba,cr,fecha); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } public void testRecorridoVehiculoGeneral3(){ //40 vehiculos circulando por la ciudad String tituloPrueba = "testRecorridoVehiculoGeneral3"; double tiempo = 1.0; double retraso = 2.0; double diferencia = retraso - tiempo; Posicion posicion = new Posicion(); Posicion posicion2 = new Posicion(); Posicion posicion3 = new Posicion(); Posicion posicion4 = new Posicion(); Posicion posicion5 = new Posicion(); Posicion posicion6 = new Posicion(); Posicion posicion7 = new Posicion(); Posicion posicion8 = new Posicion(); Posicion posicion9 = new Posicion(); Posicion posicion10 = new Posicion(); Posicion posicion11 = new Posicion(); Posicion posicion12 = new Posicion(); Posicion posicion13 = new Posicion(); Posicion posicion14 = new Posicion(); Posicion posicion15 = new Posicion(); Posicion posicion16 = new Posicion(); Posicion posicion17 = new Posicion(); Posicion posicion18 = new Posicion(); Posicion posicion19 = new Posicion(); Posicion posicion20 = new Posicion(); Posicion posicion21 = new Posicion(); Posicion posicion22 = new Posicion(); Posicion posicion23 = new Posicion(); Posicion posicion24 = new Posicion(); Posicion posicion25 = new Posicion(); Posicion posicion26 = new Posicion(); Posicion posicion27 = new Posicion(); Posicion posicion28 = new Posicion(); Posicion posicion29 = new Posicion(); Posicion posicion30 = new Posicion(); Posicion posicion31 = new Posicion(); Posicion posicion32 = new Posicion(); Posicion posicion33 = new Posicion(); Posicion posicion34 = new Posicion(); Posicion posicion35 = new Posicion(); Posicion posicion36 = new Posicion(); Posicion posicion37 = new Posicion(); Posicion posicion38 = new Posicion(); Posicion posicion39 = new Posicion(); Posicion posicion40 = new Posicion(); Vehiculo coche3, coche4, coche5, coche6, coche7, coche8, coche9, coche10, coche11, coche12, coche13, coche14, coche15, coche16, coche17, coche18, coche19, coche20, coche21, coche22, coche23, coche24, coche25, coche26, coche27, coche28, coche29, coche30, coche31, coche32, coche33, coche34, coche35, coche36, coche37, coche38, coche39, coche40; try{ coche = new Vehiculo("coche",36.0,nodo1,nodo12,cr,0); coche2 = new Vehiculo("coche2",54.0,nodo1,nodo12,cr,(int)retraso); coche3 = new Vehiculo("coche3",54.0,nodo4,nodo2_3,cr,0); coche4 = new Vehiculo("coche4",36.0,nodo5,nodo12,cr,0); coche5 = new Vehiculo("coche5",36.0,nodo8,nodo12,cr,0); coche6 = new Vehiculo("coche6",54.0,nodo8,nodo12,cr,(int)retraso); coche7 = new Vehiculo("coche7",54.0,nodo14,nodo2_3,cr,0); coche8 = new Vehiculo("coche8",36.0,nodo14,nodo2_3,cr,(int)retraso); coche9 = new Vehiculo("coche9",36.0,nodo6,nodo2_3,cr,0); coche10 = new Vehiculo("coche10",54.0,nodo6,nodo2_3,cr,(int)retraso); coche11 = new Vehiculo("coche11",54.0,nodo13,nodo1,cr,0); coche12 = new Vehiculo("coche12",36.0,nodo13,nodo1,cr,(int)retraso); coche13 = new Vehiculo("coche13",36.0,nodo13,nodo1,cr,(int)retraso+1); coche14 = new Vehiculo("coche14",54.0,nodo3,nodo12,cr,0); coche15 = new Vehiculo("coche15",54.0,nodo10,nodo6,cr,0); coche16 = new Vehiculo("coche16",36.0,nodo10,nodo6,cr,(int)retraso); coche17 = new Vehiculo("coche17",36.0,nodo13,nodo11,cr,(int)retraso+2); coche18 = new Vehiculo("coche18",54.0,nodo13,nodo11,cr,(int)retraso+3); coche19 = new Vehiculo("coche19",54.0,nodo13,nodo7_5,cr,(int)retraso+4); coche20 = new Vehiculo("coche20",36.0,nodo13,nodo7_5,cr,(int)retraso+5); coche21 = new Vehiculo("coche21",36.0,nodo1,nodo12,cr,(int)retraso+1); coche22 = new Vehiculo("coche22",54.0,nodo1,nodo12,cr,(int)retraso+2); coche23 = new Vehiculo("coche23",54.0,nodo4,nodo2_3,cr,(int)retraso+1); coche24 = new Vehiculo("coche24",36.0,nodo5,nodo12,cr,(int)retraso+1); coche25 = new Vehiculo("coche25",36.0,nodo8,nodo12,cr,(int)retraso+1); coche26 = new Vehiculo("coche26",54.0,nodo8,nodo12,cr,(int)retraso+2); coche27 = new Vehiculo("coche27",54.0,nodo14,nodo2_3,cr,(int)retraso+1); coche28 = new Vehiculo("coche28",36.0,nodo14,nodo2_3,cr,(int)retraso+2); coche29 = new Vehiculo("coche29",36.0,nodo6,nodo2_3,cr,(int)retraso+1); coche30 = new Vehiculo("coche30",54.0,nodo6,nodo2_3,cr,(int)retraso+2); coche31 = new Vehiculo("coche31",54.0,nodo13,nodo1,cr,(int)retraso+1); coche32 = new Vehiculo("coche32",36.0,nodo13,nodo1,cr,(int)retraso+2); coche33 = new Vehiculo("coche33",36.0,nodo13,nodo1,cr,(int)retraso+3); coche34 = new Vehiculo("coche34",54.0,nodo3,nodo12,cr,(int)retraso+1); coche35 = new Vehiculo("coche35",54.0,nodo10,nodo6,cr,(int)retraso+1); coche36 = new Vehiculo("coche36",36.0,nodo10,nodo6,cr,(int)retraso+2); coche37 = new Vehiculo("coche37",36.0,nodo13,nodo11,cr,(int)retraso+4); coche38 = new Vehiculo("coche38",54.0,nodo13,nodo11,cr,(int)retraso+5); coche39 = new Vehiculo("coche39",54.0,nodo13,nodo7_5,cr,(int)retraso+6); coche40 = new Vehiculo("coche40",36.0,nodo13,nodo7_5,cr,(int)retraso+7); cr.addVehiculo(coche); cr.addVehiculo(coche2); cr.addVehiculo(coche3); cr.addVehiculo(coche4); cr.addVehiculo(coche5); cr.addVehiculo(coche6); cr.addVehiculo(coche7); cr.addVehiculo(coche8); cr.addVehiculo(coche9); cr.addVehiculo(coche10); cr.addVehiculo(coche11); cr.addVehiculo(coche12); cr.addVehiculo(coche13); cr.addVehiculo(coche14); cr.addVehiculo(coche15); cr.addVehiculo(coche16); cr.addVehiculo(coche17); cr.addVehiculo(coche18); cr.addVehiculo(coche19); cr.addVehiculo(coche20); cr.addVehiculo(coche21); cr.addVehiculo(coche22); cr.addVehiculo(coche23); cr.addVehiculo(coche24); cr.addVehiculo(coche25); cr.addVehiculo(coche26); cr.addVehiculo(coche27); cr.addVehiculo(coche28); cr.addVehiculo(coche29); cr.addVehiculo(coche30); cr.addVehiculo(coche31); cr.addVehiculo(coche32); cr.addVehiculo(coche33); cr.addVehiculo(coche34); cr.addVehiculo(coche35); cr.addVehiculo(coche36); cr.addVehiculo(coche37); cr.addVehiculo(coche38); cr.addVehiculo(coche39); cr.addVehiculo(coche40); while(!coche.getEstado().equals("eliminado") || !coche2.getEstado().equals("eliminado") || !coche3.getEstado().equals("eliminado") || !coche4.getEstado().equals("eliminado") || !coche5.getEstado().equals("eliminado") || !coche6.getEstado().equals("eliminado") || !coche7.getEstado().equals("eliminado") || !coche8.getEstado().equals("eliminado") || !coche9.getEstado().equals("eliminado") || !coche10.getEstado().equals("eliminado") || !coche11.getEstado().equals("eliminado") || !coche12.getEstado().equals("eliminado") || !coche13.getEstado().equals("eliminado") || !coche14.getEstado().equals("eliminado") || !coche15.getEstado().equals("eliminado") || !coche16.getEstado().equals("eliminado") || !coche17.getEstado().equals("eliminado") || !coche18.getEstado().equals("eliminado") || !coche19.getEstado().equals("eliminado") || !coche20.getEstado().equals("eliminado") || !coche21.getEstado().equals("eliminado") || !coche22.getEstado().equals("eliminado") || !coche23.getEstado().equals("eliminado") || !coche24.getEstado().equals("eliminado") || !coche25.getEstado().equals("eliminado") || !coche26.getEstado().equals("eliminado") || !coche27.getEstado().equals("eliminado") || !coche28.getEstado().equals("eliminado") || !coche29.getEstado().equals("eliminado") || !coche30.getEstado().equals("eliminado") || !coche31.getEstado().equals("eliminado") || !coche32.getEstado().equals("eliminado") || !coche33.getEstado().equals("eliminado") || !coche34.getEstado().equals("eliminado") || !coche35.getEstado().equals("eliminado") || !coche36.getEstado().equals("eliminado") || !coche37.getEstado().equals("eliminado") || !coche38.getEstado().equals("eliminado") || !coche39.getEstado().equals("eliminado") || !coche40.getEstado().equals("eliminado")){ cr.operacionesDeTiempo(tiempo); if(!coche.getEstado().equals("eliminado")){ coche.actualizarPosicion(tiempo); posicion = coche.determinarPosicion(); coche.showPosicion(tiempo); }if(!coche3.getEstado().equals("eliminado")){ coche3.actualizarPosicion(tiempo); posicion3 = coche3.determinarPosicion(); coche3.showPosicion(tiempo); }if(!coche4.getEstado().equals("eliminado")){ coche4.actualizarPosicion(tiempo); posicion4 = coche4.determinarPosicion(); coche4.showPosicion(tiempo); }if(!coche5.getEstado().equals("eliminado")){ coche5.actualizarPosicion(tiempo); posicion5 = coche5.determinarPosicion(); coche5.showPosicion(tiempo); }if(!coche7.getEstado().equals("eliminado")){ coche7.actualizarPosicion(tiempo); posicion7 = coche7.determinarPosicion(); coche7.showPosicion(tiempo); }if(!coche9.getEstado().equals("eliminado")){ coche9.actualizarPosicion(tiempo); posicion9 = coche9.determinarPosicion(); coche9.showPosicion(tiempo); }if(!coche11.getEstado().equals("eliminado")){ coche11.actualizarPosicion(tiempo); posicion11 = coche11.determinarPosicion(); coche11.showPosicion(tiempo); }if(!coche14.getEstado().equals("eliminado")){ coche14.actualizarPosicion(tiempo); posicion14 = coche14.determinarPosicion(); coche14.showPosicion(tiempo); }if(!coche15.getEstado().equals("eliminado")){ coche15.actualizarPosicion(tiempo); posicion15 = coche15.determinarPosicion(); coche15.showPosicion(tiempo); }if(!coche2.getEstado().equals("eliminado") && tiempo >= coche2.getRetraso()){ coche2.actualizarPosicion(tiempo - diferencia); posicion2 = coche2.determinarPosicion(); coche2.showPosicion(tiempo); }if(!coche6.getEstado().equals("eliminado") && tiempo >= coche6.getRetraso()){ coche6.actualizarPosicion(tiempo - diferencia); posicion6 = coche6.determinarPosicion(); coche6.showPosicion(tiempo); }if(!coche8.getEstado().equals("eliminado") && tiempo >= coche8.getRetraso()){ coche8.actualizarPosicion(tiempo - diferencia); posicion8 = coche8.determinarPosicion(); coche8.showPosicion(tiempo); }if(!coche10.getEstado().equals("eliminado") && tiempo >= coche10.getRetraso()){ coche10.actualizarPosicion(tiempo - diferencia); posicion10 = coche10.determinarPosicion(); coche10.showPosicion(tiempo); }if(!coche12.getEstado().equals("eliminado") && tiempo >= coche12.getRetraso()){ coche12.actualizarPosicion(tiempo - diferencia); posicion12 = coche12.determinarPosicion(); coche12.showPosicion(tiempo); }if(!coche16.getEstado().equals("eliminado") && tiempo >= coche16.getRetraso()){ coche16.actualizarPosicion(tiempo - diferencia); posicion16 = coche16.determinarPosicion(); coche16.showPosicion(tiempo); }if(!coche13.getEstado().equals("eliminado") && tiempo >= coche13.getRetraso()){ coche13.actualizarPosicion(tiempo - diferencia - 1); posicion13 = coche13.determinarPosicion(); coche13.showPosicion(tiempo); }if(!coche17.getEstado().equals("eliminado") && tiempo >= coche17.getRetraso()){ coche17.actualizarPosicion(tiempo - diferencia - 2); posicion17 = coche17.determinarPosicion(); coche17.showPosicion(tiempo); }if(!coche18.getEstado().equals("eliminado") && tiempo >= coche18.getRetraso()){ coche18.actualizarPosicion(tiempo - diferencia - 3); posicion18 = coche18.determinarPosicion(); coche18.showPosicion(tiempo); }if(!coche19.getEstado().equals("eliminado") && tiempo >= coche19.getRetraso()){ coche19.actualizarPosicion(tiempo - diferencia - 4); posicion19 = coche19.determinarPosicion(); coche19.showPosicion(tiempo); }if(!coche20.getEstado().equals("eliminado") && tiempo >= coche20.getRetraso()){ coche20.actualizarPosicion(tiempo - diferencia - 5); posicion20 = coche20.determinarPosicion(); coche20.showPosicion(tiempo); }if(!coche21.getEstado().equals("eliminado") && tiempo >= coche21.getRetraso()){ coche21.actualizarPosicion(tiempo - diferencia - 1); posicion21 = coche21.determinarPosicion(); coche21.showPosicion(tiempo); }if(!coche23.getEstado().equals("eliminado") && tiempo >= coche23.getRetraso()){ coche23.actualizarPosicion(tiempo - diferencia - 1); posicion23 = coche23.determinarPosicion(); coche23.showPosicion(tiempo); }if(!coche24.getEstado().equals("eliminado") && tiempo >= coche24.getRetraso()){ coche24.actualizarPosicion(tiempo - diferencia - 1); posicion24 = coche24.determinarPosicion(); coche24.showPosicion(tiempo); }if(!coche25.getEstado().equals("eliminado") && tiempo >= coche25.getRetraso()){ coche25.actualizarPosicion(tiempo - diferencia - 1); posicion25 = coche25.determinarPosicion(); coche25.showPosicion(tiempo); }if(!coche27.getEstado().equals("eliminado") && tiempo >= coche27.getRetraso()){ coche27.actualizarPosicion(tiempo - diferencia - 1); posicion27 = coche27.determinarPosicion(); coche27.showPosicion(tiempo); }if(!coche29.getEstado().equals("eliminado") && tiempo >= coche29.getRetraso()){ coche29.actualizarPosicion(tiempo - diferencia - 1); posicion29 = coche29.determinarPosicion(); coche29.showPosicion(tiempo); }if(!coche31.getEstado().equals("eliminado") && tiempo >= coche31.getRetraso()){ coche31.actualizarPosicion(tiempo - diferencia - 1); posicion31 = coche31.determinarPosicion(); coche31.showPosicion(tiempo); }if(!coche34.getEstado().equals("eliminado") && tiempo >= coche34.getRetraso()){ coche34.actualizarPosicion(tiempo - diferencia - 1); posicion34 = coche34.determinarPosicion(); coche34.showPosicion(tiempo); }if(!coche35.getEstado().equals("eliminado") && tiempo >= coche35.getRetraso()){ coche35.actualizarPosicion(tiempo - diferencia - 1); posicion35 = coche35.determinarPosicion(); coche35.showPosicion(tiempo); }if(!coche22.getEstado().equals("eliminado") && tiempo >= coche22.getRetraso()){ coche22.actualizarPosicion(tiempo - diferencia - 2); posicion22 = coche22.determinarPosicion(); coche22.showPosicion(tiempo); }if(!coche26.getEstado().equals("eliminado") && tiempo >= coche26.getRetraso()){ coche26.actualizarPosicion(tiempo - diferencia - 2); posicion26 = coche26.determinarPosicion(); coche26.showPosicion(tiempo); }if(!coche28.getEstado().equals("eliminado") && tiempo >= coche28.getRetraso()){ coche28.actualizarPosicion(tiempo - diferencia - 2); posicion28 = coche28.determinarPosicion(); coche28.showPosicion(tiempo); }if(!coche30.getEstado().equals("eliminado") && tiempo >= coche30.getRetraso()){ coche30.actualizarPosicion(tiempo - diferencia - 2); posicion30 = coche30.determinarPosicion(); coche30.showPosicion(tiempo); }if(!coche32.getEstado().equals("eliminado") && tiempo >= coche32.getRetraso()){ coche32.actualizarPosicion(tiempo - diferencia - 2); posicion32 = coche32.determinarPosicion(); coche32.showPosicion(tiempo); }if(!coche36.getEstado().equals("eliminado") && tiempo >= coche36.getRetraso()){ coche36.actualizarPosicion(tiempo - diferencia - 2); posicion36 = coche36.determinarPosicion(); coche36.showPosicion(tiempo); }if(!coche33.getEstado().equals("eliminado") && tiempo >= coche33.getRetraso()){ coche33.actualizarPosicion(tiempo - diferencia - 3); posicion33 = coche33.determinarPosicion(); coche33.showPosicion(tiempo); }if(!coche37.getEstado().equals("eliminado") && tiempo >= coche37.getRetraso()){ coche37.actualizarPosicion(tiempo - diferencia - 4); posicion37 = coche37.determinarPosicion(); coche37.showPosicion(tiempo); }if(!coche38.getEstado().equals("eliminado") && tiempo >= coche38.getRetraso()){ coche38.actualizarPosicion(tiempo - diferencia - 5); posicion38 = coche38.determinarPosicion(); coche38.showPosicion(tiempo); }if(!coche39.getEstado().equals("eliminado") && tiempo >= coche39.getRetraso()){ coche39.actualizarPosicion(tiempo - diferencia - 6); posicion39 = coche39.determinarPosicion(); coche39.showPosicion(tiempo); }if(!coche40.getEstado().equals("eliminado") && tiempo >= coche40.getRetraso()){ coche40.actualizarPosicion(tiempo - diferencia - 7); posicion40 = coche40.determinarPosicion(); coche40.showPosicion(tiempo); } tiempo += 1.0; //Thread.sleep(250); //0,25 segundos } salida.crearLog(tituloPrueba,fecha); salida.crearInformeDeTiempos(tituloPrueba,cr,fecha); }catch(Exception e){ fail("Capturada excepión en "+tituloPrueba+": "+e.getMessage()); } } /**************** Otros métodos de cobertura****************/ //block coverage public void testVehiculo(){ try{ //probar la inicializacion del objeto Vehiculo v = new Vehiculo("v",36.0,nodo1,nodo8,cr,0); String cadena = "v | 10.0 m/s | origen: nodo1 | destino: nodo8 | retraso: 0 s"; assertTrue(v.toString().equals(cadena)); assertTrue(v.getDestino().getNombre().equals("nodo8")); //probar la modificacion del objeto v.setRetraso(10); assertTrue(v.getRetraso()==10); v.setRetraso(50); v.inicializar(); assertTrue(v.getRetraso()==50); }catch(Exception e){ fail("Capturada excepión en testVehiculo: "+e.getMessage()); } } public void testArco(){ try{ //crear el acro Arco arco = new Arco("arco",1,150.0,"stop",false); //prueba de contruccion assertTrue(arco.getNombre().equals("arco")); assertTrue(arco.getNumCarriles() == 1); assertTrue(arco.getLongitud() == 150.0); assertTrue(arco.getRestriccion().equals("stop")); assertTrue(!arco.getSecundario()); //modificacion arco.setNombre("otro"); arco.setNumCarriles(2); arco.setLongitud(200.0); arco.setRestriccion("preferencia"); arco.setSecundario(true); //prueba de modificacion assertTrue(arco.getNombre().equals("otro")); assertTrue(arco.getNumCarriles() == 2); assertTrue(arco.getLongitud() == 200.0); assertTrue(arco.getRestriccion().equals("preferencia")); assertTrue(arco.getSecundario()); //prueba del metodo toString2() arco.setOrigen(new Nodo("nodo1")); arco.setDestino(new Nodo("nodo2")); String salida = "Arco: otro\n"; salida += "Número de carriles: 2\n"; salida += "Longitud: 200.0 m\n"; salida += "Nodo de Origen: nodo1\n"; salida += "Nodo de Destino: nodo2"; assertTrue(arco.toString2().equals(salida)); //prueba del metodo inicializar() arco.inicializar(); assertTrue(arco.getColaVehiculos().size() == 0); }catch(Exception e){ fail("Capturada excepión en testArco: "+e.getMessage()); } } public void testArcoEspera(){ try{ //probar la creacion del objeto ArcoEspera ae = new ArcoEspera(new Vehiculo(), new Arco()); assertTrue(ae.getTiempoEspera()==1.0); //probar la modificacion de este ae.incremetarTiempoEspera(); assertTrue(ae.getTiempoEspera()==2.0); }catch(Exception e){ fail("Capturada excepión en testArcoEspera: "+e.getMessage()); } } public void testCruce(){ try{ //probar la creacion del objeto Cruce cruce = new Cruce(); }catch(Exception e){ fail("Capturada excepión en testArcoEspera: "+e.getMessage()); } } public void testSemaforo(){ try{ //probar la inicializacion del objeto Semaforo semaforo = new Semaforo("semaforo","verde",5.0,1.0,5.0,1.0); assertTrue(semaforo.getTVerde()==5.0); assertTrue(semaforo.getTAmbar()==1.0); assertTrue(semaforo.getTRojo()==5.0); //probar la modificacion del objeto semaforo.setTVerde(10.0); semaforo.setTAmbar(2.0); semaforo.setTRojo(10.0); assertTrue(semaforo.getTVerde()==10.0); assertTrue(semaforo.getTAmbar()==2.0); assertTrue(semaforo.getTRojo()==10.0); semaforo.setEstado("rojo"); semaforo.inicializar(); // el estado debe ser ahora verde assertTrue(semaforo.getEstado().equals("verde")); semaforo = new Semaforo(); assertTrue(semaforo.getEstado().equals("null")); }catch(Exception e){ fail("Capturada excepión en testSemaforo: "+e.getMessage()); } } public void testCiudad(){ try{ coche = new Vehiculo("coche",36.0,nodo6,nodo3,cr,0); cr.addVehiculo(coche); //probar el metodo getListaVehiculos() assertTrue(((Vehiculo)cr.getListaVehiculos().elementAt(0)).equals(coche)); //probar el metodo borrarNodo() cr.borrarNodo("nodo1"); assertTrue(!cr.pertenece(nodo1)); //probar el metodo borrarArco() assertTrue(!cr.pertenece(ronda4s)); assertTrue(!cr.pertenece(ronda4e)); //probar el metodo borrarTodosVehiculos() cr.borrarTodosVehiculos(); assertTrue(cr.getListaVehiculos().size() == 0); //probar el metodo inicializarSalida() String salida1 = cr.getSalida().toString(); cr.inicializarSalida(); String salida2 = cr.getSalida().toString(); assertTrue(!salida1.equals(salida2)); assertTrue(cr.getSalida().getLogFinal().size() == 0); //probar que no hay camino minimo assertTrue(cr.caminoMinimo(nodo1,nodo1) == null); }catch(Exception e){ fail("Capturada excepión en testCiudad: "+e.getMessage()); } } public void testNodo(){ try{ //probar el metodo inicializar() String aux1 = nodo2_5.toString(); nodo2_5.inicializar(); String aux2 = nodo2_5.toString(); assertTrue(aux1.equals(aux2)); //probar el metodo toString2() coche = new Vehiculo("coche",36.0,nodo6,nodo3,cr,0); nodo2_1.addVehiculo(coche); String cadena = "Nodo (semaforo): nodo2_1\nEstado: rojo\n"+ "Configuración: Tiempo en rojo = 5.0 s | Tiempo en ámbar = 1.0 s | Tiempo en verde = 5.0 s\n"+ "Empieza en el segundo: 1.0\n"+ "Lista de entradas: ciruela1\nLista de salidas: ficticio1\nLista de vehículos: coche"; assertTrue(cadena.equals(nodo2_1.toString2())); //probar el metodo borrarElemento assertTrue(nodo2_1.getElemento().getNombre().equals("semaforo2_1")); nodo2_1.borrarElemento(); assertTrue(nodo2_1.getElemento() == null); //probar setNombre() nodo2_1.setNombre("prueba"); assertTrue(nodo2_1.getNombre().equals("prueba")); //probar el metodo getOcupado() Nodo nodoPrueba = new Nodo(); assertTrue(!nodoPrueba.getOcupado(coche,new Arco())); }catch(Exception e){ fail("Capturada excepión en testNodo: "+e.getMessage()); } } public void testUtilidades(){ try{ //probar el metodo estaNombreNodo() assertTrue(Utilidades.estaNombreNodo(cr.getListaNodos(),"nodo8")); //probar el metodo estaNombreArco() assertTrue(Utilidades.estaNombreArco(cr.getListaArcos(),"tinte1")); //probar el metodo estaNombre() coche = new Vehiculo("coche",36.0,nodo6,nodo3,cr,0); cr.addVehiculo(coche); assertTrue(Utilidades.estaNombreVehiculo(cr.getListaVehiculos(),"coche")); //probar getArco() assertTrue(Utilidades.getArco(cr.getListaArcos(),"arcoPrueba")==null); //no existe //probar getNodo() assertTrue(Utilidades.getNodo(cr.getListaNodos(),"nodoPrueba")==null); //no existe //probar getVehiculo() assertTrue(Utilidades.getVehiculo(cr.getListaVehiculos(),"vehiculoPrueba")==null); //no existe //probar el metodo sacarNombre() assertTrue(Utilidades.sacarNombre("F:\\prueba\\prueba\\nombre.txt").equals("nombre")); //probar el metodo getNombreArco() assertTrue(Utilidades.getNombreArco(cr.getListaArcos(),nodo14,nodo13).equals("alarcos1")); assertTrue(Utilidades.getNombreArco(cr.getListaArcos(),nodo13,nodo14).equals(""));//no existe arco //probar el metodo getNodoAleatorio() Vector auxiliar = Utilidades.getNodoAleatorio(cr,null,null); assertTrue(cr.getListaNodos().contains((Nodo)auxiliar.elementAt(0))); assertTrue(cr.getListaNodos().contains((Nodo)auxiliar.elementAt(1))); auxiliar = Utilidades.getNodoAleatorio(cr,null,nodo13); assertTrue(cr.existeCamino((Nodo)auxiliar.elementAt(0),nodo13)); auxiliar = Utilidades.getNodoAleatorio(cr,nodo14,null); assertTrue(cr.existeCamino(nodo14,(Nodo)auxiliar.elementAt(0))); //probar el metodo getVelocidadAleatoria() double vel = Utilidades.getVelocidadAleatoria(20.0,30.0); assertTrue((vel >= 20.0) && (vel <= 30.0)); //probar el metodo getVelocidadAleatoria() int aleat = Utilidades.aleatorioRango(20,30); assertTrue((aleat >= 20) && (aleat <= 30)); //probar el metodo comprobarNombre() cr.addVehiculo(new Vehiculo("vAleatorio1",36.0,nodo14,nodo13,cr,0)); int indice = Utilidades.comprobarNombre(cr.getListaVehiculos()); //el indice debe ser 1 por vAleatorio1 assertTrue(indice == 1); }catch(Exception e){ fail("Capturada excepión en testUtilidades: "+e.getMessage()); } } public static void main(String args[]) { junit.swingui.TestRunner.run(CiudadTester.class); } /************** Metodos auxiliares *****************/ public void comprobarPosicion(Posicion posicion, String nodo, String arco, double distancia){ assertTrue(((Nodo)posicion.getNodoActual()).getNombre().equals(nodo)); assertTrue(((Arco)posicion.getArcoActual()).getNombre().equals(arco)); assertTrue(posicion.getDistanciaRecorrida() == distancia); } public void comprobarPosicion(Posicion posicion, String nodo){ assertTrue(((Nodo)posicion.getNodoActual()).getNombre().equals(nodo)); } }