Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 19 additions & 18 deletions .github/workflows/haskell.yml → .github/workflows/haskell.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,9 @@ jobs:
- { os: Ubuntu-latest, resolver: lts-19, ghc: "9.0.2" }
- { os: Ubuntu-latest, resolver: lts-20, ghc: "9.2.8" }
- { os: Ubuntu-latest, resolver: lts-21, ghc: "9.4.8" }
- { os: Ubuntu-latest, resolver: lts-22, ghc: "9.6.6" }
- { os: Ubuntu-latest, resolver: lts-22, ghc: "9.6.7" }
- { os: Ubuntu-latest, resolver: lts-23, ghc: "9.8.4" }
- { os: Ubuntu-latest, resolver: lts-24, ghc: "9.10.3" }
- { os: Ubuntu-latest, resolver: nightly }
- { os: Windows-latest, resolver: lts-12, ghc: "8.4.4" }
- { os: Windows-latest, resolver: lts-14, ghc: "8.6.5" }
Expand All @@ -45,8 +46,9 @@ jobs:
- { os: Windows-latest, resolver: lts-19, ghc: "9.0.2" }
- { os: Windows-latest, resolver: lts-20, ghc: "9.2.8" }
- { os: Windows-latest, resolver: lts-21, ghc: "9.4.8" }
- { os: Windows-latest, resolver: lts-22, ghc: "9.6.6" }
- { os: Windows-latest, resolver: lts-22, ghc: "9.6.7" }
- { os: Windows-latest, resolver: lts-23, ghc: "9.8.4" }
- { os: Windows-latest, resolver: lts-24, ghc: "9.10.3" }
- { os: Windows-latest, resolver: nightly }
- { os: MacOS-13, resolver: lts-12, ghc: "8.4.4" }
- { os: MacOS-13, resolver: lts-14, ghc: "8.6.5" }
Expand All @@ -55,8 +57,9 @@ jobs:
- { os: MacOS-13, resolver: lts-19, ghc: "9.0.2" }
- { os: MacOS-latest, resolver: lts-20, ghc: "9.2.8" }
- { os: MacOS-latest, resolver: lts-21, ghc: "9.4.8" }
- { os: MacOS-latest, resolver: lts-22, ghc: "9.6.6" }
- { os: MacOS-latest, resolver: lts-22, ghc: "9.6.7" }
- { os: MacOS-latest, resolver: lts-23, ghc: "9.8.4" }
- { os: MacOS-latest, resolver: lts-24, ghc: "9.10.3" }
- { os: MacOS-latest, resolver: nightly }

env:
Expand Down Expand Up @@ -131,24 +134,24 @@ jobs:
- { cabal: "3.14", os: Ubuntu-latest, ghc: "9.0.2" }
- { cabal: "3.14", os: Ubuntu-latest, ghc: "9.2.8" }
- { cabal: "3.14", os: Ubuntu-latest, ghc: "9.4.8" }
- { cabal: "3.14", os: Ubuntu-latest, ghc: "9.6.6" }
- { cabal: "3.14", os: Ubuntu-latest, ghc: "9.6.7" }
- { cabal: "3.14", os: Ubuntu-latest, ghc: "9.8.2" }
- { cabal: "3.14", os: Ubuntu-latest, ghc: "9.10.1" }
- { cabal: "3.14", os: Ubuntu-latest, ghc: "9.12.1" }
- { cabal: "3.14", os: Ubuntu-latest, ghc: "9.10.3" }
- { cabal: "3.14", os: Ubuntu-latest, ghc: "9.12.2" }
- { cabal: "3.14", os: Windows-latest, ghc: "9.0.2" }
- { cabal: "3.14", os: Windows-latest, ghc: "9.2.8" }
- { cabal: "3.14", os: Windows-latest, ghc: "9.4.8" }
- { cabal: "3.14", os: Windows-latest, ghc: "9.6.6" }
- { cabal: "3.14", os: Windows-latest, ghc: "9.6.7" }
- { cabal: "3.14", os: Windows-latest, ghc: "9.8.2" }
- { cabal: "3.14", os: Windows-latest, ghc: "9.10.1" }
- { cabal: "3.14", os: Windows-latest, ghc: "9.12.1" }
- { cabal: "3.14", os: Windows-latest, ghc: "9.10.3" }
- { cabal: "3.14", os: Windows-latest, ghc: "9.12.2" }
- { cabal: "3.14", os: MacOS-13, ghc: "9.0.2" }
- { cabal: "3.14", os: MacOS-latest, ghc: "9.2.8" }
- { cabal: "3.14", os: MacOS-latest, ghc: "9.4.8" }
- { cabal: "3.14", os: MacOS-latest, ghc: "9.6.6" }
- { cabal: "3.14", os: MacOS-latest, ghc: "9.6.7" }
- { cabal: "3.14", os: MacOS-latest, ghc: "9.8.2" }
- { cabal: "3.14", os: MacOS-latest, ghc: "9.10.1" }
- { cabal: "3.14", os: MacOS-latest, ghc: "9.12.1" }
- { cabal: "3.14", os: MacOS-latest, ghc: "9.10.3" }
- { cabal: "3.14", os: MacOS-latest, ghc: "9.12.2" }

