tests: All tileset unit tests passing

This commit is contained in:
Darren Eberly
2021-12-19 22:23:09 -05:00
parent 62746b63be
commit 5b78fd68f1
10 changed files with 169 additions and 5 deletions

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<tileset version="1.5" tiledversion="1.7.0" name="tile_set_image" tilewidth="32" tileheight="32" spacing="1" margin="1" tilecount="48" columns="8">
<image source="../../images/tmw_desert_spacing.png" width="265" height="199"/>
</tileset>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<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">
<image source="../../images/tmw_desert_spacing.png" width="265" height="199"/>
</tileset>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<tileset version="1.5" tiledversion="1.7.0" name="tile_set_image" tilewidth="32" tileheight="32" spacing="1" margin="1" tilecount="48" columns="8">
<editorsettings>
<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=""/>
</editorsettings>
<grid orientation="isometric" width="32" height="32"/>
<image source="../../images/tmw_desert_spacing.png" width="265" height="199"/>
</tileset>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<tileset version="1.5" tiledversion="1.7.0" name="tile_set_image" tilewidth="32" tileheight="32" spacing="1" margin="1" tilecount="48" columns="8">
<editorsettings>
<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=""/>
</editorsettings>
<properties>
<property name="bool property" type="bool" value="true"/>
<property name="color property" type="color" value="#ff0000ff"/>
<property name="float property" type="float" value="5.6"/>
<property name="int property" type="int" value="5"/>
<property name="string property" value="testing"/>
</properties>
<image source="../../images/tmw_desert_spacing.png" width="265" height="199"/>
</tileset>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<tileset version="1.5" tiledversion="1.7.0" name="tile_set_image" tilewidth="32" tileheight="32" spacing="1" margin="1" tilecount="48" columns="8">
<editorsettings>
<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=""/>
</editorsettings>
<tileoffset x="3" y="5"/>
<image source="../../images/tmw_desert_spacing.png" width="265" height="199"/>
</tileset>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<tileset version="1.5" tiledversion="1.7.0" name="tile_set_image" tilewidth="32" tileheight="32" spacing="1" margin="1" tilecount="48" columns="8">
<transformations hflip="1" vflip="0" rotate="0" preferuntransformed="0"/>
<image source="../../images/tmw_desert_spacing.png" width="265" height="199"/>
</tileset>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<tileset version="1.5" tiledversion="1.7.0" name="tileset" tilewidth="32" tileheight="32" spacing="1" margin="1" tilecount="48" columns="8">
<image source="../../images/tmw_desert_spacing.png" trans="ff00ff" width="265" height="199"/>
</tileset>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<tileset version="1.5" tiledversion="1.7.0" name="tileset" tilewidth="32" tileheight="32" tilecount="4" columns="0">
<grid orientation="orthogonal" width="1" height="1"/>
<tile id="0" type="tile">
<properties>
<property name="float property" type="float" value="2.2"/>
</properties>
<image width="32" height="32" source="../../images/tile_01.png"/>
<animation>
<frame tileid="0" duration="100"/>
<frame tileid="1" duration="100"/>
<frame tileid="2" duration="100"/>
<frame tileid="3" duration="100"/>
</animation>
</tile>
<tile id="1" type="tile">
<properties>
<property name="string property" value="testing"/>
</properties>
<image width="32" height="32" source="../../images/tile_02.png"/>
<objectgroup draworder="index">
<object id="2" x="13.4358" y="13.5305" width="14.4766" height="13.7197"/>
<object id="3" x="13.8143" y="1.98699" width="14.2874" height="11.0704">
<ellipse/>
</object>
</objectgroup>
</tile>
<tile id="2" type="tile">
<properties>
<property name="bool property" type="bool" value="true"/>
</properties>
<image width="32" height="32" source="../../images/tile_03.png"/>
</tile>
<tile id="3" type="tile">
<image width="32" height="32" source="../../images/tile_04.png"/>
</tile>
</tileset>

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
<tileset version="1.5" tiledversion="1.7.0" name="tileset" tilewidth="32" tileheight="32" spacing="1" margin="1" tilecount="48" columns="8">
<image source="../../images/tmw_desert_spacing.png" width="265" height="199"/>
<wangsets>
<wangset name="Terrains" type="mixed" tile="-1">
<wangcolor name="Sand" color="#ff0000" tile="-1" probability="1"/>
<wangcolor name="Cobblestone" color="#00ff00" tile="-1" probability="1"/>
<wangcolor name="Pavement" color="#0000ff" tile="-1" probability="1"/>
<wangcolor name="Dirt" color="#ff7700" tile="-1" probability="1"/>
<wangtile tileid="0" wangid="1,1,0,2,0,1,1,1"/>
<wangtile tileid="1" wangid="1,1,0,2,2,2,0,1"/>
<wangtile tileid="2" wangid="1,1,1,1,0,2,0,1"/>
<wangtile tileid="3" wangid="4,4,0,1,0,4,4,4"/>
<wangtile tileid="4" wangid="4,4,4,4,0,1,0,4"/>
<wangtile tileid="5" wangid="1,1,0,4,0,1,1,1"/>
<wangtile tileid="6" wangid="1,1,0,4,4,4,0,1"/>
<wangtile tileid="7" wangid="1,1,1,1,0,4,0,1"/>
<wangtile tileid="8" wangid="0,2,2,2,0,1,1,1"/>
<wangtile tileid="9" wangid="2,2,2,2,2,2,2,2"/>
<wangtile tileid="10" wangid="0,1,1,1,0,2,2,2"/>
<wangtile tileid="11" wangid="0,1,0,4,4,4,4,4"/>
<wangtile tileid="12" wangid="0,4,4,4,4,4,0,1"/>
<wangtile tileid="13" wangid="0,4,4,4,0,1,1,1"/>
<wangtile tileid="14" wangid="4,4,4,4,4,4,4,4"/>
<wangtile tileid="15" wangid="0,1,1,1,0,4,4,4"/>
<wangtile tileid="16" wangid="0,2,0,1,1,1,1,1"/>
<wangtile tileid="17" wangid="2,2,0,1,1,1,0,2"/>
<wangtile tileid="18" wangid="0,1,1,1,1,1,0,2"/>
<wangtile tileid="19" wangid="2,2,0,1,0,2,2,2"/>
<wangtile tileid="20" wangid="2,2,2,2,0,1,0,2"/>
<wangtile tileid="21" wangid="0,4,0,1,1,1,1,1"/>
<wangtile tileid="22" wangid="4,4,0,1,1,1,0,4"/>
<wangtile tileid="23" wangid="0,1,1,1,1,1,0,4"/>
<wangtile tileid="24" wangid="1,1,0,3,0,1,1,1"/>
<wangtile tileid="25" wangid="1,1,0,3,3,3,0,1"/>
<wangtile tileid="26" wangid="1,1,1,1,0,3,0,1"/>
<wangtile tileid="27" wangid="0,1,0,2,2,2,2,2"/>
<wangtile tileid="28" wangid="0,2,2,2,2,2,0,1"/>
<wangtile tileid="29" wangid="1,1,1,1,1,1,1,1"/>
<wangtile tileid="32" wangid="0,3,3,3,0,1,1,1"/>
<wangtile tileid="33" wangid="3,3,3,3,3,3,3,3"/>
<wangtile tileid="34" wangid="0,1,1,1,0,3,3,3"/>
<wangtile tileid="35" wangid="3,3,0,1,0,3,3,3"/>
<wangtile tileid="36" wangid="3,3,3,3,0,1,0,3"/>
<wangtile tileid="40" wangid="0,3,0,1,1,1,1,1"/>
<wangtile tileid="41" wangid="3,3,0,1,1,1,0,3"/>
<wangtile tileid="42" wangid="0,1,1,1,1,1,0,3"/>
<wangtile tileid="43" wangid="0,1,0,3,3,3,3,3"/>
<wangtile tileid="44" wangid="0,3,3,3,3,3,0,1"/>
</wangset>
</wangsets>
</tileset>

