packages feed

genvalidity-case-insensitive (empty) → 0.0.0.0

raw patch · 6 files changed

+122/−0 lines, 6 filesdep +QuickCheckdep +basedep +case-insensitive

Dependencies added: QuickCheck, base, case-insensitive, criterion, genvalidity, genvalidity-case-insensitive, genvalidity-criterion, genvalidity-hspec, hspec, validity-case-insensitive

Files

+ CHANGELOG.md view
@@ -0,0 +1,5 @@+# Changelog++## [0.0.0.0] - 2022-03-21++Initial release: `GenValidity (CI a)`
+ bench/Main.hs view
@@ -0,0 +1,14 @@+{-# LANGUAGE TypeApplications #-}++module Main where++import Criterion.Main+import Data.CaseInsensitive (CI)+import Data.GenValidity.CaseInsensitive ()+import Data.GenValidity.Criterion++main :: IO ()+main =+  defaultMain+    [ genValidBench @(CI String)+    ]
+ genvalidity-case-insensitive.cabal view
@@ -0,0 +1,69 @@+cabal-version: 1.12++-- This file has been generated from package.yaml by hpack version 0.34.7.+--+-- see: https://github.com/sol/hpack++name:           genvalidity-case-insensitive+version:        0.0.0.0+synopsis:       GenValidity support for case-insensitive+category:       Testing+homepage:       https://github.com/NorfairKing/validity#readme+bug-reports:    https://github.com/NorfairKing/validity/issues+license:        MIT+build-type:     Simple+extra-source-files:+    CHANGELOG.md++source-repository head+  type: git+  location: https://github.com/NorfairKing/validity++library+  exposed-modules:+      Data.GenValidity.CaseInsensitive+  other-modules:+      Paths_genvalidity_case_insensitive+  hs-source-dirs:+      src+  build-depends:+      base >=4.7 && <5+    , case-insensitive+    , genvalidity >=1.0+    , validity-case-insensitive+  default-language: Haskell2010++test-suite genvalidity-case-insensitive-test+  type: exitcode-stdio-1.0+  main-is: Spec.hs+  other-modules:+      Data.GenValidity.CaseInsensitiveSpec+      Paths_genvalidity_case_insensitive+  hs-source-dirs:+      test+  ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall+  build-depends:+      base >=4.7 && <5+    , case-insensitive+    , genvalidity-case-insensitive+    , genvalidity-hspec+    , hspec+  default-language: Haskell2010++benchmark genvalidity-case-insensitive-bench+  type: exitcode-stdio-1.0+  main-is: Main.hs+  other-modules:+      Paths_genvalidity_case_insensitive+  hs-source-dirs:+      bench+  ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall+  build-depends:+      QuickCheck+    , base >=4.7 && <5+    , case-insensitive+    , criterion+    , genvalidity+    , genvalidity-case-insensitive+    , genvalidity-criterion+  default-language: Haskell2010
+ src/Data/GenValidity/CaseInsensitive.hs view
@@ -0,0 +1,17 @@+{-# LANGUAGE FlexibleInstances #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}++module Data.GenValidity.CaseInsensitive where++import Data.CaseInsensitive (CI)+import qualified Data.CaseInsensitive as CI+import Data.GenValidity+import Data.Validity.CaseInsensitive ()++instance (Eq a, CI.FoldCase a, GenValid a) => GenValid (CI a) where+  genValid = CI.mk <$> genValid++  -- We have to filter out c again, because for values like String, case+  -- folding means we could end up with the same string again (according to+  -- Eq).+  shrinkValid c = filter (/= c) . fmap CI.mk . shrinkValid . CI.original $ c
+ test/Data/GenValidity/CaseInsensitiveSpec.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE TypeApplications #-}++module Data.GenValidity.CaseInsensitiveSpec+  ( spec,+  )+where++import Data.CaseInsensitive (CI)+import Data.GenValidity.CaseInsensitive ()+import Test.Hspec+import Test.Validity++spec :: Spec+spec = do+  genValidSpec @(CI String)+  shrinkValidSpec @(CI String)
+ test/Spec.hs view
@@ -0,0 +1,1 @@+{-# OPTIONS_GHC -F -pgmF hspec-discover #-}