diff options
author | sanine <sanine.not@pm.me> | 2023-03-14 22:22:20 -0500 |
---|---|---|
committer | sanine <sanine.not@pm.me> | 2023-03-14 22:22:20 -0500 |
commit | 7516044247663dabccc7db110703cfcf8545d95f (patch) | |
tree | 77b06170bdafad99e34a22447568fde557611b15 /honey/ecs.test.lua | |
parent | 344d6e68bee7f286f7c4b4b25518367c595b4619 (diff) |
add ecs.Filter
Diffstat (limited to 'honey/ecs.test.lua')
-rw-r--r-- | honey/ecs.test.lua | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/honey/ecs.test.lua b/honey/ecs.test.lua new file mode 100644 index 0000000..7814097 --- /dev/null +++ b/honey/ecs.test.lua @@ -0,0 +1,51 @@ +local function test(msg, f) + local success, error = pcall(f) + if success then + print(msg .. "\t\t[OK]") + else + print(msg .. "\t\t[FAIL]") + print(error) + end +end + + +local ecs = require 'ecs' +local Filter = ecs.Filter + + +test("Filter.AND correctly matches basic keys", function() + local filter = Filter.AND{"hello", "world"} + + assert(filter{hello=true} == false) + assert(filter{world=true} == false) + assert(filter{hello=true, world=true} == true) + assert(filter{asm=true, hello=true, world=true} == true) +end) +test("Filter.AND correctly matches subfilters", function() + local subfilter = Filter.AND{"hello"} + local filter = Filter.AND{subfilter, "world"} + + assert(filter{hello=true} == false) + assert(filter{world=true} == false) + assert(filter{hello=true, world=true} == true) + assert(filter{asm=true, hello=true, world=true} == true) +end) + + +test("Filter.OR correctly matches basic keys", function() + local filter = Filter.OR{"hello", "world"} + + assert(filter{hello=true} == true) + assert(filter{world=true} == true) + assert(filter{hello=true, world=true} == true) + assert(filter{asm=true} == false) +end) +test("Filter.OR correctly matches subfilters", function() + local subfilter = Filter.OR{"hello"} + local filter = Filter.OR{subfilter, "world"} + + assert(filter{hello=true} == true) + assert(filter{world=true} == true) + assert(filter{hello=true, world=true} == true) + assert(filter{asm=true} == false) +end) |