Beispiel #1
0
        public void LabelSetEncodingIsSameForSameLabelsInDifferentOrder()
        {
            var labels1 = new List <KeyValuePair <string, string> >();

            labels1.Add(new KeyValuePair <string, string>("dim1", "value1"));
            labels1.Add(new KeyValuePair <string, string>("dim2", "value2"));
            labels1.Add(new KeyValuePair <string, string>("dim3", "value3"));

            // Construct labelset some labels.
            var labelSet1 = new LabelSetSdk(labels1);

            var labels2 = new List <KeyValuePair <string, string> >();

            labels1.Add(new KeyValuePair <string, string>("dim3", "value3"));
            labels1.Add(new KeyValuePair <string, string>("dim2", "value2"));
            labels1.Add(new KeyValuePair <string, string>("dim1", "value1"));

            // Construct another labelset with same labels but in different order.
            var labelSet2 = new LabelSetSdk(labels1);

            var hashSet = new HashSet <LabelSetSdk>();

            hashSet.Add(labelSet1);
            hashSet.Add(labelSet2);

            // As LabelSet uses encoded string as key, the hashSet should contain a single entry.
            Assert.True(hashSet.Count == 1);
            Assert.Equal(labelSet1.GetHashCode(), labelSet2.GetHashCode());
            Assert.Equal(labelSet1, labelSet2);
        }
Beispiel #2
0
        public void LabelSetRemovesDuplicatesWhenOnlySingleDuplicatedLabelExist()
        {
            var labels = new List <KeyValuePair <string, string> >();

            labels.Add(new KeyValuePair <string, string>("dim1", "value1"));
            labels.Add(new KeyValuePair <string, string>("dim1", "value2"));
            labels.Add(new KeyValuePair <string, string>("dim1", "value3"));

            var labelSet = new LabelSetSdk(labels);

            Assert.True(labelSet.Labels.ToList <KeyValuePair <string, string> >().Count == 1);
            Assert.Contains(labelSet.Labels, kv => kv.Key.Equals("dim1") && kv.Value.Equals("value3"));
            Assert.DoesNotContain(labelSet.Labels, kv => kv.Key.Equals("dim1") && kv.Value.Equals("value1"));
            Assert.DoesNotContain(labelSet.Labels, kv => kv.Key.Equals("dim1") && kv.Value.Equals("value2"));
        }