diff --git a/lua/frecency/picker.lua b/lua/frecency/picker.lua index bc8ba6a..2c13b83 100644 --- a/lua/frecency/picker.lua +++ b/lua/frecency/picker.lua @@ -202,7 +202,8 @@ function Picker:fetch_results(workspace, datetime) end for _, file in ipairs(files) do local start_recency = os.clock() - file.score = self.recency:calculate(file.count, age_map[file.id]) + local ages = age_map[file.id] --[[@as number[]?]] + file.score = ages and self.recency:calculate(file.count, ages) or 0 elapsed_recency = elapsed_recency + (os.clock() - start_recency) end log.debug(("it takes %f seconds in calculating recency"):format(elapsed_recency)) diff --git a/lua/frecency/tests/frecency_spec.lua b/lua/frecency/tests/frecency_spec.lua index de133a2..769e0a2 100644 --- a/lua/frecency/tests/frecency_spec.lua +++ b/lua/frecency/tests/frecency_spec.lua @@ -142,21 +142,25 @@ describe("frecency", function() local register = make_register(frecency, dir) register("hoge1.txt", "2023-07-29T00:00:00+09:00") register("hoge1.txt", "2023-07-29T00:01:00+09:00", true) - register("hoge1.txt", "2023-07-29T00:02:00+09:00", true) - register("hoge1.txt", "2023-07-29T00:03:00+09:00", true) - register("hoge1.txt", "2023-07-29T00:04:00+09:00", true) - register("hoge1.txt", "2023-07-29T00:05:00+09:00", true) - register("hoge1.txt", "2023-07-29T00:06:00+09:00", true) - register("hoge1.txt", "2023-07-29T00:07:00+09:00", true) - register("hoge1.txt", "2023-07-29T00:08:00+09:00", true) - register("hoge1.txt", "2023-07-29T00:09:00+09:00", true) - register("hoge1.txt", "2023-07-29T00:10:00+09:00", true) - register("hoge1.txt", "2023-07-29T00:11:00+09:00", true) + + register("hoge2.txt", "2023-07-29T00:00:00+09:00") + register("hoge2.txt", "2023-07-29T00:01:00+09:00", true) + register("hoge2.txt", "2023-07-29T00:02:00+09:00", true) + register("hoge2.txt", "2023-07-29T00:03:00+09:00", true) + register("hoge2.txt", "2023-07-29T00:04:00+09:00", true) + register("hoge2.txt", "2023-07-29T00:05:00+09:00", true) + register("hoge2.txt", "2023-07-29T00:06:00+09:00", true) + register("hoge2.txt", "2023-07-29T00:07:00+09:00", true) + register("hoge2.txt", "2023-07-29T00:08:00+09:00", true) + register("hoge2.txt", "2023-07-29T00:09:00+09:00", true) + register("hoge2.txt", "2023-07-29T00:10:00+09:00", true) + register("hoge2.txt", "2023-07-29T00:11:00+09:00", true) it("calculates score from the recent 10 times", function() local results = frecency.picker:fetch_results(nil, "2023-07-29T00:12:00+09:00") assert.are.same({ - { count = 12, id = 1, path = filepath(dir, "hoge1.txt"), score = 12 * (10 * 100) / 10 }, + { count = 12, id = 2, path = filepath(dir, "hoge2.txt"), score = 12 * (10 * 100) / 10 }, + { count = 2, id = 1, path = filepath(dir, "hoge1.txt"), score = 2 * (2 * 100) / 10 }, }, results) end) end)