41 lines
1.1 KiB
Rust
41 lines
1.1 KiB
Rust
#![allow(clippy::unwrap_used)]
|
|
|
|
use crate::test::util::new_empty_model;
|
|
|
|
#[test]
|
|
fn test_fn_sumifs_arguments() {
|
|
let mut model = new_empty_model();
|
|
|
|
// Incorrect number of arguments
|
|
model._set("A1", "=SUMIFS()");
|
|
model._set("A2", "=SUMIFS(B2:B9)");
|
|
model._set("A3", "=SUMIFS(B2:B9,C2:C9)");
|
|
model._set("A4", "=SUMIFS(B2:B9,C2:C9,\"=A*\",D2:D9)");
|
|
|
|
// Correct (Sum everything in column 'B' if column 'C' starts with "A")
|
|
model._set("A5", "=SUMIFS(B2:B9,C2:C9,\"=A*\")");
|
|
|
|
// Data
|
|
model._set("B2", "5");
|
|
model._set("B3", "4");
|
|
model._set("B4", "15");
|
|
model._set("B5", "22");
|
|
model._set("B6", "=NA()");
|
|
model._set("C2", "Apples");
|
|
model._set("C3", "Bananas");
|
|
model._set("C4", "Almonds");
|
|
model._set("C5", "Yoni");
|
|
model._set("C6", "Mandarin");
|
|
|
|
model.evaluate();
|
|
|
|
// Error (Incorrect number of arguments)
|
|
assert_eq!(model._get_text("A1"), *"#ERROR!");
|
|
assert_eq!(model._get_text("A2"), *"#ERROR!");
|
|
assert_eq!(model._get_text("A3"), *"#ERROR!");
|
|
assert_eq!(model._get_text("A4"), *"#ERROR!");
|
|
|
|
// Correct
|
|
assert_eq!(model._get_text("A5"), *"20");
|
|
}
|