Testing Rtree
================

Make an instance, index stored in memory

    >>> from rtree import Rtree
    >>> index = Rtree()

Add 100 largish boxes randomly distributed over the domain

    >>> for i, coords in enumerate(boxes15):
    ...     index.add(i, coords)
   
Find likely items

    >>> hits = [n for n in index.intersection((0, 0, 60, 60))]
    >>> len(hits)
    10

Find the three items nearest to this one
    >>> hits = [n for n in index.nearest((0,0,10,10), 3)]
    >>> len(hits)
    3
    >>> hits
    [76L, 48L, 19L]

Delete index members

    >>> for i, coords in enumerate(boxes15):
    ...     index.delete(i, coords)

Check that we have deleted stuff

    >>> hits = 0
    >>> hits = [n for n in index.intersection((0, 0, 60, 60))]
    >>> len(hits)
    0
          
      
Disk-based indexes
------------------

    # Clean up leftover data
    >>> import os
    >>> try:
    ...     os.remove('/tmp/default.dat')
    ...     os.remove('/tmp/default.idx')
    ...     os.remove('pagesize3.dat')
    ...     os.remove('pagesize3.idx')
    ...     os.remove('testing.dat')
    ...     os.remove('testing.idx')
    ... except OSError:
    ...     pass

    # Default page size 1
    >>> index = Rtree("/tmp/default")
    >>> for i, coords in enumerate(boxes15):
    ...     index.add(i, coords)
    >>> hits = [n for n in index.intersection((0, 0, 60, 60))]
    >>> len(hits)
    10

    # Page size 3
    >>> index = Rtree("pagesize3", pagesize=3)
    >>> for i, coords in enumerate(boxes15):
    ...     index.add(i, coords)
    >>> hits = [n for n in index.intersection((0, 0, 60, 60))]
    >>> len(hits)
    10

    Test invalid name
    >>> index = Rtree("bogus/foo")
    Traceback (most recent call last):
    ...
    IOError: Unable to open file 'bogus/foo' for index storage

    # Load a persisted index
    >>> _ = os.system("cp /tmp/default.dat testing.dat")
    >>> _ = os.system("cp /tmp/default.idx testing.idx")

    >>> index = Rtree("testing")
    >>> hits = [n for n in index.intersection((0, 0, 60, 60))]
    >>> len(hits)
    10

