123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- # coding: utf-8
- from synergine2_xyz.map import TMXMap
- from PIL import Image
-
- from opencombat.simulation.interior import InteriorManager
-
-
- def test_interior_zones__one_zone():
- map_ = TMXMap('tests/fixtures/one_interior.tmx')
- image = Image.open('tests/fixtures/complex_40x40.png')
- manager = InteriorManager(map_, original_image=image)
- interiors = manager.get_interiors()
-
- assert interiors
- assert isinstance(interiors, list)
- assert 1 == len(interiors)
-
- assert (1, 1) in interiors[0]
- assert (1, 2) in interiors[0]
- assert (1, 3) in interiors[0]
- assert (2, 1) in interiors[0]
- assert (2, 2) in interiors[0]
- assert (2, 3) in interiors[0]
- assert (3, 1) in interiors[0]
- assert (3, 2) in interiors[0]
- assert (3, 3) in interiors[0]
- assert 9 == len(interiors[0])
-
-
- def test_interior_zones__two_separated_zones():
- map_ = TMXMap('tests/fixtures/two_interiors.tmx')
- image = Image.open('tests/fixtures/complex_40x40.png')
- manager = InteriorManager(map_, original_image=image)
- interiors = sorted(manager.get_interiors())
-
- assert interiors
- assert isinstance(interiors, list)
- assert 2 == len(interiors)
-
- assert (0, 1) in interiors[0]
- assert (1, 1) in interiors[0]
- assert (0, 2) in interiors[0]
- assert (1, 2) in interiors[0]
- assert (0, 3) in interiors[0]
- assert (1, 3) in interiors[0]
- assert 6 == len(interiors[0])
-
- assert (3, 1) in interiors[1]
- assert (4, 1) in interiors[1]
- assert (3, 2) in interiors[1]
- assert (4, 2) in interiors[1]
- assert (3, 3) in interiors[1]
- assert (4, 3) in interiors[1]
- assert 6 == len(interiors[1])
-
-
- def test_interiors_zones__side_by_side_zones_with_separator():
- map_ = TMXMap('tests/fixtures/side_by_side_interiors.tmx')
- image = Image.open('tests/fixtures/complex_40x40.png')
- manager = InteriorManager(map_, original_image=image)
- interiors = sorted(manager.get_interiors())
-
- assert interiors
- assert isinstance(interiors, list)
- assert 2 == len(interiors)
-
- assert (0, 1) in interiors[0]
- assert (1, 1) in interiors[0]
- assert (0, 2) in interiors[0]
- assert (1, 2) in interiors[0]
- assert (0, 3) in interiors[0]
- assert (1, 3) in interiors[0]
- assert (2, 1) in interiors[0]
- assert (2, 2) in interiors[0]
- assert (2, 3) in interiors[0]
- assert 9 == len(interiors[0])
-
- assert (2, 1) in interiors[1]
- assert (2, 2) in interiors[1]
- assert (2, 3) in interiors[1]
- assert (3, 1) in interiors[1]
- assert (4, 1) in interiors[1]
- assert (3, 2) in interiors[1]
- assert (4, 2) in interiors[1]
- assert (3, 3) in interiors[1]
- assert (4, 3) in interiors[1]
- assert 9 == len(interiors[1])
-
-
- def test_interiors_zones__active_zones():
- # active zones are zone where someone is in
- map_ = TMXMap('tests/fixtures/two_interiors.tmx')
- image = Image.open('tests/fixtures/complex_40x40.png')
- manager = InteriorManager(map_, original_image=image)
-
- interiors = manager.get_interiors(where_positions=[(0, 1)])
-
- assert (0, 1) in interiors[0]
- assert (1, 1) in interiors[0]
- assert (0, 2) in interiors[0]
- assert (1, 2) in interiors[0]
- assert (0, 3) in interiors[0]
- assert (1, 3) in interiors[0]
- assert 6 == len(interiors[0])
-
- interiors = manager.get_interiors(where_positions=[(4, 2)])
-
- assert 1 == len(interiors)
- assert (3, 1) in interiors[0]
- assert (4, 1) in interiors[0]
- assert (3, 2) in interiors[0]
- assert (4, 2) in interiors[0]
- assert (3, 3) in interiors[0]
- assert (4, 3) in interiors[0]
- assert 6 == len(interiors[0])
-
- interiors = manager.get_interiors(where_positions=[(0, 1), (4, 2)])
-
- assert 2 == len(interiors)
- interiors = sorted(interiors)
-
- assert (0, 1) in interiors[0]
- assert (1, 1) in interiors[0]
- assert (0, 2) in interiors[0]
- assert (1, 2) in interiors[0]
- assert (0, 3) in interiors[0]
- assert (1, 3) in interiors[0]
- assert 6 == len(interiors[0])
-
- assert (3, 1) in interiors[1]
- assert (4, 1) in interiors[1]
- assert (3, 2) in interiors[1]
- assert (4, 2) in interiors[1]
- assert (3, 3) in interiors[1]
- assert (4, 3) in interiors[1]
- assert 6 == len(interiors[1])
-
-
- def test_interiors_zones__make_image_transparent__just_replace():
- map_ = TMXMap('tests/fixtures/one_interior.tmx')
- image = Image.open('tests/fixtures/white_40x40.png')
- manager = InteriorManager(map_, original_image=image)
- interiors = manager.get_interiors()
- after_image_bytes = Image.open('tests/fixtures/white_one_interior_40x40.png').tobytes()
-
- image = manager.update_image_for_interiors(interiors, 8, 8)
- assert after_image_bytes == image.tobytes()
-
-
- def test_interiors_zones__make_image_complex_transparent__just_replace():
- map_ = TMXMap('tests/fixtures/one_interior.tmx')
- image = Image.open('tests/fixtures/complex_40x40.png')
- manager = InteriorManager(map_, original_image=image)
- interiors = manager.get_interiors()
- after_image_bytes = Image.open('tests/fixtures/complex_one_interior_40x40.png').tobytes()
-
- image = manager.update_image_for_interiors(interiors, 8, 8)
- assert after_image_bytes == image.tobytes()
-
-
- def test_interiors_zones__make_image_corner_transparent__just_replace():
- map_ = TMXMap('tests/fixtures/corner_interior.tmx')
- image = Image.open('tests/fixtures/white_40x40.png')
- manager = InteriorManager(map_, original_image=image)
- interiors = manager.get_interiors()
- after_image_bytes = Image.open('tests/fixtures/white_corner_interior_40x40.png').tobytes()
-
- image = manager.update_image_for_interiors(interiors, 8, 8)
- assert after_image_bytes == image.tobytes()
|