Ejemplo n.º 1
0
        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 }));
        }