Exemple #1
0
int main()
{
	List list = List();
	list.size();//=0, т.к. список пустой
	Circle circle = Circle(15, 10, 10);
	Circle circle2 = Circle(155, 105, 105);
	list.AddToHead(circle);
	list.size();//=1
	list.AddToTail(circle);
	list.size();//=2

	list.Empty();
	list.size();

	list.AddToHead(circle);
	list.size();//=1
	list.AddToTail(circle2);
	list.size();//=2
	list.AddToTail(circle);
	list.size();//=3
	//list.RemoveOne(circle);
	//list.Remove(circle);
	list.size();

	list.sort();
	list.size();

	//только распечатка списка
	std::cout << list;

	list.Empty();
	Circle c1 = Circle(10, 10, 10);
	Circle c2 = Circle(20, 20, 20);
	Circle c3 = Circle(30, 30, 30);
	Circle c4 = Circle(5, 10, 10);
	Circle c5 = Circle(6, 10, 10);
	list.AddToHead(c1);
	list.AddToHead(c2);
	list.AddToHead(c3);
	list.AddToHead(c4);
	list.AddToHead(c5);
	
	//запись содержимого списка в файл
	std::ofstream file("List.txt");
	file << list << std::endl;
	file.close();

	list.Empty();
	//чтение из файла 
	std::ifstream fcin;
	fcin.open("List.txt");
	fcin >> list;
	fcin.close();
	std::cout << list;

	return 0;
}
TEST(List, can_add_to_head) {
	List<int> list;
	list.AddToHead(2);
	EXPECT_EQ(1, list.GetLength());
	EXPECT_EQ(2,list.GetHead()->GetVar());
	EXPECT_EQ(NULL, list.GetHead()->GetNext());
}
TEST(List, can_delete) { //
	List<int> list;
	list.AddToHead(1);
	list.AddToHead(2);//2,1
	list.AddElementOrdered(3);
	ASSERT_NO_THROW(list.Delete());
}
TEST(List, can_find_element_by_index) {
	List<int> list;
	list.AddToHead(1);
	list.AddToTail(4);//1

	EXPECT_EQ(4, list.At(1)->GetVar());

}
TEST(List, can_add_to_tail) {
	List<int> list;
	list.AddToHead(1);
	list.AddToTail(4);
	EXPECT_EQ(2, list.GetLength());
	EXPECT_EQ(1, list.GetHead()->GetVar());
	EXPECT_EQ(4, list.GetHead()->GetNext()->GetVar());
}
TEST(List, can_add_element_at_head) {
	List<int> list;
	list.AddToHead(1);
	list.AddToTail(4);
	list.AddElement(2, 0);//2,1,4

	EXPECT_EQ(3, list.GetLength());
	EXPECT_EQ(2, list.At(0)->GetVar());
}
TEST(List, can_add_element_by_index) {
	List<int> list;
	list.AddToHead(1);
	list.AddToTail(4);
	list.AddElement(2,1);//1,2,4

	EXPECT_EQ(3, list.GetLength());
	EXPECT_EQ(2, list.At(1)->GetVar());
}
TEST(List, can_delete_first_element) {
	List<int> list;
	list.AddToHead(1);
	list.AddToTail(4);
	list.DeleteFirst();

	EXPECT_EQ(1, list.GetLength());
	EXPECT_EQ(4, list.GetHead()->GetVar());

}
TEST(List, can_delete_single_element)
{
	List<int> list;
	list.AddToHead(1);
	list.DeleteFirst();

	EXPECT_EQ(0, list.GetLength());
	EXPECT_EQ(NULL, list.GetHead());

}
TEST(List, can_add_element_orderly_first) { //
	List<int> list;
	list.AddToHead(1);
	list.AddToHead(2);//2,1

	list.AddElementOrdered(3);

	EXPECT_EQ(3, list.GetHead()->GetVar());
	EXPECT_EQ(2, list.GetHead()->GetNext()->GetVar());
	EXPECT_EQ(1, list.GetHead()->GetNext()->GetNext()->GetVar());
}