!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   Safe-Inferred Safe-InferredRun a command using the shell. Run a command. Command Content of stdin (stdout, stderr, exit code) Binary  Arguments Content of stdin (stdout, stderr, exit code)  Safe-Inferred    None Randomly shuffle a list  O(N)    !    !    !  Safe-Inferred*A type class for pretty-printable things.  Minimal complete definition: pretty. Pretty-print a single value. Pretty-print a list of things. !Pretty-print a single value as a ". !Utility function for inserting a = between two # values.  $%&'B()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_#`abc   $%&' Safe-Inferred3defghijklmnopqrstuvwxyz{|}~/defghijklmnopqrstuvwxyz{|}~defghizyxwvutsrqponmlkj{|}~ Safe-Inferred   Safe-Inferred 3An abstract type representing locations in a file.  Render a   as a ". Extract the file name of a  . Extract the line number of a  . Create a new location. The unknown location (file ? and line 0).   The file name The line number       Safe-Inferred<*Reports the overall results of all tests. %Reports the result of a single test. $Reports the start of a single test. /Signals that test execution is about to start. (Reports the IDs of all tests available. A 0 provides hooks to customize the output of HTF. 1Called to report the IDs of all tests available. .Called to report the start of test execution. -Called to report the start of a single test. .Called to report the result of a single test. 3Called to report the overall results of all tests. !Configuration of test execution. !1If set, displays messages only for failed tests. "Use Just i for parallel execution with i threads, Nothing for sequential execution. #(Shuffle tests before parallel execution $4Output destination of progress and result messages. %)Output destination of XML result summary &Filter for the tests to run. 'Test reporters to use. (Whether to use colored output ):The destination of progress and result messages from HTF. *2Output goes to files whose names are derived from 8 by appending a number to it. Numbering starts at zero. +Output goes to I, boolean flag indicates whether the handle should be closed at the end. ,The , (test runner) monad. -The state type for the , monad. /Results collected so far. 0#Current index for splitted output. 1The result of running a A 2The result of a test run. 4 The summary result of the test. 54The location where the test failed (if applicable). 6DInformation about the callers of the location where the test failed 7!A message describing the result. 8 Execution time in milliseconds. 9A type for call-stacks :)A type synonym for time in milliseconds. ;The summary result of a test. @A filter is a predicate on A. If the predicate is , the flat test is run. A#Flattened representation of tests. B4Generic type for flattened tests and their results. DThe sort of the test. EHierarchival path. FPlace of definition. GA generic payload. H1A type denoting the hierarchical name of a test. K1Abstract type for test suites and their results. N+Abstract type for tests and their results. Q#A type class for an assertion with X. TSomething with X XGeneral options for tests [2Type for distinguishing different sorts of tests. _Type for naming tests. `An assertion is just an  action. a The default X bShortcut for constructing a T value. c Splits a H" into a list of test identifiers. d'Creates a string representation from a H. eReturns the final name of a H fSReturns the name of the prefix of a test path. The prefix is everything except the  last element. hThe initial test state. ^wall time in ms  passed tests pending tests  failed tests erroneous tests  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiX !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiX_`NPOXYZQRSTUVWKML[^]\HJIBCDEFGA@cdefab,-./0h !"#$%&'()+*ig9;?>=<1:2345678* !"#$%&'()+*,-./0123456789:;?>=<@ABCDEFGHJIKMLNPOQRSTUVWXYZ[^]\_`abcdefghiNonejj jNone(kwall time in ms  passed tests pending tests  failed tests erroneous tests kk kNone/lmnopqrstuv      lmnopqrstuv ponlmrstuvqlmnopqrstuv     NoneInvokes # on all test reporters registered. Invokes # on all test reporters registered. Invokes # on all test reporters registered. Invokes # on all test reporters registered. Invokes # on all test reporters registered. $The default test reporters for HTF. ,wxyz{|}~ !"#$%&'()*+,-./01wxyz{|}~}~z|{wyx$wyxz|{}~ !"#$%&'()*+,-./01 None'Commandline options for running tests. Be quiet or not. %Run only tests matching this filter. If #, display a help message and exit. 5Regular expressions matching test names which should not run. Use Just i for parallel execution with i threads, Nothing for sequential execution. If = (the default), shuffle tests when running them in parallel. 8Format output for machines (JSON format) or humans. See & for a definition of the JSON format. ,Output file for junit-style XML output. See % for a definition of the XML format. Use Just b to enable/disable use of colors, Nothing infers the use of colors. $The output file, defaults to stdout If ', lists all tests available and exits. If M, each message is sent to a new ouput file (derived by appending an index to ).  The default . !Parse commandline arguments into . Here' s a synopsis ,of the format of the commandline arguments: ) USAGE: COMMAND [OPTION ...] PATTERN ...  8 where PATTERN is a posix regular expression matching " the names of the tests to run.  7 -q --quiet only display errors 4 -n PATTERN --not=PATTERN tests to exclude ; -l --list list all matching tests H -j[N] --threads[=N] run N tests in parallel, default N=4 Y --deterministic do not shuffle tests when executing them in parallel. 7 -o FILE --output-file=FILE name of output file ` --json output results in machine-readable JSON format (incremental) L --xml=FILE output results in junit-style XML format v --split splits results in separate files to avoid file locking (requires -o/--output-file) 5 --colors=BOOL use colors or not 8 -h --help display this message The string displayed for the --help option.  Turn the  into a . 234 234 None2A type class for things that can be run as tests.  Mainly used internally. !Construct a test where the given ` checks a quick check property. 3 Mainly used internally by the htfpp preprocessor. %Construct a unit test from the given  action. 3 Mainly used internally by the htfpp preprocessor. *Construct a black box test from the given `.  Mainly used internally. Create a named K from a list of N values. Create an unnamed K from a list of N values. Turn a K into a proper N.  Extend a K with a list of N values !Run something testable using the . !Run something testable using the . "Run something testable, parse the ' from the given commandline arguments. 8 Does not print the overall test results but returns an  action for doing so. "Run something testable, parse the ' from the given commandline arguments. 'Runs something testable with the given .  See  for a specification of the 5 result. 'Runs something testable with the given  . Does not / print the overall test results but returns an  action for doing so.  See  for a specification of the 5 result. 'Runs something testable with the given .  The result is 6* if all tests were executed successfully,  71 otherwise. In the latter case, an error code of 1 indicates @ that failures but no errors occurred, otherwise the error code 2 is used.  A test is  successful0 if the test terminates and no assertion fails.  A test is said to fail1 if an assertion fails but no other error occur. 'Runs something testable with the given  . Does not / print the overall test results but returns an  action for doing so.  See  for a specification of the 5 result. MRuns something testable by parsing the commandline arguments as test options  (using (). Exits with the exit code returned by . : This function is the main entry point for running tests. 89:;<Testable thing See  for a specification of the 5 result Testable thing S action for printing the overall test results, and exit code for the test run. See  for a specification of the 5 result Commandline arguments Testable thing See  for a specification of the 5 result. Commandline arguments Testable thing S action for printing the overall test results, and exit code for the test run. See  for a specification of the 5 result. =>?@i !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi89:;<=>?@ None:Use a value of this datatype to customize various aspects of your black box tests. +File extension for the file used as stdin. BFile extension for the file specifying expected output on stdout. BFile extension for the file specifying expected output on stderr. Name of a file defining various arguments for executing the tests contained in a subdirectory of the test hierarchy. If a directory contains a such-named file, the arguments apply to all testfiles directly contained in this directory. See the documentation of 2 for a specification of the argument file format. Ge verbose or not. EDiff program for comparing output on stdout with the expected value. EDiff program for comparing output on stderr with the expected value. A/path to file holding expected output on stdout B/path to file holding expected output on stderr 7The type of a function comparing the content of a file +against a string, similar to the unix tool diff. ;The first parameter is the name of the file containing the &expected output. If this parameter is C, then no output Ais expected. The second parameter is the actual output produced. If the result is C then no difference was found.  Otherwise, a D( value contains a string explaining the  different. Sensible default values for :  4defaultBBTArgs = BBTArgs { bbtArgs_stdinSuffix = ".in" 4 , bbtArgs_stdoutSuffix = ".out" 4 , bbtArgs_stderrSuffix = ".err" 4 , bbtArgs_dynArgsName = "BBTArgs" @ , bbtArgs_stdoutDiff = defaultDiff @ , bbtArgs_stderrDiff = defaultDiff < , bbtArgs_verbose = False } A default value for the % datatype that simple resorts to the diff commandline utility. [Collects all black box tests with the given file extension stored in a specific directory. For example, the invocation  J blackBoxTests "bbt-dir" "dist/build/sample/sample" ".num" defaultBBTArgs returns a list of N values, one N for each .num file found in bbt-dirG and its subdirectories. (The samples directory of the HTF source tree !contains the example shown here, see  3https://github.com/skogsbaer/HTF/tree/master/sample.) Suppose that one of the .num files is bbt-dir/ should-pass/x.num. Running the corresponding N invokes dist/build/sample/sample (the program under test) with bbt-dir/ should-pass/x.num# as the last commandline argument. TThe other commandline arguments are taken from the flags specification given in the !file whose name is stored in the  field of the  record  (see below). If bbt-dir/ should-pass/x.in existed, its content +would be used as stdin. The tests succeeds ,if the exit code of the program is zero and 8the output on stdout and stderr matches the contents of bbt-dir/ should-pass/x.out and bbt-dir/ should-pass/x.err, respectively. The  field of the  record specifies a filename Ithat contains some more configuration flags for the tests. The following -flags (separated by newlines) are supported: Skip= Skips all tests in the same directory as the argument file. FailM Specify that the test should succeed if it exits with a non-zero exit code.  Flags: flags Passes the given flags to the program under test. "EFGHIJKLMNOPABQRSTU%root directory of the test hierarchy name of program under test filename suffix for input file configuration VW EFGHIJKL MNOPABQRSTUVW None *Type class providing access to the custom X of a quick check property.  Used only internally. BAbstract type for representing quick check properties with custom X.  Used only internally. The X! used if not explicitly changed. Change the default X* used to evaluate quick check properties.  Retrieve the XD currently used per default when evaluating quick check properties. Turns a  property into an `. This function - is used internally in the code generated by htfpp, do not use it directly. Run a . property with modified quick check arguments X. Turns a  property with custom X into an `. This function - is used internally in the code generated by htfpp, do not use it directly. Use qcPending msg prop3 to mark the given quick check property as pending c without removing it from the test suite and without deleting or commenting out the property code. YZ[\]^_`a&Modification function for the default X  Property bcdefghijklmnopqrstXuvwxyz{|}~ YZ[\]^_`abcdeNonePFail with the given reason, supplying the error location and the error message. Use unitTestPending' msg test# to mark the given test as pending ^without removing it from the test suite and without deleting or commenting out the test code.  Fail if the  value is . The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use  assertBool_ and assertBoolVerbose_ directly, use the macros  assertBool and assertBoolVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. Fail if the two values of type a are not equal. U The first parameter denotes the expected value. Use these two functions  of a is an instance of  but not of . The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use  assertEqual_ and assertEqualVerbose_ directly, use the macros  assertEqual and assertEqualVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. Fail if the two values of type a are equal. U The first parameter denotes the expected value. Use these two functions  of a is an instance of  but not of . The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use assertNotEqual_ and assertNotEqualVerbose_ directly, use the macros assertNotEqual and assertNotEqualVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. Fail if the two values of type a are not equal. U The first parameter denotes the expected value. Use these two functions  of a is an instance of . The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use assertEqualPretty_ and assertEqualPrettyVerbose_ directly, use the macros assertEqualPretty and assertEqualPrettyVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. Fail if the two values of type a are equal. U The first parameter denotes the expected value. Use these two functions  of a is an instance of . The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use assertNotEqualPretty_ and assertNotEqualPrettyVerbose_ directly, use the macros assertNotEqualPretty and assertNotEqualPrettyVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. Fail if the two values of type a are not equal. U The first parameter denotes the expected value. Use these two functions  of a is neither an instance of  nor . Be aware that in this M case the generated error message might not be very helpful. The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use assertEqualNoShow_ and assertEqualNoShowVerbose_ directly, use the macros assertEqualNoShow and assertEqualNoShowVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. Fail if the two values of type a are equal. U The first parameter denotes the expected value. Use these two functions  of a is neither an instance of  nor . Be aware that in this M case the generated error message might not be very helpful. The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use assertNotEqualNoShow_ and assertNotEqualNoShowVerbose_ directly, use the macros assertNotEqualNoShow and assertNotEqualNoShowVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. *Fail if the two given lists are not equal W when considered as sets. The first list parameter E denotes the expected value. The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use assertListsEqualAsSets_ and assertListsEqualAsSetsVerbose_ directly, use the macros assertListsEqualAsSets and assertListsEqualAsSetsVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. %Fail if the given list is empty. The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use assertNotEmpty_ and assertNotEmptyVerbose_ directly, use the macros assertNotEmpty and assertNotEmptyVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. 0Fail if the given list is a non-empty list. The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use  assertEmpty_ and assertEmptyVerbose_ directly, use the macros  assertEmpty and assertEmptyVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. Fail if executing the  action does not ? throw an exception satisfying the given predicate  (e -> Bool). The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use assertThrowsIO_ and assertThrowsIOVerbose_ directly, use the macros assertThrowsIO and assertThrowsIOVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. Fail if executing the  action does not % throw an exception. The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use assertThrowsSomeIO_ and assertThrowsSomeIOVerbose_ directly, use the macros assertThrowsSomeIO and assertThrowsSomeIOVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. Fail if executing the m action does not ? throw an exception satisfying the given predicate  (e -> Bool). The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use assertThrowsM_ and assertThrowsMVerbose_ directly, use the macros  assertThrowsM and assertThrowsMVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. Fail if executing the m action does not % throw an exception. The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use assertThrowsSomeM_ and assertThrowsSomeMVerbose_ directly, use the macros assertThrowsSomeM and assertThrowsSomeMVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. *Fail if evaluating the expression of type a does not ? throw an exception satisfying the given predicate  (e -> Bool). The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use  assertThrows_ and assertThrowsVerbose_ directly, use the macros  assertThrows and assertThrowsVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. *Fail if evaluating the expression of type a does not % throw an exception. The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use assertThrowsSome_ and assertThrowsSomeVerbose_ directly, use the macros assertThrowsSome and assertThrowsSomeVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. Fail if the given  Either a b value is a . " Use this function if b is an instance of  The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use  assertLeft_ and assertLeftVerbose_ directly, use the macros  assertLeft and assertLeftVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. Fail if the given  Either a b value is a . The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use assertLeftNoShow_ and assertLeftNoShowVerbose_ directly, use the macros assertLeftNoShow and assertLeftNoShowVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. Fail if the given  Either a b value is a . " Use this function if a is an instance of  The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use  assertRight_ and assertRightVerbose_ directly, use the macros  assertRight and assertRightVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. Fail if the given  Either a b value is a . The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use assertRightNoShow_ and assertRightNoShowVerbose_ directly, use the macros assertRightNoShow and assertRightNoShowVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. Fail is the given Maybe a value is a C. The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use  assertJust_ and assertJustVerbose_ directly, use the macros  assertJust and assertJustVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. Fail is the given Maybe a value is a D. " Use this function if a is an instance of . The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use assertNothing_ and assertNothingVerbose_ directly, use the macros  assertNothing and assertNothingVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. Fail is the given Maybe a value is a D. The " parameter in the VerboseZ variant can be used to provide extra information about the error. Do not use assertNothingNoShow_ and assertNothingNoShowVerbose_ directly, use the macros assertNothingNoShow and assertNothingNoShowVerbose( instead. These macros, provided by the htfpp preprocessor, insert the   parameter automatically. Sub assertions are a poor man'Fs way of abstracting over assertions while still propagating location B information. Say you want to abstract over the assertion that an  is positive. You would write  & assertIsPositive :: Int -> Assertion ) assertIsPositive n = assertBool (n > 0) You can now use assertIsPositive i for some integer i3 from your unit tests, but if you call it directly ( you will lose location information: if assertIsPositive i, fails you will only get the location where  assertIsPositive3 is defined but not from where it has been called. 3To recover the location information you simply use subAssert (assertIsPositive i).  In this case, if i; is not positive, you will get the location of the caller. Note: Don'9t use subAssert_ directly but use the preprocessor macro  subAssert. Same as ' but with an additional error message. N3j3jNNonefghijklmnopqrstXuvwxyz{|}~KjK !"#$%&'()*+,-./001234567789:;<=>?@ABCDDEFGHHIJKLMNOPQRSTUVWVXYZ[\]^_`_abcdeffghiijklmnopqrstuvwxyz{|}~                !"#$%&'()*+,-./012345/06/07/08/09/0:/0;/0;/0</0=/0>/0?/0@/0A/0B/0C/0D/0E/0F/0G/0H/0I/0J/0K/0L/0M/0N/0O/0P/0Q/0R/0S/0T/0U/0V/0W/0X/0Y/0Z/0[/0\/0]/0^/0_/0`/0a/0b/0c/0d/0e/0f/0g/0h/0i/0j/0k/0l/0m/0n/0o/0pqqrsstuvwxyz{|}~%,,|}~      !"#$%&'()*+,-./012 3 4 5,67,68,69 : ; < = > ? @ A B C D,EF,EG H I I J K L M N N O P Q R S T U V W XYZ[ \ ]  ^ ^ _ _ ` a b c d eYZfYZgYZhYZiYZjYZkYZlYZmYZnYZoYZpYZqYZrYZsYZ[YZtYZuYZvYZwYZxYZyYZzYZ{YZ|YZ}YZ~YZYZYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYnY,,, HTF-0.11.0.1Test.Framework.ThreadPoolTest.Framework.PrettyTest.Framework.LocationTest.Framework.TestTypesTest.Framework.HUnitWrapperTest.Framework.XmlOutputTest.Framework.JsonOutputTest.Framework.TestReporterTest.Framework.CmdlineOptionsTest.Framework.TestManagerTest.Framework.BlackBoxTest Test.Framework.QuickCheckWrapperTest.Framework.TutorialTest.Framework.ProcessTest.Framework.UtilsTest.Framework.ColorsTest.Framework.Diff"Test.Framework.TestManagerInternalTest.Framework JsonOutput XmlOutputTest.Framework.TestConfigdefaultCmdlineOptionsTest QuickCheck ThreadPooltp_runThreadPoolEntrysequentialThreadPoolparallelThreadPoolthreadPoolTestPrettypretty prettyList showPretty<=>LocationshowLocfileName lineNumbermakeLocunknownLocationReportGlobalResultsReportTestResultReportTestStartReportGlobalStartReportAllTests TestReportertr_idtr_reportAllTeststr_reportGlobalStarttr_reportTestStarttr_reportTestResulttr_reportGlobalResults TestConfigtc_quiet tc_threads tc_shuffle tc_output tc_outputXml tc_filter tc_reporters tc_useColors TestOutputTestOutputSplittedTestOutputHandleTR TestState ts_resultsts_indexFlatTestResult RunResult rr_result rr_location rr_callers rr_message rr_wallTimeMs CallStack Milliseconds TestResultErrorFailPendingPass TestFilterFlatTest GenFlatTestft_sortft_path ft_location ft_payloadTestPathTestPathCompound TestPathBase TestSuite AnonTestSuite CompoundTestBaseTestAssertionWithTestOptions testOptions assertionWithTestOptions wto_options wto_payload TestOptions to_parallelTestSort BlackBoxTestQuickCheckTestUnitTestTestID AssertiondefaultTestOptions withOptionstestPathToListflatName finalName prefixNameattachCallStack initTestStateemptyTestReporterunitTestPendingmkGlobalResultsXmlTestObjTestResultsObj TestListObjTestEndEventObjTestStartEventObj HTFJsonObjmkTestStartEventObjmkTestEndEventObj mkTestListObjmkTestResultsObj decodeObj IsXmlOutput NoXmlOutput IsJsonOutput NoJsonOutput IsParallel NonParallelParallelreportAllTestsreportGlobalStartreportTestStartreportTestResultreportGlobalResultsisParallelFromBooldefaultTestReportersCmdlineOptions opts_quiet opts_filter opts_help opts_negated opts_threads opts_shuffleopts_machineOutputopts_machineOutputXmlopts_useColorsopts_outputFileopts_listTests opts_split parseTestArgs helpStringtestConfigFromCmdlineOptions TestableHTFmakeQuickCheckTest makeUnitTestmakeBlackBoxTest makeTestSuitemakeAnonTestSuitetestSuiteAsTestaddToTestSuiterunTestrunTest'runTestWithArgsrunTestWithArgs'runTestWithOptionsrunTestWithOptions'runTestWithConfigrunTestWithConfig'htfMainBBTArgsbbtArgs_stdinSuffixbbtArgs_stdoutSuffixbbtArgs_stderrSuffixbbtArgs_dynArgsNamebbtArgs_verbosebbtArgs_stdoutDiffbbtArgs_stderrDiffDiffdefaultBBTArgs defaultDiff blackBoxTests WithQCArgsTestableWithQCArgs defaultArgssetDefaultArgsgetCurrentArgstestableAsAssertion withQCArgsasTestableWithQCArgs qcPendingassertFailure_unitTestPending'assertBoolVerbose_ assertBool_assertEqualVerbose_ assertEqual_assertNotEqualVerbose_assertNotEqual_assertEqualPrettyVerbose_assertEqualPretty_assertNotEqualPrettyVerbose_assertNotEqualPretty_assertEqualNoShowVerbose_assertEqualNoShow_assertNotEqualNoShowVerbose_assertNotEqualNoShow_assertListsEqualAsSetsVerbose_assertListsEqualAsSets_assertNotEmptyVerbose_assertNotEmpty_assertEmptyVerbose_ assertEmpty_assertThrowsIOVerbose_assertThrowsIO_assertThrowsSomeIOVerbose_assertThrowsSomeIO_assertThrowsMVerbose_assertThrowsM_assertThrowsSomeMVerbose_assertThrowsSomeM_assertThrowsVerbose_ assertThrows_assertThrowsSomeVerbose_assertThrowsSome_assertLeftVerbose_ assertLeft_assertLeftNoShowVerbose_assertLeftNoShow_assertRightVerbose_ assertRight_assertRightNoShowVerbose_assertRightNoShow_assertJustVerbose_ assertJust_assertNothingVerbose_assertNothing_assertNothingNoShowVerbose_assertNothingNoShow_ subAssert_subAssertVerbose_ popenShellpopenpopen' FromWorker WorkResultToWorker NamedChan NamedMVarWorkItemDoneWorkrunSequentially runParallel_DEBUG_ newNamedChan readNamedChanwriteNamedChannewEmptyNamedMVar putNamedMVar takeNamedMVardebugrunTestParallel$fShowWorkResult$fShowWorkItem shuffleIODirectoryEntryTypeOther DirectoryFilebasenamedirname startswithendswith dropPrefix dropSuffix replaceSuffix dropSpacedirectoryEntryType collectFiles maybeFile mapAccumLMreadM ensureNewlinestripmeasurediffClockTimesbaseGHC.BaseStringpretty-1.1.1.0Text.PrettyPrint.HughesPJDoc $fPrettyBool $fPrettyInt $fPretty[] $fPrettyCharMode OneLineModeLeftMode ZigZagModePageModeStylemode lineLengthribbonsPerLinestyle fullRender renderStylerenderfsepfcatcatsep<+><>$+$$$ punctuatehangnestvcathsephcatbracesbracketsparens doubleQuotesquotesrationaldoublefloatintegerintrbracelbracerbracklbrackrparenlparenequalsspacecoloncommasemiisEmptyempty zeroWidthText sizedTextptexttextcharChrStrPStr TextDetails ColorString unColorStringPrimColorString PrimColorNoColorWhiteYellow LightMagentaLightRed LightCyan LightGreen LightBlueDarkGrayGrayBrownMagentaRedCyanGreenBlueBlackColorfirstDiffColorsecondDiffColor skipDiffColor diffColor warningColortestStartColor testOkColor pendingColor startColorresetemptyColorStringunlinesColorStringconcatColorStringcolorStringFindensureNewlineColorStringcolorize colorizeText colorize' colorizeText'noColor noColorTextnoColor' noColorText'+++renderColorString$fIsStringColorString DiffConfig dc_fromFirst dc_fromSecond dc_fromBothdc_sepdc_skipdc_lineFromFirstdc_lineFromSecondPos FirstLastLastMiddleFirstisLastisFirstmkDefaultDiffConfigdefaultDiffConfig contextSizesingleLineDiff multiLineDiffdiffdiffWithSensibleConfigmultiLineDiffHaskellmainGHC.IOFilePathGHC.IO.Handle.TypesHandleghc-prim GHC.TypesTrueIOflatNameFromList$fEqTestReporter$fShowTestReporter$fShowTestConfig)$fAssertionWithTestOptionsWithTestOptions$fAssertionWithTestOptionsIOUnitTestResult utr_locationutr_callingLocations utr_message utr_pendingassertFailureHTFquickCheckTestErrorquickCheckTestFailquickCheckTestPendingquickCheckTestPassdeserializeQuickCheckMsg unitTestFailunitTestSubAssertdeserializeHUnitMsgblackBoxTestFailResult r_elemName r_messager_type r_textContentTestcase tc_classnametc_nametc_time tc_result Testsuitets_tests ts_failures ts_errorsts_timets_idts_name ts_package ts_testcases Testsuites tss_tests tss_failures tss_errorstss_time tss_suitesSecondsJunitXmlOutput renderAsXml groupByModule mkTestSuite isFailureisError mkTestCasemillisToSeconds to_flatNameto_path to_locationto_sort tr_wallTimeMs tr_passed tr_pending tr_failed tr_errors tlm_testste_test te_result te_location te_callers te_message te_wallTimeMsts_test mkTestObj$fToJSONLocation$fToJSONTestSort$fToJSONTestPath$fToJSONTestObj$fHTFJsonObjTestResultsObj$fToJSONTestResultsObj$fHTFJsonObjTestListObj$fToJSONTestListObj$fToJSONTestResult$fHTFJsonObjTestEndEventObj$fToJSONTestEndEventObj$fHTFJsonObjTestStartEventObj$fToJSONTestStartEventObj ReportLevelInfoDebug humanTestNamereportHumanTestStartMessagereportGlobalStartHSreportTestStartHSreportTestResultHSreportGlobalStartHPreportTestStartHPreportTestResultHPreportAllTestsHreportGlobalResultsHrenderTestNamesreportGlobalStartMSreportTestStartMSreportTestResultMSreportGlobalStartMPreportTestStartMPreportTestResultMPreportAllTestsMreportGlobalResultsMreportGlobalResultsXmlreportTRreportStringTRreportLazyBytesTR reportJsonTR reportGenprocessorCountoptionDescriptions usageHeaderGHC.IO.ExceptionExitCode ExitSuccess ExitFailureflatten flattenTestflattenTestSuitemkFlatTestRunnerrunAllFlatTests$fTestableHTFIO$fTestableHTF[]$fTestableHTFTestSuite$fTestableHTFTestbbtCfg_stdoutFilebbtCfg_stderrFile Data.MaybeNothingJustDynamicConfigMap DynamicConfigdyn_skip dyn_flagsdyn_shouldFail dyn_verboseBlackBoxTestCfgbbtCfg_shouldFail bbtCfg_cmdbbtCfg_stdinFilebbtCfg_verbosebbtCfg_stdoutCmpbbtCfg_stderrCmprunBlackBoxTest endOfOutput defaultDynCfg readDynCfgQuickCheck-2.6Test.QuickCheck.TestArgs argsModifieroriginalQCPendingExceptionQCStateqc_argsqcState$fWithQCArgsTestableWithQCArgs $fWithQCArgsa$fTestableTestableWithQCArgs$fExceptionQCPendingExceptionverboseCheckWithResultverboseCheckResultverboseCheckWith verboseCheckquickCheckWithResultquickCheckResultquickCheckWith quickCheckstdArgschattymaxSizemaxDiscardRatio maxSuccessreplayoutputlabelsnumTestsSuccessGaveUp interruptedreasonusedSizeusedSeed numShrinksFailureNoExpectedFailureTest.QuickCheck.Propertydisjoin.||.conjoin.&&..&. forAllShrinkforAllwithin==>coverclassifycollectlabelonce expectFailureverbose whenFail'whenFail printTestCase shrinkingmapSizeProperty exhaustivepropertyTestablePropTest.QuickCheck.ModifiersBlindFixed getOrderedOrdered OrderedList getNonEmptyNonEmpty NonEmptyList getPositivePositive getNonZeroNonZerogetNonNegative NonNegativeShrink2Smart Shrinking shrinkState shrinkInit ShrinkStateTest.QuickCheck.Arbitrary orderedListvectorcoarbitraryEnumcoarbitraryShowcoarbitraryRealcoarbitraryIntegral><shrinkRealFracshrinkIntegral shrinkNothingarbitrarySizedBoundedIntegralarbitraryBoundedEnumarbitraryBoundedRandomarbitraryBoundedIntegralarbitrarySizedFractionalarbitrarySizedIntegralshrink arbitrary Arbitrary coarbitrary CoArbitraryTest.QuickCheck.GenvectorOflistOf1listOfgrowingElementselements frequencyoneof suchThatMaybesuchThatsamplesample'promotechooseresizesizedvariantGenTest.QuickCheck.TextrangesMkStrTest.QuickCheck.ExceptiondiscardBoolFalseGHC.ShowShow Data.EitherRightLeftIntassertFailure__mkMsg mkColorMsg _assertBool_equalityFailedMessagenotEqualityFailedMessage _assertEqual__assertNotEqual__assertEqualPretty__assertNotEqualPretty__assertEqualNoShow__assertNotEqualNoShow__assertListsEqualAsSets__assertNotEmpty_ _assertEmpty__assertThrowsIO__assertThrowsSomeIO__assertThrowsM__assertThrowsSomeM__assertThrows__assertThrowsSome_ _assertLeft__assertLeftNoShow_ _assertRight__assertRightNoShow_ _assertJust__assertNothing__assertNothingNoShow_