summaryrefslogtreecommitdiffstats
path: root/ml/dlib/dlib/test/static_map.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ml/dlib/dlib/test/static_map.cpp')
-rw-r--r--ml/dlib/dlib/test/static_map.cpp323
1 files changed, 0 insertions, 323 deletions
diff --git a/ml/dlib/dlib/test/static_map.cpp b/ml/dlib/dlib/test/static_map.cpp
deleted file mode 100644
index 931ae1fae..000000000
--- a/ml/dlib/dlib/test/static_map.cpp
+++ /dev/null
@@ -1,323 +0,0 @@
-// Copyright (C) 2005 Davis E. King (davis@dlib.net)
-// License: Boost Software License See LICENSE.txt for the full license.
-
-
-#include <sstream>
-#include <string>
-#include <cstdlib>
-#include <ctime>
-
-#include <dlib/hash_table.h>
-#include <dlib/binary_search_tree.h>
-
-#include <dlib/static_map.h>
-#include "tester.h"
-
-namespace
-{
-
- using namespace test;
- using namespace std;
- using namespace dlib;
-
- logger dlog("test.static_map");
-
- template <
- typename map
- >
- void static_map_kernel_test (
- )
- /*!
- requires
- - map is an implementation of static_map/static_map_kernel_abstract.h and
- is instantiated to map int to int
- ensures
- - runs tests on map for compliance with the specs
- !*/
- {
-
- print_spinner();
- srand(static_cast<unsigned int>(time(0)));
-
- typedef binary_search_tree<int,int>::kernel_2a_c bst;
- typedef hash_table<int,int>::kernel_1a_c ht;
-
- const unsigned long table_4_max_size = 100;
- const unsigned long tree_max_size = 50000;
- ht table_4(4);
- ht table_8(8);
- bst tree;
-
- ht table_4b(4);
- ht table_8b(8);
- bst treeb;
-
-
- // just do the following to make sure operator[] doesn't hang
- // under some instances
- {
- int g = 1, h = 1;
- treeb.add(g,h);
- map test;
- map test2;
-
- DLIB_TEST(test.size() == 0);
- DLIB_TEST(test.at_start());
- DLIB_TEST(test.current_element_valid() == false);
- DLIB_TEST(test.move_next() == false);
- DLIB_TEST(test.current_element_valid() == false);
- DLIB_TEST(test.at_start() == false);
-
- swap(test,test2);
- DLIB_TEST(test2.at_start() == false);
- DLIB_TEST(test.at_start() == true);
-
- swap(test,test2);
- DLIB_TEST(test.at_start() == false);
-
-
- DLIB_TEST(test.size() == 0);
- DLIB_TEST(test[1] == 0);
- DLIB_TEST(test[2] == 0);
- DLIB_TEST(test[3] == 0);
- DLIB_TEST(test[0] == 0);
-
- test.load(treeb);
- DLIB_TEST(test.at_start());
- DLIB_TEST(test[1] != 0);
- DLIB_TEST(test[2] == 0);
- DLIB_TEST(test[3] == 0);
- DLIB_TEST(test[0] == 0);
-
- test2.clear();
- swap(test2,test);
- DLIB_TEST(test2[1] != 0);
- DLIB_TEST(test2[2] == 0);
- DLIB_TEST(test2[3] == 0);
- DLIB_TEST(test2[0] == 0);
- DLIB_TEST(test[1] == 0);
- DLIB_TEST(test[2] == 0);
- DLIB_TEST(test[3] == 0);
- DLIB_TEST(test[0] == 0);
-
-
- DLIB_TEST(treeb.size() == 0);
- treeb.clear();
- }
-
-
- for (unsigned long i = 0; i < table_4_max_size; ++i)
- {
- int a = ::rand()&0xFF;
- int b = a + 1;
- int ab = a;
- int bb = b;
- table_4.add(a,b);
- table_4b.add(ab,bb);
- }
-
- for (unsigned long i = 0; i < table_4_max_size; ++i)
- {
- int a = ::rand()&0xF;
- int b = a + 1;
- int ab = a;
- int bb = b;
- table_8.add(a,b);
- table_8b.add(ab,bb);
- }
-
- for (unsigned long i = 0; i < tree_max_size; ++i)
- {
- int a = ::rand()&0xFFF;
- int b = a + 1;
- int ab = a;
- int bb = b;
- tree.add(a,b);
- treeb.add(ab,bb);
- }
-
- map m_4;
- m_4.load(table_4);
- map m_8;
- m_8.load(table_8);
- map m_t;
- m_t.load(tree);
- map e;
- e.load(table_4);
-
- DLIB_TEST(e.size() == 0);
- DLIB_TEST(e.at_start() == true);
- DLIB_TEST(e.current_element_valid() == false);
- DLIB_TEST(e.move_next() == false);
- DLIB_TEST(e.at_start() == false);
- DLIB_TEST(e.current_element_valid() == false);
-
- DLIB_TEST(m_4.size() == table_4b.size());
- DLIB_TEST(m_8.size() == table_8b.size());
- DLIB_TEST(m_t.size() == treeb.size());
-
- DLIB_TEST(m_4.at_start() == true);
- DLIB_TEST(m_8.at_start() == true);
- DLIB_TEST(m_t.at_start() == true);
- DLIB_TEST(m_4.current_element_valid() == false);
- DLIB_TEST(m_8.current_element_valid() == false);
- DLIB_TEST(m_t.current_element_valid() == false);
-
-
- DLIB_TEST(m_4.move_next() == true);
- DLIB_TEST(m_4.at_start() == false);
- DLIB_TEST(m_4.current_element_valid() == true);
- DLIB_TEST(m_8.move_next() == true);
- DLIB_TEST(m_8.at_start() == false);
- DLIB_TEST(m_8.current_element_valid() == true);
- DLIB_TEST(m_t.move_next() == true);
- DLIB_TEST(m_t.at_start() == false);
- DLIB_TEST(m_t.current_element_valid() == true);
-
- m_4.reset();
- m_8.reset();
- m_t.reset();
-
- while (m_4.move_next())
- {
- DLIB_TEST( table_4b[m_4.element().key()] != 0);
- DLIB_TEST( *table_4b[m_4.element().key()] == m_4.element().value());
- }
-
- // serialize the state of m_4, then clear m_4, then
- // load the state back into m_4.
- ostringstream sout;
- serialize(m_4,sout);
- DLIB_TEST(m_4.at_start() == true);
- istringstream sin(sout.str());
- m_4.clear();
- deserialize(m_4,sin);
- DLIB_TEST(m_4.at_start() == true);
-
-
-
- while (table_4b.move_next())
- {
- DLIB_TEST( m_4[table_4b.element().key()] != 0);
- DLIB_TEST( *m_4[table_4b.element().key()] == table_4b.element().value());
- }
-
- // serialize the state of m_8, then clear m_8, then
- // load the state back into m_8.
- sout.str("");
- serialize(m_8,sout);
- DLIB_TEST(m_8.at_start() == true);
- sin.str(sout.str());
- m_8.clear();
- deserialize(m_8,sin);
- DLIB_TEST(m_8.at_start() == true);
-
- while (m_8.move_next())
- {
- DLIB_TEST( table_8b[m_8.element().key()] != 0);
- DLIB_TEST( *table_8b[m_8.element().key()] == m_8.element().value());
- }
-
- while (table_8b.move_next())
- {
- DLIB_TEST( m_8[table_8b.element().key()] != 0);
- DLIB_TEST( *m_8[table_8b.element().key()] == table_8b.element().value());
- }
-
-
- while (m_t.move_next())
- {
- DLIB_TEST( treeb[m_t.element().key()] != 0);
- DLIB_TEST( *treeb[m_t.element().key()] == m_t.element().value());
- }
-
- // make sure operator[] doesn't hang
- for (int l = 1; l < 10000; ++l)
- {
- DLIB_TEST(m_t[l+0xFFF] == 0);
- }
-
- while (treeb.move_next())
- {
- DLIB_TEST( m_t[treeb.element().key()] != 0);
- DLIB_TEST( *m_t[treeb.element().key()] == treeb.element().value());
- }
-
-
-
- m_4.reset();
- m_8.reset();
- m_t.reset();
-
- int last = 0;
- while (m_4.move_next())
- {
- DLIB_TEST(last <= m_4.element().key());
- DLIB_TEST(m_4.element().key() + 1 == m_4.element().value());
- last = m_4.element().key();
- }
-
- last = 0;
- while (m_8.move_next())
- {
- DLIB_TEST(last <= m_8.element().key());
- DLIB_TEST(m_8.element().key() + 1 == m_8.element().value());
- last = m_8.element().key();
- }
-
- last = 0;
- while (m_t.move_next())
- {
- DLIB_TEST(last <= m_t.element().key());
- DLIB_TEST(m_t.element().key() + 1 == m_t.element().value());
- last = m_t.element().key();
- }
-
-
-
-
-
-
- // this is just to test swap
- m_4.swap(m_8);
- m_4.reset();
- table_4b.reset();
- while (m_8.move_next())
- {
- DLIB_TEST( table_4b[m_8.element().key()] != 0);
- DLIB_TEST( *table_4b[m_8.element().key()] == m_8.element().value());
- }
-
- while (table_4b.move_next())
- {
- DLIB_TEST( m_8[table_4b.element().key()] != 0);
- DLIB_TEST( *m_8[table_4b.element().key()] == table_4b.element().value());
- }
-
- }
-
-
-
-
-
- class static_map_tester : public tester
- {
- public:
- static_map_tester (
- ) :
- tester ("test_static_map",
- "Runs tests on the static_map component.")
- {}
-
- void perform_test (
- )
- {
- dlog << LINFO << "testing kernel_1a";
- static_map_kernel_test<static_map<int,int>::kernel_1a> ();
- dlog << LINFO << "testing kernel_1a_c";
- static_map_kernel_test<static_map<int,int>::kernel_1a_c>();
- }
- } a;
-
-}
-