env:
cache-version: v0 # bump up this version to invalidate currently stored cache
Expand Down Expand Up @@ -176,12 +179,10 @@ jobs:
- name: Configure
run: |
set -ex
# Remove this conditional when criterion and its deps are compatible with ghc-9.12
if [[ "${{ matrix.ghc }}" == "9.12.1" ]]; then
cabal configure --haddock-all --enable-tests
else
cabal configure --haddock-all --enable-tests --enable-benchmarks
fi
- name: Configure
run: |
set -ex
cabal configure --haddock-all --enable-tests --enable-benchmarks

- name: Build dependencies
id: build-dependencies
Expand Down
6 changes: 3 additions & 3 deletions Color/Color.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ tested-with: GHC == 8.4.4
, GHC == 9.0.2
, GHC == 9.2.8
, GHC == 9.4.8
, GHC == 9.6.6
, GHC == 9.6.7
, GHC == 9.8.4
, GHC == 9.10.1
, GHC == 9.12.1
, GHC == 9.10.3
, GHC == 9.12.2

library
hs-source-dirs: src
Expand Down
2 changes: 1 addition & 1 deletion Color/tests/Graphics/Color/Model/Common.hs
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ epsilonEqColorTol epsilon x y = property $ epsilonColorExpect epsilon x y

-- | Same as `epsilonEqColorTol` but with indexed counterexample.
epsilonEqColorTolIx ::
(ColorModel cs e, RealFloat e) => e -> Int -> Color cs e -> Color cs e -> Property
(ColorModel cs e, RealFloat e, HasCallStack) => e -> Int -> Color cs e -> Color cs e -> Property
epsilonEqColorTolIx tol ix expected actual =
counterexample ("Index: " ++ show ix) $ epsilonEqColorTol tol expected actual

Expand Down
18 changes: 9 additions & 9 deletions Color/tests/Graphics/Color/Space/Common.hs
Original file line number Diff line number Diff line change
Expand Up @@ -31,34 +31,34 @@ instance (Elevator e, Random e) => Arbitrary (Color (XYZ i) e) where


prop_toFromColorXYZ ::
forall cs e i. (ColorSpace cs i e, RealFloat e)
forall cs e i. (ColorSpace cs i e, RealFloat e, HasCallStack)
=> Color cs e
-> Property
prop_toFromColorXYZ c = c `epsilonEqColor` fromColorXYZ (toColorXYZ c :: Color (XYZ i) Double)


-- For RGB standards, that have matrices rounded to 4 digits after the decimal point
prop_toFromLenientColorXYZ ::
forall cs e i. (ColorSpace cs i e, RealFloat e)
forall cs e i. (ColorSpace cs i e, RealFloat e, HasCallStack)
=> e
-> Color cs e
-> Property
prop_toFromLenientColorXYZ epsilon c =
epsilonEqColorTol epsilon c (fromColorXYZ (toColorXYZ c :: Color (XYZ i) Double))

