code:
// Test of an array implementation of the OrderedList class
#include <cassert>
#include <cstring>
#include <iostream>
#include "OrderedList.h"
using namespace std;
void main ()
{
Info infos[] =
{
{ "Jones", "John", 40000 },
{ "Smith", "Sam", 45000 },
{ "Tremblay", "Tina", 50000 },
{ "Nguyen", "Jean", 55000 },
};
OrderedList list;
assert( list.IsEmpty() );
assert( ! list.IsFull() );
assert( list.Insert( 13, infos[0] ) );
assert( ! list.IsEmpty() );
assert( ! list.Insert( 13, infos[1] ) );
assert( list.Size() == 1 );
assert( ! list.Delete( 10 ) );
assert( list.Delete( 13 ) );
assert( list.IsEmpty() );
assert( list.Insert( 13, infos[0] ) );
assert( list.Insert( 9, infos[1] ) );
assert( list.Insert( 11, infos[2] ) );
assert( list.Insert( 15, infos[3] ) );
int key;
Info info;
assert( ! list.Search( 7, info ) );
assert( list.Search( 9, info ) );
assert( strcmp(info.firstname, infos[1].firstname) == 0 );
assert( ! list.Search( 12, info ) );
assert( list.Search( 13, info ) );
assert( strcmp(info.firstname, infos[0].firstname) == 0 );
assert( list.Search( 15, info ) );
assert( strcmp(info.firstname, infos[3].firstname) == 0 );
assert( ! list.Search( 17, info ) );
list.Reset();
list.Advance( key, info );
assert( key == 9 );
assert( strcmp(info.firstname, infos[1].firstname) == 0 );
list.Advance( key, info );
assert( key == 11 );
assert( strcmp(info.firstname, infos[2].firstname) == 0 );
list.Advance( key, info );
assert( key == 13 );
assert( strcmp(info.firstname, infos[0].firstname) == 0 );
list.Advance( key, info );
assert( key == 15 );
assert( strcmp(info.firstname, infos[3].firstname) == 0 );
assert( ! list.Delete( 7 ) );
assert( list.Delete( 9 ) );
assert( ! list.Delete( 12 ) );
assert( list.Delete( 13 ) );
assert( list.Delete( 15 ) );
assert( ! list.Delete( 17 ) );
assert( list.Size() == 1 );
list.Reset();
list.Advance( key, info );
assert( key == 11 );
assert( strcmp(info.firstname, infos[2].firstname) == 0 );
assert( list.Delete( 11 ) );
assert( list.IsEmpty() );
assert( ! list.Search( 1, info ) );
assert( list.Insert( 1, info ) );
assert( ! list.Search( 0, info ) );
assert( list.Search( 1, info ) );
assert( ! list.Search( 2, info ) );
assert( list.Insert( 3, info ) );
assert( ! list.Search( 0, info ) );
assert( list.Search( 1, info ) );
assert( ! list.Search( 2, info ) );
assert( list.Search( 3, info ) );
assert( ! list.Search( 4, info ) );
assert( list.Insert( 5, info ) );
assert( ! list.Search( 0, info ) );
assert( list.Search( 1, info ) );
assert( ! list.Search( 2, info ) );
assert( list.Search( 3, info ) );
assert( ! list.Search( 4, info ) );
assert( list.Search( 5, info ) );
assert( ! list.Search( 6, info ) );
{
OrderedList list;
Info info = { "", 0, 0 };
for ( int i = 0; i < MAX_SIZE_ORDERED_LIST - 1; i++ ) {
assert( list.Insert( i, info ) );
}
assert( ! list.IsFull() );
assert( list.Insert( MAX_SIZE_ORDERED_LIST - 1, info ) );
assert ( list.IsFull() );
}
{
OrderedList list;
Info info = { "", 0, 0 };
int key ;
assert( list.Insert( 20, info ) );
assert( list.Insert( 22, info ) );
assert( list.Insert( 24, info ) );
assert( list.Insert( 19, info ) );
assert( list.Insert( 21, info ) );
assert( list.Insert( 23, info ) );
assert( list.Insert( 25, info ) );
list.Reset();
for ( int i = 19; i < 26; i++ ) {
list.Advance( key , info );
assert( key == i );
}
}
cout << "Completed test Ordered List." << endl;
char dummy;
cin >> dummy;
}