You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.3 KiB
41 lines
1.3 KiB
1 year ago
|
// Reimplementations of the following tests from Flecs:
|
||
|
// https://github.com/SanderMertens/flecs/blob/master/test/api/src/Entity.c
|
||
|
|
||
|
const std = @import("std");
|
||
|
const expect = std.testing.expect;
|
||
|
const expectEql = std.testing.expectEqual;
|
||
|
const expectStrEql = std.testing.expectEqualStrings;
|
||
|
|
||
|
const util = @import("./util.zig");
|
||
|
|
||
|
const flecs = @import("../src/main.zig");
|
||
|
const c = flecs.c;
|
||
|
|
||
|
const context = flecs.Context(void);
|
||
|
const World = context.World;
|
||
|
const Entity = context.Entity;
|
||
|
|
||
|
test "Entity_init_id" {
|
||
|
var world = try World.initMinimal(std.testing.allocator);
|
||
|
defer world.deinit();
|
||
|
|
||
|
const e = try world.entity(.{}, .{});
|
||
|
// try expect(e.raw != 0); -- Not necessary, world.entity() returns error if result would be 0.
|
||
|
try expect(c.ecs_get_type(world.raw, e.raw) == null);
|
||
|
}
|
||
|
|
||
|
test "Entity_init_id_name" {
|
||
|
var world = try World.initMinimal(std.testing.allocator);
|
||
|
defer world.deinit();
|
||
|
|
||
|
const e = try world.entity(.{ .name = "foo" }, .{});
|
||
|
// try expect(e.raw != 0); -- Not necessary, world.entity() returns error if result would be 0.
|
||
|
try expectStrEql("foo", e.getName().?);
|
||
|
|
||
|
// TODO: Implement EntityPath.
|
||
|
const path = c.ecs_get_fullpath(world.raw, e.raw);
|
||
|
defer c.ecs_os_api.free_.?(path);
|
||
|
try expect(path != null);
|
||
|
try expectStrEql("foo", std.mem.sliceTo(path.?, 0));
|
||
|
}
|