diff options
Diffstat (limited to 'ml/dlib/dlib/test/sliding_buffer.cpp')
-rw-r--r-- | ml/dlib/dlib/test/sliding_buffer.cpp | 439 |
1 files changed, 0 insertions, 439 deletions
diff --git a/ml/dlib/dlib/test/sliding_buffer.cpp b/ml/dlib/dlib/test/sliding_buffer.cpp deleted file mode 100644 index 449ea858e..000000000 --- a/ml/dlib/dlib/test/sliding_buffer.cpp +++ /dev/null @@ -1,439 +0,0 @@ -// Copyright (C) 2004 Davis E. King (davis@dlib.net) -// License: Boost Software License See LICENSE.txt for the full license. - - -#include <sstream> -#include <string> -#include <ctime> -#include <cstdlib> - -#include <dlib/sliding_buffer.h> -#include "tester.h" - -namespace -{ - - using namespace test; - using namespace std; - using namespace dlib; - - logger dlog("test.sliding_buffer"); - - template < - typename buf - > - void sliding_buffer_kernel_test ( - ) - /*! - requires - - buf is an implementation of sliding_buffer/sliding_buffer_kernel_abstract.h - - buf is instantiated with T=unsigned char - ensures - - runs tests on buf for compliance with the specs - !*/ - { - - print_spinner(); - - buf test; - - DLIB_TEST(test.size() == 0); - - test.set_size(3); - buf test2; - - DLIB_TEST(test.size() == 8); - - for (int g = 0; g < 2; ++g) - { - - test.clear(); - - DLIB_TEST(test.size() == 0); - test.set_size(2); - - DLIB_TEST(test.size() == 4); - - - - test[0] = 'a'; - test[1] = 's'; - test[2] = 'd'; - test[3] = 'f'; - - unsigned long id = test.get_element_id(2); - DLIB_TEST(test[test.get_element_index(id)] == 'd'); - - - DLIB_TEST(test[0] == 'a'); - DLIB_TEST(test[1] == 's'); - DLIB_TEST(test[2] == 'd'); - DLIB_TEST(test[3] == 'f'); - - DLIB_TEST(test2.size() == 0); - swap(test,test2); - DLIB_TEST(test2.size() == 4); - - DLIB_TEST(test2[0] == 'a'); - DLIB_TEST(test2[1] == 's'); - DLIB_TEST(test2[2] == 'd'); - DLIB_TEST(test2[3] == 'f'); - - swap(test,test2); - - test.rotate_left(4); - - - DLIB_TEST(test[test.get_element_index(id)] == 'd'); - - DLIB_TEST(test[0] == 'a'); - DLIB_TEST(test[1] == 's'); - DLIB_TEST(test[2] == 'd'); - DLIB_TEST(test[3] == 'f'); - - test.rotate_right(1); - - DLIB_TEST(test[test.get_element_index(id)] == 'd'); - - DLIB_TEST(test[0] == 's'); - DLIB_TEST(test[1] == 'd'); - DLIB_TEST(test[2] == 'f'); - DLIB_TEST(test[3] == 'a'); - - - test.rotate_left(1); - - DLIB_TEST(test[test.get_element_index(id)] == 'd'); - DLIB_TEST(test[0] == 'a'); - DLIB_TEST(test[1] == 's'); - DLIB_TEST(test[2] == 'd'); - DLIB_TEST(test[3] == 'f'); - - - test.rotate_left(16); - - DLIB_TEST(test[test.get_element_index(id)] == 'd'); - DLIB_TEST(test[0] == 'a'); - DLIB_TEST(test[1] == 's'); - DLIB_TEST(test[2] == 'd'); - DLIB_TEST(test[3] == 'f'); - - - test.rotate_left(2); - - DLIB_TEST(test[test.get_element_index(id)] == 'd'); - - DLIB_TEST(test[0] == 'd'); - DLIB_TEST(test[1] == 'f'); - DLIB_TEST(test[2] == 'a'); - DLIB_TEST(test[3] == 's'); - - test.rotate_left(1); - - DLIB_TEST(test[test.get_element_index(id)] == 'd'); - DLIB_TEST(test[0] == 's'); - DLIB_TEST(test[1] == 'd'); - DLIB_TEST(test[2] == 'f'); - DLIB_TEST(test[3] == 'a'); - - test.rotate_left(1); - - DLIB_TEST(test[test.get_element_index(id)] == 'd'); - DLIB_TEST(test[0] == 'a'); - DLIB_TEST(test[1] == 's'); - DLIB_TEST(test[2] == 'd'); - DLIB_TEST(test[3] == 'f'); - - DLIB_TEST(test.size() == 4); - - test[0] = 'x'; - - DLIB_TEST(test[0] == 'x'); - DLIB_TEST(test[1] == 's'); - DLIB_TEST(test[2] == 'd'); - DLIB_TEST(test[3] == 'f'); - - test.rotate_left(1); - - DLIB_TEST_MSG(test[0] == 'f',test[0]); - DLIB_TEST(test[1] == 'x'); - DLIB_TEST(test[2] == 's'); - DLIB_TEST(test[3] == 'd'); - - - test[0] = 'x'; - - DLIB_TEST(test[0] == 'x'); - DLIB_TEST(test[1] == 'x'); - DLIB_TEST(test[2] == 's'); - DLIB_TEST(test[3] == 'd'); - - - test.rotate_left(1); - - - DLIB_TEST(test[0] == 'd'); - DLIB_TEST(test[1] == 'x'); - DLIB_TEST(test[2] == 'x'); - DLIB_TEST(test[3] == 's'); - - - - DLIB_TEST(test.at_start() == true); - DLIB_TEST(test.current_element_valid() == false); - DLIB_TEST(test.move_next() == true); - DLIB_TEST(test.at_start() == false); - DLIB_TEST(test.current_element_valid() == true); - - test.clear(); - test2.clear(); - - - DLIB_TEST(test.size() == 0); - DLIB_TEST(test.at_start() == true); - DLIB_TEST(test.current_element_valid() == false); - DLIB_TEST(test.move_next() == false); - DLIB_TEST(test.at_start() == false); - DLIB_TEST(test.current_element_valid() == false); - - swap(test,test2); - - DLIB_TEST(test2.at_start() == false); - DLIB_TEST(test2.current_element_valid() == false); - DLIB_TEST(test2.move_next() == false); - DLIB_TEST(test2.at_start() == false); - DLIB_TEST(test2.current_element_valid() == false); - - - DLIB_TEST(test.at_start() == true); - DLIB_TEST(test.current_element_valid() == false); - DLIB_TEST(test.move_next() == false); - DLIB_TEST(test.at_start() == false); - - test.set_size(3); - DLIB_TEST(test.size() == 8); - - DLIB_TEST(test.at_start() == true); - DLIB_TEST(test.current_element_valid() == false); - DLIB_TEST(test.move_next() == true); - DLIB_TEST(test.at_start() == false); - DLIB_TEST(test.current_element_valid() == true); - test.reset(); - DLIB_TEST(test.size() == 8); - DLIB_TEST(test.at_start() == true); - DLIB_TEST(test.current_element_valid() == false); - DLIB_TEST(test.move_next() == true); - DLIB_TEST(test.at_start() == false); - DLIB_TEST(test.current_element_valid() == true); - - - test.rotate_right(1); - DLIB_TEST(test.size() == 8); - DLIB_TEST(test.at_start() == true); - DLIB_TEST(test.current_element_valid() == false); - DLIB_TEST(test.move_next() == true); - DLIB_TEST(test.at_start() == false); - DLIB_TEST(test.current_element_valid() == true); - - test.rotate_left(1); - DLIB_TEST(test.size() == 8); - DLIB_TEST(test.at_start() == true); - DLIB_TEST(test.current_element_valid() == false); - DLIB_TEST(test.move_next() == true); - DLIB_TEST(test.at_start() == false); - DLIB_TEST(test.current_element_valid() == true); - test.reset(); - - - for (unsigned long i = 0; i < test.size(); ++i) - { - test[i] = static_cast<unsigned char>(i); - } - - unsigned long count = 0; - while (test.move_next()) - { - DLIB_TEST(test.element() == count); - ++count; - } - - DLIB_TEST(count == test.size()); - - - test2.clear(); - ostringstream sout; - istringstream sin; - - serialize(test,sout); - sin.str(sout.str()); - deserialize(test2,sin); - - char ch; - sin >> ch; - DLIB_TEST( !sin); - - DLIB_TEST(test2.size() == test.size()); - - - for (unsigned long i = 0; i < test.size(); ++i) - { - DLIB_TEST_MSG(test[i] == test2[i], - "\ni: " << i << - "\ntest[i]: " << test[i] << - "\ntest2[i]: " << test2[i]); - } - - count = 0; - while (test.move_next() && test2.move_next()) - { - DLIB_TEST(test.element() == count); - DLIB_TEST(test2.element() == count); - ++count; - } - - DLIB_TEST(test2.size() == count); - DLIB_TEST(test.size() == count); - - test2.clear(); - - - } // for (int g = 0; g < 2; ++g) - - - } - - - - void test_circular_buffer() - { - circular_buffer<int> buf; - - DLIB_TEST(buf.size() == 0); - - buf.assign(4, 0); - DLIB_TEST(buf.size() == 4); - - DLIB_TEST(buf[0] == 0); - DLIB_TEST(buf[1] == 0); - DLIB_TEST(buf[2] == 0); - DLIB_TEST(buf[3] == 0); - buf.push_back(1); - DLIB_TEST(buf[0] == 0); - DLIB_TEST(buf[1] == 0); - DLIB_TEST(buf[2] == 0); - DLIB_TEST(buf[3] == 1); - buf.push_back(2); - DLIB_TEST(buf[0] == 0); - DLIB_TEST(buf[1] == 0); - DLIB_TEST(buf[2] == 1); - DLIB_TEST(buf[3] == 2); - buf.push_front(3); - DLIB_TEST(buf[0] == 3); - DLIB_TEST(buf[1] == 0); - DLIB_TEST(buf[2] == 0); - DLIB_TEST(buf[3] == 1); - buf.push_front(4); - DLIB_TEST(buf.front() == 4); - DLIB_TEST(buf[0] == 4); - DLIB_TEST(buf[1] == 3); - DLIB_TEST(buf[2] == 0); - DLIB_TEST(buf[3] == 0); - - buf.assign(4, 5); - DLIB_TEST(buf[0] == 5); - DLIB_TEST(buf[1] == 5); - DLIB_TEST(buf[2] == 5); - DLIB_TEST(buf[3] == 5); - - buf.push_back(3); - DLIB_TEST(buf[0] == 5); - DLIB_TEST(buf[1] == 5); - DLIB_TEST(buf[2] == 5); - DLIB_TEST(buf[3] == 3); - buf.push_back(2); - DLIB_TEST(buf[0] == 5); - DLIB_TEST(buf[1] == 5); - DLIB_TEST(buf[2] == 3); - DLIB_TEST(buf[3] == 2); - buf.push_back(1); - DLIB_TEST(buf[0] == 5); - DLIB_TEST(buf[1] == 3); - DLIB_TEST(buf[2] == 2); - DLIB_TEST(buf[3] == 1); - buf.push_back(0); - DLIB_TEST(buf[0] == 3); - DLIB_TEST(buf[1] == 2); - DLIB_TEST(buf[2] == 1); - DLIB_TEST(buf[3] == 0); - buf.push_back(-1); - DLIB_TEST(buf.back() == -1); - DLIB_TEST(buf[0] == 2); - DLIB_TEST(buf[1] == 1); - DLIB_TEST(buf[2] == 0); - DLIB_TEST(buf[3] == -1); - - buf.resize(1); - buf[0] = 9; - DLIB_TEST(buf.size() == 1); - DLIB_TEST(buf[0] == 9); - buf.push_back(1); - DLIB_TEST(buf[0] == 1); - buf.push_back(4); - DLIB_TEST(buf[0] == 4); - buf.push_front(3); - DLIB_TEST(buf[0] == 3); - - buf.clear(); - DLIB_TEST(buf.size() == 0); - - buf.assign(3, 0); - - circular_buffer<int> buf2, buf3; - - buf.push_back(1); - buf.push_back(2); - - ostringstream sout; - serialize(buf, sout); - istringstream sin(sout.str()); - deserialize(buf2, sin); - - DLIB_TEST(buf.size() == buf2.size()); - for (unsigned long i = 0; i < buf.size(); ++i) - DLIB_TEST(buf[i] == buf2[i]); - - buf.swap(buf3); - DLIB_TEST(buf.size() == 0); - DLIB_TEST(buf3.size() == buf2.size()); - for (unsigned long i = 0; i < buf3.size(); ++i) - DLIB_TEST(buf3[i] == buf2[i]); - - - - } - - - - class sliding_buffer_tester : public tester - { - public: - sliding_buffer_tester ( - ) : - tester ("test_sliding_buffer", - "Runs tests on the sliding_buffer component.") - {} - - void perform_test ( - ) - { - dlog << LINFO << "testing kernel_1a"; - sliding_buffer_kernel_test<sliding_buffer<unsigned char>::kernel_1a> (); - dlog << LINFO << "testing kernel_1a_c"; - sliding_buffer_kernel_test<sliding_buffer<unsigned char>::kernel_1a_c>(); - - test_circular_buffer(); - } - } a; - -} - |