on master help sign in
Add union tests, noting what doesn't work
commit747dfb5eb05338829235f8421ad6390226965cb1 authorSridhar Ratnakumar <srid@srid.ca> dateWed 19 Aug 2020, 19:40 (6 years ago) parent704a398
2 files changed+15
src/JRec.hs+5 test/JRecSpec.hs+10
src/JRec.hs+5
@@ -39,6 +39,11 @@ unField _ (_ R.:= value) = value
3939-- Other operations
4040----------------------------------------------------------------------------
4141
42+-- Append records
43+--
44+-- Left-biased. Does not sort.
45+--
46+-- FIXME: This doesn't remove duplicates?
4247union ::
4348 forall lhs rhs res.
4449 ( KnownNat (R.RecSize lhs),
test/JRecSpec.hs+10
@@ -39,3 +39,13 @@ spec = do
3939 `shouldBe` (Rec (#u := True, #a := 8))
4040 setA2 (Rec (#u := True, #a := 5, #b := 6))
4141 `shouldBe` (Rec (#u := True, #a := 8, #b := 6))
42+ describe "union" $ do
43+ it "simple union" $ do
44+ Rec (#a := 1) `union` Rec (#b := 2)
45+ `shouldBe` Rec (#a := 1, #b := 2)
46+ it "union with duplicates (not implemented)" $ do
47+ -- TODO: Actually remove duplicates
48+ let r1 = Rec (#b := 5, #a := 6)
49+ r2 = Rec (#c := 7, #a := 8)
50+ r1 `union` r2
51+ `shouldBe` Rec (#b := 5, #a := 8, #c := 7, #a := 8)