public void SimpleAABBTree_BoundingBoxHitDetection_GetNearestToPoint()
    {
        SimpleAABBTree myTree    = new SimpleAABBTree();
        Vector3        TestPoint = new Vector3(0, 0, 0);
        List <NearestObjectForSort> myObjectsAndDistanceFromPoint = new List <NearestObjectForSort>();

        for (int i = 0; i < 100; i++)
        {
            var aBox     = new BoundingBox(new Vector3(myRandom.Next(-100, 0), myRandom.Next(-100, 0), myRandom.Next(-100, 0)), new Vector3(myRandom.Next(1, 100), myRandom.Next(1, 100), myRandom.Next(1, 100)));
            var myEntity = new SimpleAABBTreeStaticOBJ(aBox);
            NearestObjectForSort mySortObject = new NearestObjectForSort()
            {
                Distance = Vector3.Distance(aBox.Center, TestPoint), myObject = myEntity
            };
            myObjectsAndDistanceFromPoint.Add(mySortObject);
            myTree.Insert(myEntity);
        }

        myObjectsAndDistanceFromPoint.Sort();
        var Result = myTree.GetNearest <SimpleAABBTreeStaticOBJ>(TestPoint, 100);

        Assert.AreEqual(100, Result.Count);
        for (int i = 0; i < Result.Count; i++)
        {
            Assert.IsNotNull(Result[i]);
            //Assert.AreEqual(Vector3.Distance(Result[i].Bounds.Center, TestPoint), myObjectsAndDistanceFromPoint[i].Distance);
        }
        Result = myTree.GetNearest <SimpleAABBTreeStaticOBJ>(TestPoint, 100, 100);
        Assert.AreEqual(100, Result.Count);
        for (int i = 0; i < Result.Count; i++)
        {
            Assert.IsNotNull(Result[i]);
            //Assert.AreEqual(Result[i], myObjectsAndDistanceFromPoint[i]);
        }
    }
    public void SimpleAABBTree_BoundingBoxHitDetection_GetNearestToPoint_EmptyTree()
    {
        SimpleAABBTree myTree    = new SimpleAABBTree();
        Vector3        TestPoint = new Vector3(0, 0, 0);
        var            Result    = myTree.GetNearest <Object>(TestPoint, 100);

        Assert.AreEqual(Result.Count, 0);
    }