Example #1
0
void test_recorrido_dos_minimos() {
	Driver dcnet;
	Computadora c1 = "skynet";
	Computadora c2 = "terminator";
	Computadora c3 = "connor";
	Computadora c4 = "sky";

	Interfaz i1 = 1;
	Interfaz i2 = 2;
	Interfaz i3 = 3;
	Interfaz i4 = 4;
	Interfaz i5 = 5;
	Interfaz i6 = 6;
	Interfaz i7 = 7;
	Interfaz i8 = 8;
	
	Conj<Interfaz> conjIc1;
	Conj<Interfaz> conjIc2;
	Conj<Interfaz> conjIc3;
	Conj<Interfaz> conjIc4;


	conjIc1.Agregar(i1);
	conjIc1.Agregar(i2);
	
	conjIc2.Agregar(i3);
	conjIc2.Agregar(i4);
	
	conjIc3.Agregar(i5);
	conjIc3.Agregar(i6);

	conjIc4.Agregar(i7);
	conjIc4.Agregar(i8);

	
	dcnet.AgregarComputadora(c1,conjIc1);
	dcnet.AgregarComputadora(c2,conjIc2);
	dcnet.AgregarComputadora(c3,conjIc3);
	dcnet.AgregarComputadora(c4,conjIc4);	
	
	dcnet.Conectar(c1, i1,c2, i3);	
	dcnet.Conectar(c1, i2,c3, i5);

	dcnet.Conectar(c2, i4,c4, i7);

	dcnet.Conectar(c3, i6,c4, i8);


	dcnet.CrearPaquete(c1,c4,1);
	Nat paq = dcnet.IesimoEnEsperaEn(c1,0);
	
	ASSERT_EQ(dcnet.CantidadEnEsperaEn(c1), 1);
	
	dcnet.AvanzarSegundo();
	
	// Puede ir por c2 o c3 , tiene que estar en alguno de los dos
	ASSERT_EQ(dcnet.CantidadEnEsperaEn(c2)+dcnet.CantidadEnEsperaEn(c3), 1);

	
	ASSERT_EQ(dcnet.CantidadNodosRecorridosPor(paq),2);
	ASSERT(dcnet.IesimoNodoRecorridoPor(paq,0) == c1);
	ASSERT(dcnet.IesimoNodoRecorridoPor(paq,1) == c2 || dcnet.IesimoNodoRecorridoPor(paq,1) == c3 );

}