Minetest-WorldEditAdditions/.tests/parse/axes/axes_keyword.test.lua
2024-10-07 16:11:35 -07:00

79 lines
2.1 KiB
Lua

local Vector3 = require("worldeditadditions_core.utils.vector3")
local facing_dirs = dofile("./.tests/parse/axes/include_facing_dirs.lua")
local parse = require("worldeditadditions_core.utils.parse.axes_parser")
local parse_keyword = parse.keyword
describe("parse_keyword", function()
-- Basic tests
it("should work on single axes", function()
local ktype, axis, sign = parse_keyword("x")
assert.are.equals("axis", ktype)
assert.are.same({"x"}, axis)
assert.are.equals(1, sign)
end)
it("should work with axis clumping", function()
local ktype, axis, sign = parse_keyword("zx")
assert.are.equals("axis", ktype)
assert.are.same({"x", "z"}, axis)
assert.are.equals(1, sign)
end)
it("should work with h and v", function()
local ktype, axis, sign = parse_keyword("hv")
assert.are.equals("axis", ktype)
assert.are.same(
{"x", "y", "z", rev={"x", "y", "z"}},
axis)
assert.are.equals(1, sign)
end)
it("should work with h and v in clumping", function()
local ktype, axis, sign = parse_keyword("hyxz")
assert.are.equals("axis", ktype)
assert.are.same(
{"x", "y", "z", rev={"x", "z"}},
axis)
assert.are.equals(1, sign)
end)
it("should work with negatives", function()
local ktype, axis, sign = parse_keyword("-xv")
assert.are.equals("axis", ktype)
assert.are.same({"x", "y", rev={"y"}}, axis)
assert.are.equals(-1, sign)
end)
it("should work with dirs", function()
local ktype, axis, sign = parse_keyword("left")
assert.are.equals("dir", ktype)
assert.are.equals("left", axis)
assert.are.equals(1, sign)
end)
it("should work with negative dirs", function()
local ktype, axis, sign = parse_keyword("-right")
assert.are.equals("dir", ktype)
assert.are.equals("right", axis)
assert.are.equals(-1, sign)
end)
it("should work with mirroring", function()
local ktype, axis, sign = parse_keyword("m")
assert.are.equals("rev", ktype)
assert.are.equals("mirroring", axis)
assert.are.equals(nil, sign)
end)
-- Error tests
it("should return error for bad axis", function()
local ktype, axis, sign = parse_keyword("-axv")
assert.are.equals("err", ktype)
end)
end)