Optimise
This commit is contained in:
parent
9179acd4cd
commit
2c613dc0d1
14 changed files with 376 additions and 188 deletions
|
|
@ -102,12 +102,13 @@ mod filter_tests {
|
|||
let feature_names = vec!["price".to_string()];
|
||||
let feature_data = vec![f32::NAN];
|
||||
let enum_features: Vec<EnumFeatureData> = vec![];
|
||||
let enum_data: Vec<u8> = vec![];
|
||||
|
||||
let (numeric, enums) =
|
||||
parse_filters(Some("price:-inf:inf"), &feature_names, &enum_features);
|
||||
assert_eq!(numeric.len(), 1, "Should parse -inf:inf as valid filter");
|
||||
|
||||
let passes = row_passes_filters(0, &numeric, &enums, &feature_data, 1, &enum_features);
|
||||
let passes = row_passes_filters(0, &numeric, &enums, &feature_data, 1, &enum_data, 0);
|
||||
assert!(!passes, "NaN should fail filter even with infinite range");
|
||||
}
|
||||
|
||||
|
|
@ -116,15 +117,16 @@ mod filter_tests {
|
|||
let enum_features = vec![EnumFeatureData {
|
||||
name: "rating".to_string(),
|
||||
values: vec!["A".to_string(), "B".to_string()],
|
||||
data: vec![0],
|
||||
}];
|
||||
let feature_names: Vec<String> = vec![];
|
||||
// Row-major enum data: 1 row, 1 enum, value=0 (index into "A")
|
||||
let enum_data: Vec<u8> = vec![0];
|
||||
|
||||
let (numeric, enums) = parse_filters(Some("rating:"), &feature_names, &enum_features);
|
||||
assert_eq!(enums.len(), 1);
|
||||
assert!(enums[0].allowed.is_empty());
|
||||
|
||||
let passes = row_passes_filters(0, &numeric, &enums, &[], 0, &enum_features);
|
||||
let passes = row_passes_filters(0, &numeric, &enums, &[], 0, &enum_data, 1);
|
||||
assert!(!passes, "Empty allowed set should reject all rows");
|
||||
}
|
||||
|
||||
|
|
@ -133,7 +135,6 @@ mod filter_tests {
|
|||
let enum_features = vec![EnumFeatureData {
|
||||
name: "rating".to_string(),
|
||||
values: vec!["A".to_string(), "B".to_string()],
|
||||
data: vec![0],
|
||||
}];
|
||||
let feature_names: Vec<String> = vec![];
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue