ú΋ò†ð?      !"#$%&'()*+,-./0123456789:;<=> Safe-InferedSee . See . IA suite is a node in a hierarchy of tests, similar to a directory in the L filesystem. Each suite has a name and a list of children, which are either  suites or tests. ;Contains details about a location in the test source file. 3A path to a source file, or empty if not provided. 0 is a field accessor, and can be used to update  a  value. 1A Haskell module name, or empty if not provided. 0 is a field accessor, and can be used to update  a  value. +A line number, or Nothing if not provided. 0 is a field accessor, and can be used to update  a  value. 'Contains details about a test failure. >If given, the location of the failing assertion, expectation,  etc. 0 is a field accessor, and can be used to update  a  value. 8If given, a message which explains why the test failed.  0 is a field accessor, and can be used to update  a  value. The result of running a test. JTo support future extensions to the testing API, any users of this module  who pattern-match against the   constructors should include a I default case. If no default case is provided, a warning will be issued. @The test aborted with an error message, and generated the given  notes. :The test failed, generating the given notes and failures. 2The test did not run, because it was skipped with   or . 0The test passed, and generated the given notes. HTest options are passed to each test, and control details about how the  test should be run. CGet the RNG seed for this test run. The seed is generated once, in   defaultMain7, and used for all tests. It is also logged to reports  using a note.  When using  defaultMain%, users may specify a seed using the  --seed command-line option. 0 is a field accessor, and can be used to update  a  value. AAn optional timeout, in millseconds. Tests which run longer than  this timeout will be aborted.  When using  defaultMain(, users may specify a timeout using the   --timeout command-line option. 0 is a field accessor, and can be used to update  a  value. A . is, essentially, an IO action that returns a  . Tests ! are aggregated into suites (see ). 7Define a test, with the given name and implementation. 7Get the name a test was given when it was defined; see . Default test options. $ ghci Prelude> import Test.Chell  .Test.Chell> testOptionSeed defaultTestOptions 0  1Test.Chell> testOptionTimeout defaultTestOptions Nothing  An empty 2; use the field accessors to populate this value.  An empty 2; use the field accessors to populate this value. AConditionally skip tests. Use this to avoid commenting out tests E which are currently broken, or do not work on the current platform.  tests :: Suite tests =  "tests"  test_Foo  (# builtOnUnix test_WindowsSpecific)  test_Bar JConditionally skip tests, depending on the result of a runtime check. The 3 predicate is checked before each test is started.  tests :: Suite tests =  "tests"  test_Foo  ( noNetwork test_PingGoogle)  test_Bar  Define a new $, with the given name and children. EThe type of this function allows any number of children to be added, 0 without requiring them to be homogenous types.  test_Addition :: Test test_Subtraction :: Test test_Show :: Test  tests_Math :: Suite  tests_Math =  "math"  test_Addition  test_Subtraction  tests_Prelude :: Suite tests_Prelude =  "prelude"  tests_Math  test_Show  Get a suite'9s name. Suite names may be any string, but are typically @ plain ASCII so users can easily type them on the command line. $ ghci chell-example.hs Ok, modules loaded: Main.  *Main> suiteName tests_Math "math" 1Get the full list of tests contained within this . Each test is J given its full name within the test hierarchy, where names are separated  by periods. $ ghci chell-example.hs Ok, modules loaded: Main.  *Main> suiteTests tests_Math /[Test "math.addition",Test "math.subtraction"] 8Run a test, wrapped in error handlers. This will return   if , the test throws an exception or times out. % ?@ABCDE ?  ?@ABCDE Safe-Infered FGHIJKLMN FGHIJKLMNFIHGJKLMNNoneDA simple default main function, which runs a list of tests and logs  statistics to stdout. OONone"2Class for types which can be treated as text; see =. See %. !See , and -. " A single pass/9fail assertion. Failed assertions include an explanatory  message. #See ". $See ". %Convert a sequence of pass/&fail assertions into a runnable test.   test_Equality :: Test  test_Equality = assertions "equality" $ do  $assert (1 == 1)  $assert (equal 1 1) &2Cause a test to immediately fail, with a message. &F is a Template Haskell macro, to retain the source-file location from + which it was used. Its effective type is:   $die :: P ->   a 'IPrint a message from within a test. This is just a helper for debugging,  so you don't have to import  Debug.Trace!. Messages will be prefixed with $ the filename and line number where $trace was called. 'A is a Template Haskell macro, to retain the source-file location 0 from which it was used. Its effective type is:   $trace :: P ->   () (AAttach a note to a test run. Notes will be printed to stdout and M included in reports, even if the test fails or aborts. Notes are useful for  debugging failing tests. )FRegister an IO action to be run after the test completes. This action . will run even if the test failed or aborted. * Require an Q value to be R, and return its contents. If  the value is S, fail the test. *8 is a Template Haskell macro, to retain the source-file 9 location from which it was used. Its effective type is:   $requireLeft :: T b => Q a b ->   a + Require an Q value to be S, and return its contents. If  the value is R, fail the test. +8 is a Template Haskell macro, to retain the source-file 9 location from which it was used. Its effective type is:   $requireRight :: T a => Q a b ->   b ,FCheck an assertion. If the assertion fails, the test will immediately  fail. 2The assertion to check can be a boolean value, an " , or an IO $ action returning one of the above. ,A is a Template Haskell macro, to retain the source-file location 0 from which it was used. Its effective type is:   $assert :: ! assertion => assertion ->   () -FCheck an assertion. If the assertion fails, the test will continue to " run until it finishes, a call to , fails, or the test runs &. 2The assertion to check can be a boolean value, an " , or an IO $ action returning one of the above. -A is a Template Haskell macro, to retain the source-file location 0 from which it was used. Its effective type is:   $expect :: ! assertion => assertion ->   () ."Assert that two values are equal. /&Assert that two values are not equal. 0<Assert that two values are within some delta of each other. 1Assert that some value is Just. 2Assert that some value is Nothing. 3Assert that some value is Left. 4Assert that some value is Right. 5GAssert that some computation throws an exception matching the provided K predicate. This is mostly useful for exception types which do not have an  instance for Eq , such as U. 6DAssert that some computation throws an exception equal to the given H exception. This is better than just checking that the correct type was M thrown, because the test can also verify the exception contains the correct  information. 7(Assert a value is greater than another. 84Assert a value is greater than or equal to another. 9%Assert a value is less than another. :1Assert a value is less than or equal to another. ;>Assert that two containers have the same items, in any order. <CAssert that two containers have the same items, in the same order. =EAssert that two pieces of text are equal. This uses a diff algorithm G to check line-by-line, so the error message will be easier to read on  large inputs. > Variant of =. which allows a user-specified line-splitting  predicate. VUses Data.ByteString.Lazy.Char8 WUses Data.ByteString.Char8 , !"#$%&'()*+,-./0delta 123456789:;<=>VWXYZ[\]^_`a?  !"#$%&'()*+,-./0123456789:;<=>F %!"#$,-&'()*+./0123456789:;<=>    , !"#$%&'()*+,-./0123456789:;<=>VWXYZ[\]^_`ab      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWUXYUXZUX[U\]U^_`abcdefghijkl chell-0.3 Test.ChellTest.Chell.TypesTest.Chell.OutputTest.Chell.Main SuiteOrTest BuildSuiteSuiteLocation locationFilelocationModule locationLineFailurefailureLocationfailureMessage TestResult TestAborted TestFailed TestSkipped TestPassed TestOptionstestOptionSeedtestOptionTimeoutTesttesttestNamedefaultTestOptionsfailurelocationskipIfskipWhensuite suiteName suiteTestsrunTest defaultMainIsText Assertions IsAssertion AssertionassertionPassedassertionFailed assertionsdietracenote afterTest requireLeft requireRightassertexpectequalnotEqual equalWithinjustnothingleftrightthrowsthrowsEqgreater greaterEquallesser lesserEqual sameItems equalItems equalLinesequalLinesWith handleJankyIO$fBuildSuite(->)$fSuiteOrTestTest$fSuiteOrTestSuite$fBuildSuiteSuite $fShowSOT $fShowTest ColorModeColorModeNeverColorModeAlways ColorModeAutoOutput outputStart outputResult plainOutput colorOutput$fOptionsMainOptionsbaseGHC.BaseString Data.EitherEitherLeftRightGHC.ShowShow GHC.Exception ErrorCall$fIsTextByteString$fIsTextByteString0 $fIsTextText $fIsTextText0 $fIsText[]$fMonadIOAssertions$fMonadAssertions$fApplicativeAssertions$fFunctorAssertions$fIsAssertionIO$fIsAssertionBool$fIsAssertionAssertion