-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | LeanCheck support for the Tasty test framework.
--   
--   LeanCheck support for the Tasty test framework.
--   
--   This package can be used to incorporate LeanCheck tests into Tasty
--   test suites by means of the <tt>Test.Tasty.LeanCheck.testProperty</tt>
--   function.
--   
--   Please see the Haddock documentation and README for more details.
@package tasty-leancheck
@version 0.0.1


-- | LeanCheck support for the Tasty test framework.
--   
--   Here's how your <tt>test.hs</tt> might look like:
--   
--   <pre>
--   import Test.Tasty
--   import Test.Tasty.LeanCheck as LC
--   import Data.List
--   
--   main :: IO ()
--   main = defaultMain tests
--   
--   tests :: TestTree
--   tests = testGroup "Test properties checked by LeanCheck"
--     [ LC.testProperty "sort == sort . reverse" $
--         \list -&gt; sort (list :: [Int]) == sort (reverse list)
--     , LC.testProperty "Fermat's little theorem" $
--         \x -&gt; ((x :: Integer)^7 - x) `mod` 7 == 0
--     -- the following property do not hold
--     , LC.testProperty "Fermat's last theorem" $
--         \x y z n -&gt;
--           (n :: Integer) &gt;= 3 LC.==&gt; x^n + y^n /= (z^n :: Integer)
--     ]
--   </pre>
--   
--   The output for the above program is:
--   
--   <pre>
--   $ ./test
--   Test properties checked by LeanCheck
--     sort == sort . reverse:  OK
--       +++ OK, passed 200 tests.
--     Fermat's little theorem: OK
--       +++ OK, passed 200 tests.
--     Fermat's last theorem:   FAIL
--       *** Failed! Falsifiable (after 71 tests):
--       0 0 0 3
--   
--   1 out of 3 tests failed (0.00s)
--   </pre>
--   
--   Use <tt>--leancheck-tests</tt> to configure the maximum number of
--   tests for each property.
--   
--   Please see the documentation of <a>Test.LeanCheck</a> and Tasty for
--   more details.
module Test.Tasty.LeanCheck

-- | Create a <tt>Test</tt> for a LeanCheck <a>Testable</a> property.
--   Example:
--   
--   <pre>
--   LC.testProperty "sort is idempotent" $ \xs -&gt; sort (sort xs :: [Int]) == sort xs
--   </pre>
testProperty :: Testable a => TestName -> a -> TestTree

-- | Number of test cases for LeanCheck to generate.
newtype LeanCheckTests
LeanCheckTests :: Int -> LeanCheckTests
instance GHC.Classes.Ord Test.Tasty.LeanCheck.LeanCheckTests
instance GHC.Classes.Eq Test.Tasty.LeanCheck.LeanCheckTests
instance GHC.Show.Show Test.Tasty.LeanCheck.LeanCheckTests
instance GHC.Show.Show Test.Tasty.LeanCheck.Result
instance GHC.Classes.Eq Test.Tasty.LeanCheck.Result
instance Test.Tasty.Options.IsOption Test.Tasty.LeanCheck.LeanCheckTests
instance Test.Tasty.Core.IsTest Test.Tasty.LeanCheck.Results
