From 8218779504205227f0ea70d0c91270ff504d67a6 Mon Sep 17 00:00:00 2001 From: defanor Date: Sun, 3 Dec 2017 21:06:35 +0300 Subject: Add more instances --- test/Test.hs | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) (limited to 'test') 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" ] -- cgit v1.2.3