fundamental_types.cpp
Go to the documentation of this file.
1 
9 /*****************************************************************************
10 ** Includes
11 *****************************************************************************/
12 
13 #include <gtest/gtest.h>
14 #include <limits>
15 #include <ecl/config/ecl.hpp>
16 #include "../../include/ecl/type_traits/fundamental_types.hpp"
17 
18 /*****************************************************************************
19 ** Using
20 *****************************************************************************/
21 
22 using ecl::is_integral;
23 using ecl::is_float;
24 using ecl::is_byte;
27 
28 /*****************************************************************************
29 ** Tests
30 *****************************************************************************/
31 
32 TEST(TypeTraitTests,is_integral) {
33  bool result;
35  EXPECT_EQ(true, result);
37  EXPECT_EQ(true, result);
38  result = is_integral<int>::value;
39  EXPECT_EQ(true, result);
41  EXPECT_EQ(true, result);
42  result = is_integral<long>::value;
43  EXPECT_EQ(true, result);
45  EXPECT_EQ(true, result);
47  EXPECT_EQ(true, result);
49  EXPECT_EQ(true, result);
51  EXPECT_EQ(false, result);
53  EXPECT_EQ(false, result);
54 }
55 
56 TEST(TypeTraitTests,is_float) {
57  bool result;
58  result = is_float<short>::value;
59  EXPECT_EQ(false, result);
61  EXPECT_EQ(false, result);
62  result = is_float<int>::value;
63  EXPECT_EQ(false, result);
65  EXPECT_EQ(false, result);
66  result = is_float<long>::value;
67  EXPECT_EQ(false, result);
69  EXPECT_EQ(false, result);
71  EXPECT_EQ(false, result);
73  EXPECT_EQ(false, result);
74  result = is_float<float>::value;
75  EXPECT_EQ(true, result);
76  result = is_float<double>::value;
77  EXPECT_EQ(true, result);
78 }
79 
80 TEST(TypeTraitTests,is_byte) {
81  bool result;
82 
83  result = is_byte<char>::value;
84  EXPECT_EQ(true, result);
86  EXPECT_EQ(true, result);
88  EXPECT_EQ(true, result);
89 
91  if ( std::numeric_limits<char>::is_signed ) {
92  EXPECT_EQ(true, result);
93  } else {
94  EXPECT_EQ(false, result);
95  }
97  EXPECT_EQ(true, result);
99  EXPECT_EQ(false, result);
100 
102  if ( std::numeric_limits<char>::is_signed ) {
103  EXPECT_EQ(false, result);
104  } else {
105  EXPECT_EQ(true, result);
106  }
108  EXPECT_EQ(false, result);
110  EXPECT_EQ(true, result);
111 }
112 /*****************************************************************************
113 ** Main program
114 *****************************************************************************/
115 
116 int main(int argc, char **argv) {
117 
118  testing::InitGoogleTest(&argc,argv);
119  return RUN_ALL_TESTS();
120 }
int main(int argc, char **argv)
Default action for detection of a fundamental integral type (false).
Default action for detection of a fundamental float type (false).
TEST(TypeTraitTests, is_integral)
Default action for detection of a fundamental byte type (false).
Default action for detection of a fundamental signed byte type (false).
Default action for detection of a fundamental unsigned byte type (false).


ecl_type_traits
Author(s): Daniel Stonier
autogenerated on Mon Jun 10 2019 13:08:18