public static void test1()
        {
            com.esri.core.geometry.Polyline polyline;
            polyline = makePolyline();
            com.esri.core.geometry.MultiPathImpl polylineImpl = (com.esri.core.geometry.MultiPathImpl
                                                                 )polyline._getImpl();
            com.esri.core.geometry.QuadTree quadtree  = buildQuadTree_(polylineImpl);
            com.esri.core.geometry.Line     queryline = new com.esri.core.geometry.Line(34, 9, 66
                                                                                        , 46);
            com.esri.core.geometry.QuadTree.QuadTreeIterator qtIter = quadtree.getIterator();
            NUnit.Framework.Assert.IsTrue(qtIter.next() == -1);
            qtIter.resetIterator(queryline, 0.0);
            int element_handle = qtIter.next();

            while (element_handle > 0)
            {
                int index = quadtree.getElement(element_handle);
                NUnit.Framework.Assert.IsTrue(index == 6 || index == 8 || index == 14);
                element_handle = qtIter.next();
            }
            com.esri.core.geometry.Envelope2D envelope = new com.esri.core.geometry.Envelope2D
                                                             (34, 9, 66, 46);
            com.esri.core.geometry.Polygon queryPolygon = new com.esri.core.geometry.Polygon(
                );
            queryPolygon.addEnvelope(envelope, true);
            qtIter.resetIterator(queryline, 0.0);
            element_handle = qtIter.next();
            while (element_handle > 0)
            {
                int index = quadtree.getElement(element_handle);
                NUnit.Framework.Assert.IsTrue(index == 6 || index == 8 || index == 14);
                element_handle = qtIter.next();
            }
        }
        internal static com.esri.core.geometry.QuadTree buildQuadTree_(com.esri.core.geometry.MultiPathImpl
                                                                       multipathImpl)
        {
            com.esri.core.geometry.Envelope2D extent = new com.esri.core.geometry.Envelope2D(
                );
            multipathImpl.queryEnvelope2D(extent);
            com.esri.core.geometry.QuadTree quadTree = new com.esri.core.geometry.QuadTree(extent
                                                                                           , 8);
            int hint_index = -1;

            com.esri.core.geometry.Envelope2D boundingbox = new com.esri.core.geometry.Envelope2D
                                                                ();
            com.esri.core.geometry.SegmentIteratorImpl seg_iter = multipathImpl.querySegmentIterator
                                                                      ();
            while (seg_iter.nextPath())
            {
                while (seg_iter.hasNextSegment())
                {
                    com.esri.core.geometry.Segment segment = seg_iter.nextSegment();
                    int index = seg_iter.getStartPointIndex();
                    segment.queryEnvelope2D(boundingbox);
                    hint_index = quadTree.insert(index, boundingbox, hint_index);
                }
            }
            return(quadTree);
        }