test: add chapter ranges pattern tests (#519)
This commit is contained in:
parent
64023fbb6c
commit
1947f1b614
|
@ -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
|
Loading…
Reference in New Issue