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)); }