Exemple #1
0
void OperatorIgualIgualFunciona() {
	Anillo<int> a = Anillo<int>();
	a.agregar(1);
	a.agregar(2);
	a.marcar();
	a.agregar(2);
	a.agregar(3);

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

	ASSERT(a == b);
}
Exemple #2
0
void AnilloUnitarioMarcadoPorCopiaQuedaIgual() {
	Anillo<int>* a = new Anillo<int>();
	a->agregar(1);
	a->marcar();

	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());

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

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

	delete a;
	delete b;
}
Exemple #3
0
void AnilloRetrocedeCorrectamente() {
	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]");

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

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

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

	delete a;
}
Exemple #4
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;
}
Exemple #5
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;
}
Exemple #6
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;
}