|
|
@@ -8,6 +8,7 @@
|
|
|
#include <gmock/gmock.h>
|
|
|
|
|
|
#include "bigdecimal.h"
|
|
|
+#include "bignumber_test_printers.h"
|
|
|
|
|
|
TEST(BigDecimalTest, ConstructIntegerAsDecimal) {
|
|
|
EXPECT_THAT(math::bigdecimal(1000, 2).to_string(), "1000.00");
|
|
|
@@ -87,23 +88,6 @@ TEST(BigDecimalTest, SubtractionNormalizeScaleToHighest) {
|
|
|
EXPECT_THAT((b-a).scale(), a.scale());
|
|
|
}
|
|
|
|
|
|
-struct ArithTuple { math::bigdecimal lhs, rhs; std::string expected; };
|
|
|
-struct BigDecPair { math::bigdecimal lhs, rhs; };
|
|
|
-void PrintTo(math::bigdecimal const & dec, std::ostream * out) {
|
|
|
- (*out) << dec.to_string() << "(" << dec.scale() << ")";
|
|
|
-}
|
|
|
-std::ostream & operator<<(std::ostream & out, math::bigdecimal const & dec) {
|
|
|
- PrintTo(dec, &out);
|
|
|
- return out;
|
|
|
-}
|
|
|
-void PrintTo(BigDecPair const & tup, std::ostream * out) {
|
|
|
- (*out) << "{ lhs = ";
|
|
|
- PrintTo(tup.lhs, out);
|
|
|
- (*out) << ", rhs = ";
|
|
|
- PrintTo(tup.rhs, out);
|
|
|
- (*out) << " }";
|
|
|
-}
|
|
|
-
|
|
|
class MultiplicationScaleTest : public testing::TestWithParam<ArithTuple> {};
|
|
|
|
|
|
TEST_P(MultiplicationScaleTest, ScaleIsSumOfOperAndMultipScales) {
|
|
|
@@ -162,7 +146,8 @@ INSTANTIATE_TEST_CASE_P(BigDecimal, DivisionScaleTest,
|
|
|
ArithTuple{{1, 5}, {1, 5}, "1"},
|
|
|
ArithTuple{{1, 5}, {1000000000, -9}, "0.00000000100000"},
|
|
|
ArithTuple{{100, -2}, {1000000000, -9}, "0.0000001"},
|
|
|
- ArithTuple{{10000, -4}, {100000, -5}, "0.1"}));
|
|
|
+ ArithTuple{{10000, -4}, {100000, -5}, "0.1"},
|
|
|
+ ArithTuple{{"11.0"}, {"1.10"}, "10"}));
|
|
|
|
|
|
INSTANTIATE_TEST_CASE_P(BigDecimal, EqTest,
|
|
|
testing::Values(BigDecPair{{ 0}, { 0, 4}},
|
|
|
@@ -171,8 +156,12 @@ INSTANTIATE_TEST_CASE_P(BigDecimal, EqTest,
|
|
|
BigDecPair{{"0.1", 1}, {"0.10", 2}}));
|
|
|
|
|
|
INSTANTIATE_TEST_CASE_P(BigDecimal, DecimalLtTest,
|
|
|
- testing::Values(BigDecPair{{ 0, 0}, { 1, 4}} ,
|
|
|
+ testing::Values(BigDecPair{{ 0, 0}, { 1, 4}},
|
|
|
BigDecPair{{ 0, 4}, { 1, 0}},
|
|
|
- BigDecPair{{ 0, 4}, { 1, 4}}));
|
|
|
+ BigDecPair{{ 0, 4}, { 1, 4}},
|
|
|
+ BigDecPair{{-1, 4}, { 1, 4}},
|
|
|
+ BigDecPair{{-2, 0}, {-1, 4}},
|
|
|
+ BigDecPair{{-2, 4}, {-1, 0}},
|
|
|
+ BigDecPair{{-2, 4}, {-1, 4}}));
|
|
|
|
|
|
#pragma clang diagnostic pop
|