Files
lancaster_stemmer/test/lancaster_stemmer_test.gleam

38 lines
925 B
Gleam

import gleeunit
import lancaster_stemmer
import simplifile
import splitter
pub fn main() -> Nil {
gleeunit.main()
}
// gleeunit test functions end in `_test`
pub fn hello_world_test() {
let line_split = splitter.new(["\n", "\r\n"])
let row_split = splitter.new([" ", "\t"])
let rules = lancaster_stemmer.default_rules()
let assert Ok(tests) = simplifile.read("./test/wordlist.txt")
run_test(tests, line_split, row_split, rules)
}
fn run_test(
tests: String,
line_split: splitter.Splitter,
row_split: splitter.Splitter,
rules: lancaster_stemmer.Rules,
) -> Nil {
case splitter.split(line_split, tests) {
#("", "", "") -> Nil
#(line, _, rest) -> {
case splitter.split(row_split, line) {
#("", "", "") -> Nil
#(word, _, stem) -> {
assert lancaster_stemmer.stem(word, rules) == stem
}
}
run_test(rest, line_split, row_split, rules)
}
}
}