on master help sign in
fix test suite for GHCs 8.2 8.4 8.6
84f54dbClaude Heiland-Allen
test/Test/Grenade/Layers/Convolution.hs+6−1
@@ -1,3 +1,4 @@
1+{-# LANGUAGE CPP #-}
1{-# LANGUAGE TemplateHaskell #-}
2{-# LANGUAGE TemplateHaskell #-}
2{-# LANGUAGE DataKinds #-}
3{-# LANGUAGE DataKinds #-}
3{-# LANGUAGE GADTs #-}
4{-# LANGUAGE GADTs #-}
@@ -15,6 +16,10 @@ import Data.Singletons ()
15import GHC.TypeLits
16import GHC.TypeLits
16import GHC.TypeLits.Witnesses
17import GHC.TypeLits.Witnesses
17
18
19+#if MIN_VERSION_base(4,9,0)
20+import Data.Kind (Type)
21+#endif
22+
18import Grenade.Core
23import Grenade.Core
19import Grenade.Layers.Convolution
24import Grenade.Layers.Convolution
20
25
@@ -25,7 +30,7 @@ import Test.Hedgehog.Hmatrix
25import Test.Hedgehog.TypeLits
30import Test.Hedgehog.TypeLits
26import Test.Hedgehog.Compat
31import Test.Hedgehog.Compat
27
32
28−data OpaqueConvolution :: * where
33+data OpaqueConvolution :: Type where
29 OpaqueConvolution :: Convolution channels filters kernelRows kernelColumns strideRows strideColumns -> OpaqueConvolution
34 OpaqueConvolution :: Convolution channels filters kernelRows kernelColumns strideRows strideColumns -> OpaqueConvolution
30
35
31instance Show OpaqueConvolution where
36instance Show OpaqueConvolution where
test/Test/Grenade/Layers/FullyConnected.hs+6−1
@@ -1,3 +1,4 @@
1+{-# LANGUAGE CPP #-}
1{-# LANGUAGE BangPatterns #-}
2{-# LANGUAGE BangPatterns #-}
2{-# LANGUAGE TemplateHaskell #-}
3{-# LANGUAGE TemplateHaskell #-}
3{-# LANGUAGE DataKinds #-}
4{-# LANGUAGE DataKinds #-}
@@ -12,6 +13,10 @@ import Data.Singletons ()
12
13
13import GHC.TypeLits
14import GHC.TypeLits
14
15
16+#if MIN_VERSION_base(4,9,0)
17+import Data.Kind (Type)
18+#endif
19+
15import Grenade.Core
20import Grenade.Core
16import Grenade.Layers.FullyConnected
21import Grenade.Layers.FullyConnected
17
22
@@ -20,7 +25,7 @@ import Hedgehog
20import Test.Hedgehog.Compat
25import Test.Hedgehog.Compat
21import Test.Hedgehog.Hmatrix
26import Test.Hedgehog.Hmatrix
22
27
23−data OpaqueFullyConnected :: * where
28+data OpaqueFullyConnected :: Type where
24 OpaqueFullyConnected :: (KnownNat i, KnownNat o) => FullyConnected i o -> OpaqueFullyConnected
29 OpaqueFullyConnected :: (KnownNat i, KnownNat o) => FullyConnected i o -> OpaqueFullyConnected
25
30
26instance Show OpaqueFullyConnected where
31instance Show OpaqueFullyConnected where
test/Test/Grenade/Layers/Pooling.hs+10−5
@@ -1,3 +1,4 @@
1+{-# LANGUAGE CPP #-}
1{-# LANGUAGE TemplateHaskell #-}
2{-# LANGUAGE TemplateHaskell #-}
2{-# LANGUAGE DataKinds #-}
3{-# LANGUAGE DataKinds #-}
3{-# LANGUAGE KindSignatures #-}
4{-# LANGUAGE KindSignatures #-}
@@ -9,6 +10,10 @@ module Test.Grenade.Layers.Pooling where
9import Data.Proxy
10import Data.Proxy
10import Data.Singletons ()
11import Data.Singletons ()
11
12
13+#if MIN_VERSION_base(4,9,0)
14+import Data.Kind (Type)
15+#endif
16+
12import GHC.TypeLits
17import GHC.TypeLits
13import Grenade.Layers.Pooling
18import Grenade.Layers.Pooling
14
19
@@ -16,7 +21,7 @@ import Hedgehog
16
21
17import Test.Hedgehog.Compat
22import Test.Hedgehog.Compat
18
23
19−data OpaquePooling :: * where
24+data OpaquePooling :: Type where
20 OpaquePooling :: (KnownNat kh, KnownNat kw, KnownNat sh, KnownNat sw) => Pooling kh kw sh sw -> OpaquePooling
25 OpaquePooling :: (KnownNat kh, KnownNat kw, KnownNat sh, KnownNat sw) => Pooling kh kw sh sw -> OpaquePooling
21
26
22instance Show OpaquePooling where
27instance Show OpaquePooling where
@@ -24,10 +29,10 @@ instance Show OpaquePooling where
24
29
25genOpaquePooling :: Gen OpaquePooling
30genOpaquePooling :: Gen OpaquePooling
26genOpaquePooling = do
31genOpaquePooling = do
27− Just kernelHeight <- someNatVal <$> choose 2 15
32+ ~(Just kernelHeight) <- someNatVal <$> choose 2 15
28− Just kernelWidth <- someNatVal <$> choose 2 15
33+ ~(Just kernelWidth ) <- someNatVal <$> choose 2 15
29− Just strideHeight <- someNatVal <$> choose 2 15
34+ ~(Just strideHeight) <- someNatVal <$> choose 2 15
30− Just strideWidth <- someNatVal <$> choose 2 15
35+ ~(Just strideWidth ) <- someNatVal <$> choose 2 15
31
36
32 case (kernelHeight, kernelWidth, strideHeight, strideWidth) of
37 case (kernelHeight, kernelWidth, strideHeight, strideWidth) of
33 (SomeNat (_ :: Proxy kh), SomeNat (_ :: Proxy kw), SomeNat (_ :: Proxy sh), SomeNat (_ :: Proxy sw)) ->
38 (SomeNat (_ :: Proxy kh), SomeNat (_ :: Proxy kw), SomeNat (_ :: Proxy sh), SomeNat (_ :: Proxy sw)) ->
test/Test/Grenade/Network.hs+7−4
@@ -35,6 +35,9 @@ import GHC.TypeLits hiding (natVal)
35#else
35#else
36import GHC.TypeLits
36import GHC.TypeLits
37#endif
37#endif
38+#if MIN_VERSION_base(4,9,0)
39+import Data.Kind (Type)
40+#endif
38
41
39import GHC.TypeLits.Witnesses
42import GHC.TypeLits.Witnesses
40import Test.Hedgehog.Compat
43import Test.Hedgehog.Compat
@@ -46,7 +49,7 @@ import Numeric.LinearAlgebra ( flatten )
46import Numeric.LinearAlgebra.Static ( extract, norm_Inf )
49import Numeric.LinearAlgebra.Static ( extract, norm_Inf )
47import Unsafe.Coerce
50import Unsafe.Coerce
48
51
49−data SomeNetwork :: * where
52+data SomeNetwork :: Type where
50 SomeNetwork :: ( SingI shapes, SingI (Head shapes), SingI (Last shapes), Show (Network layers shapes) ) => Network layers shapes -> SomeNetwork
53 SomeNetwork :: ( SingI shapes, SingI (Head shapes), SingI (Last shapes), Show (Network layers shapes) ) => Network layers shapes -> SomeNetwork
51
54
52instance Show SomeNetwork where
55instance Show SomeNetwork where
@@ -448,7 +451,7 @@ oneUp =
448 D1Sing SNat ->
451 D1Sing SNat ->
449 let x = 0 :: S ( shape )
452 let x = 0 :: S ( shape )
450 in case x of
453 in case x of
451− ( S1D x' ) -> do
454+ ( S1D x' ) -> do
452 let ex = extract x'
455 let ex = extract x'
453 let len = VS.length ex
456 let len = VS.length ex
454 ix <- choose 0 (len - 1)
457 ix <- choose 0 (len - 1)
@@ -460,7 +463,7 @@ oneUp =
460 D2Sing SNat SNat ->
463 D2Sing SNat SNat ->
461 let x = 0 :: S ( shape )
464 let x = 0 :: S ( shape )
462 in case x of
465 in case x of
463− ( S2D x' ) -> do
466+ ( S2D x' ) -> do
464 let ex = flatten ( extract x' )
467 let ex = flatten ( extract x' )
465 let len = VS.length ex
468 let len = VS.length ex
466 ix <- choose 0 (len - 1)
469 ix <- choose 0 (len - 1)
@@ -472,7 +475,7 @@ oneUp =
472 D3Sing SNat SNat SNat ->
475 D3Sing SNat SNat SNat ->
473 let x = 0 :: S ( shape )
476 let x = 0 :: S ( shape )
474 in case x of
477 in case x of
475− ( S3D x' ) -> do
478+ ( S3D x' ) -> do
476 let ex = flatten ( extract x' )
479 let ex = flatten ( extract x' )
477 let len = VS.length ex
480 let len = VS.length ex
478 ix <- choose 0 (len - 1)
481 ix <- choose 0 (len - 1)
test/Test/Hedgehog/TypeLits.hs+1−1
@@ -24,7 +24,7 @@ import Test.Hedgehog.Compat
24
24
25genNat :: Gen SomeNat
25genNat :: Gen SomeNat
26genNat = do
26genNat = do
27− Just n <- someNatVal <$> choose 1 10
27+ ~(Just n) <- someNatVal <$> choose 1 10
28 return n
28 return n
29
29
30#if __GLASGOW_HASKELL__ < 800
30#if __GLASGOW_HASKELL__ < 800