Skip to content

Commit 8bb01fb

Browse files
committed
more tests
1 parent ed6d7c5 commit 8bb01fb

File tree

2 files changed

+36
-3
lines changed

2 files changed

+36
-3
lines changed

.github/workflows/check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }}
3030
- name: Run tests
3131
shell: bash
32-
run: cargo test
32+
run: cargo test --release
3333
- name: Build project
3434
shell: bash
3535
run: cargo build --verbose --release

src/solver/pattern_trait.rs

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ impl PatternTrait for Pattern {
7777
language: Language,
7878
max_words_to_collect: Option<usize>,
7979
) -> HangmanResult {
80-
self.solve(language, max_words_to_collect)
80+
Self::solve(self, language, max_words_to_collect)
8181
}
8282
}
8383

@@ -118,6 +118,39 @@ impl PatternTrait for AsciiPattern {
118118
language: Language,
119119
max_words_to_collect: Option<usize>,
120120
) -> HangmanResult {
121-
self.solve(language, max_words_to_collect)
121+
Self::solve(self, language, max_words_to_collect)
122+
}
123+
}
124+
125+
#[cfg(test)]
126+
mod test {
127+
use crate::Language;
128+
129+
use super::compile_pattern;
130+
131+
#[test]
132+
pub fn test_compile_pattern() {
133+
let pattern = compile_pattern("_____r_ü_", &['i'], true);
134+
135+
let hr = pattern.solve(Language::DeBasicUmlauts, None);
136+
137+
assert_eq!(hr.language, Language::DeBasicUmlauts);
138+
assert_eq!(&hr.input, "_____r_ü_");
139+
assert_eq!(hr.invalid, vec!['i']);
140+
assert_eq!(hr.matching_words_count, 1);
141+
assert_eq!(hr.possible_words, vec!["zuckersüß"]);
142+
}
143+
144+
#[test]
145+
pub fn test_compile_pattern_ascii() {
146+
let pattern = compile_pattern("______n_s__r_____n", &['e'], true);
147+
148+
let hr = pattern.solve(Language::DeUmlauts, None);
149+
150+
assert_eq!(hr.language, Language::DeUmlauts);
151+
assert_eq!(&hr.input, "______n_s__r_____n");
152+
assert_eq!(hr.invalid, vec!['e']);
153+
assert_eq!(hr.matching_words_count, 1);
154+
assert_eq!(hr.possible_words, vec!["zwillingsparadoxon"]);
122155
}
123156
}

0 commit comments

Comments
 (0)