@@ -184,6 +184,20 @@ pub mod tests {
184
184
Ok ( ( ) )
185
185
}
186
186
187
+ #[ test]
188
+ pub fn test_phrase_score_with_slop_bug_2 ( ) -> crate :: Result < ( ) > {
189
+ // fails
190
+ let index = create_index ( & [ "a x b x c" , "a a c" ] ) ?;
191
+ let scores = test_query ( 2 , & index, vec ! [ "a" , "b" , "c" ] ) ;
192
+ assert_eq ! ( scores. len( ) , 1 ) ;
193
+
194
+ let index = create_index ( & [ "a x b x c" , "b c c" ] ) ?;
195
+ let scores = test_query ( 2 , & index, vec ! [ "a" , "b" , "c" ] ) ;
196
+ assert_eq ! ( scores. len( ) , 1 ) ;
197
+
198
+ Ok ( ( ) )
199
+ }
200
+
187
201
fn test_query ( slop : u32 , index : & Index , texts : Vec < & str > ) -> Vec < f32 > {
188
202
let text_field = index. schema ( ) . get_field ( "text" ) . unwrap ( ) ;
189
203
let searcher = index. reader ( ) . unwrap ( ) . searcher ( ) ;
@@ -212,11 +226,33 @@ pub mod tests {
212
226
pub fn test_phrase_score_with_slop_size ( ) -> crate :: Result < ( ) > {
213
227
let index = create_index ( & [ "a b e c" , "a e e e c" , "a e e e e c" ] ) ?;
214
228
let scores = test_query ( 3 , & index, vec ! [ "a" , "c" ] ) ;
229
+ assert_eq ! ( scores. len( ) , 2 ) ;
215
230
assert_nearly_equals ! ( scores[ 0 ] , 0.29086056 ) ;
216
231
assert_nearly_equals ! ( scores[ 1 ] , 0.26706287 ) ;
217
232
Ok ( ( ) )
218
233
}
219
234
235
+ #[ test]
236
+ pub fn test_phrase_slop ( ) -> crate :: Result < ( ) > {
237
+ let index = create_index ( & [ "a x b c" ] ) ?;
238
+ let scores = test_query ( 1 , & index, vec ! [ "a" , "b" , "c" ] ) ;
239
+ assert_eq ! ( scores. len( ) , 1 ) ;
240
+
241
+ let index = create_index ( & [ "a x b x c" ] ) ?;
242
+ let scores = test_query ( 1 , & index, vec ! [ "a" , "b" , "c" ] ) ;
243
+ assert_eq ! ( scores. len( ) , 0 ) ;
244
+
245
+ let index = create_index ( & [ "a b" ] ) ?;
246
+ let scores = test_query ( 1 , & index, vec ! [ "b" , "a" ] ) ;
247
+ assert_eq ! ( scores. len( ) , 0 ) ;
248
+
249
+ let index = create_index ( & [ "a b" ] ) ?;
250
+ let scores = test_query ( 2 , & index, vec ! [ "b" , "a" ] ) ;
251
+ assert_eq ! ( scores. len( ) , 1 ) ;
252
+
253
+ Ok ( ( ) )
254
+ }
255
+
220
256
#[ test]
221
257
pub fn test_phrase_score_with_slop_ordering ( ) -> crate :: Result < ( ) > {
222
258
let index = create_index ( & [
0 commit comments