| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- '''
- Created on 22 nov. 2016
- @author: olinox
- '''
- import unittest
- from pypog import geometry
- class Test(unittest.TestCase):
- """test triangle algorithms"""
- def test_triangle_errors(self):
-
- for cell_shape in (geometry.HEX, geometry.SQUARE):
- self.assertRaises( TypeError, geometry.triangle, cell_shape, "a", 1, 1, 1, 1)
- self.assertRaises( TypeError, geometry.triangle, cell_shape, 1, "a", 1, 1, 1)
- self.assertRaises( TypeError, geometry.triangle, cell_shape, 1, 1, "a", 1, 1)
- self.assertRaises( TypeError, geometry.triangle, cell_shape, 1, 1, 1, "a", 1)
- self.assertRaises( ValueError, geometry.triangle, cell_shape, 1, 1, 1, 1, -1)
-
- self.assertRaises( TypeError, geometry.triangle3d, cell_shape, "a", 1, 1, 1, 1, 1, 1)
- self.assertRaises( TypeError, geometry.triangle3d, cell_shape, 1, "a", 1, 1, 1, 1, 1)
- self.assertRaises( TypeError, geometry.triangle3d, cell_shape, 1, 1, "a", 1, 1, 1, 1)
- self.assertRaises( TypeError, geometry.triangle3d, cell_shape, 1, 1, 1, "a", 1, 1, 1)
- self.assertRaises( TypeError, geometry.triangle3d, cell_shape, 1, 1, 1, 1, "a", 1, 1)
- self.assertRaises( TypeError, geometry.triangle3d, cell_shape, 1, 1, 1, 1, 1, "a", 1)
- self.assertRaises( ValueError, geometry.triangle3d, cell_shape, 1, 1, 1, 1, 1, 1, -1)
-
- self.assertRaises( ValueError, geometry.triangle, 0, 1, 1, 1, 1, 1)
- self.assertRaises( ValueError, geometry.triangle3d, 0, 1, 1, 1, 1, 1, 1, 1)
- def test_sq_triangle(self):
- """test triangle algorithms on square grid"""
- cell_shape = geometry.SQUARE
-
- for i in geometry.ANGLES:
- self.assertCountEqual(geometry.triangle(cell_shape, 0, 0, 0, 0, i), [(0,0)])
- # TODO: check and validate
- # # left to right
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 1), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 2), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 3), [])
- #
- # # top to bottom
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 2), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 2), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 3), [])
- #
- # # right to left
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 1), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 2), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 3), [])
- #
- # # bottom to top
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 1), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 2), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 3), [])
- #
- # # top left to bottom right
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 1), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 2), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 3), [])
- #
- # # bottom right to top left
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 1), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 2), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 3), [])
- #
- # # top right to bottom left
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 1), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 2), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 3), [])
- #
- # # bottom right to top left
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 1), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 2), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 3), [])
-
- def test_hex_triangle(self):
- """test triangle algorithms on hexagonal grid"""
- cell_shape = geometry.HEX
- for i in geometry.ANGLES:
- self.assertCountEqual(geometry.triangle(cell_shape, 0, 0, 0, 0, i), [(0,0)])
- # left to right
- self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 1), [(3, 3), (3, 4), (3, 3), (4, 5), (4, 4), (4, 3), (4, 2), (4, 1), (4, 1), (3, 1), (3, 2), (2, 3)])
- self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 2), [(3, 3), (4, 4), (4, 3), (4, 2), (4, 2), (3, 2), (2, 3)])
- self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 3), [(3, 3), (4, 4), (4, 3), (4, 2), (4, 2), (3, 2), (2, 3)])
-
- # TODO: check and validate
-
- # # top to bottom
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 1), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 2), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 3), [])
- #
- # right to left
- self.assertCountEqual(geometry.triangle(cell_shape, 4, 3, 2, 3, 1), [(3, 2), (3, 1), (3, 2), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 5), (3, 4), (3, 3), (4, 3)])
- self.assertCountEqual(geometry.triangle(cell_shape, 4, 3, 2, 3, 2), [(3, 2), (2, 2), (2, 3), (2, 4), (2, 4), (3, 3), (4, 3)])
- self.assertCountEqual(geometry.triangle(cell_shape, 4, 3, 2, 3, 3), [(3, 2), (2, 2), (2, 3), (2, 4), (2, 4), (3, 3), (4, 3)])
-
- # # bottom to top
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 1), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 2), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 3), [])
- #
- # # top left to bottom right
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 1), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 2), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 3), [])
- #
- # # bottom right to top left
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 1), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 2), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 3), [])
- #
- # # top right to bottom left
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 1), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 2), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 3), [])
- #
- # # bottom right to top left
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 1), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 2), [])
- # self.assertCountEqual(geometry.triangle(cell_shape, 2, 3, 4, 3, 3), [])
-
-
- def test_sq_triangle_3d(self):
- """test triangle3d algorithms on square grid"""
- cell_shape = geometry.SQUARE
- #TODO: complete
-
- def test_hex_triangle_3d(self):
- """test triangle3d algorithms on hexagonal grid"""
- cell_shape = geometry.HEX
- #TODO: complete
- def test_errors(self):
-
- for cell_shape in (geometry.HEX, geometry.SQUARE):
- self.assertRaises(ValueError, geometry.triangle, cell_shape, 0, 0, 0, 0, 0)
- self.assertRaises(TypeError, geometry.triangle, cell_shape, "a", 0, 0, 0, 1)
- self.assertRaises(TypeError, geometry.triangle, cell_shape, 0, "a", 0, 0, 1)
- self.assertRaises(TypeError, geometry.triangle, cell_shape, 0, 0, "a", 0, 1)
- self.assertRaises(TypeError, geometry.triangle, cell_shape, 0, 0, 0, "a", 1)
- self.assertRaises(ValueError, geometry.triangle, cell_shape, 0, 0, 0, 0, "a")
-
- if __name__ == "__main__":
- #import sys;sys.argv = ['', 'Test.test_sq_triangle']
- unittest.main()
|