Testing BitVector
/* fbitvect.cpp
testing BitVector
*/
#include <xbitvect.cpp>
void display_menu(unsigned int size);
int main()
{
char selection;
unsigned int size, index;
std::cout << "Welcome to fbitvect. Enter size of BitVector: ";
std::cin >> size;
fsu::BitVector * bvptr = new fsu::BitVector (size);
display_menu(size);
do
{
std::cout << " Enter [op][index] (m for menu, x to exit): ";
std::cin >> selection;
switch(selection)
{
case 'S':
bvptr->Set();
break;
case 'U':
bvptr->Unset();
break;
case 'F':
bvptr->Flip();
break;
case 's':
std::cin >> index;
bvptr->Set(index);
break;
case 'u':
std::cin >> index;
bvptr->Unset(index);
break;
case 'f':
std::cin >> index;
bvptr->Flip(index);
break;
case 't': case 'T':
std::cin >> index;
std::cout << " v[" << index << "] == ";
if (bvptr->Test(index))
std::cout << "1\n";
else
std::cout << "0\n";
break;
case 'd': case 'D':
std::cout << " v == " << *bvptr << '\n';
break;
case 'm': case 'M':
display_menu(size);
break;
case 'x': case 'X':
break;
default:
std::cout << " command not found\n";
}
}
while (selection != 'x' && selection != 'X');
delete bvptr;
std::cout << "Thank you for testing BitVector\n";
return 0;
}
void display_menu(unsigned int size)
{
std::cout << " BitVector (" << size << ") v;\n"
<< " operation entry\n"
<< " --------- -----\n"
<< " v.Set () ...................... S\n"
<< " v.Set (index) ................. s\n"
<< " v.Unset () ...................... U\n"
<< " v.Unset (index) ................. u\n"
<< " v.Flip () ...................... F\n"
<< " v.Flip (index) ................. f\n"
<< " v.Test (index) ................. t\n"
<< " cout << v ................................ d\n"
<< " display this Menu ........................ m\n"
<< " eXit program ............................. x\n";
}