@@ -25,6 +25,18 @@ spec = do
25 Rec (#a := 1, #a := 2) `shouldNotBe` Rec (#a := 0, #a := 2)
25 Rec (#a := 1, #a := 2) `shouldNotBe` Rec (#a := 0, #a := 2)
26 it "succeeds if first matching field compares" $ do
26 it "succeeds if first matching field compares" $ do
27 Rec (#a := 1, #a := 2) `shouldBe` Rec (#a := 1, #a := 0)
27 Rec (#a := 1, #a := 2) `shouldBe` Rec (#a := 1, #a := 0)
29+ -- Same as eq when there is duplicated keys.
30+ -- Only the first occurence of that key is considered.
31+ compare (Rec (#a := 1, #a := 2)) (Rec (#a := 1, #a := 2)) `shouldBe` EQ
32+ compare (Rec (#a := 1, #a := 2)) (Rec (#a := 1, #a := 3)) `shouldBe` EQ
33+ compare (Rec (#a := 1, #a := 2)) (Rec (#a := 2, #a := 1)) `shouldBe` LT
34+ compare (Rec (#a := 1, #a := 2)) (Rec (#a := 0, #a := 3)) `shouldBe` GT
35+ compare (Rec (#a := 1, #b := 2)) (Rec (#a := 1, #b := 2)) `shouldBe` EQ
36+ compare (Rec (#a := 1, #b := 2)) (Rec (#a := 1, #b := 3)) `shouldBe` LT
37+ compare (Rec (#a := 1, #b := 2)) (Rec (#a := 2, #b := 1)) `shouldBe` LT
38+ compare (Rec (#a := 1, #b := 2)) (Rec (#a := 0, #b := 3)) `shouldBe` GT
39+ compare (Rec (#a := 1, #a := 2, #b := 3)) (Rec (#a := 1, #a := 3, #b := 2)) `shouldBe` GT
28 it "show" $ do
40 it "show" $ do
29 show (Rec ()) `shouldBe` "{}"
41 show (Rec ()) `shouldBe` "{}"
30 show (Rec (#foo := True)) `shouldBe` "{foo = True}"
42 show (Rec (#foo := True)) `shouldBe` "{foo = True}"