diff options
| author | Jackson Moore <jacksonmoore@tuta.io> | 2026-09-04 11:11:22 +0200 |
|---|---|---|
| committer | Jackson Moore <jacksonmoore@tuta.io> | 2026-09-04 11:11:22 +0200 |
| commit | b544bbdf40214e9601aaff374b9f1ee2723e2189 (patch) | |
| tree | 6a9e9ebdf96d85bfc2301187ed5ef9ffdc49962e /tests/run.lua | |
| parent | 4c3258c8c8ce623a9b6381bd408792d3f713e54a (diff) | |
Verify reverse request matrix
Diffstat (limited to 'tests/run.lua')
| -rw-r--r-- | tests/run.lua | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/run.lua b/tests/run.lua index 1609593..598ea2b 100644 --- a/tests/run.lua +++ b/tests/run.lua @@ -4059,6 +4059,33 @@ test("Fixed upper-case keys use the upper-case stored form", function() end end) +test("Reverse-request algorithm matches every direction matrix pair", function() + local descriptors = { "f", "F", "t", "T" } + for _, fixed in ipairs({ false, true }) do + local pairs_checked = 0 + for _, stored in ipairs(descriptors) do + for _, pressed in ipairs(descriptors) do + local expected + if fixed then + expected = domain.Descriptor.is_lowercase(pressed) + and domain.Descriptor.lowercase(stored) + or domain.Descriptor.uppercase(stored) + else + expected = domain.Descriptor.is_lowercase(pressed) + and domain.Descriptor.from_string(stored) + or domain.Descriptor.swap(stored) + end + local reverse = repeat_resolver.reverse_request(stored, pressed, fixed) + local effective = repeat_resolver.primary_direction(stored, pressed, fixed) + same(expected, effective, stored .. "/" .. pressed .. "/" .. tostring(fixed)) + same(reverse, effective == domain.Descriptor.swap(stored)) + pairs_checked = pairs_checked + 1 + end + end + same(16, pairs_checked) + end +end) + for _, item in ipairs(tests) do local ok, failure = xpcall(item.body, debug.traceback) if not ok then |
