Ejemplo n.º 1
0
        public void Merge_SparseIntersection()
        {
            var a = new HyperLogLogPlus(11, 16);
            var b = new HyperLogLogPlus(11, 16);

            // Note that only one element, 41, is shared amongst the two sets,
            // and so the number of total unique elements is 14.
            int[] aInput = { 12, 13, 22, 34, 38, 40, 41, 46, 49 };
            int[] bInput = { 2, 6, 19, 29, 41, 48 };

            var testSet = new HashSet <int>();

            foreach (int i in aInput)
            {
                testSet.Add(i);
                a.OfferHashed(Hash64(i));
            }

            foreach (int i in bInput)
            {
                testSet.Add(i);
                b.OfferHashed(Hash64(i));
            }

            Assert.That(testSet.Count, Is.EqualTo(14));
            Assert.That(a.Cardinality(), Is.EqualTo(9));
            Assert.That(b.Cardinality(), Is.EqualTo(6));

            a.AddAll(b);
            Assert.That(a.Cardinality(), Is.EqualTo(14));
        }