diff --git a/libs/cardano-ledger-test/src/Test/Cardano/Ledger/Constrained/Combinators.hs b/libs/cardano-ledger-test/src/Test/Cardano/Ledger/Constrained/Combinators.hs index 001c441d4b..6542265a79 100644 --- a/libs/cardano-ledger-test/src/Test/Cardano/Ledger/Constrained/Combinators.hs +++ b/libs/cardano-ledger-test/src/Test/Cardano/Ledger/Constrained/Combinators.hs @@ -44,8 +44,10 @@ fixSet numtrys size genA s = help numtrys s else error ("Ran out of trys in fixSet: " ++ show trys) help trys set = case compare (Set.size set) size of EQ -> pure set - GT -> help (trys - 1) (Set.deleteMin set) - LT -> do a <- genA; help (trys - 1) (Set.insert a set) + GT -> help (trys - 1) (iterate Set.deleteMin set !! (Set.size set - size)) + LT -> do + new <- Set.fromList <$> vectorOf (size - Set.size set) genA + help (trys - 1) (Set.union new set) mapSized :: Ord a => Int -> Gen a -> Gen b -> Gen (Map a b) mapSized size genA genB = setSized size genA >>= addRange