#![allow(clippy::unwrap_used)] use crate::test::util::new_empty_model; #[test] fn test_fn_fisher_smoke() { let mut model = new_empty_model(); // Valid inputs model._set("A1", "=FISHER(0.1)"); model._set("A2", "=FISHER(-0.5)"); model._set("A3", "=FISHER(0.8)"); // Domain errors: x <= -1 or x >= 1 -> #NUM! model._set("A4", "=FISHER(1)"); model._set("A5", "=FISHER(-1)"); model._set("A6", "=FISHER(2)"); // Wrong number of arguments -> #ERROR! model._set("A7", "=FISHER(0.1, 2)"); model.evaluate(); assert_eq!(model._get_text("A1"), *"0.100335348"); assert_eq!(model._get_text("A2"), *"-0.549306144"); assert_eq!(model._get_text("A3"), *"1.098612289"); assert_eq!(model._get_text("A4"), *"#NUM!"); assert_eq!(model._get_text("A5"), *"#NUM!"); assert_eq!(model._get_text("A6"), *"#NUM!"); assert_eq!(model._get_text("A7"), *"#ERROR!"); } #[test] fn test_fn_fisher_inv_smoke() { let mut model = new_empty_model(); // Valid inputs model._set("A1", "=FISHERINV(-1.5)"); model._set("A2", "=FISHERINV(0.5)"); model._set("A3", "=FISHERINV(2)"); // Wrong number of arguments -> #ERROR! model._set("A4", "=FISHERINV(0.5, 1)"); model.evaluate(); assert_eq!(model._get_text("A1"), *"-0.905148254"); assert_eq!(model._get_text("A2"), *"0.462117157"); assert_eq!(model._get_text("A3"), *"0.96402758"); assert_eq!(model._get_text("A4"), *"#ERROR!"); }