@@ -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