コード例 #1
0
        static void Insert_Contains_SyntheticTestCase()
        {
            var universe = 1000;
            var expectedSize = 1024;
            var table = new YFastPerfectHashTable<object>(universe);
            var insertedElementsSet = FillTableWithRandomElements(table, expectedSize);

            AssertTableContainsElements(table, insertedElementsSet, expectedSize);
        }
コード例 #2
0
 private static HashSet<int> FillTableWithRandomElements(YFastPerfectHashTable<object> table, int expectedSize)
 {
     var random = new Random();
     var insertedElements = new List<int>();
     for (var i = 0; i < expectedSize; i += random.Next(1, 4))
     {
         insertedElements.Add(i);
         var element = i;
         byte prefixOrder = 0;
         while (element > 0)
         {
             table.Add(new YFastNode<object>(element, prefixOrder));
             element = element >> 1;
             prefixOrder++;
         }
     }
     var insertedElementsSet = new HashSet<int>(insertedElements);
     return insertedElementsSet;
 }
コード例 #3
0
 private static void AssertTableContainsElements(YFastPerfectHashTable<object> table, HashSet<int> insertedElementsSet, int expectedSize)
 {
     for (var i = 0; i < expectedSize; i++)
     {
         if (insertedElementsSet.Contains(i))
         {
             var element = i;
             byte prefixOrder = 0;
             while (element > 0)
             {
                 Assert(table.Contains(new YFastNode<object>(element, prefixOrder)));
                 element = element >> 1;
                 prefixOrder++;
             }
         }
         else
         {
             Assert(!table.Contains(new YFastNode<object>(i, 0)));
         }
     }
 }