summaryrefslogtreecommitdiffstats
path: root/ml/dlib/dlib/test/set.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ml/dlib/dlib/test/set.cpp')
-rw-r--r--ml/dlib/dlib/test/set.cpp464
1 files changed, 0 insertions, 464 deletions
diff --git a/ml/dlib/dlib/test/set.cpp b/ml/dlib/dlib/test/set.cpp
deleted file mode 100644
index f8d3bd374..000000000
--- a/ml/dlib/dlib/test/set.cpp
+++ /dev/null
@@ -1,464 +0,0 @@
-// Copyright (C) 2003 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/set.h>
-
-#include "tester.h"
-
-namespace
-{
- using namespace test;
- using namespace std;
- using namespace dlib;
-
- logger dlog("test.set");
-
- template <
- typename set
- >
- void set_compare_test (
- )
- /*!
- requires
- - set is an implementation of set/set_compare_abstract.h and
- is instantiated with int
- ensures
- - runs tests on set for compliance with the specs
- !*/
- {
-
-
- srand(static_cast<unsigned int>(time(0)));
-
-
-
- set test, test2;
-
- enumerable<const int>& e = test;
- DLIB_TEST(e.at_start() == true);
-
- for (int j = 0; j < 4; ++j)
- {
-
- DLIB_TEST(test.at_start() == true);
- DLIB_TEST(test.current_element_valid() == false);
- DLIB_TEST(test.move_next() == false);
- DLIB_TEST(test.move_next() == false);
- DLIB_TEST(test.move_next() == false);
- DLIB_TEST(test.move_next() == false);
- DLIB_TEST(test.move_next() == false);
- DLIB_TEST(test.move_next() == false);
- DLIB_TEST(test.move_next() == false);
- DLIB_TEST(test.at_start() == false);
- DLIB_TEST(test.current_element_valid() == false);
-
-
- DLIB_TEST(test.size() == 0);
- DLIB_TEST(test.is_member(5) == false);
- DLIB_TEST(test.is_member(0) == false);
- DLIB_TEST(test.is_member(-999) == false);
- DLIB_TEST(test.is_member(4999) == false);
-
-
- int a,b = 0;
- a = 8;
- test.add(a);
- DLIB_TEST(test.size() == 1);
- DLIB_TEST(test.is_member(8) == true);
- DLIB_TEST(test.is_member(5) == false);
- DLIB_TEST(test.is_member(0) == false);
- DLIB_TEST(test.is_member(-999) == false);
- DLIB_TEST(test.is_member(4999) == false);
- a = 53;
- test.add(a);
- DLIB_TEST(test.size() == 2);
- DLIB_TEST(test.is_member(53) == true);
- DLIB_TEST(test.is_member(5) == false);
- DLIB_TEST(test.is_member(0) == false);
- DLIB_TEST(test.is_member(-999) == false);
- DLIB_TEST(test.is_member(4999) == false);
-
-
- swap(test,test2);
-
-
-
- DLIB_TEST(test2.is_member(8) == true);
- DLIB_TEST(test2.is_member(5) == false);
- DLIB_TEST(test2.is_member(0) == false);
- DLIB_TEST(test2.is_member(-999) == false);
- DLIB_TEST(test2.is_member(4999) == false);
- DLIB_TEST(test2.size() == 2);
- DLIB_TEST(test2.is_member(53) == true);
- DLIB_TEST(test2.is_member(5) == false);
- DLIB_TEST(test2.is_member(0) == false);
- DLIB_TEST(test2.is_member(-999) == false);
- DLIB_TEST(test2.is_member(4999) == false);
-
-
- DLIB_TEST(test.size() == 0);
- DLIB_TEST(test.is_member(8) == false);
- DLIB_TEST(test.is_member(5) == false);
- DLIB_TEST(test.is_member(0) == false);
- DLIB_TEST(test.is_member(-999) == false);
- DLIB_TEST(test.is_member(4999) == false);
- DLIB_TEST(test.size() == 0);
- DLIB_TEST(test.is_member(53) == false);
- DLIB_TEST(test.is_member(5) == false);
- DLIB_TEST(test.is_member(0) == false);
- DLIB_TEST(test.is_member(-999) == false);
- DLIB_TEST(test.is_member(4999) == false);
-
-
- test.clear();
- DLIB_TEST(test.at_start() == true);
- DLIB_TEST(test.move_next() == false);
- DLIB_TEST(test.move_next() == false);
- DLIB_TEST(test.move_next() == false);
- DLIB_TEST(test.move_next() == false);
- DLIB_TEST(test.move_next() == false);
- DLIB_TEST(test.at_start() == false);
-
-
- DLIB_TEST(test.size() == 0);
-
- while (test.size() < 10000)
- {
- a = ::rand();
- if (!test.is_member(a))
- test.add(a);
- }
-
- DLIB_TEST(test.size() == 10000);
- test.clear();
- DLIB_TEST(test.size() == 0);
-
- while (test.size() < 10000)
- {
- a = ::rand();
- if (!test.is_member(a))
- test.add(a);
- }
-
- DLIB_TEST(test.size() == 10000);
-
- int count = 0;
- a = 0;
- while (test.move_next())
- {
- enumerable<const int>& gogo = test;
- gogo.element();
-
- DLIB_TEST(test.element() == test.element());
- DLIB_TEST(test.element() == test.element());
- DLIB_TEST(test.element() == test.element());
-
- DLIB_TEST(a <= test.element());
- a = test.element();
- ++count;
- }
- DLIB_TEST(test.current_element_valid() == false);
- DLIB_TEST(test.at_start() == false);
- DLIB_TEST(test.move_next() == false);
- DLIB_TEST(test.current_element_valid() == false);
- DLIB_TEST(test.at_start() == false);
- DLIB_TEST(test.move_next() == false);
-
- DLIB_TEST(count == 10000);
-
- test.swap(test2);
-
- DLIB_TEST(test.size() == 2);
- DLIB_TEST(test2.size() == 10000);
- count = 0;
- a = -1;
- test2.reset();
- while (test2.move_next())
- {
- DLIB_TEST(test2.element() == test2.element());
- DLIB_TEST(test2.element() == test2.element());
- DLIB_TEST(test2.element() == test2.element());
- DLIB_TEST(a < test2.element());
- a = test2.element();
- ++count;
- }
- DLIB_TEST(test2.size() == 10000);
- DLIB_TEST(count == 10000);
- DLIB_TEST(test2.current_element_valid() == false);
- DLIB_TEST(test2.at_start() == false);
- DLIB_TEST(test2.move_next() == false);
- DLIB_TEST(test2.current_element_valid() == false);
- DLIB_TEST(test2.at_start() == false);
- DLIB_TEST(test2.move_next() == false);
-
-
-
- test2.clear();
- DLIB_TEST(test2.size() == 0);
- DLIB_TEST(test2.at_start() == true);
-
- while (test.size() < 20000)
- {
- a = ::rand();
- if (!test.is_member(a))
- test.add(a);
- }
-
- DLIB_TEST(test.at_start() == true);
-
- {
- int* array = new int[test.size()];
- int* tmp = array;
-
- count = 0;
- while (test.move_next())
- {
- DLIB_TEST(test.element() == test.element());
- DLIB_TEST(test.element() == test.element());
- DLIB_TEST(test.element() == test.element());
- *tmp = test.element();
- ++tmp;
- ++count;
- }
- DLIB_TEST(count == 20000);
-
- // serialize the state of test, then clear test, then
- // load the state back into test.
- ostringstream sout;
- serialize(test,sout);
- DLIB_TEST(test.at_start() == true);
- istringstream sin(sout.str());
- test.clear();
- deserialize(test,sin);
-
-
-
- tmp = array;
- for (int i = 0; i < 20000; ++i)
- {
- DLIB_TEST(test.is_member(*tmp) == true);
- ++tmp;
- }
-
- DLIB_TEST(test.size() == 20000);
-
- tmp = array;
- count = 0;
- while (test.size() > 10000)
- {
- test.remove(*tmp,a);
- DLIB_TEST(*tmp == a);
- ++tmp;
- ++count;
- }
- DLIB_TEST(count == 10000);
- DLIB_TEST(test.size() == 10000);
-
- while (test.move_next())
- {
- DLIB_TEST(test.element() == *tmp);
- DLIB_TEST(test.element() == *tmp);
- DLIB_TEST(test.element() == *tmp);
- ++tmp;
- ++count;
- }
- DLIB_TEST(count == 20000);
- DLIB_TEST(test.size() == 10000);
-
- while (test.size() < 20000)
- {
- a = ::rand();
- if (!test.is_member(a))
- test.add(a);
- }
-
- test2.swap(test);
-
- count = 0;
- a = 0;
- while (test2.move_next())
- {
- DLIB_TEST(test2.element() == test2.element());
- DLIB_TEST(test2.element() == test2.element());
- DLIB_TEST(test2.element() == test2.element());
- DLIB_TEST(a <= test2.element());
- a = test2.element();
- ++count;
- }
-
- DLIB_TEST(count == 20000);
- DLIB_TEST(test2.size() == 20000);
-
- a = -1;
- while (test2.size()>0)
- {
- test2.remove_any(b);
- DLIB_TEST( a < b);
- a = b;
- }
-
- DLIB_TEST(test2.size() == 0);
- delete [] array;
- }
-
- test.clear();
- test2.clear();
- while (test.size() < 10000)
- {
- a = ::rand();
- if (!test.is_member(a))
- test.add(a);
- }
-
- count = 0;
- a = -1;
- while (test.move_next())
- {
- DLIB_TEST(a < test.element());
- a = test.element();
- ++count;
- if (count == 5000)
- break;
- DLIB_TEST(test.current_element_valid() == true);
- }
-
- test.reset();
-
- count = 0;
- a = -1;
- while (test.move_next())
- {
- DLIB_TEST(a < test.element());
- a = test.element();
- ++count;
- DLIB_TEST(test.current_element_valid() == true);
- }
-
- DLIB_TEST(count == 10000);
-
-
- test.clear();
- test2.clear();
- }
-
-
-
- {
- DLIB_TEST(test == test2);
- DLIB_TEST((test < test2) == false);
- DLIB_TEST((test2 < test) == false);
-
- int a = 3, b = 3;
- test.add(a);
- test2.add(b);
- test.move_next();
- DLIB_TEST(test == test2);
- DLIB_TEST(test.at_start() && test2.at_start());
- test.move_next();
- DLIB_TEST((test < test2) == false);
- DLIB_TEST(test.at_start() && test2.at_start());
- test.move_next();
- DLIB_TEST((test2 < test) == false);
- DLIB_TEST(test.at_start() && test2.at_start());
-
- a = 2; b = 5;
- test.add(a);
- test2.add(b);
- DLIB_TEST(test.at_start() && test2.at_start());
- test2.move_next();
- DLIB_TEST((test == test2) == false);
- DLIB_TEST(test.at_start() && test2.at_start());
- test2.move_next();
- DLIB_TEST((test < test2) == true);
- DLIB_TEST(test.at_start() && test2.at_start());
- test2.move_next();
- DLIB_TEST((test2 < test) == false);
- DLIB_TEST(test.at_start() && test2.at_start());
-
-
- a = 8;
- test.add(a);
- DLIB_TEST(test.at_start() && test2.at_start());
- test2.move_next();
- DLIB_TEST((test == test2) == false);
- DLIB_TEST(test.at_start() && test2.at_start());
- test2.move_next();
- DLIB_TEST((test < test2) == false);
- DLIB_TEST(test.at_start() && test2.at_start());
- test2.move_next();
- DLIB_TEST((test2 < test) == true);
- DLIB_TEST(test.at_start() && test2.at_start());
-
- test.clear();
-
- DLIB_TEST(test.at_start() && test2.at_start());
- test2.move_next();
- DLIB_TEST((test == test2) == false);
- DLIB_TEST(test.at_start() && test2.at_start());
- test2.move_next();
- DLIB_TEST((test < test2) == true);
- DLIB_TEST(test.at_start() && test2.at_start());
- test2.move_next();
- DLIB_TEST((test2 < test) == false);
- DLIB_TEST(test.at_start() && test2.at_start());
-
-
- }
-
-
- {
- test.clear();
- DLIB_TEST(test.size() == 0);
- int a = 5;
- test.add(a);
- a = 7;
- test.add(a);
- DLIB_TEST(test.size() == 2);
- DLIB_TEST(test.is_member(7));
- DLIB_TEST(test.is_member(5));
- test.destroy(7);
- DLIB_TEST(test.size() == 1);
- DLIB_TEST(!test.is_member(7));
- DLIB_TEST(test.is_member(5));
- test.destroy(5);
- DLIB_TEST(test.size() == 0);
- DLIB_TEST(!test.is_member(7));
- DLIB_TEST(!test.is_member(5));
- }
-
-
- }
-
-
-
-
- class set_tester : public tester
- {
- public:
- set_tester (
- ) :
- tester ("test_set",
- "Runs tests on the set component.")
- {}
-
- void perform_test (
- )
- {
- dlog << LINFO << "testing compare_1a";
- set_compare_test<dlib::set<int>::compare_1a> ();
- dlog << LINFO << "testing compare_1a_c";
- set_compare_test<dlib::set<int>::compare_1a_c>();
- dlog << LINFO << "testing compare_1b";
- set_compare_test<dlib::set<int>::compare_1b> ();
- dlog << LINFO << "testing compare_1b_c";
- set_compare_test<dlib::set<int>::compare_1b_c>();
- }
- } a;
-
-}
-