Please send questions to
st10@humboldt.edu .
//---------------------------------------------------------------
// File: test_bst.cpp
// Name: Sharon M. Tuttle
// last modified: 3-31-05
//
// Purpose: tester for template class bst<Item>
//--------------------------------------------------------------
#include <iostream>
#include "bst.h"
using namespace std;
int main()
{
// set-up declarations
bst<int> numTree;
bst<string> nameTree;
string names[] = {"Sharon", "Katherine", "Thomas", "George"};
char dummy;
// tests and associated cout's
cout << endl;
cout << "Testing template class bst..." << endl;
cout << endl;
nameTree.add(names[0]);
nameTree.add(names[1]);
nameTree.add(names[2]);
cout << "SHOULD see Katherine, then Sharon, then Thomas, " << endl;
cout << " each on its own line: " << endl;
cout << "-----------------------------------------------" << endl;
nameTree.print_inorder();
cout << endl;
cout << "1's mean test passed, 0's mean test failed:" << endl;
cout << "-------------------------------------------" << endl;
cout << (numTree.get_size( ) == 0) << endl;
cout << (nameTree.get_size( ) == 3) << endl;
cout << endl;
cout << (numTree.is_empty( ) == true) << endl;
cout << (nameTree.is_empty( ) == false) << endl;
cout << endl;
cout << (nameTree.contains(names[0]) == true) << endl;
cout << (nameTree.contains(names[1]) == true) << endl;
cout << (nameTree.contains(names[2]) == true) << endl;
cout << (nameTree.contains(names[3]) == false) << endl;
numTree.add(5);
cout << endl;
cout << (numTree.get_size( ) == 1) << endl;
cout << (numTree.is_empty( ) == false) << endl;
cout << (numTree.contains(5) == true) << endl;
cout << (numTree.contains(3) == false) << endl;
numTree.add(13);
cout << endl;
cout << (numTree.get_size( ) == 2) << endl;
cout << (numTree.is_empty( ) == false) << endl;
cout << (numTree.contains(13) == true) << endl;
cout << (numTree.contains(3) == false) << endl;
numTree.add(20);
cout << endl;
cout << (numTree.get_size( ) == 3) << endl;
cout << (numTree.is_empty( ) == false) << endl;
cout << (numTree.contains(20) == true) << endl;
// try to add 13 again --- tree should be unchanged
numTree.add(13);
cout << endl;
cout << (numTree.get_size( ) == 3) << endl;
cout << (numTree.is_empty( ) == false) << endl;
cout << (numTree.contains(13) == true) << endl;
numTree.add(21);
numTree.add(17);
numTree.add(25);
numTree.add(3);
numTree.add(1);
numTree.add(4);
numTree.add(7);
numTree.add(6);
numTree.add(9);
cout << endl;
cout << (numTree.get_size( ) == 12) << endl;
cout << (numTree.is_empty( ) == false) << endl;
cout << (numTree.contains(6) == true) << endl;
cout << (numTree.contains(100) == false) << endl;
cout << endl;
cout << "Should see, 1 per line: 1 3 4 5 6 7 9 13 17 20 21 25" << endl;
cout << "----------------------------------------------------" << endl;
numTree.print_inorder();
bst<int> numTree2, numTree3;
numTree2.add(100);
numTree2.add(50);
numTree2.add(150);
cout << endl;
cout << (numTree2.get_size( ) == 3) << endl;
numTree3.add(200);
numTree3.add(201);
numTree3.add(202);
numTree3.add(3);
cout << (numTree3.get_size( ) == 4) << endl;
numTree3 = numTree2;
cout << endl;
cout << (numTree2.get_size( ) == 3) << endl;
cout << (numTree3.get_size( ) == 3) << endl;
cout << "Should see 50, 100, 150, each on own line, TWICE: " << endl;
numTree2.print_inorder();
cout << endl;
numTree3.print_inorder();
cout << "SHOULD be finished!" << endl;
return EXIT_SUCCESS;
}