test_rect.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. '''
  2. Created on 11 dec. 2016
  3. @author: olinox
  4. '''
  5. import unittest
  6. from pypog import geometry
  7. class Test(unittest.TestCase):
  8. def test_rect_errors(self):
  9. for method in (geometry.rect, geometry.hollow_rect):
  10. self.assertRaises( TypeError, method, "a", 1, 1, 1)
  11. self.assertRaises( TypeError, method, 1, "a", 1, 1)
  12. self.assertRaises( TypeError, method, 1, 1, "a", 1)
  13. self.assertRaises( TypeError, method, 1, 1, 1, "a")
  14. def test_rect(self):
  15. self.assertEquals(geometry.rect(0,0,0,0), [(0,0)])
  16. self.assertCountEqual(geometry.rect(0,0,1,1), [(0,0), (0,1), (1,1), (1,0)])
  17. self.assertCountEqual(geometry.rect(1,1,0,0), [(0,0), (0,1), (1,1), (1,0)])
  18. self.assertCountEqual(geometry.rect(4,3,7,5), [(4, 3), (4, 4), (4, 5), (5, 5), (6, 5), (7, 5), (7, 4), (7, 3), (6, 3), (5, 3), (6, 4), (5, 4)])
  19. self.assertCountEqual(geometry.rect(3,3,9,9), [(3, 3), (9, 9), (9, 8), (9, 7), (9, 5), (9, 6), (9, 4), (9, 3), (8, 4), (7, 3), (6, 4), (4, 4),
  20. (3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9), (4, 9), (5, 9), (6, 9), (7, 9), (8, 9), (4, 5),
  21. (5, 4), (6, 5), (7, 4), (8, 5), (4, 6), (5, 5), (6, 6), (7, 5), (8, 6), (4, 7), (5, 6), (6, 7),
  22. (7, 6), (8, 7), (4, 8), (5, 7), (6, 8), (7, 7), (8, 8), (7, 8), (5, 8), (8, 3), (6, 3), (4, 3),
  23. (5, 3)])
  24. self.assertEquals(geometry.hollow_rect(0,0,0,0), [(0,0)])
  25. self.assertCountEqual(geometry.hollow_rect(0,0,1,1), [(0,0), (0,1), (1,1), (1,0)])
  26. self.assertCountEqual(geometry.hollow_rect(1,1,0,0), [(0,0), (0,1), (1,1), (1,0)])
  27. self.assertCountEqual(geometry.hollow_rect(4,3,7,5), [(4, 3), (4, 4), (4, 5), (5, 5), (6, 5), (7, 5), (7, 4), (7, 3), (6, 3), (5, 3)])
  28. self.assertCountEqual(geometry.hollow_rect(3,3,9,9), [(3, 3), (9, 9), (9, 8), (9, 7), (9, 5), (9, 6), (9, 4), (9, 3), (7, 3), (3, 4),
  29. (3, 5), (3, 6), (3, 7), (3, 8), (3, 9), (4, 9), (5, 9), (6, 9), (7, 9), (8, 9),
  30. (8, 3), (6, 3), (4, 3), (5, 3)])
  31. if __name__ == "__main__":
  32. unittest.main()