src/core/type-traits-test.cc
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Mon, 02 Jun 2008 10:30:24 -0700
changeset 3190 51fe9001a679
parent 1678 00452ae23a6f
permissions -rw-r--r--
add some doxygen, remove a couple of XXX
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1678
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     1
#include "type-traits.h"
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     2
#include "test.h"
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     3
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     4
#ifdef RUN_SELF_TESTS
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     5
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     6
namespace ns3 {
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     7
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     8
class TypeTraitsTest : public Test
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     9
{
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    10
public:
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    11
  TypeTraitsTest ();
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    12
  virtual bool RunTests (void);
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    13
};
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    14
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    15
TypeTraitsTest::TypeTraitsTest ()
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    16
  : Test ("TypeTraits")
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    17
{}
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    18
bool 
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    19
TypeTraitsTest::RunTests (void)
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    20
{
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    21
  bool result = true;
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    22
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    23
  //TypeTraits<int &>::ReferencedType ir;
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    24
  //TypeTraits<const int>::NonConstType uci;
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    25
  NS_TEST_ASSERT_EQUAL (TypeTraits<void (TypeTraitsTest::*) (void)>::IsPointerToMember, 1);
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    26
  NS_TEST_ASSERT_EQUAL (TypeTraits<void (TypeTraitsTest::*) (void) const>::IsPointerToMember, 1);
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    27
  NS_TEST_ASSERT_EQUAL (TypeTraits<void (TypeTraitsTest::*) (int)>::IsPointerToMember, 1);
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    28
  NS_TEST_ASSERT_EQUAL (TypeTraits<void (TypeTraitsTest::*) (int) const>::IsPointerToMember, 1);
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    29
  NS_TEST_ASSERT_EQUAL (TypeTraits<void (TypeTraitsTest::*) (void) const>::PointerToMemberTraits::nArgs, 0);
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    30
  NS_TEST_ASSERT_EQUAL (TypeTraits<void (TypeTraitsTest::*) (int) const>::PointerToMemberTraits::nArgs, 1);
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    31
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    32
  return result;
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    33
}
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    34
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    35
static TypeTraitsTest g_typeTraitsTest;
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    36
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    37
} // namespace ns3
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    38
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    39
#endif /* RUN_SELF_TESTS */
00452ae23a6f rewrite the TypeTraits and add some tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    40