|
28 | 28 | #include <gtest/gtest.h> |
29 | 29 | #include <sys/types.h> |
30 | 30 |
|
31 | | -#include "gmock/gmock.h" |
32 | 31 | #include "iceberg/util/port.h" |
33 | 32 | #include "matchers.h" |
34 | 33 |
|
@@ -558,7 +557,9 @@ TEST(TestDecimalFromReal, FromFloat) { |
558 | 557 | // 2**14 - 2**-10 |
559 | 558 | FromFloatTestParam{ |
560 | 559 | .real = 16383.999f, .precision = 8, .scale = 3, .expected_string = "16383.999"}, |
561 | | - FromFloatTestParam{16383.999f, .precision = 19, .scale = 3, |
| 560 | + FromFloatTestParam{.real = 16383.999f, |
| 561 | + .precision = 19, |
| 562 | + .scale = 3, |
562 | 563 | .expected_string = "16383.999"}, |
563 | 564 | // 1 - 2**-24 |
564 | 565 | FromFloatTestParam{.real = 0.99999994f, |
@@ -1291,4 +1292,13 @@ TEST(DecimalTest, Negate) { |
1291 | 1292 | check(Decimal(12, 0xFFFFFFFFFFFFFFFFULL), Decimal(-13, 1)); |
1292 | 1293 | } |
1293 | 1294 |
|
| 1295 | +TEST(DecimalTest, Rescale) { |
| 1296 | + ASSERT_EQ(Decimal(11100), Decimal(111).Rescale(0, 2).value()); |
| 1297 | + ASSERT_EQ(Decimal(111), Decimal(11100).Rescale(2, 0).value()); |
| 1298 | + ASSERT_EQ(Decimal(5), Decimal(500000).Rescale(6, 1).value()); |
| 1299 | + ASSERT_EQ(Decimal(500000), Decimal(5).Rescale(1, 6).value()); |
| 1300 | + |
| 1301 | + ASSERT_THAT(Decimal(5555555).Rescale(6, 1), IsError(ErrorKind::kInvalid)); |
| 1302 | +} |
| 1303 | + |
1294 | 1304 | } // namespace iceberg |
0 commit comments