35 lines
940 B
Rust
35 lines
940 B
Rust
#![allow(clippy::unwrap_used)]
|
|
|
|
use crate::test::util::new_empty_model;
|
|
|
|
#[test]
|
|
fn fn_concatenate_args_number() {
|
|
let mut model = new_empty_model();
|
|
model._set("A1", "=CONCATENATE()");
|
|
|
|
model.evaluate();
|
|
|
|
assert_eq!(model._get_text("A1"), *"#ERROR!");
|
|
}
|
|
|
|
#[test]
|
|
fn fn_concatenate() {
|
|
let mut model = new_empty_model();
|
|
model._set("A1", "Hello");
|
|
model._set("A2", " my ");
|
|
model._set("A3", "World");
|
|
|
|
model._set("B1", r#"=CONCATENATE(A1, A2, A3, "!")"#);
|
|
// This will break once we implement the implicit intersection operator
|
|
// It should be:
|
|
// model._set("B2", r#"=CONCATENATE(@A1:A3, "!")"#);
|
|
model._set("B2", r#"=CONCATENATE(A1:A3, "!")"#);
|
|
model._set("B3", r#"=CONCAT(A1:A3, "!")"#);
|
|
|
|
model.evaluate();
|
|
|
|
assert_eq!(model._get_text("B1"), *"Hello my World!");
|
|
assert_eq!(model._get_text("B2"), *" my !");
|
|
assert_eq!(model._get_text("B3"), *"Hello my World!");
|
|
}
|