using System using Nemerle.Diagnostics using Nemerle.Collections using Fx7 mutable seed : uint = 0 def rand () unchecked seed *= 3039177861 def l1 = (seed & 0x7fffffffL) :> ulong seed *= 3039177861 def l2 = seed :> ulong (l1 << 32) | l2 def test (n) def ar = array ["ene", "due", "rabe", "chinczyk", "zlapal", "zabe", "asd", "asds"] def a (k:ulong) unchecked ar [(k & 7) :> int] seed = 1 mutable t = Fx7.ULongTree.Empty () time repeat (n) def k = rand () t = t.Add (k, a (k)) seed = 1 time repeat (n) def k = rand () assert (t.Contains (k)) assert (t.Get (k) == a (k)) /* def h = Hashtable () seed = 1 time repeat (n) def k = rand () h.Add (k, a (k)) seed = 1 time repeat (n) def k = rand () assert (h.Contains (k)) assert (h [k] == a (k)) */ test (3) test (1000000)