packages feed

target-0.1.0.0: target.cabal

name:                target
version:             0.1.0.0
synopsis:            Generate test-suites from refinement types.

description:         Target is a library for testing Haskell functions based on
                     properties encoded as refinement types.
                     .
                     The programmer specifies the expected behavior of a
                     function with a refinement type, and Target then checks
                     that the function satisfies the specification by
                     enumerating valid inputs up to some size, calling the
                     function, and validating the output. Target excels when the
                     space of valid inputs is a sparse subset of all possible
                     inputs, e.g. when dealing with dataypes with complex
                     invariants like red-black trees.
                     .
                     "Test.Target" is the main entry point and should contain
                     everything you need to use Target with types from the
                     "Prelude". "Test.Target.Targetable" will also be useful if
                     you want to test functions that use other types.
                     .
                     For information on how to /specify/ interesting properties
                     with refinement types, we have a series of
                     <http://goto.ucsd.edu/~rjhala/liquid/haskell/blog/blog/categories/basic/ blog posts>
                     as well as an
                     <http://github.com/ucsd-progsys/liquidhaskell/tree/master/docs/tutorial evolving tutorial>.
                     Target uses the same specification language as LiquidHaskell,
                     so the examples should carry over.
                     .
                     Finally, Target requires either <https://z3.codeplex.com/ Z3> 
                     (@>=4.3@) or <http://cvc4.cs.nyu.edu/web/ CVC4> (@>=1.4@) to 
                     be present in your @PATH@.

license:             MIT
license-file:        LICENSE
author:              Eric Seidel
maintainer:          eseidel@cs.ucsd.edu
category:            Testing
build-type:          Simple
cabal-version:       >=1.10

source-repository head
  type:     git
  location: git://github.com/gridaphobe/target.git

library
  default-language:    Haskell2010
  hs-source-dirs:      src
  ghc-options:         -Wall -fno-warn-name-shadowing -fno-warn-orphans
  ghc-prof-options:    -fprof-auto
  exposed-modules:     Test.Target,
                       Test.Target.Eval,
                       Test.Target.Expr,
                       Test.Target.Monad,
                       Test.Target.Targetable,
                       Test.Target.Targetable.Function,
                       Test.Target.Testable,
                       Test.Target.Types,
                       Test.Target.Util

  build-depends:       base >=4.6 && <5
                     , containers >= 0.5.0.0
                     , directory >= 1.2.0.1
                     , exceptions >= 0.6
                     , filepath >= 1.3.0.1
                     , ghc >= 7.8.3
                     , ghc-paths
                     , liquid-fixpoint >= 0.2.1.1
                     , liquidhaskell >= 0.2
                     , mtl >= 2.1.2
                     , pretty
                     , process
                     , syb >= 0.4.2
                     , tagged >= 0.7
                     , template-haskell
                     , text >= 1.0
                     , text-format
                     , transformers >= 0.3
                     , unordered-containers >= 0.2.3.0
                     , vector

benchmark bench
  type:                exitcode-stdio-1.0
  default-language:    Haskell2010
  hs-source-dirs:      bench
  ghc-options:         -O2
  ghc-prof-options:    -fprof-auto
  main-is:             Main.hs
  build-depends:       base,
                       aeson,
                       bytestring,
                       cassava,
                       SafeSemaphore,
                       vector,
                       xml-conduit,
                       data-timeout >= 0.3,
                       -- for XMonad
                       -- X11,
                       containers,
                       random,
                       tagged,
                       ghc,
                       unordered-containers,
                       mtl,
                       -- for Data.Map
                       deepseq,
                       --
                       --criterion,
                       --hastache,
                       --statistics,
                       time,
                       target,
                       template-haskell,
                       liquidhaskell >= 0.2,
                       liquid-fixpoint,
                       QuickCheck >= 2.6,
                       smallcheck >= 1.1

test-suite test
  type:                exitcode-stdio-1.0
  default-language:    Haskell2010
  hs-source-dirs:      test
  ghc-options:         -O2
  main-is:             Main.hs
  c-sources:           cbits/fpstring.c
  include-dirs:        include
  includes:            fpstring.h
  build-depends:       base,
                       target,
                       ghc,
                       tasty >= 0.8,
                       tasty-hunit >= 0.8,
                       -- for Data.Map
                       containers,
                       deepseq,
                       -- for ByteString
                       array,
                       tagged,
                       mtl,
                       ghc-prim,
                       liquid-fixpoint,
                       liquidhaskell,
                       template-haskell,
                       unordered-containers

-- executable liquid-check
--   default-language: Haskell2010
--   hs-source-dirs: bin
--   main-is:        Target.hs
--   build-depends:  base,
--                   Target,
--                   liquid-fixpoint,
--                   data-timeout >= 0.3,
--                   ghc,
--                   ghc-paths,
--                   directory,
--                   filepath,
--                   process,
--                   text,
--                   time,
--                   transformers