pub fn test(status: bool, test_description: &str) {
if status == true {
println!("FAIL: {}\n", test_description);
assert!(false);
}
}
pub fn test_rel(result: f64, expected: f64, relative_error: f64, test_description: &str) {
let status = if result.is_nan() || expected.is_nan() {
result.is_nan() != expected.is_nan()
} else if result.is_infinite() || expected.is_infinite() {
result.is_infinite() != expected.is_infinite()
} else if expected != 0.0 {
(result - expected).abs() / expected.abs() > relative_error
} else {
result.abs() > relative_error
};
if status == true {
println!("FAIL: {} ({} observed vs {} expected)",
test_description,
result,
expected);
assert!(false);
}
}