5 #include <gtest/gtest.h>
18 typedef IntegerSpec<8, SignednessUnsigned, CastModeSaturate> UInt8;
19 typedef IntegerSpec<4, SignednessSigned, CastModeTruncate> SInt4;
20 typedef IntegerSpec<32, SignednessUnsigned, CastModeTruncate> UInt32;
21 typedef IntegerSpec<40, SignednessUnsigned, CastModeSaturate> UInt40;
22 typedef IntegerSpec<64, SignednessUnsigned, CastModeTruncate> UInt64;
23 typedef IntegerSpec<64, SignednessSigned, CastModeSaturate> SInt64;
24 typedef IntegerSpec<63, SignednessUnsigned, CastModeSaturate> UInt63;
64 typedef IntegerSpec<8, SignednessUnsigned, CastModeSaturate> UInt8S;
65 typedef IntegerSpec<4, SignednessSigned, CastModeTruncate> SInt4T;
66 typedef IntegerSpec<32, SignednessUnsigned, CastModeTruncate> UInt32T;
67 typedef IntegerSpec<40, SignednessUnsigned, CastModeSaturate> UInt40S;
68 typedef IntegerSpec<64, SignednessUnsigned, CastModeTruncate> UInt64T;
69 typedef IntegerSpec<58, SignednessSigned, CastModeSaturate> SInt58S;
70 typedef IntegerSpec<63, SignednessUnsigned, CastModeSaturate> UInt63S;
71 typedef IntegerSpec<10, SignednessSigned, CastModeSaturate> SInt10S;
72 typedef IntegerSpec<1, SignednessUnsigned, CastModeSaturate> UInt1S;
84 std::cout << bs_wr.toString() << std::endl;
89 #define CHECK(IntType, expected_value) \
91 StorageType<IntType>::Type var = StorageType<IntType>::Type(); \
92 ASSERT_EQ(1, IntType::decode(var, sc_rd, uavcan::TailArrayOptDisabled)); \
93 ASSERT_EQ(expected_value, var); \
98 CHECK(UInt32T, 0xFFFFFFFF);
99 CHECK(UInt40S, 0xFFFFFFFFFF);
100 CHECK(UInt64T, 0xFFFFFFFFFFFFFFFF);
101 CHECK(SInt58S, 0x1FFFFFFFFFFFFFF);
102 CHECK(UInt63S, 0x7FFFFFFFFFFFFFFF);
103 CHECK(SInt10S, -512);
108 StorageType<UInt1S>::Type var;