diff --git a/src/nodes/tests.rs b/src/nodes/tests.rs index b0bb9ab..413d5d1 100644 --- a/src/nodes/tests.rs +++ b/src/nodes/tests.rs @@ -5,62 +5,40 @@ use rug::Float; use crate::nodes::{Function, Node, Nodes, Operator, PREC}; +fn eval(s: &str) -> f64 { + Nodes::from_str(s).unwrap().evaluate().to_f64() +} + #[test] fn plus_minus_order() { - assert_eq!( - Nodes::from_str("1 - 4 - 5").unwrap().evaluate().to_f64(), - -8. - ); - - assert_eq!( - Nodes::from_str("1 - 4 + 5").unwrap().evaluate().to_f64(), - 2. - ); - - assert_eq!( - Nodes::from_str("1 + 4 - 5").unwrap().evaluate().to_f64(), - 0. - ); + assert_eq!(eval("1 - 4 - 5"), -8.); + assert_eq!(eval("1 - 4 + 5"), 2.); + assert_eq!(eval("1 + 4 - 5"), 0.); } #[test] fn e_edge_case() { - assert_eq!(Nodes::from_str("1e-1").unwrap().evaluate().to_f64(), 0.1) + assert_eq!(eval("1e-1"), 0.1) } #[test] fn implicit_mult() { - assert_eq!( - Nodes::from_str("10 sin(10)").unwrap().evaluate().to_f64(), - -5.440211108893698 - ); + assert_eq!(eval("10 sin(10)"), -5.440211108893698); - assert_eq!( - Nodes::from_str("(10)(10)").unwrap().evaluate().to_f64(), - 100., - ) + assert_eq!(eval("(10)(10)"), 100.,) } #[test] fn constants() { - assert_eq!( - Nodes::from_str("c").unwrap().evaluate().to_f64(), - 299792458. - ); - assert_eq!( - Nodes::from_str("A").unwrap().evaluate().to_f64(), - 6.02214076e23 - ); - assert_eq!( - Nodes::from_str("pi").unwrap().evaluate().to_f64(), - f64::consts::PI - ); + assert_eq!(eval("c"), 299792458.); + assert_eq!(eval("A"), 6.02214076e23); + assert_eq!(eval("pi"), f64::consts::PI); } #[test] fn unary_operators() { - assert_eq!(Nodes::from_str("-10").unwrap().evaluate().to_f64(), -10.); - assert_eq!(Nodes::from_str("+10").unwrap().evaluate().to_f64(), 10.); + assert_eq!(eval("-10"), -10.); + assert_eq!(eval("+10"), 10.); } #[test]