@@ -298,11 +298,9 @@ mod tests {
298
298
let Some ( ( py_gamma, rs_gamma) ) = unwrap( py, r, rs_gamma) else {
299
299
return ;
300
300
} ;
301
- let py_gamma_repr = unsafe { std:: mem:: transmute:: <f64 , i64 >( py_gamma) } ;
302
- let rs_gamma_repr = unsafe { std:: mem:: transmute:: <f64 , i64 >( rs_gamma) } ;
303
- // assert_eq!(py_gamma_repr, rs_gamma_repr, "x = {x}, py_gamma = {py_gamma}, rs_gamma = {rs_gamma}");
304
- // allow 1 bit error for now
305
- assert!( ( py_gamma_repr - rs_gamma_repr) . abs( ) <= 1 , "x = {x} diff: {}, py_gamma = {py_gamma} ({py_gamma_repr:x}), rs_gamma = {rs_gamma} ({rs_gamma_repr:x})" , py_gamma_repr ^ rs_gamma_repr) ;
301
+ let py_gamma_repr = py_gamma. to_bits( ) ;
302
+ let rs_gamma_repr = rs_gamma. to_bits( ) ;
303
+ assert_eq!( py_gamma_repr, rs_gamma_repr, "x = {x}, py_gamma = {py_gamma}, rs_gamma = {rs_gamma}" ) ;
306
304
} ) ;
307
305
}
308
306
@@ -312,18 +310,17 @@ mod tests {
312
310
313
311
pyo3:: prepare_freethreaded_python( ) ;
314
312
Python :: with_gil( |py| {
315
- let math = PyModule :: import( py, "math" ) . unwrap( ) ;
316
- let py_lgamma_func = math
317
- . getattr( "lgamma" )
318
- . unwrap( ) ;
319
- let r = py_lgamma_func. call1( ( x, ) ) ;
320
- let Some ( ( py_lgamma, rs_lgamma) ) = unwrap( py, r, rs_lgamma) else {
321
- return ;
322
- } ;
323
- let py_lgamma_repr = unsafe { std:: mem:: transmute:: <f64 , i64 >( py_lgamma) } ;
324
- let rs_lgamma_repr = unsafe { std:: mem:: transmute:: <f64 , i64 >( rs_lgamma) } ;
325
- // allow 6 bit error for now
326
- assert!( ( py_lgamma_repr - rs_lgamma_repr) . abs( ) <= 6 , "x = {x} diff: {}, py_lgamma = {py_lgamma} ({py_lgamma_repr:x}), rs_lgamma = {rs_lgamma} ({rs_lgamma_repr:x})" , py_lgamma_repr ^ rs_lgamma_repr) ;
313
+ let math = PyModule :: import( py, "math" ) . unwrap( ) ;
314
+ let py_lgamma_func = math
315
+ . getattr( "lgamma" )
316
+ . unwrap( ) ;
317
+ let r = py_lgamma_func. call1( ( x, ) ) ;
318
+ let Some ( ( py_lgamma, rs_lgamma) ) = unwrap( py, r, rs_lgamma) else {
319
+ return ;
320
+ } ;
321
+ let py_lgamma_repr = py_lgamma. to_bits( ) ;
322
+ let rs_lgamma_repr = rs_lgamma. to_bits( ) ;
323
+ assert_eq!( py_lgamma_repr, rs_lgamma_repr, "x = {x}, py_lgamma = {py_lgamma}, rs_gamma = {rs_lgamma}" ) ;
327
324
} ) ;
328
325
}
329
326
}
0 commit comments