Example #1
0
        public void TestHashTableSimpleSmallMMP()
        {
            int n    = 100000;
            int l    = 7;
            int seed = 1;

            //Generate 10 elements with different value for l
            IEnumerable <Tuple <ulong, int> > S = Generator.CreateStream(n, 63, seed);

            //Maps all keys from S to [0,127]
            BigInteger a = new BigInteger(Generator.GenerateBits(89, seed));
            BigInteger b = new BigInteger(Generator.GenerateBits(89, seed + 1));
            HashTableChaining <int> table_MMP = new HashTableChaining <int>(HashFunction.MultiplyModPrime(a, b, l), 1UL << l);

            foreach (Tuple <ulong, int> elem in S)
            {
                table_MMP.increment(elem.Item1, (Number)elem.Item2);
            }

            foreach (Tuple <ulong, int> elem in S)
            {
                Assert.Equal(elem.Item2, table_MMP.get(elem.Item1));
            }

            output.WriteLine("Streamsize: " + n);
            output.WriteLine("Our hashtable size: " + table_MMP.Count);
            output.WriteLine(table_MMP.ToString());
        }
Example #2
0
        public void TestHashTableSimpleSmallMS()
        {
            int n    = 100000;
            int seed = 1;

            //Generate 10 elements with different value for l
            IEnumerable <Tuple <ulong, int> > S = Generator.CreateStream(n, 63, 1);

            //Maps all keys from S to [0,127]
            ulong a = BitConverter.ToUInt64(Generator.MakeOdd(Generator.GenerateBits(64, seed)));
            int   l = 7;
            HashTableChaining <int> table_MS = new HashTableChaining <int>(HashFunction.MultiplyShift(a, l), 1UL << l);

            foreach (Tuple <ulong, int> elem in S)
            {
                table_MS.increment(elem.Item1, (Number)elem.Item2);
            }

            foreach (Tuple <ulong, int> elem in S)
            {
                Assert.Equal(elem.Item2, table_MS.get(elem.Item1));
            }

            output.WriteLine("Streamsize: " + n);
            output.WriteLine("Our hashtable size: " + table_MS.Count);
            output.WriteLine(table_MS.ToString());
        }