예제 #1
0
        public void Delete_FromEmpty_Test()
        {
            var x = new SetRangeSum2();

            x.Erase(40);
            x.Erase(35);
            x.Erase(30);
            x.Erase(25);
            x.Erase(20);
        }
예제 #2
0
        public void MultiAddDoesNotChangeSet_Test()
        {
            var x = new SetRangeSum2();

            x.Insert(1);
            x.Insert(1);
            x.Insert(1);
            x.Insert(1);

            x.Root.Left.Should().BeNull();
            x.Root.Right.Should().BeNull();
            x.Root.Key.Should().Be(1);
        }
예제 #3
0
        public void SumOverflow_Test()
        {
            var x = new SetRangeSum2();

            x.Insert(1000000000);
            x.Insert(999999999);
            x.Insert(999999998);
            x.Insert(999999997);
            x.Insert(999999996);
            x.Insert(999999995);
            x.Insert(15);

            x.Sum(0, 1000000000).Should().Be(6000000000);
        }
예제 #4
0
        public void Sums_Test()
        {
            var x = new SetRangeSum2();

            x.Insert(10);
            x.Insert(20);
            x.Insert(30);
            x.Insert(40);
            x.Insert(50);
            x.Insert(60);

            x.Sum(9, 21).Should().Be(30);
            x.Sum(20, 31).Should().Be(50);
            x.Sum(19, 41).Should().Be(90);
        }
예제 #5
0
        public void Exists_Test(int id, bool expected)
        {
            var x = new SetRangeSum2();

            x.Insert(10);
            x.Insert(20);
            x.Insert(41);
            x.Insert(42);
            x.Insert(43);
            x.Insert(39);
            x.Insert(38);
            x.Insert(37);

            x.Find(id).Should().Be(expected);
        }
예제 #6
0
        public void SumOutOfRange_Test(int left, int right, long expected)
        {
            var x = new SetRangeSum2();

            x.Insert(10);
            x.Insert(20);

            x.Insert(41);
            x.Insert(42);
            x.Insert(43);

            x.Insert(39);
            x.Insert(38);
            x.Insert(37);

            x.Sum(left, right).Should().Be(expected);
        }