|
|
@@ -6,6 +6,7 @@
|
|
|
//
|
|
|
|
|
|
#include "bignumber_test_printers.h"
|
|
|
+#include "xcode_gtest_helper.h"
|
|
|
|
|
|
TEST(BigDecimalTest, ConstructIntegerAsDecimal) {
|
|
|
EXPECT_THAT(math::bigdecimal(1000, 2).to_string(), "1000.00");
|
|
|
@@ -117,6 +118,13 @@ TEST_P(DivisionScaleTest, ScaleIsDifferenceOfNumAndDenomScales) {
|
|
|
EXPECT_THAT(out.to_string(), tup.expected);
|
|
|
}
|
|
|
|
|
|
+TEST(MultiplicationTest, ProperlyScales) {
|
|
|
+ math::bigdecimal num("6565.000000");
|
|
|
+ math::bigdecimal den("185749.82");
|
|
|
+
|
|
|
+ EXPECT_THAT(num / den, math::bigdecimal("0.035343237", 4));
|
|
|
+}
|
|
|
+
|
|
|
class EqTest : public testing::TestWithParam<BigDecPair> {};
|
|
|
|
|
|
TEST_P(EqTest, DecimalsAreEqualEvenIfScalesAreNot) {
|
|
|
@@ -133,7 +141,7 @@ TEST_P(DecimalLtTest, IsLessThanEvenWithDifferentScales) {
|
|
|
|
|
|
#pragma clang diagnostic push
|
|
|
#pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
|
|
|
-INSTANTIATE_TEST_CASE_P(
|
|
|
+INSTANTIATE_TEST_SUITE_P(
|
|
|
BigDecimal, MultiplicationScaleTest,
|
|
|
testing::Values(ArithTuple{{1, 1}, {1, 0}, "1.0"},
|
|
|
ArithTuple{{1, 0}, {1, 1}, "1.0"},
|
|
|
@@ -151,7 +159,7 @@ INSTANTIATE_TEST_CASE_P(
|
|
|
ArithTuple{{100, -2}, {1000000000, -9}, "100000000000"},
|
|
|
ArithTuple{{10000, -4}, {100000, -5}, "1000000000"}));
|
|
|
|
|
|
-INSTANTIATE_TEST_CASE_P(
|
|
|
+INSTANTIATE_TEST_SUITE_P(
|
|
|
BigDecimal, DivisionScaleTest,
|
|
|
testing::Values(
|
|
|
ArithTuple{{1, 1}, {1, 0}, "1.0"}, ArithTuple{{1, 0}, {1, 1}, "0"},
|
|
|
@@ -164,13 +172,13 @@ INSTANTIATE_TEST_CASE_P(
|
|
|
ArithTuple{{10000, -4}, {100000, -5}, "0.1"},
|
|
|
ArithTuple{{"11.0"}, {"1.10"}, "10"}));
|
|
|
|
|
|
-INSTANTIATE_TEST_CASE_P(
|
|
|
+INSTANTIATE_TEST_SUITE_P(
|
|
|
BigDecimal, EqTest,
|
|
|
testing::Values(BigDecPair{{0}, {0, 4}}, BigDecPair{{100}, {100, -2}},
|
|
|
BigDecPair{{1000000000, -4}, {1000000000, -9}},
|
|
|
BigDecPair{{"0.1", 1}, {"0.10", 2}}));
|
|
|
|
|
|
-INSTANTIATE_TEST_CASE_P(
|
|
|
+INSTANTIATE_TEST_SUITE_P(
|
|
|
BigDecimal, DecimalLtTest,
|
|
|
testing::Values(BigDecPair{{0, 0}, {1, 4}}, BigDecPair{{0, 4}, {1, 0}},
|
|
|
BigDecPair{{0, 4}, {1, 4}}, BigDecPair{{-1, 4}, {1, 4}},
|