public void TestRangeQuery()
        {
            BottomUpCoverFieldTree <Rect> fieldTree = new BottomUpCoverFieldTree <Rect>(0.3, 1);
            List <Rect> rects = new List <Rect>()
            {
                new Rect(new Point(1, 1), new Size(1, 1)),
                new Rect(new Point(3, 3), new Size(1, 1)),
                new Rect(new Point(-3, 2), new Size(1, 1)),
                new Rect(new Point(-1, 0), new Size(1, 1)),
                new Rect(new Point(-2, -2), new Size(1, 1)),
                new Rect(new Point(2, -2), new Size(1, 1)),
                new Rect(new Point(3, -3), new Size(1, 1))
            };

            fieldTree.AddMany(rects);
            Assert.AreEqual(fieldTree.IsEmpty(), false);

            var r1 = fieldTree.RangeQuery(0, 0, 3);

            Assert.AreEqual(r1.Count, 2);

            var r2 = fieldTree.RangeQuery(0, 0, 3, 2);

            Assert.AreEqual(r2.Count, 1);

            var r3 = fieldTree.RangeQuery(-1, 0, 4, 10);

            Assert.AreEqual(r3.Count, 2);
        }