Loading src/Copar/Functors/GroupValued.hs +4 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import Control.Monad (when) import Data.Complex import Control.DeepSeq (NFData) import Data.Ratio import Data.Functor.Classes import Data.Vector (Vector) import qualified Data.Vector as V Loading @@ -42,6 +43,9 @@ import Copar.FunctorDescription data GroupValued m a = GroupValued a instance Eq1 (GroupValued m) where liftEq f (GroupValued a1) (GroupValued a2) = f a1 a2 deriving instance Show (GroupValued m ()) deriving instance Functor (GroupValued m) deriving instance Foldable (GroupValued m) Loading tests/Copar/Functors/GroupValuedSpec.hs +8 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,8 @@ import TestHelpers import Data.Complex import Data.Ratio import Copar.FunctorExpression.Parser import Copar.FunctorDescription import Copar.Functors.GroupValued import Copar.Coalgebra.Parser import Copar.FunctorExpression.Type Loading @@ -16,11 +18,17 @@ import Data.Float.Utils ( EqDouble ) spec :: Spec spec = do paseIntSpec parseMorphismPointIntSpec parseMorphismPointDoubleSpec parseMorphismPointComplexSpec parseMorphismPointRationalSpec paseIntSpec :: Spec paseIntSpec = describe "Int-valued parser" $ do it "parses Z^X" $ parseFunctorExpression [[functorExprParser intValued]] "" "Z^X" `shouldParse` (Functor 1 (GroupValued Variable)) parseMorphismPointIntSpec :: Spec parseMorphismPointIntSpec = describe "parseMorphismPoint (Int)" $ do Loading Loading
src/Copar/Functors/GroupValued.hs +4 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import Control.Monad (when) import Data.Complex import Control.DeepSeq (NFData) import Data.Ratio import Data.Functor.Classes import Data.Vector (Vector) import qualified Data.Vector as V Loading @@ -42,6 +43,9 @@ import Copar.FunctorDescription data GroupValued m a = GroupValued a instance Eq1 (GroupValued m) where liftEq f (GroupValued a1) (GroupValued a2) = f a1 a2 deriving instance Show (GroupValued m ()) deriving instance Functor (GroupValued m) deriving instance Foldable (GroupValued m) Loading
tests/Copar/Functors/GroupValuedSpec.hs +8 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,8 @@ import TestHelpers import Data.Complex import Data.Ratio import Copar.FunctorExpression.Parser import Copar.FunctorDescription import Copar.Functors.GroupValued import Copar.Coalgebra.Parser import Copar.FunctorExpression.Type Loading @@ -16,11 +18,17 @@ import Data.Float.Utils ( EqDouble ) spec :: Spec spec = do paseIntSpec parseMorphismPointIntSpec parseMorphismPointDoubleSpec parseMorphismPointComplexSpec parseMorphismPointRationalSpec paseIntSpec :: Spec paseIntSpec = describe "Int-valued parser" $ do it "parses Z^X" $ parseFunctorExpression [[functorExprParser intValued]] "" "Z^X" `shouldParse` (Functor 1 (GroupValued Variable)) parseMorphismPointIntSpec :: Spec parseMorphismPointIntSpec = describe "parseMorphismPoint (Int)" $ do Loading