public void ContainsValue_ShouldBehaveTheSameWay() { // Arrange Dictionary <string, int> dictionary = SampleDictionary.ToDictionary(kv => kv.Value, kv => kv.Key); Fictionary <string, int, GenericEqualityComparer <string> > fictionary = SampleDictionary.ToFictionary(kv => kv.Value, kv => kv.Key); const int bound = 100; int hitCount = 0; int missCount = 0; // Assert for (int i = 0; i != bound; ++i) { bool dictionaryContainsValue = dictionary.ContainsValue(i); bool fictionaryContainsValue = fictionary.ContainsValue(i); Assert.Equal(dictionaryContainsValue, fictionaryContainsValue); hitCount += Convert.ToInt32(fictionaryContainsValue); missCount += Convert.ToInt32(!fictionaryContainsValue); } Assert.True(hitCount > 0); Assert.True(missCount > 0); }