public void SimpleIndexedSetTest() { const double FirstElement = 17; const double SecondElement = Math.PI; const double ThirdElement = 6.23123438874; const double FourthElement = 43; var indexedSet = new IndexedSet <double>(new[] { FirstElement, SecondElement }); Assert.Equal(2, indexedSet.Count); Assert.True(indexedSet.Contains(FirstElement)); var elements = indexedSet.Elements.ToArray(); Assert.Equal(SecondElement, elements[1]); Assert.Equal(SecondElement, indexedSet.GetElementByIndex(1)); int secondElementIndex; Assert.True(indexedSet.TryGetIndex(Math.PI, out secondElementIndex)); Assert.Equal(1, secondElementIndex); indexedSet.Add(ThirdElement); Assert.Equal(3, indexedSet.Count); Assert.True(indexedSet.Contains(ThirdElement)); int fourthElementIndex; Assert.Throws <ArgumentException>(() => indexedSet.Add(ThirdElement)); Assert.Throws <ArgumentOutOfRangeException>(() => indexedSet.GetElementByIndex(3)); Assert.False(indexedSet.TryGetIndex(FourthElement, out fourthElementIndex)); indexedSet.Add(ThirdElement, false); indexedSet.Add(FourthElement); Assert.Equal(FourthElement, indexedSet.GetElementByIndex(3)); indexedSet.Clear(); Assert.Equal(0, indexedSet.Count); Assert.Throws <ArgumentException>(() => new IndexedSet <double>(new[] { FirstElement, SecondElement, SecondElement })); }