public void TestValue() { var x1 = new[] {1, 1, 2, 4, 4, 4, 4, 7}; Assert.That(x1.Value(0), Is.EqualTo(1)); Assert.That(x1.Value(1), Is.EqualTo(3)); Assert.That(x1.Value(2), Is.EqualTo(4)); Assert.That(x1.Value(3), Is.EqualTo(5)); Assert.That(x1.Value(4), Is.EqualTo(8)); Assert.That(x1.Value(5), Is.EqualTo(9)); Assert.That(x1.Value(6), Is.EqualTo(10)); Assert.Throws<ArgumentOutOfRangeException>(() => x1.Value(-1)); Assert.Throws<ArgumentOutOfRangeException>(() => x1.Value(7)); var x2 = new[] {1, 3, 4, 5, 8, 9, 10}.AsIntervals().ToList(); Assert.That(x2.Value(0), Is.EqualTo(1)); Assert.That(x2.Value(1), Is.EqualTo(3)); Assert.That(x2.Value(2), Is.EqualTo(4)); Assert.That(x2.Value(3), Is.EqualTo(5)); Assert.That(x2.Value(4), Is.EqualTo(8)); Assert.That(x2.Value(5), Is.EqualTo(9)); Assert.That(x2.Value(6), Is.EqualTo(10)); Assert.Throws<ArgumentOutOfRangeException>(() => x2.Value(-1)); Assert.Throws<ArgumentOutOfRangeException>(() => x2.Value(7)); }
public void TestValueInfinite() { var x1 = new[] {1, 1, 2, 4, 4, 4, 4}; Assert.Throws<ArgumentOutOfRangeException>(() => x1.Value(-1)); Assert.That(x1.Value(0), Is.EqualTo(1)); Assert.That(x1.Value(1), Is.EqualTo(3)); Assert.That(x1.Value(2), Is.EqualTo(4)); Assert.That(x1.Value(3), Is.EqualTo(5)); Assert.That(x1.Value(4), Is.EqualTo(8)); Assert.That(x1.Value(5), Is.EqualTo(9)); Assert.That(x1.Value(6), Is.EqualTo(10)); Assert.That(x1.Value(7), Is.EqualTo(11)); Assert.That(x1.Value(10000), Is.EqualTo(10004)); var x2 = new[] {1, 1, 2, 4, 4}; Assert.Throws<ArgumentOutOfRangeException>(() => x2.Value(-1)); Assert.That(x2.Value(0), Is.EqualTo(1)); Assert.That(x2.Value(1), Is.EqualTo(3)); Assert.That(x2.Value(2), Is.EqualTo(4)); Assert.That(x2.Value(3), Is.EqualTo(5)); Assert.That(x2.Value(4), Is.EqualTo(8)); Assert.That(x2.Value(5), Is.EqualTo(9)); Assert.That(x2.Value(6), Is.EqualTo(10)); Assert.That(x1.Value(7), Is.EqualTo(11)); Assert.That(x1.Value(10000), Is.EqualTo(10004)); }