Skip to content

Commit dec8922

Browse files
committed
Add tests for shouldBeNear
1 parent 96b8fb8 commit dec8922

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

test/Test/Hspec/ExpectationsSpec.hs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{-# LANGUAGE CPP #-}
2+
23
#if MIN_VERSION_base(4,8,1)
34
#define HAS_SOURCE_LOCATIONS
45
{-# LANGUAGE ImplicitParams #-}
@@ -43,6 +44,22 @@ spec = do
4344
it "fails if arguments are not equal" $ do
4445
("foo" `shouldBe` "bar") `shouldThrow` expectationFailed "expected: \"bar\"\n but got: \"foo\""
4546

47+
describe "shouldBeNear" $ do
48+
it "succeeds if arguments are equal" $ do
49+
1.23456789 `shouldBeNear` 1.23456789
50+
51+
it "fails if arguments are not equal" $ do
52+
(1.0 `shouldBe` 2.0) `shouldThrow` expectationFailed "expected: 2.0\n but got: 1.0"
53+
54+
it "succeeds if one argument is zero and the other less than epsilon" $ do
55+
0.0 `shouldBeNear` -1e-16
56+
57+
it "succeeds for large values near one another" $ do
58+
1e20 `shouldBeNear` (1e20 + 1)
59+
60+
it "fails for large values not near each other" $ do
61+
(1e20 `shouldBeNear` 1.1e20) `shouldThrow` expectationFailed "expected: 1.1e20\n but got: 1.0e20"
62+
4663
describe "shouldSatisfy" $ do
4764
it "succeeds if value satisfies predicate" $ do
4865
"" `shouldSatisfy` null

0 commit comments

Comments
 (0)