View File

@@ -2,11 +2,14 @@
import importlib.util
import json
import os
import xml.etree.ElementTree as etree
from pathlib import Path
import pytest
from pytiled_parser.parsers.json.tileset import parse
from pytiled_parser.common_types import OrderedPair, Size
from pytiled_parser.parsers.json.tileset import parse as parse_json
from pytiled_parser.parsers.tmx.tileset import parse as parse_tmx
TESTS_DIR = Path(os.path.dirname(os.path.abspath(__file__)))
TEST_DATA = TESTS_DIR / "test_data"
@@ -26,8 +29,26 @@ ALL_TILESET_DIRS = [
]
def fix_object(my_object):
my_object.coordinates = OrderedPair(
round(my_object.coordinates[0], 4), round(my_object.coordinates[1], 4)
)
my_object.size = Size(round(my_object.size[0], 4), round(my_object.size[1], 4))
def fix_tileset(tileset):
tileset.version = None
tileset.tiled_version = None
if tileset.tiles:
for tile in tileset.tiles.values():
if tile.objects:
for my_object in tile.objects.tiled_objects:
fix_object(my_object)
@pytest.mark.parametrize("parser_type", ["json", "tmx"])
@pytest.mark.parametrize("tileset_dir", ALL_TILESET_DIRS)
def test_tilesets_integration(tileset_dir):
def test_tilesets_integration(parser_type, tileset_dir):
# it's a PITA to import like this, don't do it
# https://stackoverflow.com/a/67692/1342874
spec = importlib.util.spec_from_file_location(
@@ -36,9 +57,16 @@ def test_tilesets_integration(tileset_dir):
expected = importlib.util.module_from_spec(spec)
spec.loader.exec_module(expected)
raw_tileset_path = tileset_dir / "tileset.json"
if parser_type == "json":
raw_tileset_path = tileset_dir / "tileset.json"
with open(raw_tileset_path) as raw_tileset:
tileset_ = parse_json(json.loads(raw_tileset.read()), 1)
elif parser_type == "tmx":
raw_tileset_path = tileset_dir / "tileset.tsx"
with open(raw_tileset_path) as raw_tileset:
tileset_ = parse_tmx(etree.parse(raw_tileset).getroot(), 1)
with open(raw_tileset_path) as raw_tileset:
tileset_ = parse(json.loads(raw_tileset.read()), 1)
fix_tileset(tileset_)
fix_tileset(expected.EXPECTED)
assert tileset_ == expected.EXPECTED