#![allow(clippy::unwrap_used)] #![allow(clippy::panic)] use crate::test::util::new_empty_model; use crate::types::Cell; #[test] fn test_simple_error_propagation() { let mut model = new_empty_model(); model._set("A1", "=1/0"); model._set("A2", "=2+A1"); model._set("A3", "=C2+A2"); model.evaluate(); match model._get_cell("Sheet1!A3") { Cell::CellFormulaError { o, .. } => { assert_eq!(o, "Sheet1!A1"); } _ => panic!("Unreachable"), } } #[test] fn test_simple_errors() { let mut model = new_empty_model(); model._set("A1", "#CALC!"); model._set("A2", "#SPILL!"); model._set("A3", "#OTHER!"); model._set("B1", "=ISERROR(A1)"); model._set("B2", "=ISERROR(A2)"); model._set("B3", "=ISERROR(A3)"); model.evaluate(); assert_eq!(model._get_text("A1"), "#CALC!"); assert_eq!(model._get_text("A2"), "#SPILL!"); assert_eq!(model._get_text("A3"), "#OTHER!"); assert_eq!(model._get_text("B1"), "TRUE"); assert_eq!(model._get_text("B2"), "TRUE"); assert_eq!(model._get_text("B3"), "FALSE"); }