Files
2019-09-28 10:14:18 -04:00

69 lines
1.4 KiB
Plaintext

/*
* @progname st_name.li
* @version 1.0
* @author Perry Rapp
* @category self-test
* @output none
* @description validate name functions
*/
char_encoding("ASCII")
require("lifelines-reports.version:1.3")
option("explicitvars") /* Disallow use of undefined variables */
include("st_aux")
/* entry point in case not invoked via st_all.ll */
proc main()
{
call testNames()
}
/*
test some name functions
*/
proc testNames()
{
set(testok, 0)
set(testfail, 0)
set(namestr, "Fyodor Nikolaievich Medvedev")
call testExtract(namestr, 3, 0)
set(namestr, "Jose Antonio Martinez de Garcia")
call testExtract(namestr, 5, 0)
set(namestr, "Jose Antonio /Martinez/ de Garcia")
call testExtract(namestr, 5, 3)
set(namestr, "Kara /Hattersley-Smith/")
call testExtract(namestr, 2, 2)
set(namestr, "L. /Vitellius/ Tancinus Cives Hisp. Caurie[n]sis")
call testExtract(namestr, 6, 2)
call reportSubsection("name tests")
}
/* test extractnames on passed string */
proc testExtract(namestr, fragcount, surn)
{
set(node, createnode("NAME", namestr))
list(namelist)
extractnames(node, namelist, count, surna)
if (ne(count, fragcount)) {
call reportfail(concat("extractnames failed count "
, d(count), "<>", d(fragcount), " on ", namestr))
}
else { incr(testok) }
if (ne(surna, surn)) {
call reportfail(concat("extractnames failed surname "
, d(surna), "<>", d(surn), " on ", namestr))
}
else { incr(testok) }
}