From c59148bdf65d3b78824746bca37233d6da167a6d Mon Sep 17 00:00:00 2001 From: Gian Hancock Date: Thu, 12 Dec 2024 21:51:07 +1100 Subject: [PATCH] Add tests for OR function Tests currently fail due to issue #175 --- base/src/test/mod.rs | 1 + base/src/test/test_fn_or.rs | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 base/src/test/test_fn_or.rs 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"); +}