Compare commits
2 Commits
e1b994bae1
...
516066d322
| Author | SHA1 | Date | |
|---|---|---|---|
| 516066d322 | |||
| 85f1377328 |
@@ -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)
|
||||
|
||||
@@ -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
25135
test/wordlist.txt
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user