Skip to content

Commit f8582f5

Browse files
committed
Add tests for shouldBeNear
1 parent 0ba1008 commit f8582f5

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

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 #-}
@@ -40,6 +41,22 @@ spec = do
4041
it "fails if arguments are not equal" $ do
4142
("foo" `shouldBe` "bar") `shouldThrow` expectationFailed "expected: \"bar\"\n but got: \"foo\""
4243

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

0 commit comments

Comments
 (0)