Skip to content

Commit 5b78fd6

Browse files
committed
tests: All tileset unit tests passing
1 parent 62746b6 commit 5b78fd6

File tree

10 files changed

+169
-5
lines changed

10 files changed

+169
-5
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<tileset version="1.5" tiledversion="1.7.0" name="tile_set_image" tilewidth="32" tileheight="32" spacing="1" margin="1" tilecount="48" columns="8">
3+
<image source="../../images/tmw_desert_spacing.png" width="265" height="199"/>
4+
</tileset>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<tileset version="1.5" tiledversion="1.7.0" name="tile_set_image" tilewidth="32" tileheight="32" spacing="1" margin="1" tilecount="48" columns="8" backgroundcolor="#5500ff">
3+
<image source="../../images/tmw_desert_spacing.png" width="265" height="199"/>
4+
</tileset>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<tileset version="1.5" tiledversion="1.7.0" name="tile_set_image" tilewidth="32" tileheight="32" spacing="1" margin="1" tilecount="48" columns="8">
3+
<editorsettings>
4+
<export target="../tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/image" format=""/>
5+
</editorsettings>
6+
<grid orientation="isometric" width="32" height="32"/>
7+
<image source="../../images/tmw_desert_spacing.png" width="265" height="199"/>
8+
</tileset>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<tileset version="1.5" tiledversion="1.7.0" name="tile_set_image" tilewidth="32" tileheight="32" spacing="1" margin="1" tilecount="48" columns="8">
3+
<editorsettings>
4+
<export target="../tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/image" format=""/>
5+
</editorsettings>
6+
<properties>
7+
<property name="bool property" type="bool" value="true"/>
8+
<property name="color property" type="color" value="#ff0000ff"/>
9+
<property name="float property" type="float" value="5.6"/>
10+
<property name="int property" type="int" value="5"/>
11+
<property name="string property" value="testing"/>
12+
</properties>
13+
<image source="../../images/tmw_desert_spacing.png" width="265" height="199"/>
14+
</tileset>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<tileset version="1.5" tiledversion="1.7.0" name="tile_set_image" tilewidth="32" tileheight="32" spacing="1" margin="1" tilecount="48" columns="8">
3+
<editorsettings>
4+
<export target="../tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/tests/test_data/tilesets/image" format=""/>
5+
</editorsettings>
6+
<tileoffset x="3" y="5"/>
7+
<image source="../../images/tmw_desert_spacing.png" width="265" height="199"/>
8+
</tileset>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<tileset version="1.5" tiledversion="1.7.0" name="tile_set_image" tilewidth="32" tileheight="32" spacing="1" margin="1" tilecount="48" columns="8">
3+
<transformations hflip="1" vflip="0" rotate="0" preferuntransformed="0"/>
4+
<image source="../../images/tmw_desert_spacing.png" width="265" height="199"/>
5+
</tileset>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<tileset version="1.5" tiledversion="1.7.0" name="tileset" tilewidth="32" tileheight="32" spacing="1" margin="1" tilecount="48" columns="8">
3+
<image source="../../images/tmw_desert_spacing.png" trans="ff00ff" width="265" height="199"/>
4+
</tileset>
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<tileset version="1.5" tiledversion="1.7.0" name="tileset" tilewidth="32" tileheight="32" tilecount="4" columns="0">
3+
<grid orientation="orthogonal" width="1" height="1"/>
4+
<tile id="0" type="tile">
5+
<properties>
6+
<property name="float property" type="float" value="2.2"/>
7+
</properties>
8+
<image width="32" height="32" source="../../images/tile_01.png"/>
9+
<animation>
10+
<frame tileid="0" duration="100"/>
11+
<frame tileid="1" duration="100"/>
12+
<frame tileid="2" duration="100"/>
13+
<frame tileid="3" duration="100"/>
14+
</animation>
15+
</tile>
16+
<tile id="1" type="tile">
17+
<properties>
18+
<property name="string property" value="testing"/>
19+
</properties>
20+
<image width="32" height="32" source="../../images/tile_02.png"/>
21+
<objectgroup draworder="index">
22+
<object id="2" x="13.4358" y="13.5305" width="14.4766" height="13.7197"/>
23+
<object id="3" x="13.8143" y="1.98699" width="14.2874" height="11.0704">
24+
<ellipse/>
25+
</object>
26+
</objectgroup>
27+
</tile>
28+
<tile id="2" type="tile">
29+
<properties>
30+
<property name="bool property" type="bool" value="true"/>
31+
</properties>
32+
<image width="32" height="32" source="../../images/tile_03.png"/>
33+
</tile>
34+
<tile id="3" type="tile">
35+
<image width="32" height="32" source="../../images/tile_04.png"/>
36+
</tile>
37+
</tileset>
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<tileset version="1.5" tiledversion="1.7.0" name="tileset" tilewidth="32" tileheight="32" spacing="1" margin="1" tilecount="48" columns="8">
3+
<image source="../../images/tmw_desert_spacing.png" width="265" height="199"/>
4+
<wangsets>
5+
<wangset name="Terrains" type="mixed" tile="-1">
6+
<wangcolor name="Sand" color="#ff0000" tile="-1" probability="1"/>
7+
<wangcolor name="Cobblestone" color="#00ff00" tile="-1" probability="1"/>
8+
<wangcolor name="Pavement" color="#0000ff" tile="-1" probability="1"/>
9+
<wangcolor name="Dirt" color="#ff7700" tile="-1" probability="1"/>
10+
<wangtile tileid="0" wangid="1,1,0,2,0,1,1,1"/>
11+
<wangtile tileid="1" wangid="1,1,0,2,2,2,0,1"/>
12+
<wangtile tileid="2" wangid="1,1,1,1,0,2,0,1"/>
13+
<wangtile tileid="3" wangid="4,4,0,1,0,4,4,4"/>
14+
<wangtile tileid="4" wangid="4,4,4,4,0,1,0,4"/>
15+
<wangtile tileid="5" wangid="1,1,0,4,0,1,1,1"/>
16+
<wangtile tileid="6" wangid="1,1,0,4,4,4,0,1"/>
17+
<wangtile tileid="7" wangid="1,1,1,1,0,4,0,1"/>
18+
<wangtile tileid="8" wangid="0,2,2,2,0,1,1,1"/>
19+
<wangtile tileid="9" wangid="2,2,2,2,2,2,2,2"/>
20+
<wangtile tileid="10" wangid="0,1,1,1,0,2,2,2"/>
21+
<wangtile tileid="11" wangid="0,1,0,4,4,4,4,4"/>
22+
<wangtile tileid="12" wangid="0,4,4,4,4,4,0,1"/>
23+
<wangtile tileid="13" wangid="0,4,4,4,0,1,1,1"/>
24+
<wangtile tileid="14" wangid="4,4,4,4,4,4,4,4"/>
25+
<wangtile tileid="15" wangid="0,1,1,1,0,4,4,4"/>
26+
<wangtile tileid="16" wangid="0,2,0,1,1,1,1,1"/>
27+
<wangtile tileid="17" wangid="2,2,0,1,1,1,0,2"/>
28+
<wangtile tileid="18" wangid="0,1,1,1,1,1,0,2"/>
29+
<wangtile tileid="19" wangid="2,2,0,1,0,2,2,2"/>
30+
<wangtile tileid="20" wangid="2,2,2,2,0,1,0,2"/>
31+
<wangtile tileid="21" wangid="0,4,0,1,1,1,1,1"/>
32+
<wangtile tileid="22" wangid="4,4,0,1,1,1,0,4"/>
33+
<wangtile tileid="23" wangid="0,1,1,1,1,1,0,4"/>
34+
<wangtile tileid="24" wangid="1,1,0,3,0,1,1,1"/>
35+
<wangtile tileid="25" wangid="1,1,0,3,3,3,0,1"/>
36+
<wangtile tileid="26" wangid="1,1,1,1,0,3,0,1"/>
37+
<wangtile tileid="27" wangid="0,1,0,2,2,2,2,2"/>
38+
<wangtile tileid="28" wangid="0,2,2,2,2,2,0,1"/>
39+
<wangtile tileid="29" wangid="1,1,1,1,1,1,1,1"/>
40+
<wangtile tileid="32" wangid="0,3,3,3,0,1,1,1"/>
41+
<wangtile tileid="33" wangid="3,3,3,3,3,3,3,3"/>
42+
<wangtile tileid="34" wangid="0,1,1,1,0,3,3,3"/>
43+
<wangtile tileid="35" wangid="3,3,0,1,0,3,3,3"/>
44+
<wangtile tileid="36" wangid="3,3,3,3,0,1,0,3"/>
45+
<wangtile tileid="40" wangid="0,3,0,1,1,1,1,1"/>
46+
<wangtile tileid="41" wangid="3,3,0,1,1,1,0,3"/>
47+
<wangtile tileid="42" wangid="0,1,1,1,1,1,0,3"/>
48+
<wangtile tileid="43" wangid="0,1,0,3,3,3,3,3"/>
49+
<wangtile tileid="44" wangid="0,3,3,3,3,3,0,1"/>
50+
</wangset>
51+
</wangsets>
52+
</tileset>

