fix: deal with files that have no timestamps (#120)

* test: add tests for removing timestamps

I had a doubt when removing entries from timestamps, it could remove
ones for other files. I added tests but it was a needless fear.

* fix: deal with files that have no timestamps

I do not know why this case occurs. But care it.
This commit is contained in:
JINNOUCHI Yasushi 2023-08-11 09:52:28 +09:00 committed by GitHub
parent 509288ef3d
commit 1acb245b01
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 12 deletions

View File

@ -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))

View File

@ -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)