예제 #1
0
void campus_esOcupada() {
	Campus c (10, 15);
	Posicion p1 (7, 7);
	ASSERT_EQ(c.EsOcupada(p1), false);
	Posicion p2 (7, 8);
	ASSERT_EQ(c.EsOcupada(p2), false);
	Posicion p3 (0, 0);
	ASSERT_EQ(c.EsOcupada(p3), false);
	Posicion p4 (9, 14);
	ASSERT_EQ(c.EsOcupada(p4), false);
}
예제 #2
0
void campus_constructorFilaColumna() {
	Campus c (10, 15);
	//sólo revisa que algunas posiciones aleatorias de la matriz hayan iniciado vacias
	Posicion p1 (7, 7);
	ASSERT_EQ(c.EsOcupada(p1), false);
	Posicion p2 (7, 8);
	ASSERT_EQ(c.EsOcupada(p2), false);
	Posicion p3 (0, 0);
	ASSERT_EQ(c.EsOcupada(p3), false);
	Posicion p4 (9, 14);
	ASSERT_EQ(c.EsOcupada(p4), false);
}
예제 #3
0
bool Campus::operator==(Campus &otro) {
    bool filaColumna =  Filas() == otro.Filas() && Columnas() == otro.Columnas();

    if (filaColumna) {
        for (int c = 0; c < Columnas(); ++c) {
            for (int f = 0; f < Filas(); ++f) {
                if (Ocupada(Posicion(c, f)) != otro.Ocupada(Posicion(c, f))) {
                    return false;
                }
            }
        }
        return true;
    } else {
        return false;
    }
}
예제 #4
0
void test_pos_valida() {
	Campus c =randsinobs();
	Campus d =c;
	bool proas= (c==d);
	Posicion p;
	p.x=rand()%(c.ancho())+(c.ancho())+1;
	p.y=rand()%(c.alto())+(c.alto())+1;
	proas=c.posValida(p);
	ASSERT(!proas);
	p.x=rand()%(c.ancho());
	p.y=rand()%(c.alto());
	proas=c.posValida(p);
	ASSERT(proas);
}
예제 #5
0
void campus_agregarObstaculo() {
	Campus c (10, 15);
	//sólo revisa que una vez agregado el obstáculo esa posición ya no se encuentre vacia
	Posicion p1 (7, 7);
	c.AgregarObstaculo(p1);
	ASSERT_EQ(c.EsOcupada(p1), true);
	Posicion p2 (7, 8);
	c.AgregarObstaculo(p2);
	ASSERT_EQ(c.EsOcupada(p2), true);
	Posicion p3 (0, 0);
	c.AgregarObstaculo(p3);
	ASSERT_EQ(c.EsOcupada(p3), true);
	Posicion p4 (9, 14);
	c.AgregarObstaculo(p4);
	ASSERT_EQ(c.EsOcupada(p4), true);
}
예제 #6
0
void test_igualdad() {
	Campus c =randsinobs();
	Campus d =c;
	bool proas= (c==d);
	ASSERT(proas);
	Posicion p;
	p.x=rand()%(c.ancho());
	p.y=rand()%(c.alto());
	c.agregarObs(p);
	proas= (c==d);
	ASSERT(!proas);
	d.agregarObs(p);
	proas= (c==d);
	ASSERT(proas);
}
예제 #7
0
void campus_columnas() {
	Campus c (10, 15);
	ASSERT_EQ(c.Columnas(), 10);
}
예제 #8
0
void campus_filas() {
	Campus c (10, 15);
	ASSERT_EQ(c.Filas(), 15);
}
예제 #9
0
int _tmain(int argc, _TCHAR* argv[])
{
	{
		cout << "sizeof Point:" << sizeof(Point) << endl;
		Point p1;
		PointInit(&p1, 0, 0);
		Point p2;
		PointInit(&p2, 7, 8);
		PointDraw(&p1);
		PointDraw(&p2);
	}

	cout << "====" << endl;
	{
		cout << "sizeof CPoint:" << sizeof(CPoint) << endl;
		CPoint p0;
		p0.Draw();
		CPoint p1(0, 0);
		CPoint p2(7, 8);
		cout << &p1 << endl;
		p1.Draw();
		cout << &p2 << endl;
		p2.Draw();
		auto p = new CPoint(1, 2);
		p->Draw();
		delete p; p = nullptr;
	}

	{
		CStudent s1;
		cout << "'" << s1.GetName() << "'" << endl;
	}
	cout << "====" << endl;
	{
		auto s = std::make_shared<CStudent>();

		cout << "----" << endl;
		std::shared_ptr<CStudent> s1(new CStudent());
		auto s1copy = s1;
		s1 = nullptr;
		cout << "----" << endl;
	}
	cout << "====" << endl;
	{
		weak_ptr<CStudent> weakSergey;
		shared_ptr<CStudent> oneMoreSergey;
		{
			shared_ptr<CStudent> sergey;
			{
				Campus c;
				sergey = c.GetSergey();
			}
			cout << "Sergey is still alive" << endl;
			weakSergey = sergey;
			oneMoreSergey = weakSergey.lock();
		}
		assert(weakSergey.lock());
		cout << "Sergey must die" << endl;
		oneMoreSergey.reset();
		cout << "Sergey should be dead here" << endl;
		assert(!weakSergey.lock());
	}
	return 0;
}