コード例 #1
0
ファイル: testcatedra.cpp プロジェクト: FerFrassia/algo2tp3
void test_recorrido_simple() {
	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;
	
	Conj<Interfaz> conjIc1;
	Conj<Interfaz> conjIc2;
	Conj<Interfaz> conjIc3;
	Conj<Interfaz> conjIc4;

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

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

	dcnet.CrearPaquete(c1,c4,1);
	Nat paq = dcnet.IesimoEnEsperaEn(c1,0);

	
	ASSERT_EQ(dcnet.CantidadEnEsperaEn(c1), 1);
	
	dcnet.AvanzarSegundo();
	ASSERT_EQ(dcnet.CantidadEnEsperaEn(c2), 1);


	dcnet.AvanzarSegundo();
	ASSERT_EQ(dcnet.CantidadEnEsperaEn(c3), 1);

	
	//ASSERT_EQ(dcnet.CantidadNodosRecorridosPor(paq),3);
	ASSERT(dcnet.IesimoNodoRecorridoPor(paq,0) == c1);
	ASSERT(dcnet.IesimoNodoRecorridoPor(paq,1) == c2);
	ASSERT(dcnet.IesimoNodoRecorridoPor(paq,2) == c3);
	
	
}
コード例 #2
0
ファイル: testcatedra.cpp プロジェクト: FerFrassia/algo2tp3
void test_crear_paquetes() {
	Driver dcnet;
	Computadora c1 = "skynet";
	Computadora c2 = "terminator";
	Computadora c3 = "connor";

	Interfaz i1 = 1;
	Interfaz i2 = 2;
	Interfaz i3 = 3;
	Interfaz i4 = 4;
	Interfaz i5 = 5;

	Conj<Interfaz> conjIc1;
	Conj<Interfaz> conjIc2;
	Conj<Interfaz> conjIc3;

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

	dcnet.CrearPaquete(c1,c2,2);
	dcnet.CrearPaquete(c1,c2,1);
	dcnet.CrearPaquete(c2,c3,3);
	dcnet.CrearPaquete(c2,c3,2);
	dcnet.CrearPaquete(c2,c3,1);
	dcnet.CrearPaquete(c2,c3,1);
	
	ASSERT_EQ(dcnet.CantidadEnEsperaEn(c1), 2);
	ASSERT_EQ(dcnet.CantidadEnEsperaEn(c2), 4);
	ASSERT_EQ(dcnet.CantidadEnEsperaEn(c3), 0);	
	
	dcnet.AvanzarSegundo();
	ASSERT_EQ(dcnet.CantidadEnEsperaEn(c1), 1);
	ASSERT_EQ(dcnet.CantidadEnEsperaEn(c2), 3);
	ASSERT_EQ(dcnet.CantidadEnEsperaEn(c3), 0);	
	
	ASSERT_EQ(dcnet.CantidadEnviadosPor(c1), 1);
	ASSERT_EQ(dcnet.CantidadEnviadosPor(c2), 1);
	ASSERT_EQ(dcnet.CantidadEnviadosPor(c3), 0);
	
}
コード例 #3
0
ファイル: testcatedra.cpp プロジェクト: FerFrassia/algo2tp3
void test_conectar_computadoras() {
	Driver dcnet;
	Computadora c1 = "skynet";
	Computadora c2 = "terminator";
	Computadora c3 = "connor";

	Interfaz i1 = 1;
	Interfaz i2 = 2;
	Interfaz i3 = 3;
	Interfaz i4 = 4;
	Interfaz i5 = 5;

	Conj<Interfaz> conjIc1;
	Conj<Interfaz> conjIc2;
	Conj<Interfaz> conjIc3;

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

	ASSERT_EQ(dcnet.conectadas(c1,c2), true);
	ASSERT(dcnet.IntefazUsada(c1,c2) == i1);
	ASSERT(dcnet.IntefazUsada(c2,c1) == i2);
	
	ASSERT_EQ(dcnet.conectadas(c2,c3), true);
	ASSERT(dcnet.IntefazUsada(c2,c3) == i5);
	ASSERT(dcnet.IntefazUsada(c3,c2) == i3);

	ASSERT_EQ(dcnet.conectadas(c1,c3), false);
	
	ASSERT_EQ(dcnet.CantidadInterfacesDe(c1), 1);
	ASSERT_EQ(dcnet.CantidadInterfacesDe(c2), 2);
	ASSERT_EQ(dcnet.CantidadInterfacesDe(c3), 2);
	
}
コード例 #4
0
ファイル: testcatedra.cpp プロジェクト: FerFrassia/algo2tp3
void test_la_que_mas_envio() {
	Driver dcnet;
	Computadora c1 = "skynet";
	Computadora c2 = "terminator";
	Computadora c3 = "connor";

	Interfaz i1 = 1;
	Interfaz i2 = 2;
	Interfaz i3 = 3;
	Interfaz i4 = 4;

	Conj<Interfaz> conjIc1;
	Conj<Interfaz> conjIc2;
	Conj<Interfaz> conjIc3;

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

	dcnet.AgregarComputadora(c1,conjIc1);
	dcnet.AgregarComputadora(c2,conjIc2);
	dcnet.AgregarComputadora(c3,conjIc3);

	// c1 -- c2 -- c3	
	dcnet.Conectar(c1, i1,c2, i2);	
	dcnet.Conectar(c2, i3,c3, i4);

	dcnet.CrearPaquete(c1,c3,1);
	dcnet.CrearPaquete(c2,c3,1);
	
	dcnet.AvanzarSegundo();
	dcnet.AvanzarSegundo();

	ASSERT_EQ(dcnet.laQueMasEnvio(), c2);
	dcnet.CrearPaquete(c1,c2,1);
	dcnet.CrearPaquete(c1,c2,1);
	dcnet.AvanzarSegundo();
	dcnet.AvanzarSegundo();

	ASSERT_EQ(dcnet.laQueMasEnvio(), c1);

}
コード例 #5
0
ファイル: test2.cpp プロジェクト: alangberg/algo2-TP3
void test_dcnet_ejemplo() {
	Conj<Interfaz> ConjuntoIc1;
	Conj<Interfaz> ConjuntoIc2;
	Conj<Interfaz> ConjuntoIc3;
	
	ConjuntoIc1.Agregar(1);
	ConjuntoIc1.Agregar(2);
	ConjuntoIc1.Agregar(3);
	
	ConjuntoIc2.Agregar(1);
	ConjuntoIc2.Agregar(2);
	ConjuntoIc2.Agregar(3);
	
	ConjuntoIc3.Agregar(1);
	ConjuntoIc3.Agregar(2);
	
	Computadora c1 = "dc.uba.ar";
	Computadora c2 = "uba.ar";
	Computadora c3 = "dm.uba.ar";
	
	Driver dcnet;
	
	dcnet.AgregarComputadora(c1, ConjuntoIc1);
	dcnet.AgregarComputadora(c2, ConjuntoIc2);
	dcnet.AgregarComputadora(c3, ConjuntoIc3);
	
	// ejemplo - Indexado en 0 
	Interfaz i1 = dcnet.IesimaInterfazDe(c1, 0); 
	Interfaz i2 = dcnet.IesimaInterfazDe(c2, 2);
	
	dcnet.Conectar(c1, i1, c2, i2);
	dcnet.CrearPaquete(c1, c2, 3);
	dcnet.AvanzarSegundo();	

	ASSERT_EQ(dcnet.laQueMasEnvio(), c1);
		
}
コード例 #6
0
ファイル: testcatedra.cpp プロジェクト: FerFrassia/algo2tp3
void test_respeta_priodades() {
	Driver dcnet;
	Computadora c1 = "skynet";
	Computadora c2 = "sky";

	Interfaz i1 = 1;
	Interfaz i2 = 2;

	Conj<Interfaz> conjIc1;
	Conj<Interfaz> conjIc2;

	conjIc1.Agregar(i1);
	
	conjIc2.Agregar(i2);
	
	dcnet.AgregarComputadora(c1,conjIc1);
	dcnet.AgregarComputadora(c2,conjIc2);
	
	dcnet.Conectar(c1, i1,c2, i2);	

	dcnet.CrearPaquete(c1,c2,2);
	dcnet.CrearPaquete(c1,c2,1);
	dcnet.CrearPaquete(c1,c2,3);

	ASSERT_EQ(dcnet.CantidadEnEsperaEn(c1), 3);

	dcnet.AvanzarSegundo();
	
	ASSERT_EQ(dcnet.CantidadEnEsperaEn(c1), 2);
	ASSERT_EQ(dcnet.CantidadEnviadosPor(c1), 1);

	bool respetaPrioridad = true;
	for (int i =0; i < dcnet.CantidadEnEsperaEn(c1) ; i++) { 
		Nat pr = dcnet.prioridad(dcnet.IesimoEnEsperaEn(c1, i));
		//std::cout << dcnet.prioridad(dcnet.IesimoEnEsperaEn(c1, i)) << "\n";
		if (pr == 1) {
			respetaPrioridad = false;
		}
	}

	ASSERT_EQ(respetaPrioridad, true);

}
コード例 #7
0
ファイル: testcatedra.cpp プロジェクト: FerFrassia/algo2tp3
void test_recorrido_complejo() {
	Driver dcnet;
	Computadora c1 = "skynet";
	Computadora c2 = "terminator";
	Computadora c3 = "connor";
	Computadora c4 = "sky";
	Computadora c5 = "sarah";

	Interfaz i1 = 1;
	Interfaz i2 = 2;
	Interfaz i3 = 3;
	Interfaz i4 = 4;
	Interfaz i5 = 5;
	Interfaz i6 = 6;
	Interfaz i7 = 7;
	Interfaz i8 = 8;
	Interfaz i9 = 9;
	Interfaz i10 = 10;
	Interfaz i11 = 11;
	Interfaz i12 = 12;
	
	Conj<Interfaz> conjIc1;
	Conj<Interfaz> conjIc2;
	Conj<Interfaz> conjIc3;
	Conj<Interfaz> conjIc4;
	Conj<Interfaz> conjIc5;

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

	conjIc4.Agregar(i8);
	conjIc4.Agregar(i9);
	conjIc4.Agregar(i10);

	conjIc5.Agregar(i11);
	conjIc5.Agregar(i12);

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

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

	dcnet.Conectar(c3, i6,c4, i9);
	dcnet.Conectar(c3, i7,c5, i11);

	dcnet.Conectar(c4, i10,c5, i12);

	dcnet.CrearPaquete(c1,c5,1);
	Nat paq = dcnet.IesimoEnEsperaEn(c1,0);
	
	dcnet.AvanzarSegundo();

	ASSERT_EQ(dcnet.CantidadNodosRecorridosPor(paq),2);
	ASSERT(dcnet.IesimoNodoRecorridoPor(paq,0) == c1);
	ASSERT(dcnet.IesimoNodoRecorridoPor(paq,1) == c3);
}
コード例 #8
0
ファイル: testcatedra.cpp プロジェクト: FerFrassia/algo2tp3
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 );

}