@@ -8,12 +8,11 @@ type TreapTests () =
88
99 [<TestMethod>]
1010 member this. ``Test basic operations`` () =
11- let mutable treap = empty
12-
13- // Test insertion
14- treap <- insert 5 treap
15- treap <- insert 3 treap
16- treap <- insert 7 treap
11+ let treap =
12+ empty
13+ |> insert 5
14+ |> insert 3
15+ |> insert 7
1716
1817 // Test getKthElement (0-based indexing)
1918 Assert.AreEqual( Some 3 , getKthElement treap 0 u)
@@ -35,10 +34,11 @@ type TreapTests () =
3534
3635 [<TestMethod>]
3736 member this. ``Test deletion`` () =
38- let mutable treap = empty
39- treap <- insert 5 treap
40- treap <- insert 3 treap
41- treap <- insert 7 treap
37+ let mutable treap =
38+ empty
39+ |> insert 5
40+ |> insert 3
41+ |> insert 7
4242
4343 // Delete middle element
4444 treap <- erase 5 treap
@@ -51,6 +51,25 @@ type TreapTests () =
5151 Assert.AreEqual( Some 3 , getKthElement treap 0 u)
5252 Assert.AreEqual( Some 7 , getKthElement treap 1 u)
5353
54+ [<TestMethod>]
55+ member this. ``Test duplicate insertion`` () =
56+ let mutable treap = empty
57+ treap <- insert 3 treap
58+ treap <- insert 5 treap
59+ treap <- insert 1 treap
60+ treap <- insert 3 treap
61+
62+ Assert.AreEqual( Some 1 , getKthElement treap 0 u)
63+ Assert.AreEqual( Some 3 , getKthElement treap 1 u)
64+ Assert.AreEqual( Some 5 , getKthElement treap 2 u)
65+ Assert.AreEqual( None, getKthElement treap 3 u)
66+
67+ treap <- erase 3 treap
68+ Assert.AreEqual( Some 1 , getKthElement treap 0 u)
69+ Assert.AreEqual( Some 5 , getKthElement treap 1 u)
70+ Assert.AreEqual( None, getKthElement treap 2 u)
71+
72+
5473 [<TestMethod>]
5574 member this. ``Test order preservation`` () =
5675 let mutable treap = empty
0 commit comments