Skip to content
This repository was archived by the owner on Oct 4, 2020. It is now read-only.

Commit 3527796

Browse files
matthewleongaryb
authored andcommitted
simplify some arbitrary instances in tests
1 parent 001ad45 commit 3527796

File tree

1 file changed

+3
-23
lines changed

1 file changed

+3
-23
lines changed

test/Test/Data/Map.purs

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import Data.Maybe (Maybe(..), fromMaybe)
1515
import Data.Tuple (Tuple(..), fst)
1616
import Partial.Unsafe (unsafePartial)
1717
import Test.QuickCheck ((<?>), (===), quickCheck, quickCheck')
18+
import Test.QuickCheck.Gen (oneOf)
1819
import Test.QuickCheck.Arbitrary (class Arbitrary, arbitrary)
1920

2021
newtype TestMap k v = TestMap (M.Map k v)
@@ -39,19 +40,7 @@ instance showSmallKey :: Show SmallKey where
3940
show J = "J"
4041

4142
instance arbSmallKey :: Arbitrary SmallKey where
42-
arbitrary = do
43-
n <- arbitrary
44-
pure case n of
45-
_ | n < 0.1 -> A
46-
_ | n < 0.2 -> B
47-
_ | n < 0.3 -> C
48-
_ | n < 0.4 -> D
49-
_ | n < 0.5 -> E
50-
_ | n < 0.6 -> F
51-
_ | n < 0.7 -> G
52-
_ | n < 0.8 -> H
53-
_ | n < 0.9 -> I
54-
_ -> J
43+
arbitrary = oneOf (pure A) (map pure [B, C, D, E, F, G, H, I])
5544

5645
data Instruction k v = Insert k v | Delete k
5746

@@ -60,16 +49,7 @@ instance showInstruction :: (Show k, Show v) => Show (Instruction k v) where
6049
show (Delete k) = "Delete (" <> show k <> ")"
6150

6251
instance arbInstruction :: (Arbitrary k, Arbitrary v) => Arbitrary (Instruction k v) where
63-
arbitrary = do
64-
b <- arbitrary
65-
case b of
66-
true -> do
67-
k <- arbitrary
68-
v <- arbitrary
69-
pure (Insert k v)
70-
false -> do
71-
k <- arbitrary
72-
pure (Delete k)
52+
arbitrary = oneOf (Insert <$> arbitrary <*> arbitrary) [(Delete <$> arbitrary)]
7353

7454
runInstructions :: forall k v. Ord k => List (Instruction k v) -> M.Map k v -> M.Map k v
7555
runInstructions instrs t0 = foldl step t0 instrs

0 commit comments

Comments
 (0)