Bryan O'Sullivan avatar Bryan O'Sullivan committed 53518bb

And the reverse conversion direction.

Comments (0)

Files changed (1)

tests/Properties.hs

 genericTo :: (Data a, ToJSON a) => a -> a -> Bool
 genericTo _ v = G.toJSON v == toJSON v
 
+genericFrom :: (Eq a, Data a, ToJSON a) => a -> a -> Bool
+genericFrom _ v = G.fromJSON (toJSON v) == Success v
+
 approxEq :: Double -> Double -> Bool
 approxEq a b = a == b ||
                d < maxAbsoluteError ||
       testProperty "encodeDouble" encodeDouble
     , testProperty "encodeInteger" encodeInteger
     ],
-  testGroup "generic" [
+  testGroup "genericFrom" [
+      testProperty "Bool" $ genericFrom True
+    , testProperty "Double" $ genericFrom (1::Double)
+    , testProperty "Int" $ genericFrom (1::Int)
+    , testProperty "Foo" $ genericFrom (undefined::Foo)
+    ],
+  testGroup "genericTo" [
       testProperty "Bool" $ genericTo True
     , testProperty "Double" $ genericTo (1::Double)
     , testProperty "Int" $ genericTo (1::Int)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.