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

Commit 9d74e45

Browse files
authored
Merge pull request #92 from purescript/simplify-test-gens-rebase
Rebased Simplify test gens
2 parents 001ad45 + a8089de commit 9d74e45

File tree

1 file changed

+4
-23
lines changed

1 file changed

+4
-23
lines changed

test/Test/Data/Map.purs

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@ import Control.Monad.Eff (Eff)
88
import Control.Monad.Eff.Console (log, CONSOLE)
99
import Control.Monad.Eff.Exception (EXCEPTION)
1010
import Control.Monad.Eff.Random (RANDOM)
11+
import Data.NonEmpty ((:|))
1112
import Data.Foldable (foldl, for_, all)
1213
import Data.Function (on)
1314
import Data.List (List(Cons), groupBy, length, nubBy, singleton, sort, sortBy)
1415
import Data.Maybe (Maybe(..), fromMaybe)
1516
import Data.Tuple (Tuple(..), fst)
1617
import Partial.Unsafe (unsafePartial)
1718
import Test.QuickCheck ((<?>), (===), quickCheck, quickCheck')
19+
import Test.QuickCheck.Gen (elements, oneOf)
1820
import Test.QuickCheck.Arbitrary (class Arbitrary, arbitrary)
1921

2022
newtype TestMap k v = TestMap (M.Map k v)
@@ -39,19 +41,7 @@ instance showSmallKey :: Show SmallKey where
3941
show J = "J"
4042

4143
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
44+
arbitrary = elements $ A :| [B, C, D, E, F, G, H, I, J]
5545

5646
data Instruction k v = Insert k v | Delete k
5747

@@ -60,16 +50,7 @@ instance showInstruction :: (Show k, Show v) => Show (Instruction k v) where
6050
show (Delete k) = "Delete (" <> show k <> ")"
6151

6252
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)
53+
arbitrary = oneOf $ (Insert <$> arbitrary <*> arbitrary) :| [Delete <$> arbitrary]
7354

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

0 commit comments

Comments
 (0)