Example #1
0
void AnilloDeAnilloPuedenCrearseYUsarse() {
	Anillo<Anillo<int> >* a = new Anillo<Anillo<int> >;

	Anillo<int>* b = new Anillo<int>;
	b->agregar(11);
	b->agregar(22);

	a->agregar(*b);
	a->agregar(*b);

	Anillo<int>* c = new Anillo<int> (*b);
	c->siguiente();
	c->agregar(33);
	a->agregar(*c);

	ASSERT_EQ(a->siguiente(), *c);
	ASSERT_EQ(a->siguiente(), *b);
	ASSERT_EQ(a->siguiente(), *b);

	a->eliminar(*c);

	ASSERT_EQ(a->siguiente(), *b);

	delete c;
	delete b;

	Anillo<int> *k = new Anillo<int>(a->siguiente());
	ASSERT_EQ(k->siguiente(), 22);

	delete k;
	delete a;
}
Example #2
0
void AnilloUnitarioAlEliminarQuedaVacio() {
	Anillo<int>* a = new Anillo<int>();
	ASSERT(a->esVacio());
	ASSERT_EQ(a->tamanio(), 0);
    a->agregar(42);
	ASSERT(!a->esVacio());
	ASSERT_EQ(a->tamanio(), 1);
    a->eliminar(42);
	ASSERT(a->esVacio());
	ASSERT_EQ(a->tamanio(), 0);
	delete a;
}
Example #3
0
void AnilloEliminaCorrectamente() {
	Anillo<int>* a = new Anillo<int>();
	a->agregar(1);
	a->agregar(2);
	a->agregar(3);
	a->agregar(3);
	a->marcar();
	a->agregar(4);
	a->agregar(5);

	ASSERT(a->hayMarcado());
	ASSERT_EQ(to_s(a), "[5, 4, 3*, 3, 2, 1]");

	a->eliminar(2);
	ASSERT(a->hayMarcado());
	ASSERT_EQ(to_s(a), "[5, 4, 3*, 3, 1]");

	a->eliminar(a->actual());
	ASSERT(a->hayMarcado());
	ASSERT_EQ(to_s(a), "[1, 4, 3*, 3]");

	a->eliminar(3);
	ASSERT(a->hayMarcado());
	ASSERT_EQ(to_s(a), "[1, 4, 3*]");

	a->eliminar(3);
	ASSERT(!a->hayMarcado());
	ASSERT_EQ(to_s(a), "[1, 4]");

	a->eliminar(4);
	ASSERT(!a->hayMarcado());
	ASSERT_EQ(to_s(a), "[1]");

	a->eliminar(1);
	ASSERT(!a->hayMarcado());
	ASSERT_EQ(to_s(a), "[]");

	ASSERT(a->esVacio());
	delete a;
}