public void TestEmptyTreeUsingListQuery()
        {
            var tree = new HPRtree <object>();
            var list = tree.Query(new Envelope(0, 0, 1, 1));

            Assert.That(list.Count, Is.EqualTo(0));
        }
        public void Run()
        {
            hpRtree = new HPRtree <string>();
            stRtree = new STRtree <string>();

            //loadRandom(NUM_ITEMS);
            LoadGrid(NUM_ITEMS);

            var sw = new Stopwatch();

            sw.Start();
            stRtree.Build();
            sw.Stop();
            Console.WriteLine($"STRtree build time: {sw.ElapsedMilliseconds}ms");
            sw.Restart();
            hpRtree.Build();
            sw.Stop();
            Console.WriteLine($"HPRtree build time: {sw.ElapsedMilliseconds}ms");

            sw.Restart();
            for (int i = 0; i < NUM_QUERY; i++)
            {
                QueryRandom();
            }

            sw.Stop();
            Console.WriteLine($"Query time: {sw.ElapsedMilliseconds}ms");
        }
        public void TestQuery()
        {
            var factory    = GeometryFactory.Default;
            var geometries = new List <Geometry>
            {
                factory.CreateLineString(new[] { new Coordinate(0, 0), new Coordinate(10, 10) }),
                factory.CreateLineString(new[] { new Coordinate(20, 20), new Coordinate(30, 30) }),
                factory.CreateLineString(new[] { new Coordinate(20, 20), new Coordinate(30, 30) })
            };

            var t = new HPRtree <object>(3);

            foreach (var g in geometries)
            {
                t.Insert(g.EnvelopeInternal, new object());
            }

            t.Query(new Envelope(5, 6, 5, 6));
            try
            {
                Assert.That(t.Query(new Envelope(5, 6, 5, 6)).Count, Is.EqualTo(1));
                Assert.That(t.Query(new Envelope(20, 30, 0, 10)).Count, Is.EqualTo(0));
                Assert.That(t.Query(new Envelope(25, 26, 25, 26)).Count, Is.EqualTo(2));
                Assert.That(t.Query(new Envelope(0, 100, 0, 100)).Count, Is.EqualTo(3));
            }
            catch (Exception x)
            {
                //STRtreeDemo.printSourceData(geometries, System.out);
                //STRtreeDemo.printLevels(t, System.out);
                throw x;
            }
        }
        private static void QueryGrid(int size, HPRtree <object> t)
        {
            for (int i = 0; i < size; i++)
            {
                t.Insert(new Envelope(i, i + 1, i, i + 1), i);
            }

            t.Query(new Envelope(0, 1, 0, 1));
            Assert.That(t.Query(new Envelope(5, 6, 5, 6)).Count, Is.EqualTo(3));
            Assert.That(t.Query(new Envelope(9, 10, 9, 10)).Count, Is.EqualTo(3));
            Assert.That(t.Query(new Envelope(25, 26, 25, 26)).Count, Is.EqualTo(3));
            Assert.That(t.Query(new Envelope(0, 10, 0, 10)).Count, Is.EqualTo(11));
        }
        public void TestQuery3()
        {
            var t = new HPRtree <object>();

            for (int i = 0; i < 3; i++)
            {
                t.Insert(new Envelope(i, i + 1, i, i + 1), i);
            }

            t.Query(new Envelope(0, 1, 0, 1));
            Assert.That(t.Query(new Envelope(1, 2, 1, 2)).Count, Is.EqualTo(3));
            Assert.That(t.Query(new Envelope(9, 10, 9, 10)).Count, Is.EqualTo(0));
        }
        public void TestQuery10()
        {
            var t = new HPRtree <object>();

            for (int i = 0; i < 10; i++)
            {
                t.Insert(new Envelope(i, i + 1, i, i + 1), i);
            }

            t.Query(new Envelope(0, 1, 0, 1));
            Assert.That(t.Query(new Envelope(5, 6, 5, 6)).Count, Is.EqualTo(3));
            Assert.That(t.Query(new Envelope(9, 10, 9, 10)).Count, Is.EqualTo(2));
            Assert.That(t.Query(new Envelope(25, 26, 25, 26)).Count, Is.EqualTo(0));
            Assert.That(t.Query(new Envelope(0, 10, 0, 10)).Count, Is.EqualTo(10));
        }
Example #7
0
        public override void StartRun(int size)
        {
            Console.WriteLine($"----- Tree size: {size}");

            _index = new HPRtree <object>(NODE_SIZE);
            int side = (int)Math.Sqrt(size);

            LoadGrid(side, _index);

            var sw = new Stopwatch();

            sw.Start();
            _index.Build();
            sw.Stop();
            Console.WriteLine($"Build time = {sw.ElapsedMilliseconds}ms");
        }
        public void TestDisallowedInserts()
        {
            var t = new HPRtree <object>(3);

            t.Insert(new Envelope(0, 0, 0, 0), new object());
            t.Insert(new Envelope(0, 0, 0, 0), new object());
            t.Query(new Envelope());
            try
            {
                t.Insert(new Envelope(0, 0, 0, 0), new object());
                Assert.Fail();
            }
            catch (InvalidOperationException)
            {
                Assert.That(true);
            }
        }
 public HPRtreeIndex(int nodeCapacity)
 {
     _index        = new HPRtree <T>(nodeCapacity);
     _nodeCapacity = nodeCapacity;
 }
        public void TestEmptyTreeUsingItemVisitorQuery()
        {
            var tree = new HPRtree <object>(0);

            tree.Query(new Envelope(0, 0, 1, 1), new ShouldNeverReachHereItemVisitor());
        }