@@ -21,22 +21,35 @@ TEST(LoadNodeTest, FallbackValues) {
21
21
}
22
22
23
23
TEST (LoadNodeTest, NumericConversion) {
24
- Node node = Load (" [1.5, 1, .nan, .inf, -.inf, 0x15, 015]" );
25
- EXPECT_EQ (1 .5f , node[0 ].as <float >());
26
- EXPECT_EQ (1.5 , node[0 ].as <double >());
27
- EXPECT_THROW (node[0 ].as <int >(), TypedBadConversion<int >);
28
- EXPECT_EQ (1 , node[1 ].as <int >());
29
- EXPECT_EQ (1 .0f , node[1 ].as <float >());
30
- EXPECT_NE (node[2 ].as <float >(), node[2 ].as <float >());
31
- EXPECT_EQ (std::numeric_limits<float >::infinity (), node[3 ].as <float >());
32
- EXPECT_EQ (-std::numeric_limits<float >::infinity (), node[4 ].as <float >());
33
- EXPECT_EQ (21 , node[5 ].as <int >());
34
- EXPECT_EQ (13 , node[6 ].as <int >());
24
+ EXPECT_EQ (1 .5f , Load (" 1.5" ).as <float >());
25
+ EXPECT_EQ (1.5 , Load (" 1.5" ).as <double >());
26
+ EXPECT_THROW (Load (" 1.5" ).as <int >(), TypedBadConversion<int >);
27
+ EXPECT_EQ (1 , Load (" 1" ).as <int >());
28
+ EXPECT_EQ (1 .0f , Load (" 1" ).as <float >());
29
+ EXPECT_NE (Load (" .nan" ).as <float >(), Load (" .nan" ).as <float >());
30
+ EXPECT_EQ (std::numeric_limits<float >::infinity (), Load (" .inf" ).as <float >());
31
+ EXPECT_EQ (-std::numeric_limits<float >::infinity (), Load (" -.inf" ).as <float >());
32
+ EXPECT_EQ (21 , Load (" 0x15" ).as <int >());
33
+ EXPECT_EQ (13 , Load (" 015" ).as <int >());
34
+ EXPECT_EQ (-128 , +Load (" -128" ).as <int8_t >());
35
+ EXPECT_EQ (127 , +Load (" 127" ).as <int8_t >());
36
+ EXPECT_THROW (Load (" 128" ).as <int8_t >(), TypedBadConversion<signed char >);
37
+ EXPECT_EQ (255 , +Load (" 255" ).as <uint8_t >());
38
+ EXPECT_THROW (Load (" 256" ).as <uint8_t >(), TypedBadConversion<unsigned char >);
39
+ // test as<char>/as<uint8_t> with ‘a’,"ab",'1',"127"
40
+ EXPECT_EQ (' a' , Load (" a" ).as <char >());
41
+ EXPECT_THROW (Load (" ab" ).as <char >(), TypedBadConversion<char >);
42
+ EXPECT_EQ (' 1' , Load (" 1" ).as <char >());
43
+ EXPECT_THROW (Load (" 127" ).as <char >(), TypedBadConversion<char >);
44
+ EXPECT_THROW (Load (" a" ).as <uint8_t >(), TypedBadConversion<unsigned char >);
45
+ EXPECT_THROW (Load (" ab" ).as <uint8_t >(), TypedBadConversion<unsigned char >);
46
+ EXPECT_EQ (1 , +Load (" 1" ).as <uint8_t >());
35
47
// Throw exception: convert a negative number to an unsigned number.
36
- EXPECT_THROW (node[7 ].as <unsigned >(), TypedBadConversion<unsigned int >);
37
- EXPECT_THROW (node[7 ].as <unsigned short >(), TypedBadConversion<unsigned short >);
38
- EXPECT_THROW (node[7 ].as <unsigned long >(), TypedBadConversion<unsigned long >);
39
- EXPECT_THROW (node[7 ].as <unsigned long long >(), TypedBadConversion<unsigned long long >);
48
+ EXPECT_THROW (Load (" -128" ).as <unsigned >(), TypedBadConversion<unsigned int >);
49
+ EXPECT_THROW (Load (" -128" ).as <unsigned short >(), TypedBadConversion<unsigned short >);
50
+ EXPECT_THROW (Load (" -128" ).as <unsigned long >(), TypedBadConversion<unsigned long >);
51
+ EXPECT_THROW (Load (" -128" ).as <unsigned long long >(), TypedBadConversion<unsigned long long >);
52
+ EXPECT_THROW (Load (" -128" ).as <uint8_t >(), TypedBadConversion<unsigned char >);
40
53
}
41
54
42
55
TEST (LoadNodeTest, Binary) {
0 commit comments