Removing assertion in drange to allow equal inputs (#246) and mimic behaviour of built-in method range
Fixes #66, since it now allows the bbox to have 0 width or 0 height Added tests for Plane since it is the API that uses drangepull/306/head
parent
4df6d4e5ca
commit
7e40fde320
|
@ -161,7 +161,6 @@ def fsplit(pred, objs):
|
|||
# drange
|
||||
def drange(v0, v1, d):
|
||||
"""Returns a discrete range."""
|
||||
assert v0 < v1, str((v0, v1, d))
|
||||
return range(int(v0)//d, int(v1+d)//d)
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
from nose.tools import assert_equal
|
||||
|
||||
from pdfminer.layout import LTComponent
|
||||
from pdfminer.utils import make_compat_str, Plane
|
||||
|
||||
|
||||
class TestPlane(object):
|
||||
def test_find_nothing_in_empty_bbox(self):
|
||||
plane, _ = self.given_plane_with_one_object()
|
||||
result = list(plane.find((50, 50, 100, 100)))
|
||||
assert_equal(result, [])
|
||||
|
||||
def test_find_nothing_after_removing(self):
|
||||
plane, obj = self.given_plane_with_one_object()
|
||||
plane.remove(obj)
|
||||
result = list(plane.find((0, 0, 100, 100)))
|
||||
assert_equal(result, [])
|
||||
|
||||
def test_find_object_in_whole_plane(self):
|
||||
plane, obj = self.given_plane_with_one_object()
|
||||
result = list(plane.find((0, 0, 100, 100)))
|
||||
assert_equal(result, [obj])
|
||||
|
||||
def test_find_if_object_is_smaller_than_gridsize(self):
|
||||
plane, obj = self.given_plane_with_one_object(object_size=1, gridsize=100)
|
||||
result = list(plane.find((0, 0, 100, 100)))
|
||||
assert_equal(result, [obj])
|
||||
|
||||
def test_find_object_if_much_larger_than_gridsize(self):
|
||||
plane, obj = self.given_plane_with_one_object(object_size=100, gridsize=10)
|
||||
result = list(plane.find((0, 0, 100, 100)))
|
||||
assert_equal(result, [obj])
|
||||
|
||||
@staticmethod
|
||||
def given_plane_with_one_object(object_size=50, gridsize=50):
|
||||
bounding_box = (0, 0, 100, 100)
|
||||
plane = Plane(bounding_box, gridsize)
|
||||
obj = LTComponent((0, 0, object_size, object_size))
|
||||
plane.add(obj)
|
||||
return plane, obj
|
Loading…
Reference in New Issue