|
|
@@ -9,11 +9,10 @@
|
|
|
|
|
|
#include "bigdecimal.h"
|
|
|
|
|
|
-// TEST(BigDecimal, ConstructFromStringIsSameValueAsFromInt) {
|
|
|
-// using bi = math::bigdecimal;
|
|
|
-// EXPECT_THAT(bi("1000000"), bi(1000000));
|
|
|
-// }
|
|
|
-//
|
|
|
+TEST(BigDecimal, ConstructFromStringIsSameValueAsFromInt) {
|
|
|
+ EXPECT_THAT(math::bigdecimal("1000000"),
|
|
|
+ math::bigdecimal(1000000));
|
|
|
+}
|
|
|
|
|
|
TEST(BigDecimal, ConstructIntegerAsDecimal) {
|
|
|
EXPECT_THAT(math::bigdecimal("1000.00").to_string(), "1000.00");
|
|
|
@@ -50,22 +49,20 @@ TEST(BigDecimal, ConstructWithScaleEqualsWithout) {
|
|
|
}
|
|
|
|
|
|
TEST(BigDecimal, ScaleBelowNegSegDoesntLoseAnything) {
|
|
|
- EXPECT_THAT(math::bigdecimal("1000000000", -9).to_string(),
|
|
|
- "1000000000");
|
|
|
+ math::bigdecimal dec("1000000000", -9);
|
|
|
+ EXPECT_THAT(dec.to_string(), "1000000000");
|
|
|
}
|
|
|
|
|
|
TEST(BigDecimal, AddTwoDecimalsSameScale) {
|
|
|
- using bd = math::bigdecimal;
|
|
|
- bd a("1000.10");
|
|
|
- bd b("1000.01");
|
|
|
+ math::bigdecimal a("1000.10");
|
|
|
+ math::bigdecimal b("1000.01");
|
|
|
EXPECT_THAT(a.scale(), b.scale());
|
|
|
EXPECT_THAT((a+b).to_string(), "2000.11");
|
|
|
}
|
|
|
|
|
|
TEST(BigDecimal, AddTwoDecimalsDifferentScalesUsesHigherScale) {
|
|
|
- using bd = math::bigdecimal;
|
|
|
- bd a("1000.10");
|
|
|
- bd b("1000");
|
|
|
+ math::bigdecimal a("1000.10");
|
|
|
+ math::bigdecimal b("1000");
|
|
|
EXPECT_THAT(a.scale(), testing::Gt(b.scale()));
|
|
|
EXPECT_THAT((a+b).to_string(), "2000.10");
|
|
|
}
|
|
|
@@ -76,9 +73,8 @@ TEST(BigDecimal, AddNumberWithInversePreservesScale) {
|
|
|
}
|
|
|
|
|
|
TEST(BigDecimal, SubtractTwoDecimalsDifferentScalesUsesHigherScale) {
|
|
|
- using bd = math::bigdecimal;
|
|
|
- bd a("900.10");
|
|
|
- bd b("1000");
|
|
|
+ math::bigdecimal a("900.10");
|
|
|
+ math::bigdecimal b("1000");
|
|
|
EXPECT_THAT(a.scale(), testing::Gt(b.scale()));
|
|
|
EXPECT_THAT((a-b).to_string(), "-99.90");
|
|
|
EXPECT_THAT((b-a).to_string(), "99.90");
|
|
|
@@ -86,7 +82,7 @@ TEST(BigDecimal, SubtractTwoDecimalsDifferentScalesUsesHigherScale) {
|
|
|
|
|
|
TEST(BigDecimal, MultiplicationIncreasesScale) {
|
|
|
math::bigdecimal bd("1.1");
|
|
|
- auto out = bd * bd;
|
|
|
+ math::bigdecimal out = bd * bd;
|
|
|
EXPECT_THAT(out.scale(), bd.scale() + bd.scale());
|
|
|
EXPECT_THAT(out.to_string(), "1.21");
|
|
|
}
|