diff --git a/base/src/test/mod.rs b/base/src/test/mod.rs index 9f67c79..f53465d 100644 --- a/base/src/test/mod.rs +++ b/base/src/test/mod.rs @@ -46,6 +46,7 @@ pub(crate) mod util; mod engineering; mod test_fn_offset; +mod test_fn_or; mod test_number_format; mod test_escape_quotes; diff --git a/base/src/test/test_fn_or.rs b/base/src/test/test_fn_or.rs new file mode 100644 index 0000000..3c49b8a --- /dev/null +++ b/base/src/test/test_fn_or.rs @@ -0,0 +1,36 @@ +#![allow(clippy::unwrap_used)] + +use crate::test::util::new_empty_model; + +#[test] +fn fn_or() { + let mut model = new_empty_model(); + model._set("A1", "=OR(1, 0)"); + model._set("A2", "=OR(0, 0)"); + model._set("A3", "=OR(true, false)"); + model._set("A4", "=OR(false, false)"); + + model.evaluate(); + assert_eq!(model._get_text("A1"), *"TRUE"); + assert_eq!(model._get_text("A2"), *"FALSE"); + assert_eq!(model._get_text("A3"), *"TRUE"); + assert_eq!(model._get_text("A4"), *"FALSE"); +} + +#[test] +fn fn_or_no_arguments() { + let mut model = new_empty_model(); + model._set("A1", "=OR()"); + model.evaluate(); + assert_eq!(model._get_text("A1"), *"#ERROR!"); +} + +#[test] +fn fn_or_missing_arguments() { + let mut model = new_empty_model(); + model._set("A1", "=OR(,)"); + model._set("A2", "=OR(,1)"); + model.evaluate(); + assert_eq!(model._get_text("A1"), *"FALSE"); + assert_eq!(model._get_text("A2"), *"TRUE"); +}