/
ScryMUD/mud/
ScryMUD/mud/grrmud/Boards/
ScryMUD/mud/grrmud/Help/
ScryMUD/mud/grrmud/Pfiles/
ScryMUD/mud/grrmud/PlayerSacks/
ScryMUD/mud/grrmud/PlayerShops/
ScryMUD/mud/grrmud/help_filter/
ScryMUD/mud/hegemon/
ScryMUD/mud/hegemon/data/
ScryMUD/mud/hegemon/data/help/battle/
ScryMUD/mud/hegemon/data/help/client/
ScryMUD/mud/hegemon/data/help/communications/
ScryMUD/mud/hegemon/data/help/skills/
ScryMUD/mud/hegemon/data/help/spells/
ScryMUD/mud/include/
ScryMUD/mud/lib/
ScryMUD/mud/lib/bitfield/
ScryMUD/mud/lib/log/
ScryMUD/mud/lib/string2/
// $Id: btester.cc,v 1.2 1999/06/05 23:29:16 greear Exp $
// $Revision: 1.2 $  $Author: greear $ $Date: 1999/06/05 23:29:16 $

//
//ScryMUD Server Code
//Copyright (C) 1998  Ben Greear
//
//This program is free software; you can redistribute it and/or
//modify it under the terms of the GNU General Public License
//as published by the Free Software Foundation; either version 2
//of the License, or (at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
//
// To contact the Author, Ben Greear:  greear@cyberhighway.net, (preferred)
//                                     greearb@agcs.com
//

///**************************  tester.cc  **************************///

#include "bitfield.h"
#include <iostream.h>





void log(const char* msg) {
   cout << "LOG:  " << msg << endl;
}//log


main() {
   cout << "Sizeof int:  " << sizeof(unsigned int) << endl;
   cout << "Sizeof short:  " << sizeof(unsigned short) << endl;
   cout << "Sizeof long:  "  << sizeof(unsigned long) << endl;
   cout << "Sizeof long long:  " << sizeof(unsigned long long) << endl;

   bitfield bit1;
   bitfield bit2(13);
   bitfield bit3(75);
   bitfield bit4(bit2);

   cout << "Bitstreams 1 - 4, should be all zero's.\n";
   bit1.print();
   bit2.print();
   bit3.print();
   bit4.print();

   bit2.turn_on(1);
   bit2.turn_on(3);
   bit2.turn_on(6);
   cout << "\nShould have 1,3,6 bit turned on.\n";
   bit2.print();

   bit2.turn_off(3);
   bit2.turn_on(0);
   cout << "\nSHould have 0, 1, 6 bit turned on.\n";
   bit2.print();
   bit2.flip(0);
   cout << "\n0 should have been flipped, back to 0\n";
   bit2.print();

   bit2.flip_all();
   cout << "Only 1, 6 should be turned off.\n";
   bit2.print();
   bit2.on_all();
   cout << "\nShould be all 1's\n";
   bit2.print();
   bit2.off_all();
   cout << "\n should be all 0's\n";
   bit2.print();
   cout << "flag 1:  " << bit2.get(1) << endl;
   cout << "flag 31:  " << bit2.get(31) << endl;
   cout << "\n Should be all zero's.\n";
   bit2.print();
   cout << "\nShould be 1:  " << bit2.is_zero() << endl;
   bit2.turn_on(11);
   cout << "\nShould be 0: " << bit2.is_zero() << endl;

   cout << "Bit2:  ";
   bit2.print();
   bit4.turn_on(21);
   cout << "\nBit4:  ";
   bit4.print();
   bit2 = bit4;
   cout << "\nBoth should have 1 in 21 position..\n";
   bit2.print();
   bit4.print();
   cout << "\nShould be 1:  " << (bit2 == bit4) << endl;
   cout << "\nShould be 0:  " << (bit2 != bit4) << endl;
   
   bit2.off_all();
   bit4.on_all();
   bit2.flip(20);
   bit2 &= bit4;
   cout << "\nShould be only 1 in 20 position.\n";
   bit2.print();

   bit2.off_all();
   bit4.on_all();
   bit4.flip(20);
   bit2 |= bit4;
   cout << "\nShould be only 0 in 20 position.\n";
   bit2.print();

   bit2.off_all();
   bit4.on_all();
   bit2.flip(20);
   cout << "\nShould be 1 in 20 position only.\n";
   bitfield tmp = bit2 & bit4;
   tmp.print();
   bit2.print();

   bit2.off_all();
   bit4.on_all();
   bit4.flip(20);
   cout << "\nShould be 0 in 20 position only.\n";
   (bit2 | bit4).print();
   bit2.print();
    
   
   bit3.off_all();
   bit3.print();
   bit3.on_all();
   bit3.print();
   bit3.flip(72);
   bit3.turn_off(8);
   bit3.flip(95);
   bit3.flip(94);
   bit3.print();
}//main