mod final_check {
use g_math::fixed_point::domains::binary_fixed::transcendental::sin_binary_i128;
#[test]
fn verify_sin_across_profiles() {
let three_q64: i128 = 3_i128 << 64;
let result = sin_binary_i128(three_q64);
let expected: i128 = 2603204672360199838;
let ulp = (result - expected).abs();
println!("sin_binary_i128(3 << 64) = {}", result);
println!("expected (mpmath) = {}", expected);
println!("ULP at Q64.64 = {}", ulp);
let q32 = (result >> 32) as i64;
let expected_q32: i64 = 606105819;
println!("Q32.32 = {}, expected = {}, ULP = {}", q32, expected_q32, (q32 - expected_q32).abs());
let q16 = (result >> 48) as i32;
let expected_q16: i32 = 9247;
println!("Q16.16 = {}, expected = {}, ULP = {}", q16, expected_q16, (q16 - expected_q16).abs());
}
}