|  |  |  | @ -82,3 +82,108 @@ test "Entity_init_id_add_2_comp" { | 
			
		
	
		
			
				
					|  |  |  |  |     try expect(e.has(TagA)); | 
			
		
	
		
			
				
					|  |  |  |  |     try expect(e.has(TagB)); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | test "Entity_init_id_w_scope" { | 
			
		
	
		
			
				
					|  |  |  |  |     flecs.init(std.testing.allocator); | 
			
		
	
		
			
				
					|  |  |  |  |     var world = try World.initMinimal(); | 
			
		
	
		
			
				
					|  |  |  |  |     defer world.deinit(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     const scope = try world.entity(.{}, .{}); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     _ = world.setScope(scope); | 
			
		
	
		
			
				
					|  |  |  |  |     try expectEqual(scope, world.getScope().?); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     const e = try world.entity(.{}, .{}); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     try expect(e.has(.{ c.EcsChildOf, scope })); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | test "Entity_init_id_name_w_scope" { | 
			
		
	
		
			
				
					|  |  |  |  |     flecs.init(std.testing.allocator); | 
			
		
	
		
			
				
					|  |  |  |  |     var world = try World.initMinimal(); | 
			
		
	
		
			
				
					|  |  |  |  |     defer world.deinit(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     const scope = try world.entity(.{ .name = "parent" }, .{}); | 
			
		
	
		
			
				
					|  |  |  |  |     try expectEqualStrings("parent", scope.getName().?); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     _ = world.setScope(scope); | 
			
		
	
		
			
				
					|  |  |  |  |     try expectEqual(scope, world.getScope().?); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     const e = try world.entity(.{ .name = "child" }, .{}); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     try expect(e.has(.{ c.EcsChildOf, scope })); | 
			
		
	
		
			
				
					|  |  |  |  |     try expectEqualStrings("child", e.getName().?); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     const path = try e.getPath(flecs.allocator); | 
			
		
	
		
			
				
					|  |  |  |  |     defer path.deinit(); | 
			
		
	
		
			
				
					|  |  |  |  |     try expectFmt("parent.child", "{}", .{path}); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | test "Entity_init_id_path_w_scope" { | 
			
		
	
		
			
				
					|  |  |  |  |     flecs.init(std.testing.allocator); | 
			
		
	
		
			
				
					|  |  |  |  |     var world = try World.initMinimal(); | 
			
		
	
		
			
				
					|  |  |  |  |     defer world.deinit(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     const scope = try world.entity(.{ .name = "parent" }, .{}); | 
			
		
	
		
			
				
					|  |  |  |  |     try expectEqualStrings("parent", scope.getName().?); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     _ = world.setScope(scope); | 
			
		
	
		
			
				
					|  |  |  |  |     try expectEqual(scope, world.getScope().?); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     const p = try Path.fromString("child.grandchild", null, flecs.allocator); | 
			
		
	
		
			
				
					|  |  |  |  |     defer p.deinit(); | 
			
		
	
		
			
				
					|  |  |  |  |     const e = try world.entity(.{ .path = p }, .{}); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     try expectEqualStrings("grandchild", e.getName().?); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     const path = try e.getPath(flecs.allocator); | 
			
		
	
		
			
				
					|  |  |  |  |     defer path.deinit(); | 
			
		
	
		
			
				
					|  |  |  |  |     try expectFmt("parent.child.grandchild", "{}", .{path}); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | test "Entity_init_id_fullpath_w_scope" { | 
			
		
	
		
			
				
					|  |  |  |  |     flecs.init(std.testing.allocator); | 
			
		
	
		
			
				
					|  |  |  |  |     var world = try World.initMinimal(); | 
			
		
	
		
			
				
					|  |  |  |  |     defer world.deinit(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     const scope = try world.entity(.{ .name = "parent" }, .{}); | 
			
		
	
		
			
				
					|  |  |  |  |     try expectEqualStrings("parent", scope.getName().?); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     _ = world.setScope(scope); | 
			
		
	
		
			
				
					|  |  |  |  |     try expectEqual(scope, world.getScope().?); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     const p = try Path.fromString("::parent.child.grandchild", .{ .root_sep = "::", .sep = "." }, flecs.allocator); | 
			
		
	
		
			
				
					|  |  |  |  |     defer p.deinit(); | 
			
		
	
		
			
				
					|  |  |  |  |     const e = try world.entity(.{ .path = p }, .{}); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     try expectEqualStrings("grandchild", e.getName().?); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     const path = try e.getPath(flecs.allocator); | 
			
		
	
		
			
				
					|  |  |  |  |     defer path.deinit(); | 
			
		
	
		
			
				
					|  |  |  |  |     try expectFmt("parent.child.grandchild", "{}", .{path}); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | test "Entity_init_id_fullpath_w_scope_existing" { | 
			
		
	
		
			
				
					|  |  |  |  |     flecs.init(std.testing.allocator); | 
			
		
	
		
			
				
					|  |  |  |  |     var world = try World.initMinimal(); | 
			
		
	
		
			
				
					|  |  |  |  |     defer world.deinit(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     const scope = try world.entity(.{ .name = "parent" }, .{}); | 
			
		
	
		
			
				
					|  |  |  |  |     try expectEqualStrings("parent", scope.getName().?); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     _ = world.setScope(scope); | 
			
		
	
		
			
				
					|  |  |  |  |     try expectEqual(scope, world.getScope().?); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     const p = try Path.fromString("::parent.child.grandchild", .{ .root_sep = "::", .sep = "." }, flecs.allocator); | 
			
		
	
		
			
				
					|  |  |  |  |     defer p.deinit(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     const e = try world.entity(.{ .path = p }, .{}); | 
			
		
	
		
			
				
					|  |  |  |  |     const r = try world.entity(.{ .path = p }, .{}); | 
			
		
	
		
			
				
					|  |  |  |  |     try expectEqual(e, r); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     try expectEqualStrings("grandchild", e.getName().?); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     const path = try e.getPath(flecs.allocator); | 
			
		
	
		
			
				
					|  |  |  |  |     defer path.deinit(); | 
			
		
	
		
			
				
					|  |  |  |  |     try expectFmt("parent.child.grandchild", "{}", .{path}); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |