PCQRSCANER/venv/Lib/site-packages/pyzbar/tests/test_locations.py
2019-12-22 21:51:47 +01:00

51 lines
1.7 KiB
Python

import unittest
from pyzbar.locations import bounding_box, convex_hull, Rect
class TestLocations(unittest.TestCase):
def test_bounding_box(self):
self.assertRaises(ValueError, bounding_box, [])
self.assertEqual(
Rect(left=0, top=0, width=0, height=0),
bounding_box([(0, 0)])
)
self.assertEqual(
Rect(left=37, top=550, width=324, height=76),
bounding_box([(37, 551), (37, 625), (361, 626), (361, 550)])
)
def test_convex_hull_empty(self):
self.assertEqual([], convex_hull([]))
def test_convex_square(self):
points = [(0, 0), (0, 1), (1, 1), (1, 0)]
self.assertEqual(points, convex_hull(points)),
def test_convex_duplicates(self):
points = [(0, 0), (0, 1), (1, 1), (1, 0)]
self.assertEqual(points, convex_hull(points * 10)),
def test_other(self):
# Taken from
# https://codegolf.stackexchange.com/questions/11035/find-the-convex-hull-of-a-set-of-2d-points
res = convex_hull([(1, 1), (2, 2), (3, 3), (1, 3)])
self.assertEqual([(1, 1), (1, 3), (3, 3)], res)
res = convex_hull([
(4.4, 14), (6.7, 15.25), (6.9, 12.8), (2.1, 11.1), (9.5, 14.9),
(13.2, 11.9), (10.3, 12.3), (6.8, 9.5), (3.3, 7.7), (0.6, 5.1),
(5.3, 2.4), (8.45, 4.7), (11.5, 9.6), (13.8, 7.3), (12.9, 3.1),
(11, 1.1)
])
expected = [
(0.6, 5.1), (2.1, 11.1), (4.4, 14), (6.7, 15.25), (9.5, 14.9),
(13.2, 11.9), (13.8, 7.3), (12.9, 3.1), (11, 1.1), (5.3, 2.4)
]
self.assertEqual(expected, res)
if __name__ == '__main__':
unittest.main()