spacevim/bundle/telescope-fzf-native.nvim/test/fzf_lib_spec.lua
JIe 2bb7059579
Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
init
2024-08-21 14:17:26 +08:00

112 lines
4.1 KiB
Lua

local fzf = require "fzf_lib"
local eq = assert.are.same
local is_nil = assert.is_nil
describe("fzf", function()
local slab = fzf.allocate_slab()
it("can get the score for simple pattern", function()
local p = fzf.parse_pattern("fzf", 0)
eq(80, fzf.get_score("src/fzf", p, slab))
eq(0, fzf.get_score("asdf", p, slab))
eq(54, fzf.get_score("fasdzasdf", p, slab))
fzf.free_pattern(p)
end)
it("can get the score for or pattern", function()
local p = fzf.parse_pattern("lua | src | 'doc | ^asdfasdf | file$", 0)
eq(80, fzf.get_score("src/fzf.c", p, slab))
eq(0, fzf.get_score("build/libfzf", p, slab))
eq(80, fzf.get_score("lua/fzf_lib.lua", p, slab))
eq(80, fzf.get_score("doc/fzf.txt", p, slab))
eq(0, fzf.get_score("daonc/fzf.txt", p, slab))
eq(200, fzf.get_score("asdfasdf", p, slab))
eq(0, fzf.get_score("noasdfasdf", p, slab))
eq(104, fzf.get_score("not_file", p, slab))
eq(0, fzf.get_score("not_file.txt", p, slab))
fzf.free_pattern(p)
end)
it("can get the score for and pattern", function()
local p = fzf.parse_pattern("fzf !lib", 0)
eq(80, fzf.get_score("src/fzf.c", p, slab))
eq(0, fzf.get_score("lua/fzf_lib.lua", p, slab))
eq(0, fzf.get_score("build/libfzf", p, slab))
fzf.free_pattern(p)
local p = fzf.parse_pattern("fzf src c", 0)
eq(192, fzf.get_score("src/fzf.c", p, slab))
eq(0, fzf.get_score("lua/fzf_lib.lua", p, slab))
eq(0, fzf.get_score("build/libfzf", p, slab))
fzf.free_pattern(p)
end)
it("can get the score for patterns with escaped space", function()
local p = fzf.parse_pattern("\\ ", 0)
eq(32, fzf.get_score("src file", p, slab))
eq(0, fzf.get_score("src_file", p, slab))
eq(32, fzf.get_score("another another file", p, slab))
fzf.free_pattern(p)
end)
it("can get the score for issue 11", function()
local p = fzf.parse_pattern("feature/1337-some-times-i-have-a-lot-of-hyphens", 0)
eq(1136, fzf.get_score("feature/1337-some-times-i-have-a-lot-of-hyphens", p, slab))
fzf.free_pattern(p)
end)
it("can get the pos for simple pattern", function()
local p = fzf.parse_pattern("fzf", 0)
eq({ 7, 6, 5 }, fzf.get_pos("src/fzf", p, slab))
is_nil(fzf.get_pos("asdf", p, slab))
eq({ 9, 5, 1 }, fzf.get_pos("fasdzasdf", p, slab))
fzf.free_pattern(p)
end)
it("can get the pos for or pattern", function()
local p = fzf.parse_pattern("lua | src | 'doc | ^asdfasdf | file$", 0)
eq({ 3, 2, 1 }, fzf.get_pos("src/fzf.c", p, slab))
is_nil(fzf.get_pos("build/libfzf", p, slab))
eq({ 3, 2, 1 }, fzf.get_pos("lua/fzf_lib.lua", p, slab))
eq({ 1, 2, 3 }, fzf.get_pos("doc/fzf.txt", p, slab))
is_nil(fzf.get_pos("daonc/fzf.txt", p, slab))
eq({ 1, 2, 3, 4, 5, 6, 7, 8 }, fzf.get_pos("asdfasdf", p, slab))
is_nil(fzf.get_pos("noasdfasdf", p, slab))
eq({ 5, 6, 7, 8 }, fzf.get_pos("not_file", p, slab))
is_nil(fzf.get_pos("not_file.txt", p, slab))
fzf.free_pattern(p)
end)
it("can get the pos for and pattern", function()
local p = fzf.parse_pattern("fzf !lib", 0)
eq({ 7, 6, 5 }, fzf.get_pos("src/fzf.c", p, slab))
is_nil(fzf.get_pos("lua/fzf_lib.lua", p, slab))
is_nil(fzf.get_pos("build/libfzf", p, slab))
fzf.free_pattern(p)
p = fzf.parse_pattern("fzf src c", 0)
eq({ 7, 6, 5, 3, 2, 1, 9 }, fzf.get_pos("src/fzf.c", p, slab))
is_nil(fzf.get_pos("lua/fzf_lib.lua", p, slab))
is_nil(fzf.get_pos("build/libfzf", p, slab))
fzf.free_pattern(p)
end)
it("can get the pos for patterns with escaped space", function()
local p = fzf.parse_pattern("\\ ", 0)
eq({ 4 }, fzf.get_pos("src file", p, slab))
is_nil(fzf.get_pos("src_file", p, slab))
eq({ 8 }, fzf.get_pos("another another file", p, slab))
fzf.free_pattern(p)
end)
it("can get the pos for issue 11", function()
local p = fzf.parse_pattern("feature/1337-some-times-i-have-a-lot-of-hyphens", 0)
local expected = {}
for i = 47, 1, -1 do
table.insert(expected, i)
end
eq(expected, fzf.get_pos("feature/1337-some-times-i-have-a-lot-of-hyphens", p, slab))
fzf.free_pattern(p)
end)
fzf.free_slab(slab)
end)