#[burn_tensor_testgen::testgen(unary)]
mod tests {
use super::*;
use burn_tensor::{Distribution, Tensor};
#[test]
fn tanh_should_not_have_numerical_bugs_on_macos() {
fn tanh_one_value(input: f32) -> f32 {
let tensor = Tensor::<TestBackend, 1>::ones([1], &Default::default()) * input;
let output = tensor.tanh().into_primitive();
Tensor::<TestBackend, 1>::from_primitive(output)
.into_data()
.as_slice()
.unwrap()[0]
}
let ok = tanh_one_value(43.0); let zero = tanh_one_value(44.0); let nan = tanh_one_value(45.0); let neg = tanh_one_value(-45.0);
assert!(!ok.is_nan() && ok == 1.0);
assert!(!zero.is_nan() && zero == 1.0);
assert!(!nan.is_nan() && nan == 1.0);
assert!(!neg.is_nan() && neg == -1.0);
}
}