@@ -5,8 +5,10 @@ import Prelude
55import Ocelot.Data.Currency (Cents (..), formatCentsToStrDollars , parseCentsFromDollarStr , parseCentsFromMicroDollars )
66import Data.BigInt as BigInt
77import Data.Maybe (Maybe (..))
8+ import Test.QuickCheck ((===))
89import Test.Unit as Test.Unit
910import Test.Unit.Assert as Test.Unit.Assert
11+ import Test.Unit.QuickCheck as Test.Unit.QuickCheck
1012
1113suite :: Test.Unit.TestSuite
1214suite = do
@@ -56,6 +58,11 @@ suite = do
5658 result = parseCentsFromDollarStr " 1,234."
5759 Test.Unit.Assert .equal expect result
5860
61+ Test.Unit .test " parseCentsFromDollarStr -1,234.50" do
62+ let expect = Just $ Cents $ BigInt .fromInt (-123450 )
63+ result = parseCentsFromDollarStr " -1,234.50"
64+ Test.Unit.Assert .equal expect result
65+
5966 Test.Unit .test " formatCentsToStrDollars 0.00" do
6067 let result = formatCentsToStrDollars $ Cents $ BigInt .fromInt 0
6168 Test.Unit.Assert .equal " 0.00" result
@@ -71,3 +78,12 @@ suite = do
7178 Test.Unit .test " formatCentsToStrDollars 1,234.00" do
7279 let result = formatCentsToStrDollars $ Cents $ BigInt .fromInt 123400
7380 Test.Unit.Assert .equal " 1,234.00" result
81+
82+ Test.Unit .test " formatCentsToStrDollars -1,234.50" do
83+ let result = formatCentsToStrDollars $ Cents $ BigInt .fromInt (-123450 )
84+ Test.Unit.Assert .equal " -1,234.50" result
85+
86+ Test.Unit .test " Just cents === parseCentsFromDollarStr (formatCentsToStrDollars cents)" do
87+ Test.Unit.QuickCheck .quickCheck \int -> do
88+ let cents = Cents $ BigInt .fromInt int
89+ Just cents === parseCentsFromDollarStr (formatCentsToStrDollars cents)
0 commit comments