66
|
1 #!/usr/bin/env python
|
|
2
|
|
3 """
|
|
4 test bounding box
|
|
5 """
|
|
6
|
|
7 import unittest
|
|
8 from tvii.bb import bounding_box
|
|
9 from tvii.bb import overlap
|
|
10
|
|
11 class TestBoundingBox(unittest.TestCase):
|
|
12
|
|
13 def test_integers(self):
|
|
14 """basic bounding box test case"""
|
|
15
|
|
16 # We'll test with integers for ease
|
|
17 points = [(-1, 0),
|
|
18 (0, 1),
|
|
19 (1, 2),
|
|
20 (-1, 2),
|
|
21 (0, 0)]
|
|
22
|
|
23 box = bounding_box(*points)
|
|
24 assert box == [(-1, 1), # x
|
|
25 (0, 2)] # y
|
|
26
|
|
27 def test_overlap(self):
|
|
28 """tests if bounding boxes overlap"""
|
|
29
|
|
30 square1 = [(0.,0.),
|
|
31 (1.,1.)]
|
|
32 bb1 = bounding_box(*square1)
|
|
33 assert bb1 == [(0., 1.),
|
|
34 (0., 1.)]
|
|
35
|
|
36 # this doesn't overlap
|
|
37 square_right = [(2.,0.),
|
|
38 (3.,1)]
|
|
39 bb_right = bounding_box(*square_right)
|
|
40 # ((0.0, 1.0), (2.0, 3.0))
|
|
41 # ((0.0, 1.0), (0.0, 1))
|
|
42 assert not overlap(bb1, bb_right)
|
|
43
|
|
44 # nor does this
|
|
45 square_up = [(0., 1.5),
|
|
46 (1., 1.9)]
|
|
47 assert not overlap(bb1,
|
|
48 bounding_box(*square_up))
|
|
49
|
|
50 # but this does
|
|
51 square_overlap = [(0.5, 0.5),
|
|
52 (1.5, 1.5)]
|
|
53 assert overlap(bb1,
|
|
54 bounding_box(*square_overlap))
|
|
55
|
|
56 if __name__ == '__main__':
|
|
57 unittest.main()
|