test_zone.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. '''
  2. Created on 20 nov. 2016
  3. @author: olinox
  4. '''
  5. import unittest
  6. from pypog import geometry
  7. class Test(unittest.TestCase):
  8. """ test the zone algorithm """
  9. def test_hex_zone(self):
  10. """ test the zone algo for hexagonal grid """
  11. cell_shape = geometry.HEX
  12. self.assertCountEqual( geometry.zone( cell_shape, 3, 3, 0 ), [(3,3)])
  13. self.assertCountEqual( geometry.zone( cell_shape, 3, 3, 1 ), [(3, 2), (2, 3), (3, 3), (4, 3), (4, 4), (3, 4), (2, 4)])
  14. self.assertCountEqual( geometry.zone( cell_shape, 3, 3, 2 ), [(3, 2), (1, 3), (5, 4), (4, 5), (1, 4), (2, 3), (4, 2), \
  15. (2, 5), (5, 3), (1, 2), (3, 5), (3, 3), (4, 4), (3, 1), \
  16. (4, 3), (2, 2), (3, 4), (2, 4), (5, 2)] )
  17. def test_squ_zone(self):
  18. """ test the zone algo for square grid """
  19. cell_shape = geometry.SQUARE
  20. self.assertCountEqual( geometry.zone( cell_shape, 3, 3, 0 ), [(3,3)])
  21. self.assertCountEqual( geometry.zone( cell_shape, 3, 3, 1 ), [(3, 2), (3, 3), (4, 4), (2, 3), (4, 3), (2, 2), (4, 2), (3, 4), (2, 4)])
  22. self.assertCountEqual( geometry.zone( cell_shape, 3, 3, 2 ), [(2, 4), (3, 2), (5, 4), (1, 3), (4, 5), (2, 1), (1, 4), (2, 3), (4, 2), \
  23. (5, 1), (2, 5), (3, 5), (5, 3), (1, 2), (3, 3), (5, 5), (4, 4), (3, 1), \
  24. (1, 5), (4, 3), (2, 2), (4, 1), (5, 2), (3, 4), (1, 1)])
  25. def test_errors(self):
  26. """test the errors due to bad parameters"""
  27. self.assertRaises( TypeError, geometry.zone, 5, 0, 0, "a")
  28. self.assertRaises( TypeError, geometry.zone, 5, "a", 0, 1)
  29. self.assertRaises( TypeError, geometry.zone, 5, 0, "a", 1)
  30. self.assertRaises( ValueError, geometry.zone, 5, 0, 0, -1)
  31. self.assertRaises( ValueError, geometry.zone, -1, 0, 0, 1)
  32. self.assertRaises( ValueError, geometry.zone, "a", 0, 0, 1)
  33. if __name__ == "__main__":
  34. unittest.main()