fundamental_types.cpp
Go to the documentation of this file.
00001 
00009 /*****************************************************************************
00010 ** Includes
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 ** Using
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 ** Tests
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 ** Main program
00114 *****************************************************************************/
00115 
00116 int main(int argc, char **argv) {
00117 
00118     testing::InitGoogleTest(&argc,argv);
00119     return RUN_ALL_TESTS();
00120 }


ecl_type_traits
Author(s): Daniel Stonier
autogenerated on Sun Oct 5 2014 23:35:21