Ejemplo n.º 1
0
void AnilloPuedeRotarVariasVeces() {
	Anillo<int>* a = new Anillo<int>();
	a->agregar(1);
	a->agregar(2);
	a->agregar(3);
	ASSERT_EQ(a->siguiente(), 3);
	ASSERT_EQ(a->siguiente(), 2);
	ASSERT_EQ(a->siguiente(), 1);
	ASSERT_EQ(a->siguiente(), 3);
	ASSERT_EQ(a->siguiente(), 2);
	ASSERT_EQ(a->siguiente(), 1);
	delete a;
}
Ejemplo n.º 2
0
void CompararAnilloDeAnillo() {
	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);

	Anillo<Anillo<int> >* copia = new Anillo<Anillo<int> > (*a);

	ASSERT_EQ(*copia,*a);

	ASSERT_EQ(to_s(copia), to_s(a));

	delete c;
	delete b;
	delete a;
	delete copia;
}
Ejemplo n.º 3
0
void AnilloUnitarioDaSiguiente() {
	Anillo<int>* a = new Anillo<int>();
	a->agregar(42);
	ASSERT(!a->esVacio());
	ASSERT_EQ(a->tamanio(), 1);
	ASSERT_EQ(a->siguiente(), 42);
	delete a;
}
Ejemplo n.º 4
0
void AnilloUnitarioSinMarcarPorCopiaQuedaIgual() {
	Anillo<int>* a = new Anillo<int>();
	a->agregar(1);

	Anillo<int>* b = new Anillo<int>(*a);

	ASSERT_EQ(b->tamanio(), a->tamanio());
	ASSERT_EQ(b->hayMarcado(), a->hayMarcado());

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

	ASSERT_EQ(to_s(b), to_s(a));

	delete a;
	delete b;
}
Ejemplo n.º 5
0
void AnilloVacioPorCopiaQuedaIgual() {
	Anillo<int>* a = new Anillo<int>();
	Anillo<int>* b = new Anillo<int>(*a);

	ASSERT_EQ(b->tamanio(), a->tamanio());
	ASSERT_EQ(b->hayMarcado(), a->hayMarcado());

	for(int i = 0; i < a->tamanio(); i++) {
		ASSERT_EQ(b->actual(), a->actual());
		ASSERT_EQ(b->siguiente(), a->siguiente());
	}

	ASSERT_EQ(to_s(b), to_s(a));

	delete a;
	delete b;
}
Ejemplo n.º 6
0
void MostrarAnilloDeInt() {
	Anillo<int>* a = new Anillo<int>();
	a->agregar(1);
	a->agregar(2);
	a->agregar(3);
	ASSERT_EQ(a->siguiente(), 3);
	ASSERT_STR_EQ(to_s(a), "[2, 1, 3*]");
	delete a;
}
Ejemplo n.º 7
0
void AnilloAvanzaCorrectamente() {
	Anillo<int> *a = new Anillo<int>();
	a->agregar(1);
	a->agregar(2);
	a->marcar();
	a->agregar(3);
	ASSERT_EQ(to_s(a), "[3, 2*, 1]");

	ASSERT_EQ(1, a->siguiente());
	ASSERT_EQ(to_s(a), "[1, 3, 2*]");

	ASSERT_EQ(2, a->siguiente());
	ASSERT_EQ(to_s(a), "[2*, 1, 3]");

	ASSERT_EQ(3, a->siguiente());
	ASSERT_EQ(to_s(a), "[3, 2*, 1]");

	delete a;
}
Ejemplo n.º 8
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;
}
Ejemplo n.º 9
0
void MostrarAnilloDeAnillo() {
	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);
	a->siguiente();

	ASSERT_EQ(to_s(a), "[[22, 11], [22, 11], [33, 11, 22*]*]");

	delete c;
	delete b;
	delete a;
}
Ejemplo n.º 10
0
void AnilloConElementosPorCopiaQuedaIgual() {
	Anillo<int>* a = new Anillo<int>();
	a->agregar(1);
	a->agregar(2);
	a->marcar();
	a->agregar(2);
	a->agregar(3);

	Anillo<int>* b = new Anillo<int>(*a);

	ASSERT_EQ(b->tamanio(), a->tamanio());
	ASSERT_EQ(b->hayMarcado(), a->hayMarcado());
	ASSERT_EQ(b->marcado(), a->marcado());

	for(int i = 0; i < a->tamanio(); i++) {
		ASSERT_EQ(b->actual(), a->actual());
		ASSERT_EQ(b->siguiente(), a->siguiente());
	}

	ASSERT_EQ(to_s(b), to_s(a));

	delete a;
	delete b;
}