diff options
author | defanor <defanor@uberspace.net> | 2017-12-03 21:06:35 +0300 |
---|---|---|
committer | defanor <defanor@uberspace.net> | 2017-12-03 21:06:35 +0300 |
commit | 8218779504205227f0ea70d0c91270ff504d67a6 (patch) | |
tree | c4addbd50786d3d6e0327489c562cc08786d4e59 /test/Test.hs | |
parent | 2dfe2f8648a6748234514bcd9d61e5e1a1d1fb72 (diff) |
Add more instances
Diffstat (limited to 'test/Test.hs')
-rw-r--r-- | test/Test.hs | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/test/Test.hs b/test/Test.hs index 5002263..4589f04 100644 --- a/test/Test.hs +++ b/test/Test.hs @@ -26,16 +26,16 @@ data Record = Record { maybeInt :: Maybe Int , maybeDouble :: Maybe Double , str :: String , listOfStrings :: [String] - , maybeListOfNumbers :: Maybe [Int] + , maybeListOfNumbers :: Maybe [Integer] , otherString :: String } deriving (Generic, Eq, Show) instance ArgParser Record instance ToArgs Record instance Arbitrary Record where arbitrary = genericArbitraryU -data Sum = Foo Int - | Bar - | Baz String Double +data Sum = Foo Int Bool + | Bar + | Baz (String, (Double, Integer), Rational) deriving (Generic, Eq, Show) instance ArgParser Sum instance ToArgs Sum @@ -70,13 +70,33 @@ instance ToArgs NestedRecord instance Arbitrary NestedRecord where arbitrary = genericArbitraryU data NestedSum = NestedFoo Record - | NestedBar Sum Basic Nested - | NestedBaz (Polymorphic Int Double) - deriving (Generic, Eq, Show) + | NestedBar Sum Basic Nested + | NestedBaz (Polymorphic Int Double) + deriving (Generic, Eq, Show) instance ArgParser NestedSum instance ToArgs NestedSum instance Arbitrary NestedSum where arbitrary = genericArbitraryU +data RecursiveRecordMaybe = RecursiveRecordMaybe + { rrm :: Maybe RecursiveRecordMaybe + , record :: Maybe Record + , guard :: () + } deriving (Generic, Eq, Show) +instance ArgParser RecursiveRecordMaybe +instance ToArgs RecursiveRecordMaybe +instance Arbitrary RecursiveRecordMaybe where arbitrary = genericArbitraryU + +data RecursiveRecordMaybe2 = RecursiveRecordMaybe2 + { record1' :: Maybe Record + , rrm' :: Maybe RecursiveRecordMaybe2 + , record2' :: Maybe Record + , guard' :: () + } deriving (Generic, Eq, Show) +instance ArgParser RecursiveRecordMaybe2 +instance ToArgs RecursiveRecordMaybe2 +instance Arbitrary RecursiveRecordMaybe2 where arbitrary = genericArbitraryU + + printAndParse :: (ArgParser a, ToArgs a, Eq a) => Proxy a -> a -> Bool printAndParse _ r = Right r == fromArgs defMod (toArgs defMod r) @@ -104,4 +124,6 @@ qcProps = testGroup "Quickcheck properties" , mkTest (Proxy :: Proxy Recursive) "Recursive" , mkTest (Proxy :: Proxy NestedRecord) "NestedRecord" , mkTest (Proxy :: Proxy NestedSum) "NestedSum" + , mkTest (Proxy :: Proxy RecursiveRecordMaybe) "RecursiveRecordMaybe" + , mkTest (Proxy :: Proxy RecursiveRecordMaybe2) "RecursiveRecordMaybe2" ] |