|
|
@@ -103,6 +103,35 @@ public:
|
|
|
TS_ASSERT_EQUALS((a*b).to_string(), "1");
|
|
|
}
|
|
|
|
|
|
+ void testMultiplicationCreateNewOffsetCell() {
|
|
|
+ math::bigdecimal C(1, 5);
|
|
|
+ TS_ASSERT_EQUALS((C*C).to_string(), "1.0000000000");
|
|
|
+ }
|
|
|
+
|
|
|
+ void testMultiplicationNegativeToPositiveScale() {
|
|
|
+ math::bigdecimal C(1, 5);
|
|
|
+ math::bigdecimal D(100, -2);
|
|
|
+ TS_ASSERT_EQUALS((D*C).to_string(), "100.000");
|
|
|
+ }
|
|
|
+
|
|
|
+ void testMultiplicationFromDroppedToNonDropScale() {
|
|
|
+ math::bigdecimal C(1, 5);
|
|
|
+ math::bigdecimal E(1000000000, -9);
|
|
|
+ TS_ASSERT_EQUALS((E*C).to_string(), "1000000000");
|
|
|
+ }
|
|
|
+
|
|
|
+ void testMultiplicationFromDroppedToLowerScale() {
|
|
|
+ math::bigdecimal D(100, -2);
|
|
|
+ math::bigdecimal E(1000000000, -9);
|
|
|
+ TS_ASSERT_EQUALS((E*D).to_string(), "100000000000");
|
|
|
+ }
|
|
|
+
|
|
|
+ void testMultiplicationFromNonDropToDroppedScale() {
|
|
|
+ math::bigdecimal F(10000, -4);
|
|
|
+ math::bigdecimal G(100000, -5);
|
|
|
+ TS_ASSERT_EQUALS((G*F).to_string(), "1000000000");
|
|
|
+ }
|
|
|
+
|
|
|
void testDivideHigherScaleByLowerScale() {
|
|
|
math::bigdecimal a("1", 2);
|
|
|
math::bigdecimal b("1", 1);
|