public void Test() { var target = new MutableIntMap<double>(); target.DefaultValue = D; Assert.AreEqual(D, target.DefaultValue); Assert.AreEqual(D, target.Get(0)); target.Set(new IntArrow<double>(0, 5, X)); Assert.AreEqual(X, target.Get(0)); Assert.AreEqual(X, target.Get(5)); target.Set(new IntArrow<double>(4, 5, Y)); Assert.AreEqual(Y, target.Get(4)); Assert.AreEqual(Y, target.Get(5)); Assert.AreEqual(X, target.Get(0)); Assert.AreEqual(X, target.Get(2)); Assert.AreEqual(D, target.Get(-1)); Assert.AreEqual(D, target.Get(1000)); target.Clear(new IntInterval(3, 4)); Assert.AreEqual(X, target.Get(0)); Assert.AreEqual(X, target.Get(1)); Assert.AreEqual(X, target.Get(2)); Assert.AreEqual(D, target.Get(3)); Assert.AreEqual(D, target.Get(4)); Assert.AreEqual(Y, target.Get(5)); Assert.AreEqual(D, target.Get(6)); // No change: target.Clear(new IntInterval(int.MinValue, -1)); Assert.AreEqual(X, target.Get(0)); Assert.AreEqual(X, target.Get(1)); Assert.AreEqual(X, target.Get(2)); Assert.AreEqual(D, target.Get(3)); Assert.AreEqual(D, target.Get(4)); Assert.AreEqual(Y, target.Get(5)); Assert.AreEqual(D, target.Get(6)); // No change: target.Clear(new IntInterval(6, int.MaxValue)); Assert.AreEqual(X, target.Get(0)); Assert.AreEqual(X, target.Get(1)); Assert.AreEqual(X, target.Get(2)); Assert.AreEqual(D, target.Get(3)); Assert.AreEqual(D, target.Get(4)); Assert.AreEqual(Y, target.Get(5)); Assert.AreEqual(D, target.Get(6)); Assert.AreEqual( new [] { new IntArrow<double>(0, 2, X), new IntArrow<double>(5, 5, Y), }, target.Enumerate()); target.Clear(); for (int i = 0; i != 10; ++i) { Assert.AreEqual(D, target.Get(i), "context #" + i); } }
public void Test() { var target = new MutableIntMap <double>(); target.DefaultValue = D; Assert.AreEqual(D, target.DefaultValue); Assert.AreEqual(D, target.Get(0)); target.Set(new IntArrow <double>(0, 5, X)); Assert.AreEqual(X, target.Get(0)); Assert.AreEqual(X, target.Get(5)); target.Set(new IntArrow <double>(4, 5, Y)); Assert.AreEqual(Y, target.Get(4)); Assert.AreEqual(Y, target.Get(5)); Assert.AreEqual(X, target.Get(0)); Assert.AreEqual(X, target.Get(2)); Assert.AreEqual(D, target.Get(-1)); Assert.AreEqual(D, target.Get(1000)); target.Clear(new IntInterval(3, 4)); Assert.AreEqual(X, target.Get(0)); Assert.AreEqual(X, target.Get(1)); Assert.AreEqual(X, target.Get(2)); Assert.AreEqual(D, target.Get(3)); Assert.AreEqual(D, target.Get(4)); Assert.AreEqual(Y, target.Get(5)); Assert.AreEqual(D, target.Get(6)); // No change: target.Clear(new IntInterval(int.MinValue, -1)); Assert.AreEqual(X, target.Get(0)); Assert.AreEqual(X, target.Get(1)); Assert.AreEqual(X, target.Get(2)); Assert.AreEqual(D, target.Get(3)); Assert.AreEqual(D, target.Get(4)); Assert.AreEqual(Y, target.Get(5)); Assert.AreEqual(D, target.Get(6)); // No change: target.Clear(new IntInterval(6, int.MaxValue)); Assert.AreEqual(X, target.Get(0)); Assert.AreEqual(X, target.Get(1)); Assert.AreEqual(X, target.Get(2)); Assert.AreEqual(D, target.Get(3)); Assert.AreEqual(D, target.Get(4)); Assert.AreEqual(Y, target.Get(5)); Assert.AreEqual(D, target.Get(6)); Assert.AreEqual( new [] { new IntArrow <double>(0, 2, X), new IntArrow <double>(5, 5, Y), }, target.Enumerate()); target.Clear(); for (int i = 0; i != 10; ++i) { Assert.AreEqual(D, target.Get(i), "context #" + i); } }