packages feed

PropRatt-0.2.0.0: PropRatt.cabal

cabal-version: 2.2
name:           PropRatt
version:        0.2.0.0
synopsis:       Property-based testing framework for testing asynchronous FRP programs.
category:       testing
description:    
                PropRatt is a property-based testing framework for testing <https://hackage.haskell.org/package/AsyncRattus Async Rattus> programs.
                The key component of PropRatt is its specification language, which extends basic linear temporal logic with
                a means to express properties of several concurrent signals. This
                allows users to express temporal properties that relate data coming from
                different signals at different points in time.
                .
                More details about the specification language can be found in the <https://bahr.io/pubs/files/propratt-paper.pdf accompanying paper>.
                .
                Example specifications written in PropRatt:
                .
                * <https://github.com/pa-ba/PropRatt/blob/main/examples/timer/Timer.hs Specification for a simple GUI application>
                .
                * <https://github.com/pa-ba/PropRatt/blob/main/examples/main/Main.hs Specification for basic signal combinators> (@map@, @zip@, @scan@, etc.)
author:         Christian Emil Nielsen, Mathias Faber Kristiansen, Patrick Bahr
maintainer:     paba@itu.dk
copyright:      2025 Christian Emil Nielsen, Mathias Faber Kristiansen, Patrick Bahr
license:        BSD-3-Clause
license-file:   LICENSE
build-type:     Simple
extra-source-files:
    README.md
    CHANGELOG.md

source-repository head
  type: git
  location: https://github.com/pa-ba/PropRatt

library
  exposed-modules:
      PropRatt
      PropRatt.Arbitrary
      PropRatt.Core
      PropRatt.HList
      PropRatt.LTL
      PropRatt.Signal
  other-modules:
      PropRatt.Utils
      PropRatt.Value
  hs-source-dirs:
      src
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints
  build-depends:
      AsyncRattus >= 0.2 && < 0.3
    , QuickCheck > 2.10 && < 3
    , base >=4.7 && <5
    , containers  >=0.6.5 && < 0.8
  default-language: Haskell2010

executable main-example
  main-is: Main.hs
  hs-source-dirs:
      examples/main
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      AsyncRattus
    , PropRatt
    , QuickCheck
    , base
    , containers
  default-language: Haskell2010

executable timer-example
  main-is: Timer.hs

  hs-source-dirs:
      examples/timer
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      AsyncRattus
    , PropRatt
    , QuickCheck
    , base
    , containers
  default-language: Haskell2010

test-suite PropRatt-test
  type: exitcode-stdio-1.0
  main-is: Spec.hs
  hs-source-dirs:
      test
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      AsyncRattus
    , PropRatt
    , QuickCheck
    , base >=4.7 && <5
    , containers
  default-language: Haskell2010