예제 #1
0
void test_el_mas_infractor_e_inspeccion() {
    Conj<Estacion> es;
    es.Agregar("Belgrano");
    es.Agregar("Retiro");
    Driver d(es);
    d.AgregarSenda("Belgrano","Retiro","ca");

    Conj<Caracteristica> cs1;
    cs1.Agregar("cb");
    d.Entrar(cs1,"Belgrano");
    d.Entrar(cs1,"Belgrano");
    d.Entrar(cs1,"Belgrano");
    d.Entrar(cs1,"Retiro");
    ASSERT_EQ(d.CantidadRobotsActivos(),4);
    d.Mover(0, "Retiro");
    d.Mover(1, "Retiro");
    d.Mover(2, "Retiro");
    d.Mover(0, "Belgrano");
    d.Mover(1, "Belgrano");

    Conj<RUR> peores; // {0,1} con 2 infracciones
    peores.Agregar(0);
    peores.Agregar(1);

    d.Inspeccion("Retiro"); // No debe volar a ninguno de los mas infractores
    ASSERT(peores.Pertenece(d.ElMasInfractor()));

    infoRobots info = getDatosRobotsActivos(d);
    ASSERT(info.caracteristicas.Definido(0) && info.caracteristicas.Definido(1));

    d.Inspeccion("Belgrano"); // Debe volar a uno de los dos mas infractores
    ASSERT(peores.Pertenece(d.ElMasInfractor()));
    info = getDatosRobotsActivos(d);
    ASSERT(!(info.caracteristicas.Definido(0) && info.caracteristicas.Definido(1)));
}
예제 #2
0
void test_el_mas_infractor() {
    Conj<Estacion> es;
    es.Agregar("Belgrano");
    es.Agregar("Retiro");
    Driver d(es);
    d.AgregarSenda("Belgrano","Retiro","ca");

    Conj<Caracteristica> cs1;
    cs1.Agregar("cb");
    d.Entrar(cs1,"Belgrano");
    d.Entrar(cs1,"Belgrano");
    d.Entrar(cs1,"Belgrano");
    d.Entrar(cs1,"Retiro");
    ASSERT_EQ(d.CantidadRobotsActivos(),4);
    d.Mover(0, "Retiro");
    d.Mover(1, "Retiro");
    d.Mover(2, "Retiro");
    d.Mover(0, "Belgrano");
    d.Mover(1, "Belgrano");

    Conj<RUR> peores; // {0,1} con 2 infracciones
    peores.Agregar(0);
    peores.Agregar(1);

    ASSERT(peores.Pertenece(d.ElMasInfractor()));

    d.Mover(0,"Retiro"); // Ahora el RUR 0 es el más infractor
    ASSERT_EQ(d.ElMasInfractor(),0);
}