test: add chapter ranges pattern tests (#519)

This commit is contained in:
christoph-heinrich 2023-04-25 09:44:42 +02:00 committed by GitHub
parent 64023fbb6c
commit 1947f1b614
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 92 additions and 0 deletions

92
tests/test_ranges.lua Normal file
View File

@ -0,0 +1,92 @@
local example_chapters = {
openings = {
yes = {
'OP',
'Opening',
},
no = {
'Opening the box'
}
},
intros = {
yes = {
'Avant',
'FUNI intro',
'Intro',
'Prologue',
},
no = {
}
},
endings = {
yes = {
'ED',
'Ending',
},
no = {
'end of the thread',
'trending',
}
},
outros = {
yes = {
'closing',
'Outro',
'Preview',
'PV',
},
no = {
}
}
}
local simple_ranges = {
{name = 'openings', patterns = {
'^op ', '^op$', ' op$',
'^opening$', ' opening$'
}, requires_next_chapter = true},
{name = 'intros', patterns = {
'^intro$', ' intro$',
'^avant$', '^prologue$'
}, requires_next_chapter = true},
{name = 'endings', patterns = {
'^ed ', '^ed$', ' ed$',
'^ending ', '^ending$', ' ending$',
}},
{name = 'outros', patterns = {
'^outro$', ' outro$',
'^closing$', '^closing ',
'^preview$', '^pv$',
}},
}
local function find_any(s, patterns)
for _, pattern in ipairs(patterns) do
if s:find(pattern) then
return true
end
end
return false
end
local function test_examples(examples, patterns, name, should_match)
local pass = true
for _, example in ipairs(examples) do
if find_any(example:lower(), patterns) ~= should_match then
print(string.format('False %s in %s "%s"', should_match and 'negative' or 'positive', name, example))
pass = false
end
end
return pass
end
local pass = true
for _, range in ipairs(simple_ranges) do
pass = test_examples(example_chapters[range.name].yes, range.patterns, range.name, true) and pass
pass = test_examples(example_chapters[range.name].no, range.patterns, range.name, false) and pass
end
if pass then
print('All pass')
end