This commit is contained in:
		@@ -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)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user