summaryrefslogtreecommitdiffstats
path: root/ml/dlib/dlib/test/sliding_buffer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ml/dlib/dlib/test/sliding_buffer.cpp')
-rw-r--r--ml/dlib/dlib/test/sliding_buffer.cpp439
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;
-
-}
-