41 lines
1.2 KiB
Rust
41 lines
1.2 KiB
Rust
#![allow(clippy::unwrap_used)]
|
|
|
|
use crate::test::util::new_empty_model;
|
|
|
|
#[test]
|
|
fn simple_cases() {
|
|
let mut model = new_empty_model();
|
|
model._set("A1", "Monday");
|
|
model._set("A2", "Tuesday");
|
|
model._set("A3", "Wednesday");
|
|
|
|
model._set("B1", "=TEXTJOIN(\", \", TRUE, A1:A3)");
|
|
model._set("B2", "=TEXTJOIN(\" and \", TRUE, A1:A3)");
|
|
// This formula might have the _xlfn. prefix
|
|
model._set("B3", "=_xlfn.TEXTJOIN(\" or \", , A1:A3)");
|
|
|
|
model.evaluate();
|
|
|
|
assert_eq!(model._get_text("B1"), *"Monday, Tuesday, Wednesday");
|
|
assert_eq!(model._get_text("B2"), *"Monday and Tuesday and Wednesday");
|
|
assert_eq!(model._get_text("B3"), *"Monday or Tuesday or Wednesday");
|
|
// Our text version removes the prefix, of course (and some white spaces)
|
|
assert_eq!(model._get_formula("B3"), *"=TEXTJOIN(\" or \",,A1:A3)");
|
|
}
|
|
|
|
#[test]
|
|
fn wrong_number_of_arguments() {
|
|
let mut model = new_empty_model();
|
|
model._set("A1", "Monday");
|
|
model._set("A2", "Tuesday");
|
|
model._set("A3", "Wednesday");
|
|
|
|
model._set("B1", "=TEXTJOIN(\", \", TRUE)");
|
|
model._set("B2", "=TEXTJOIN(\" and \", A1:A3)");
|
|
|
|
model.evaluate();
|
|
|
|
assert_eq!(model._get_text("B1"), *"#ERROR!");
|
|
assert_eq!(model._get_text("B2"), *"#ERROR!");
|
|
}
|