Esempio n. 1
0
void main()
{
	_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);

	// Tests Canonical Functions
	DoubleLinkedList<int> alist;			//ctor
	DoubleLinkedList<int> blist(alist);		//copy ctor
	DoubleLinkedList<int> clist;

	clist = blist;							//= operator

	// Tests Mutators
	std::cout << alist.getHead() << std::endl;
	std::cout << alist.getTail() << std::endl;

	// Tests Methods

	TestAppend(alist);
	TestFirstAndLast(alist);
	TestPrepend(alist);
	TestPurge(alist);
	TestInsertBefore();
	TestInsertAfter();
	TestExtract();

	std::cout << "\n********** List Integrity **********" << std::endl;
	alist.PrintForwards();
	alist.PrintBackwards();
}
Esempio n. 2
0
void main()
{
	// Tests Canonical Functions
	DoubleLinkedList<int> alist;			//ctor
	DoubleLinkedList<int> blist(alist);		//copy ctor
	DoubleLinkedList<int> clist;

	clist = blist;							//= operator

	// Tests Mutators
	std::cout << alist.getHead() << std::endl;
	std::cout << alist.getTail() << std::endl;

	// Tests Methods
	
	TestAppend(alist);
	TestFirstAndLast(alist);
	TestPrepend(alist);
	TestPurge(alist);
	TestInsertBefore();
	TestInsertAfter();
	TestExtract();

	std::cout << "\n********** List Integrity **********" << std::endl;
	alist.PrintForwards();
	alist.PrintBackwards();
	_asm nop;//added as a break point location;
}
Esempio n. 3
0
void main()
{
	// Tests Canonical Functions
	DoubleLinkedList<int> alist;			//ctor
	DoubleLinkedList<int> blist(alist);		//copy ctor
	DoubleLinkedList<int> clist;

	clist = blist;							//= operator

	// Tests Mutators
	std::cout << alist.getHead() << std::endl;
	std::cout << alist.getTail() << std::endl;

	// Tests Methods
	
	TestAppend(alist);
	TestFirstAndLast(alist);
	TestPrepend(alist);
	TestPurge(alist);
	TestInsertBefore();
	TestInsertAfter();
	TestExtract();

	std::cout << "\n********** List Integrity **********" << std::endl;
	alist.PrintForwards();
	alist.PrintBackwards();

	//The memory leak tool detects leaks because alist isn't being destroyed before it is called
	//by calling the destructor or the following line of code, the list is destroyed and
	//there are no leaks:
	//alist.Purge();
	_CrtDumpMemoryLeaks();
}
Esempio n. 4
0
int main()
{
    // Please put in every lab and assignment this term for ease of testing for memory leaks
    //_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
    
    cout << "\n********** Testing: DoubleLinkedList default ctor  **********\n";
    DoubleLinkedList<int> alist;			//ctor
    cout << "\n********** Testing: DoubleLinkedList copy ctor with empty list **********\n";
    DoubleLinkedList<int> blist(alist);		//copy ctor
    DoubleLinkedList<int> clist;
    
    cout << "\n********** Testing: DoubleLinkedList op = **********\n";
    clist = blist;							//= operator
    
    // Note that these functions are only available for testing.
    // Will be removed from the list before going into production.
    cout << "\n********** Testing: DoubleLinkedList getters  **********\n";
    std::cout << alist.getHead() << std::endl;
    std::cout << alist.getTail() << std::endl;
    
    //// Tests Methods
    TestAppend(alist);
    TestFirstAndLast(alist);
    TestPrepend(alist);
    
    std::cout << "\n********** Testing: DoubleLinkedList Copy ctor with Full List **********" << std::endl;
    TestPurge(alist);
    TestInsertBefore();
    TestInsertAfter();
    TestExtract();
    
    std::cout << "\n********** Testing: List Integrity **********" << std::endl;
    
    // Note these are also only for testing
    alist.PrintForwards();
    alist.PrintBackwards();
    
    // OK NOW MAKE SURE IT WORKS THE SAME FOR COMPLEX DATA TYPES
    // USE THE string CLASS
    
    // Please put in every lab and assignment this term for ease of testing for memory leaks
    system("pause");
    
    return 0;
}