@@ -27,6 +27,7 @@ import Data.Functor.Compose (Compose (..))
2727import Data.Functor.Identity (Identity (..))
2828import Data.Maybe (fromMaybe)
2929import Data.Proxy (Proxy(..))
30+import Data.Fixed (Pico)
3031import Data.Sequence (Seq)
3132import Data.Tagged (Tagged(..))
3233import Data.Text (Text)
@@ -39,16 +40,23 @@ import Test.Framework.Providers.HUnit (testCase)
3940import Test.HUnit (Assertion, assertFailure, assertEqual)
4041import UnitTests.NullaryConstructors (nullaryConstructors)
4142import Data.Word (Word8)
43+import Data.Scientific (Scientific)
4244import qualified Data.ByteString.Lazy.Char8 as L
4345import qualified Data.Text.Lazy.Builder as TLB
4446import qualified Data.Text.Lazy.Encoding as TLE
4547import qualified Data.Text.Lazy as LT
4648import qualified Data.Text.Lazy.Encoding as LT
4749
48−import qualified Data.Sequence as Seq
4950import qualified Data.DList as DList
5051import qualified Data.HashMap.Strict as HM
52+import qualified Data.HashSet as HashSet
53+import qualified Data.IntMap as IntMap
54+import qualified Data.IntSet as IntSet
5155import qualified Data.Map as M
56+import qualified Data.Sequence as Seq
57+import qualified Data.Set as Set
58+import qualified Data.Tree as Tree
59+import qualified Data.Vector as Vector
5260
5361tests :: Test
5462tests = testGroup "unit" [
@@ -316,6 +324,21 @@ jsonExamples =
316324
317325 , Example "nan :: Double" "null" (Approx $ 0/0 :: Approx Double)
318326
327+ , Example "Ordering LT" "\"LT\"" LT
328+ , Example "Ordering EQ" "\"EQ\"" EQ
329+ , Example "Ordering GT" "\"GT\"" GT
330+
331+ , Example "Float" "3.14" (3.14 :: Float)
332+ , Example "Pico" "3.14" (3.14 :: Pico)
333+ , Example "Scientific" "3.14" (3.14 :: Scientific)
334+
335+ , Example "Set Int" "[1,2,3]" (Set.fromList [3, 2, 1] :: Set.Set Int)
336+ , Example "IntSet" "[1,2,3]" (IntSet.fromList [3, 2, 1])
337+ , Example "IntMap" "[[1,2],[3,4]]" (IntMap.fromList [(3,4), (1,2)] :: IntMap.IntMap Int)
338+ , Example "Vector" "[1,2,3]" (Vector.fromList [1, 2, 3] :: Vector.Vector Int)
339+ , Example "HashSet Int" "[1,2,3]" (HashSet.fromList [3, 2, 1] :: HashSet.HashSet Int)
340+ , Example "Tree Int" "[1,[[2,[[3,[]],[4,[]]]],[5,[]]]]" (let n = Tree.Node in n 1 [n 2 [n 3 [], n 4 []], n 5 []] :: Tree.Tree Int)
341+
319342 -- Three separate cases, as ordering in HashMap is not defined
320343 , Example "HashMap Float Int, NaN" "{\"NaN\":1}" (Approx $ HM.singleton (0/0) 1 :: Approx (HM.HashMap Float Int))
321344 , Example "HashMap Float Int, Infinity" "{\"Infinity\":1}" (HM.singleton (1/0) 1 :: HM.HashMap Float Int)