示例#1
0
        public void InsertGreaterWithoutRightNode()
        {
            // Arrange
            var sut = new Node <int>(5);

            sut.Insert(6);

            // Act
            sut.Insert(7);

            // Assert
            Assert.IsNotNull(sut.Right.Right);
            Assert.IsNull(sut.Left);
            Assert.IsNull(sut.Right.Left);
            Assert.AreEqual(7, sut.Right.Right.Value);
        }
示例#2
0
        public void InsertLesserWithLeftNode()
        {
            // Arrange
            var sut = new Node <int>(5);

            sut.Insert(4);

            // Act
            sut.Insert(3);

            // Assert
            Assert.IsNotNull(sut.Left.Left);
            Assert.IsNull(sut.Right);
            Assert.IsNull(sut.Left.Right);
            Assert.AreEqual(3, sut.Left.Left.Value);
        }
示例#3
0
        public void ContainsNodeValueReturnTrue()
        {
            // Arrange
            var sut = new Node <int>(5);

            sut.Insert(6);
            sut.Insert(7);
            sut.Insert(4);
            sut.Insert(3);

            // Act
            var contains = sut.Contains(5);

            // Assert
            Assert.IsTrue(contains);
        }
示例#4
0
        public void TestInsertDimensionsNotMatch([Values(
                                                      new[] { 1, 2.0 },
                                                      new[] { 2.0, 10, 9, -2 })] double[] p)
        {
            var root  = new Node(1);
            var point = new Point(p);

            Assert.Throws <ArgumentException>(() => root.Insert(point));
        }
示例#5
0
        public void EnumerationReturnsItemsInOrder()
        {
            // Arrange
            var sut = new Node <int>(5);

            sut.Insert(6);
            sut.Insert(7);
            sut.Insert(4);
            sut.Insert(3);

            // Act
            var lastValue = 3;

            foreach (var value in sut)
            {
                Assert.GreaterOrEqual(value, lastValue);
                lastValue = value;
            }
        }
示例#6
0
        public void ToStringReturnsElementsInOrder()
        {
            // Arrange
            var sut = new Node <int>(5);

            sut.Insert(6);
            sut.Insert(7);
            sut.Insert(4);
            sut.Insert(3);

            // Act
            var toString = sut.ToString();

            // Assert
            var values = toString.Split(',', 0);

            for (int i = 1; i < values.Length - 1; i++)
            {
                Assert.Greater(values[i], values[i - 1]);
            }
        }
示例#7
0
        public void ContainsGreaterValuRightNodeReturnsTrue()
        {
            // Arrange
            var sut = new Node <int>(5);

            sut.Insert(6);

            // Act
            var contains = sut.Contains(6);

            // Assert
            Assert.IsTrue(contains);
        }
示例#8
0
        public void ContainsLesserValueLeftNodeReturnsTrue()
        {
            // Arrange
            var sut = new Node <int>(5);

            sut.Insert(4);

            // Act
            var contains = sut.Contains(4);

            // Assert
            Assert.IsTrue(contains);
        }
示例#9
0
        public void TestGetNearestPoint()
        {
            var root  = new Node(2);
            var query = new Point(new double[] { 1, 2 });

            var points = new List <Point> {
                new Point(new double[] { 2, 3 }),
                new Point(new double[] { 12, 6 }),
                new Point(new double[] { 60, 27 }),
                new Point(new double[] { 211, 90 })
            };

            root.Insert(points);

            var nearest = root.GetNearestPoint(query);

            Assert.AreEqual(points[1], nearest);
        }