Compare commits

..

2 Commits

Author SHA1 Message Date
516066d322 test: Added wordlist tests
Some checks failed
test / test (push) Has been cancelled
2025-11-01 15:16:50 +00:00
85f1377328 fix: Removed main 2025-11-01 15:16:28 +00:00
3 changed files with 25164 additions and 11 deletions

View File

@@ -237,18 +237,12 @@ const default_rules_list = [
),
]
pub fn main() {
io.println("Hello from paicehusk!")
let assert Ok(rules) = load_rules("paice-husk-rules.txt")
stem("abominable", rules)
|> echo
}
pub fn default_rules() -> Rules {
dict.from_list(default_rules_list)
}
pub fn stem(word: String, rules: Rules) -> String {
let word = string.lowercase(word)
case is_valid(word) {
True -> {
do_stem(word, rules, True)

View File

@@ -1,4 +1,7 @@
import gleeunit
import lancaster_stemmer
import simplifile
import splitter
pub fn main() -> Nil {
gleeunit.main()
@@ -6,8 +9,29 @@ pub fn main() -> Nil {
// gleeunit test functions end in `_test`
pub fn hello_world_test() {
let name = "Joe"
let greeting = "Hello, " <> name <> "!"
assert greeting == "Hello, Joe!"
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) |> echo {
#("", "", "") -> Nil
#(word, _, stem) -> {
assert lancaster_stemmer.stem(word, rules) == stem
}
}
run_test(rest, line_split, row_split, rules)
}
}
}

25135
test/wordlist.txt Normal file

File diff suppressed because it is too large Load Diff