tests/test_tileset.py

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22
import importlib.util
33
import json
44
import os
5+
import xml.etree.ElementTree as etree
56
from pathlib import Path
67

78
import pytest
89

9-
from pytiled_parser.parsers.json.tileset import parse
10+
from pytiled_parser.common_types import OrderedPair, Size
11+
from pytiled_parser.parsers.json.tileset import parse as parse_json
12+
from pytiled_parser.parsers.tmx.tileset import parse as parse_tmx
1013

1114
TESTS_DIR = Path(os.path.dirname(os.path.abspath(__file__)))
1215
TEST_DATA = TESTS_DIR / "test_data"
@@ -26,8 +29,26 @@
2629
]
2730

2831

32+
def fix_object(my_object):
33+
my_object.coordinates = OrderedPair(
34+
round(my_object.coordinates[0], 4), round(my_object.coordinates[1], 4)
35+
)
36+
my_object.size = Size(round(my_object.size[0], 4), round(my_object.size[1], 4))
37+
38+
39+
def fix_tileset(tileset):
40+
tileset.version = None
41+
tileset.tiled_version = None
42+
if tileset.tiles:
43+
for tile in tileset.tiles.values():
44+
if tile.objects:
45+
for my_object in tile.objects.tiled_objects:
46+
fix_object(my_object)
47+
48+
49+
@pytest.mark.parametrize("parser_type", ["json", "tmx"])
2950
@pytest.mark.parametrize("tileset_dir", ALL_TILESET_DIRS)
30-
def test_tilesets_integration(tileset_dir):
51+
def test_tilesets_integration(parser_type, tileset_dir):
3152
# it's a PITA to import like this, don't do it
3253
# https://stackoverflow.com/a/67692/1342874
3354
spec = importlib.util.spec_from_file_location(
@@ -36,9 +57,16 @@ def test_tilesets_integration(tileset_dir):
3657
expected = importlib.util.module_from_spec(spec)
3758
spec.loader.exec_module(expected)
3859

39-
raw_tileset_path = tileset_dir / "tileset.json"
60+
if parser_type == "json":
61+
raw_tileset_path = tileset_dir / "tileset.json"
62+
with open(raw_tileset_path) as raw_tileset:
63+
tileset_ = parse_json(json.loads(raw_tileset.read()), 1)
64+
elif parser_type == "tmx":
65+
raw_tileset_path = tileset_dir / "tileset.tsx"
66+
with open(raw_tileset_path) as raw_tileset:
67+
tileset_ = parse_tmx(etree.parse(raw_tileset).getroot(), 1)
4068

41-
with open(raw_tileset_path) as raw_tileset:
42-
tileset_ = parse(json.loads(raw_tileset.read()), 1)
69+
fix_tileset(tileset_)
70+
fix_tileset(expected.EXPECTED)
4371

4472
assert tileset_ == expected.EXPECTED

0 commit comments

Comments
 (0)