Go to the documentation of this file.00001
00009
00010
00011
00012
00013 #include <gtest/gtest.h>
00014 #include <limits>
00015 #include <ecl/config/ecl.hpp>
00016 #include "../../include/ecl/type_traits/fundamental_types.hpp"
00017
00018
00019
00020
00021
00022 using ecl::is_integral;
00023 using ecl::is_float;
00024 using ecl::is_byte;
00025 using ecl::is_signed_byte;
00026 using ecl::is_unsigned_byte;
00027
00028
00029
00030
00031
00032 TEST(TypeTraitTests,is_integral) {
00033 bool result;
00034 result = is_integral<short>::value;
00035 EXPECT_EQ(true, result);
00036 result = is_integral<unsigned short>::value;
00037 EXPECT_EQ(true, result);
00038 result = is_integral<int>::value;
00039 EXPECT_EQ(true, result);
00040 result = is_integral<unsigned int>::value;
00041 EXPECT_EQ(true, result);
00042 result = is_integral<long>::value;
00043 EXPECT_EQ(true, result);
00044 result = is_integral<unsigned long>::value;
00045 EXPECT_EQ(true, result);
00046 result = is_integral<long long>::value;
00047 EXPECT_EQ(true, result);
00048 result = is_integral<unsigned long long>::value;
00049 EXPECT_EQ(true, result);
00050 result = is_integral<float>::value;
00051 EXPECT_EQ(false, result);
00052 result = is_integral<double>::value;
00053 EXPECT_EQ(false, result);
00054 }
00055
00056 TEST(TypeTraitTests,is_float) {
00057 bool result;
00058 result = is_float<short>::value;
00059 EXPECT_EQ(false, result);
00060 result = is_float<unsigned short>::value;
00061 EXPECT_EQ(false, result);
00062 result = is_float<int>::value;
00063 EXPECT_EQ(false, result);
00064 result = is_float<unsigned int>::value;
00065 EXPECT_EQ(false, result);
00066 result = is_float<long>::value;
00067 EXPECT_EQ(false, result);
00068 result = is_float<unsigned long>::value;
00069 EXPECT_EQ(false, result);
00070 result = is_float<long long>::value;
00071 EXPECT_EQ(false, result);
00072 result = is_float<unsigned long long>::value;
00073 EXPECT_EQ(false, result);
00074 result = is_float<float>::value;
00075 EXPECT_EQ(true, result);
00076 result = is_float<double>::value;
00077 EXPECT_EQ(true, result);
00078 }
00079
00080 TEST(TypeTraitTests,is_byte) {
00081 bool result;
00082
00083 result = is_byte<char>::value;
00084 EXPECT_EQ(true, result);
00085 result = is_byte<signed char>::value;
00086 EXPECT_EQ(true, result);
00087 result = is_byte<unsigned char>::value;
00088 EXPECT_EQ(true, result);
00089
00090 result = is_signed_byte<char>::value;
00091 if ( std::numeric_limits<char>::is_signed ) {
00092 EXPECT_EQ(true, result);
00093 } else {
00094 EXPECT_EQ(false, result);
00095 }
00096 result = is_signed_byte<signed char>::value;
00097 EXPECT_EQ(true, result);
00098 result = is_signed_byte<unsigned char>::value;
00099 EXPECT_EQ(false, result);
00100
00101 result = is_unsigned_byte<char>::value;
00102 if ( std::numeric_limits<char>::is_signed ) {
00103 EXPECT_EQ(false, result);
00104 } else {
00105 EXPECT_EQ(true, result);
00106 }
00107 result = is_unsigned_byte<signed char>::value;
00108 EXPECT_EQ(false, result);
00109 result = is_unsigned_byte<unsigned char>::value;
00110 EXPECT_EQ(true, result);
00111 }
00112
00113
00114
00115
00116 int main(int argc, char **argv) {
00117
00118 testing::InitGoogleTest(&argc,argv);
00119 return RUN_ALL_TESTS();
00120 }