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 {
 | 
					pub fn default_rules() -> Rules {
 | 
				
			||||||
  dict.from_list(default_rules_list)
 | 
					  dict.from_list(default_rules_list)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub fn stem(word: String, rules: Rules) -> String {
 | 
					pub fn stem(word: String, rules: Rules) -> String {
 | 
				
			||||||
 | 
					  let word = string.lowercase(word)
 | 
				
			||||||
  case is_valid(word) {
 | 
					  case is_valid(word) {
 | 
				
			||||||
    True -> {
 | 
					    True -> {
 | 
				
			||||||
      do_stem(word, rules, True)
 | 
					      do_stem(word, rules, True)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,7 @@
 | 
				
			|||||||
import gleeunit
 | 
					import gleeunit
 | 
				
			||||||
 | 
					import lancaster_stemmer
 | 
				
			||||||
 | 
					import simplifile
 | 
				
			||||||
 | 
					import splitter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub fn main() -> Nil {
 | 
					pub fn main() -> Nil {
 | 
				
			||||||
  gleeunit.main()
 | 
					  gleeunit.main()
 | 
				
			||||||
@@ -6,8 +9,29 @@ pub fn main() -> Nil {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// gleeunit test functions end in `_test`
 | 
					// gleeunit test functions end in `_test`
 | 
				
			||||||
pub fn hello_world_test() {
 | 
					pub fn hello_world_test() {
 | 
				
			||||||
  let name = "Joe"
 | 
					  let line_split = splitter.new(["\n", "\r\n"])
 | 
				
			||||||
  let greeting = "Hello, " <> name <> "!"
 | 
					  let row_split = splitter.new([" ", "\t"])
 | 
				
			||||||
 | 
					  let rules = lancaster_stemmer.default_rules()
 | 
				
			||||||
  assert greeting == "Hello, Joe!"
 | 
					  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