úÎ!f»b)A      !"#$%&'()*+,-./0123456789:;<=>?@(c) Joel Burget, 2018-2019MITjoelburget@gmail.com experimentalNoneÞAeasytest modified to take a Beasytest exposed.Ceasytest modified to take a easytestD, modified to take a seed and exit on failure(c) Joel Burget, 2018-2019MITjoelburget@gmail.com experimentalNoneSX_Nã easytest!A set of unit- and property-testseasytestA set of named (scoped) tests easytestA sequence of tests!easytest An atomic unit- or property-test"easytestA set of tests marked to skip#easytestUnit- or property- test.&easytestA type-restricted prism. See  Ihttp://hackage.haskell.org/package/lens-4.17/docs/Control-Lens-Prism.htmlControl.Lens.Prism for more explanation.'easytesteA prism embodies one constructor of a sum type (as a lens embodies one part of a product type). See  ,  ,  , and   for examples. See  Ihttp://hackage.haskell.org/package/lens-4.17/docs/Control-Lens-Prism.htmlControl.Lens.Prism for more explanation.(easytestRun a list of tests)easytestHLabel a test. Can be nested. A "." is placed between nested scopes, so scope "foo" . scope "bar" is equivalent to scope "foo.bar"*easytestRun a unit test (same as + ). Example:run $ example $ 1 === 2 > %%% run %%%$> ' (unnamed) failed after 1 test.>> %%% tests/Suite.hs %%%> 26 % main :: IO ()> 27 % main = do-> 28 % run $ example $ 1 === (2 :: Int).> % ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^'> % % Failed (- lhs =/= + rhs)> % % - 1> % % + 2>0> This failure can be reproduced by running:R> > recheck (Size 0) (Seed 2914818620245020776 12314041441884757111) (unnamed)>> ' 1 failed.+easytestRun a unit test (same as * ). Example:run $ unitTest $ 1 === 2 > %%% run %%%$> ' (unnamed) failed after 1 test.>> %%% tests/Suite.hs %%%> 26 % main :: IO ()> 27 % main = do.> 28 % run $ unitTest $ 1 === (2 :: Int).> % ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^'> % % Failed (- lhs =/= + rhs)> % % - 1> % % + 2>0> This failure can be reproduced by running:R> > recheck (Size 0) (Seed 2914818620245020776 12314041441884757111) (unnamed)>> ' 1 failed.,easytestRun a property test. Example:+run $ scope "list reversal" $ property $ do<>.. list <- forAll $ Gen.list @_ @Int (Range.linear 0 100)>.. (Gen.element [0..100])%>.. reverse (reverse list) === list > %%% run %%%%> ' list reversal passed 100 tests.> ' 1 succeeded.-easytestRRun a property test with a custom configuration. This allows you to configure the , , , or  . Example:[run $ scope "list reversal" $ propertyWith (defaultConfig { propertyTestLimit = 500 }) $ do<>.. list <- forAll $ Gen.list @_ @Int (Range.linear 0 100)>.. (Gen.element [0..100])%>.. reverse (reverse list) === list > %%% run %%%%> ' list reversal passed 500 tests.> ' 1 succeeded..easytest*Make a test with setup and teardown steps./easytest A variant of .= where the return value from the setup step is not required.0easytestA specialised variant of . with just a teardown step.Eeasytest!Split a test specifier into parts1easytestTest whether a ' matches. Example:main > %%% run %%%> ' (unnamed) passed 1 test.$> ' (unnamed) failed after 1 test.>> %%% tests/Suite.hs %%%> 48 % main :: IO ()> 49 % main = do> 50 % _ <- run $ testsD> 51 % [ example $ matches _Left (Left 1 :: Either Int ())D> 52 % , example $ matches _Left (Right () :: Either Int ())A> % ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^> 53 % ]> 54 % pure ()>> Prism failed to match>0> This failure can be reproduced by running:R> > recheck (Size 0) (Seed 14003809197113786240 2614482618840800713) (unnamed)>> ' 1 failed, 1 succeeded. Use with  ,  ,  ,  , or Ihttp://hackage.haskell.org/package/lens-4.17/docs/Control-Lens-Prism.htmlControl.Lens.Prism2easytestTest whether a ' doesn't match. Compare with 1.FeasytestMake a G from a list of tests.HeasytestFlatten a test tree. Use with FIeasytest%Flatten a subtree of tests. Use with FJeasytest5Skip this test tree (mark all properties as skipped).3easytest7Run all tests whose scope starts with the given prefix.runOnly "components.a" tests4easytestQRerun all tests with the given seed and whose scope starts with the given prefixNrerunOnly "components.a" (Seed 2914818620245020776 12314041441884757111) tests5easytest Run all tests6easytest#Rerun all tests with the given seed;rerun (Seed 2914818620245020776 12314041441884757111) tests7easytest"Explicitly skip this set of tests.8easytestMark a test as pending.9easytest%Record a failure with a given message:easytest*Make this a cabal test suite for use with exitcode-stdio-1.0  test-suites.DThis simply checks to see if any tests failed and if so exits with K.1  !"#$%&'()*+,-./0123456789:1()7*+,-12895364./0:'&#$% !" (c) Joel Burget, 2018-2019MITjoelburget@gmail.com provisionalNoneQ•) ()*+,-./0123456789:)()*+,-127895364./0: 2(c) Joel Burget, 2018-2019; Edward Kmett 2012-2016MITjoelburget@gmail.com experimentalNoneSXaå;easytest' to the L half of an M<easytest' to the N half of an M=easytest' to the O in a P>easytest' to the Q in a P?easytestThis '0 compares for exact equality with a given value. only 4 # ()4 5 ^? only 4Nothing@easytestThis '¹ compares for approximate equality with a given value and a predicate for testing, an example where the value is the empty list and the predicate checks that a list is empty (same as   with the   list instance):nearly [] null # ()[][1,2,3,4] ^? nearly [] nullNothing @ [] R :: & [a] ()To comply with the '" laws the arguments you supply to  nearly a p are somewhat constrained. We assume p x holds iff x "a a-. Under that assumption then this is a valid '.‰This is useful when working with a type where you can test equality for only a subset of its values, and the prism selects such a value.&';<=>?@;<=>?@'&S !"#$%&'(()*+*,*-*-./0123456789:;<=>?@ABCDEFGHIJK    LMNOPQRSTUVWUXYUXZUX[U\]U\^U\_U`ab#easytest-0.3-J62TaHjiyqFDwHu16pV8NhEasyTest.InternalEasyTestEasyTest.Internal.HedgehogEasyTest.PrismHedgehog.Internal.Runner checkNamed updateSummarycheckGroupWith_Just_Nothing_Left_RightControl.Lens.Empty_EmptyAsEmpty%hedgehog-0.6.1-Dx6XNtdkTk8G6nRH1WHbvEHedgehog.Internal.Report summaryOK summaryGaveUp summaryFailedsummaryRunningsummaryWaitingSummaryHedgehog.Internal.Property defaultConfigforAll/=====assertsuccessfailurefootnoteannotateProperty PropertyTpropertyShrinkRetriespropertyShrinkLimitpropertyDiscardLimitpropertyTestLimitPropertyConfig MonadTestHedgehog.Internal.Seed seedGamma seedValueSeed recheckSeedTest NamedTestsSequenceLeafSkippedTestTypeUnitPropPrism'PrismtestsscopeexampleunitTestproperty propertyWithbracketbracket_finallymatches doesn'tMatchrunOnly rerunOnlyrunrerunskippendingcrashcabalTestSuiteonlynearlycheckSequentialsplitSpecifiermkGroupGrouprunTree runTreeOnly skipTree'base System.Exit exitFailure Data.EitherLeftEitherRight GHC.MaybeJustMaybeNothing Data.Foldablenull