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