namespace UnitTests
{
TEST_CLASS(LinkedListStarterTests)
{
public:
TEST_METHOD(LinkedListDefaultConstructor)
{
CrtCheckMemory check;
try
{
LinkedList<int> list;
Assert::IsTrue(list.Empty());
Assert::IsNull(list.Head());
}
catch (AdtException AdtException)
{
Assert::Fail(AdtException.Message());
}
}
TEST_METHOD(LinkedListCopyConstructor)
{
CrtCheckMemory check;
try
{
LinkedList<int> aList;
aList.Append(5);
LinkedList<int> bList(aList);
Assert::IsFalse(bList.Empty());
Assert::AreEqual(5, bList.First());
}
catch (AdtException AdtException)
{
Assert::Fail(AdtException.Message());
}
}
TEST_METHOD(LinkedListAssignmentOperator)
{
CrtCheckMemory check;
try
{
LinkedList<size_t> aList;
LinkedList<size_t> bList;
size_t i;
size_t values[] = { 5, 15, 25, 35, 45 };
for (i = 0; i < 5; ++i)
{
aList.Append(values[i]);
}
bList = aList;
i = 0;
for (ListNode<size_t> * list_node = bList.Head(); list_node != nullptr; list_node = list_node->Next())
{
Assert::AreEqual(values[i++], list_node->Value());
}
}
catch (AdtException AdtException)
{
Assert::Fail(AdtException.Message());
}
}
TEST_METHOD(LinkedListAccessors)
{
CrtCheckMemory check;
try
{
LinkedList<int> aList;
int values[] = { 5, 15, 25, 35, 45 };
for (int i = 0; i < 5; ++i)
{
aList.Append(values[i]);
}
Assert::AreEqual(5, aList.Head()->Value());
Assert::AreEqual(45, aList.Tail()->Value());
}
catch (AdtException AdtException)
{
Assert::Fail(AdtException.Message());
}
}
TEST_METHOD(LinkedListAppend)
{
CrtCheckMemory check;
try
{
LinkedList<size_t> aList;
size_t i;
size_t values[] = { 5, 15, 25, 35, 45 };
for (i = 0; i < 5; ++i)
{
aList.Append(values[i]);
}
i = 0;
for (ListNode<size_t> * list_node = aList.Head(); list_node != nullptr; list_node = list_node->Next())
{
Assert::AreEqual(values[i++], list_node->Value());
}
}
catch (AdtException AdtException)
{
Assert::Fail(AdtException.Message());
}
}
TEST_METHOD(LinkedListFirstAndLast)
{
CrtCheckMemory check;
try
{
LinkedList<int> aList;
int values[] = { 5, 15, 25, 35, 45 };
for (int i = 0; i < 5; ++i)
{
aList.Append(values[i]);
}
Assert::AreEqual(5, aList.First());
}
catch (AdtException AdtException)
{
Assert::Fail(AdtException.Message());
}
}
TEST_METHOD(LinkedListPrepend)
{
CrtCheckMemory check;
try
{
LinkedList<size_t> aList;
size_t i;
size_t values[] = { 5, 15, 25, 35, 45 };
for (i = 0; i < 5; ++i)
{
aList.Prepend(values[i]);
}
i = 5;
for (ListNode ...