A library for parsing Tiled maps.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

increase test coverage

+45 -13
+2 -2
src/root.zig
··· 71 71 try std.testing.expectError(error.UnexpectedToken, Color.parse("##bbaabbee")); 72 72 } 73 73 74 - const layer = @import("layer.zig"); 75 - const tileset = @import("tileset.zig"); 74 + pub const layer = @import("layer.zig"); 75 + pub const tileset = @import("tileset.zig"); 76 76 77 77 const std = @import("std");
+36 -11
test/layers.zig
··· 18 18 19 19 var layer = try Layer.fromJson(allocator, json_layer); 20 20 defer layer.deinit(allocator); 21 - // 21 + 22 22 const object_group = layer.content.object_group; 23 - // 23 + 24 24 try expectEqual(5, object_group.objects.items.len); 25 - // { 26 - // const object = object_group.getByClass("hello").?; 27 - // try expectEqual(1, object.id); 28 - // } 29 - // 30 - // { 31 - // const object = object_group.get("polygon").?; 32 - // try expectEqual(8, object.id); 33 - // } 25 + 26 + const text_obj = object_group.objects.items[0]; 27 + try expectEqual(.text, text_obj.type); 28 + const obj_prop = text_obj.properties.get("obj_prop").?; 29 + try expectEqualStrings("obj_value", obj_prop.value.string); 30 + 31 + const tile_obj = object_group.objects.items[1]; 32 + try expectEqual(.tile, tile_obj.type); 33 + 34 + const ellipse_obj = object_group.objects.items[2]; 35 + try expectEqual(.ellipse, ellipse_obj.type); 36 + 37 + const polygon_obj = object_group.objects.items[3]; 38 + try expectEqual(.polygon, polygon_obj.type); 39 + 40 + const polyline_obj = object_group.objects.items[4]; 41 + try expectEqual(.polyline, polyline_obj.type); 42 + 43 + const by_class = object_group.getByClass("hello").?; 44 + try expectEqual(1, by_class.id); 45 + 46 + const by_name = object_group.get("polygon").?; 47 + try expectEqual(8, by_name.id); 48 + 49 + try expectEqual(null, object_group.getByClass("nonexistent")); 50 + try expectEqual(null, object_group.get("nonexistent")); 51 + } 52 + 53 + test "Compression parses empty string as none" { 54 + const source: std.json.Value = .{ .string = "" }; 55 + const compression = try Compression.jsonParseFromValue(std.testing.allocator, source, .{}); 56 + try expectEqual(.none, compression); 34 57 } 35 58 36 59 const tmz = @import("tmz"); 37 60 const Layer = tmz.Layer; 61 + const Compression = @import("tmz").layer.Compression; 38 62 39 63 const std = @import("std"); 40 64 const expectEqual = std.testing.expectEqual; 65 + const expectEqualStrings = std.testing.expectEqualStrings;
+7
test/object_layer.json
··· 7 7 "height": 19, 8 8 "id": 1, 9 9 "name": "", 10 + "properties": [ 11 + { 12 + "name": "obj_prop", 13 + "type": "string", 14 + "value": "obj_value" 15 + } 16 + ], 10 17 "rotation": 0, 11 18 "text": { 12 19 "text": "Hello World",