@@ -694,6 +694,7 @@ func (s *testMyDecimalSuite) TestAdd(c *C) {
694694 {"-123.45" , "12345" , "12221.55" , nil },
695695 {"5" , "-6.0" , "-1.0" , nil },
696696 {"2" + strings .Repeat ("1" , 71 ), strings .Repeat ("8" , 81 ), "8888888890" + strings .Repeat ("9" , 71 ), nil },
697+ {"-1234.1234" , "1234.1234" , "0.0000" , nil },
697698 }
698699 for _ , tt := range tests {
699700 a := NewDecFromStringForTest (tt .a )
@@ -718,7 +719,7 @@ func (s *testMyDecimalSuite) TestSub(c *C) {
718719 {"1234500009876.5" , ".00012345000098765" , "1234500009876.49987654999901235" , nil },
719720 {"9999900000000.5" , ".555" , "9999899999999.945" , nil },
720721 {"1111.5551" , "1111.555" , "0.0001" , nil },
721- {".555" , ".555" , "0" , nil },
722+ {".555" , ".555" , "0.000 " , nil },
722723 {"10000000" , "1" , "9999999" , nil },
723724 {"1000001000" , ".1" , "1000000999.9" , nil },
724725 {"1000000000" , ".1" , "999999999.9" , nil },
@@ -728,6 +729,7 @@ func (s *testMyDecimalSuite) TestSub(c *C) {
728729 {"-123.45" , "-12345" , "12221.55" , nil },
729730 {"-12345" , "123.45" , "-12468.45" , nil },
730731 {"12345" , "-123.45" , "12468.45" , nil },
732+ {"12.12" , "12.12" , "0.00" , nil },
731733 }
732734 for _ , tt := range tests {
733735 var a , b , sum MyDecimal
@@ -759,6 +761,7 @@ func (s *testMyDecimalSuite) TestMul(c *C) {
759761 {"1" + strings .Repeat ("0" , 60 ), "1" + strings .Repeat ("0" , 60 ), "0" , ErrOverflow },
760762 {"0.5999991229316" , "0.918755041726043" , "0.5512522192246113614062276588" , nil },
761763 {"0.5999991229317" , "0.918755041726042" , "0.5512522192247026369112773314" , nil },
764+ {"0.000" , "-1" , "0.000" , nil },
762765 }
763766 for _ , tt := range tests {
764767 var a , b , product MyDecimal
@@ -786,7 +789,7 @@ func (s *testMyDecimalSuite) TestDivMod(c *C) {
786789 {"0" , "0" , "" , ErrDivByZero },
787790 {"-12193185.1853376" , "98765.4321" , "-123.456000000000000000" , nil },
788791 {"121931851853376" , "987654321" , "123456.000000000" , nil },
789- {"0" , "987" , "0" , nil },
792+ {"0" , "987" , "0.00000 " , nil },
790793 {"1" , "3" , "0.333333333" , nil },
791794 {"1.000000000000" , "3" , "0.333333333333333333" , nil },
792795 {"1" , "1" , "1.000000000" , nil },
@@ -799,7 +802,7 @@ func (s *testMyDecimalSuite) TestDivMod(c *C) {
799802 var a , b , to MyDecimal
800803 a .FromString ([]byte (tt .a ))
801804 b .FromString ([]byte (tt .b ))
802- err := doDivMod (& a , & b , & to , nil , 5 )
805+ err := DecimalDiv (& a , & b , & to , 5 )
803806 c .Check (err , Equals , tt .err )
804807 if tt .err == ErrDivByZero {
805808 continue
@@ -816,12 +819,13 @@ func (s *testMyDecimalSuite) TestDivMod(c *C) {
816819 {"99999999999999999999999999999999999999" , "3" , "0" , nil },
817820 {"51" , "0.003430" , "0.002760" , nil },
818821 {"0.0000000001" , "1.0" , "0.0000000001" , nil },
822+ {"0.000" , "0.1" , "0.000" , nil },
819823 }
820824 for _ , tt := range tests {
821825 var a , b , to MyDecimal
822826 a .FromString ([]byte (tt .a ))
823827 b .FromString ([]byte (tt .b ))
824- ec := doDivMod (& a , & b , nil , & to , 0 )
828+ ec := DecimalMod (& a , & b , & to )
825829 c .Check (ec , Equals , tt .err )
826830 if tt .err == ErrDivByZero {
827831 continue
@@ -836,6 +840,7 @@ func (s *testMyDecimalSuite) TestDivMod(c *C) {
836840 {"1" , "1.000" , "1.0000" , nil },
837841 {"2" , "3" , "0.6667" , nil },
838842 {"51" , "0.003430" , "14868.8047" , nil },
843+ {"0.000" , "0.1" , "0.0000000" , nil },
839844 }
840845 for _ , tt := range tests {
841846 var a , b , to MyDecimal
0 commit comments