summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authordefanor <defanor@uberspace.net>2017-12-03 21:06:35 +0300
committerdefanor <defanor@uberspace.net>2017-12-03 21:06:35 +0300
commit8218779504205227f0ea70d0c91270ff504d67a6 (patch)
treec4addbd50786d3d6e0327489c562cc08786d4e59 /test
parent2dfe2f8648a6748234514bcd9d61e5e1a1d1fb72 (diff)
Add more instances
Diffstat (limited to 'test')
-rw-r--r--test/Test.hs36
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"
]