packages feed

palindromes-1.0: palindromes.cabal

cabal-version:   3.12
name:            palindromes
version:         1.0
synopsis:        Finding palindromes in strings
description:
  palindromes is an executable and a library which takes a file name, and
  returns information about palindromes in the file.

category:        Algorithms
copyright:
  (c) 2007 - 2025 Utrecht University (Department of Information and Computing Sciences) and Johan Jeuring

license:         BSD-3-Clause
license-file:    LICENSE
author:
  Utrecht University (Department of Information and Computing Sciences) and Johan Jeuring

maintainer:      johan@jeuring.net
extra-doc-files:
  changelog.md
  CREDITS
  README.md

build-type:      Simple
tested-with:     GHC >=9.10 && <9.11

library
  hs-source-dirs:   src
  default-language: Haskell2010
  exposed-modules:
    Data.Algorithms.Palindromes.Algorithms
    Data.Algorithms.Palindromes.ApproximateAlgorithm
    Data.Algorithms.Palindromes.DNA
    Data.Algorithms.Palindromes.Finders
    Data.Algorithms.Palindromes.LinearAlgorithm
    Data.Algorithms.Palindromes.Output
    Data.Algorithms.Palindromes.PalEq
    Data.Algorithms.Palindromes.Palindrome
    Data.Algorithms.Palindromes.PostProcessing
    Data.Algorithms.Palindromes.PreProcessing
    Data.Algorithms.Palindromes.QuadraticAlgorithm
    Data.Algorithms.Palindromes.RangeFunctions
    Data.Algorithms.Palindromes.Settings
    Data.Algorithms.Palindromes.Streaming

  build-depends:
    , base     >=4.17 && <5
    , conduit  >=1.3  && <1.4
    , vector   >=0.13 && <0.14

executable palindromes
  main-is:          Main.hs
  ghc-options:      -Wall -rtsopts
  hs-source-dirs:   app
  default-language: Haskell2010
  build-depends:
    , base         >=4.17 && <5
    , directory    >=1.3  && <1.4
    , palindromes

  -- Do not bound dependency on a library provided by the same package.
  other-modules:
    FlagsToSettings
    Options

test-suite tests-palindromes
  type:             exitcode-stdio-1.0
  hs-source-dirs:   tests
  main-is:          Main.hs
  default-language: Haskell2010
  other-modules:
    ITApproximate
    ITLinear
    ITQuadratic
    PalindromeMethods
    QuickCheckGenerators
    QuickCheckProperties
    QuickCheckSettings
    UTApproximateAlgorithm
    UTDNAPals
    UTExtendPals
    UTFinders
    UTGetLeftRight
    UTLinearAlgorithm
    UTPalEq
    UTProcessing
    UTPunctuationPals
    UTQuadraticAlgorithm
    UTTextPals
    UTWordPals

  build-depends:
    , base         >=4.17 && <5
    , HUnit        >=1.6  && <1.7
    , levenshtein  >=0.2  && <0.3
    , palindromes
    , QuickCheck   >=2.14 && <3.0
    , vector       >=0.13 && <0.14

benchmark benchmark
  type:             exitcode-stdio-1.0
  hs-source-dirs:   benchmarking
  main-is:          Main.hs
  default-language: Haskell2010
  build-depends:
    , base         >=4.17 && <5
    , criterion    >=1.6  && <1.7
    , deepseq      >=1.5  && <1.6
    , directory    >=1.3  && <1.4
    , filepath     >=1.5  && <1.6
    , palindromes
    , strict       >=0.3  && <0.6

benchmark profiling
  type:             exitcode-stdio-1.0
  hs-source-dirs:   profiling
  main-is:          Main.hs
  ghc-options:      -rtsopts
  default-language: Haskell2010
  build-depends:
    , base         >=4.17 && <5
    , deepseq      >=1.5  && <1.6
    , directory    >=1.3  && <1.4
    , filepath     >=1.5  && <1.6
    , palindromes
    , strict       >=0.3  && <0.6

-- This program has been developed by students from the bachelor Computer Science at Utrecht
-- University within the Software Project course.
-- © Copyright Utrecht University (Department of Information and Computing Sciences) and Johan Jeuring