prop_LuminanceColorXYZ :: forall cs e i . ColorSpace cs i e => Color cs e -> Property
prop_LuminanceColorXYZ :: forall cs e i . (ColorSpace cs i e, HasCallStack) => Color cs e -> Property
prop_LuminanceColorXYZ c =
(luminance c :: Color (Y i) Float) `epsilonEqColor`
luminance (toColorXYZ c :: Color (XYZ i) Float)

prop_toFromBaseSpace ::
forall cs e i. (ColorSpace cs i e, ColorSpace (BaseSpace cs) i e, RealFloat e)
forall cs e i. (ColorSpace cs i e, ColorSpace (BaseSpace cs) i e, RealFloat e, HasCallStack)
=> Color cs e
-> Property
prop_toFromBaseSpace c = c `epsilonEqColor` fromBaseSpace (toBaseSpace c)

prop_toFromBaseSpaceLenient ::
forall cs e i. (ColorSpace cs i e, ColorSpace (BaseSpace cs) i e, RealFloat e)
forall cs e i. (ColorSpace cs i e, ColorSpace (BaseSpace cs) i e, RealFloat e, HasCallStack)
=> e
-> Color cs e
-> Property
Expand All @@ -72,22 +72,22 @@ prop_toFromBaseModel ::
prop_toFromBaseModel c = c === fromBaseModel (toBaseModel c)

prop_toApplyGrayscale ::
forall cs e i. (ColorSpace cs i e, RealFloat e)
forall cs e i. (ColorSpace cs i e, RealFloat e, HasCallStack)
=> e
-> Color cs e
-> Property
prop_toApplyGrayscale epsilon c = epsilonEqColorTol epsilon c $ applyGrayscale c id

prop_toReplaceGrayscale ::
forall cs e i. (ColorSpace cs i e, RealFloat e)
forall cs e i. (ColorSpace cs i e, RealFloat e, HasCallStack)
=> e
-> Color cs e
-> Property
prop_toReplaceGrayscale epsilon c =
epsilonEqColorTol epsilon c (replaceGrayscale c (grayscale c))

prop_toApplyGrayscaleAsReplace ::
forall cs e i. (ColorSpace cs i e, RealFloat e)
forall cs e i. (ColorSpace cs i e, RealFloat e, HasCallStack)
=> e
-> Color cs e
-> Fun (Color X e) (Color X e)
Expand All @@ -100,7 +100,7 @@ prop_toApplyGrayscaleAsReplace epsilon c f =


prop_toReplaceGrayscaleAsApply ::
forall cs e i. (ColorSpace cs i e, RealFloat e)
forall cs e i. (ColorSpace cs i e, RealFloat e, HasCallStack)
=> e
-> Color cs e
-> Color X e
Expand Down
2 changes: 1 addition & 1 deletion Color/tests/Graphics/Color/Space/OKLAB/LAB/LCHSpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ spec :: Spec
spec =
describe "OKLCH" $ do
colorModelSpec @OKLCH @Word "LCH-OKLAB"
colorSpaceSpec @OKLCH @Double
colorSpaceLenientSpec @OKLCH @Double 1e-9
prop "lab2lch . lch2lab" $ \(lab :: Color OKLAB Double) ->
lab `epsilonEqColor` lch2lab (lab2lch lab)
prop "lch2lab . lab2lch" $ \(lch :: Color OKLCH Double) ->
Expand Down
2 changes: 1 addition & 1 deletion Color/tests/Graphics/Color/Space/OKLAB/LABSpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ instance (Elevator e, Random e) => Arbitrary (Color OKLAB e) where
spec :: Spec
spec = describe "OKLAB" $ do
colorModelSpec @OKLAB @Word "OKLAB"
colorSpaceLenientSpec @OKLAB @Double 1e-10
colorSpaceLenientSpec @OKLAB @Double 1e-9
5 changes: 5 additions & 0 deletions stack/ghc-9.10.3.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
resolver: lts-24.16
system-ghc: true
packages:
- ../Color
extra-deps: []
File renamed without changes.
2 changes: 1 addition & 1 deletion stack/ghc-9.8.4.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
resolver: lts-23.00
resolver: lts-23.28
system-ghc: true
packages:
- ../Color
Expand Down