Main   Namespaces   Classes   Hierarchy   Annotated   Files   Compound   Global   Pages  

HashMapTest.cpp

Go to the documentation of this file.
00001 //---------------------------------------------------------------------------
00002 /** @file HashMapTest.cpp
00003  */
00004 //---------------------------------------------------------------------------
00005 
00006 #include <boost/test/auto_unit_test.hpp>
00007 
00008 #include "HashMap.hpp"
00009 
00010 using namespace benzene;
00011 
00012 //---------------------------------------------------------------------------
00013 
00014 namespace {
00015 
00016 BOOST_AUTO_TEST_CASE(HashMap_AllTests)
00017 {
00018     int data = 0;
00019     HashMap<int> hm(5);
00020 
00021     // check size()
00022     BOOST_CHECK_EQUAL(hm.size(), 32u);
00023     BOOST_CHECK_EQUAL(hm.count(), 0u);
00024 
00025     // table is empty, so get better fail!
00026     BOOST_CHECK(!hm.get(1, data));
00027 
00028     // check put()/get()
00029     hm.put(1, 5);
00030     BOOST_CHECK(hm.get(1, data));
00031     BOOST_CHECK_EQUAL(data, 5);
00032     BOOST_CHECK(!hm.get(2, data));
00033     BOOST_CHECK_EQUAL(hm.count(), 1u);
00034 
00035     // check collision will not clobber values (33 = 1 mod 32)
00036     hm.put(33, 11);
00037     BOOST_CHECK(hm.get(1, data));
00038     BOOST_CHECK_EQUAL(data, 5);
00039     BOOST_CHECK(hm.get(33, data));
00040     BOOST_CHECK_EQUAL(data, 11);
00041     BOOST_CHECK_EQUAL(hm.count(), 2u);
00042 
00043     HashMap<int> mm(5);
00044     mm = hm;
00045     BOOST_CHECK(mm.get(1, data));
00046     BOOST_CHECK_EQUAL(data, 5);
00047     BOOST_CHECK(mm.get(33, data));
00048     BOOST_CHECK_EQUAL(data, 11);
00049     BOOST_CHECK_EQUAL(mm.count(), 2u);
00050 
00051     HashMap<int> blah(mm);
00052     BOOST_CHECK(blah.get(1, data));
00053     BOOST_CHECK_EQUAL(data, 5);
00054     BOOST_CHECK(blah.get(33, data));
00055     BOOST_CHECK_EQUAL(data, 11);
00056     BOOST_CHECK_EQUAL(blah.count(), 2u);
00057     
00058 }
00059 
00060 }
00061 
00062 //---------------------------------------------------------------------------


6 Jan 2011 Doxygen 1.6.3