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