public void Enumerator_Comparer()
        {
            // A mask value of -2 (0xFFFFFFFE) causes the lowest bit to be ignored,
            // such as treating 0 and 1 as same; 2 and 3, and so on.
            const int maskValue = -2;
            var       bmic      = new BitMaskedIntComparer(maskValue);
            var       mvdii     = new MultiValueDictionary <int, int>(bmic, bmic);

            mvdii.Add(0, 100);
            mvdii.Add(1, 101);
            mvdii.Add(1, 201);
            mvdii.Add(2, 102);
            mvdii.Add(3, 103);
            mvdii.Add(3, 203);
            Assert.That(mvdii.Count, Is.EqualTo(4));
            bool has_0_100 = false;
            bool has_0_201 = false;
            bool has_2_102 = false;
            bool has_2_203 = false;
            bool has_other = false;

            foreach (var kvp in mvdii)
            {
                switch (kvp)
                {
                case { Key: 0, Value : 100 } :
        public void Ctor_Comparer_SmokeAdd_ShouldSucceed()
        {
            // A mask value of -2 (0xFFFFFFFE) causes the lowest bit to be ignored,
            // such as treating 0 and 1 as same; 2 and 3, and so on.
            const int maskValue = -2;
            var       bmic      = new BitMaskedIntComparer(maskValue);
            var       mvdii     = new MultiValueDictionary <int, int>(bmic, bmic);

            mvdii.Add(0, 100);
            mvdii.Add(1, 101);
            mvdii.Add(1, 201);
            mvdii.Add(2, 102);
            mvdii.Add(3, 103);
            mvdii.Add(3, 203);
            Assert.Pass();
        }