| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- '''
- Created on 20 nov. 2016
- @author: olinox
- '''
- import unittest
- from pypog import geometry
- from pypog.Grid import Grid, SquareGrid, HexGrid
- class Test(unittest.TestCase):
- def test_init(self):
- #square grid
- _ = Grid( geometry.SQUARE, 1, 1 )
- _ = SquareGrid( 1, 1 )
-
- #hex grid
- _ = Grid( geometry.HEX, 1, 1 )
- _ = HexGrid( 1, 1 )
- def test_cell_shape(self):
- grid = Grid( geometry.SQUARE, 1, 1 )
- self.assertEqual( grid.cell_shape, geometry.SQUARE )
-
- grid.cell_shape = geometry.HEX
- self.assertEqual( grid.cell_shape, geometry.HEX )
- def _set_invalid_cell_shape():
- grid.cell_shape = -1
- self.assertRaises( ValueError, _set_invalid_cell_shape )
- def test_dimensions(self):
-
- for cls in (SquareGrid, HexGrid):
- grid = cls( 1, 1 )
- self.assertEqual( grid.height, 1 )
- self.assertEqual( grid.width, 1 )
-
- grid.height = 1000
- self.assertEqual( grid.height, 1000 )
- grid.width = 1000
- self.assertEqual( grid.width, 1000 )
-
- def _set_invalid_height():
- grid.height = -1
- self.assertRaises( ValueError, _set_invalid_height )
-
- def _set_invalid_width():
- grid.height = -1
- self.assertRaises( ValueError, _set_invalid_width )
-
- def test_cases_number(self):
- for cls in (SquareGrid, HexGrid):
- grid = cls( 1, 1 )
- self.assertEqual( grid.cases_number(), 1 )
-
- grid.width = 100
- grid.height = 100
-
- self.assertEqual( grid.cases_number(), 10000 )
-
- def test_in_grid(self):
-
- for cls in (SquareGrid, HexGrid):
- grid = cls( 10, 10 )
- self.assertTrue( grid.in_grid(5, 5) )
- self.assertFalse( grid.in_grid(11, 5) )
- self.assertFalse( grid.in_grid(5, 11) )
- def test_line(self):
-
- #line algorithm is tested in tests.geometry.test_line
-
- grid = SquareGrid(10, 10)
-
- line = grid.line(0,0,0,1)
- self.assertEqual(line, [(0,0), (0,1)])
-
- def test_line_3d(self):
-
- #line algorithm is tested in tests.geometry.test_line
-
- grid = HexGrid(10, 10)
-
- line = grid.line3d(1,1,1,1,1,1)
- self.assertEqual(line, [(1,1,1)])
-
- def test_hex_zone(self):
-
- #zone algorithm is tested in tests.geometry.test_zone
-
- grid = HexGrid(10,10)
- zone = grid.zone( 0, 0, 0 )
- self.assertCountEqual(zone, [(0,0)])
- if __name__ == "__main__":
- unittest.main()
|