diff options
Diffstat (limited to 'ml/dlib/dlib/test/tuple.cpp')
-rw-r--r-- | ml/dlib/dlib/test/tuple.cpp | 186 |
1 files changed, 0 insertions, 186 deletions
diff --git a/ml/dlib/dlib/test/tuple.cpp b/ml/dlib/dlib/test/tuple.cpp deleted file mode 100644 index da7a18ec8..000000000 --- a/ml/dlib/dlib/test/tuple.cpp +++ /dev/null @@ -1,186 +0,0 @@ -// Copyright (C) 2007 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/tuple.h> - -#include "tester.h" - -namespace -{ - using namespace test; - using namespace dlib; - using namespace std; - - logger dlog("test.tuple"); - - struct s_nil - { - template <typename T> - void operator() ( - const T& - ) const - { - } - }; - - - struct inc - { - template <typename T> - void operator() ( - T& a - ) const - { - a += 1; - } - }; - - - template <typename T> - void check_const ( - const T& t - ) - { - t.template get<0>(); - - typedef typename T::template get_type<0>::type type0; - t.template get<type0>(); - t.template index<type0>(); - } - - template <typename T> - void check_nonconst ( - T& t - ) - { - t.template get<0>(); - - typedef typename T::template get_type<0>::type type0; - t.template get<type0>(); - t.template index<type0>(); - } - - void tuple_test ( - ) - /*! - ensures - - runs tests on tuple functions for compliance with the specs - !*/ - { - - print_spinner(); - - using dlib::tuple; - - tuple<> a; - tuple<int> b; - tuple<int, float> c; - - - a.get<1>(); - a.get<2>(); - a.get<3>(); - a.get<4>(); - a.get<5>(); - - check_nonconst(b); - check_nonconst(c); - check_const(b); - check_const(c); - - COMPILE_TIME_ASSERT((is_same_type<tuple<>::get_type<0>::type, null_type>::value)); - COMPILE_TIME_ASSERT((is_same_type<tuple<int>::get_type<0>::type, int>::value)); - COMPILE_TIME_ASSERT((is_same_type<tuple<int,float>::get_type<0>::type, int>::value)); - COMPILE_TIME_ASSERT((is_same_type<tuple<int,float>::get_type<1>::type, float>::value)); - COMPILE_TIME_ASSERT((is_same_type<tuple<int,float>::get_type<2>::type, null_type>::value)); - - b.get<0>() = 8; - DLIB_TEST(b.get<int>() == 8); - DLIB_TEST(b.index<int>() == 0); - - c.get<0>() = 9; - DLIB_TEST(c.get<int>() == 9); - DLIB_TEST(c.index<int>() == 0); - c.get<1>() = 3.0; - DLIB_TEST(c.get<float>() == 3.0); - DLIB_TEST(c.index<float>() == 1); - - - - { - typedef tuple<int, short, long> T; - T a, b; - a.get<0>() = 1; - a.get<1>() = 3; - a.get<2>() = 2; - - b = a; - - inc i; - s_nil n; - a.for_each(inc()); - a.for_each(i); - const_cast<const T&>(a).for_each(s_nil()); - const_cast<const T&>(a).for_each(n); - - DLIB_TEST(a.get<0>() == b.get<0>()+2); - DLIB_TEST(a.get<1>() == b.get<1>()+2); - DLIB_TEST(a.get<2>() == b.get<2>()+2); - - ostringstream sout; - - serialize(a,sout); - istringstream sin(sout.str()); - deserialize(b,sin); - - DLIB_TEST(a.get<0>() == b.get<0>()); - DLIB_TEST(a.get<1>() == b.get<1>()); - DLIB_TEST(a.get<2>() == b.get<2>()); - - a.for_index(i,0); - a.for_index(inc(),1); - const_cast<const T&>(a).for_index(n,2); - const_cast<const T&>(a).for_index(s_nil(),0); - - DLIB_TEST(a.get<0>() == b.get<0>()+1); - DLIB_TEST(a.get<1>() == b.get<1>()+1); - DLIB_TEST(a.get<2>() == b.get<2>()+0); - - swap(a,b); - - DLIB_TEST(b.get<0>() == a.get<0>()+1); - DLIB_TEST(b.get<1>() == a.get<1>()+1); - DLIB_TEST(b.get<2>() == a.get<2>()+0); - } - - - } - - - - - class tuple_tester : public tester - { - public: - tuple_tester ( - ) : - tester ("test_tuple", - "Runs tests on the tuple object") - {} - - void perform_test ( - ) - { - tuple_test(); - } - } a; - -} - - - |