Files
IronCalc/base/src/test/test_fn_sumifs.rs
2023-11-20 10:46:19 +01:00

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");
}