@@ -1561,6 +1561,7 @@ mod tests {
1561
1561
let mut rng = Xoshiro256Plus :: seed_from_u64( 42 ) ;
1562
1562
let xt = egobox_doe:: Lhs :: new( & array![ [ -$limit, $limit] , [ -$limit, $limit] ] ) . with_rng( rng. clone( ) ) . sample( $nt) ;
1563
1563
let yt = [ <$func>] ( & xt) ;
1564
+ println!( stringify!( <$func>) ) ;
1564
1565
1565
1566
let gp = GaussianProcess :: <f64 , [ <$regr Mean >] , [ <$corr Corr >] >:: params(
1566
1567
[ <$regr Mean >] :: default ( ) ,
@@ -1573,7 +1574,7 @@ mod tests {
1573
1574
let x = Array :: random_using( ( 2 , ) , Uniform :: new( -$limit, $limit) , & mut rng) ;
1574
1575
let xa: f64 = x[ 0 ] ;
1575
1576
let xb: f64 = x[ 1 ] ;
1576
- let e = 1e-4 ;
1577
+ let e = 1e-5 ;
1577
1578
1578
1579
let x = array![
1579
1580
[ xa, xb] ,
@@ -1595,13 +1596,8 @@ mod tests {
1595
1596
let diff_g = ( y_pred[ [ 1 , 0 ] ] - y_pred[ [ 2 , 0 ] ] ) / ( 2. * e) ;
1596
1597
let diff_d = ( y_pred[ [ 3 , 0 ] ] - y_pred[ [ 4 , 0 ] ] ) / ( 2. * e) ;
1597
1598
1598
- if "[<$corr>]" == "SquaredExponential" {
1599
- assert_rel_or_abs_error( y_deriv[ [ 0 , 0 ] ] , diff_g) ;
1600
- assert_rel_or_abs_error( y_deriv[ [ 0 , 1 ] ] , diff_d) ;
1601
- } else {
1602
- assert_abs_diff_eq!( y_deriv[ [ 0 , 0 ] ] , diff_g, epsilon=5e-1 ) ;
1603
- assert_abs_diff_eq!( y_deriv[ [ 1 , 0 ] ] , diff_d, epsilon=5e-1 ) ;
1604
- }
1599
+ assert_rel_or_abs_error( y_deriv[ [ 0 , 0 ] ] , diff_g) ;
1600
+ assert_rel_or_abs_error( y_deriv[ [ 0 , 1 ] ] , diff_d) ;
1605
1601
}
1606
1602
}
1607
1603
}
@@ -1708,14 +1704,14 @@ mod tests {
1708
1704
1709
1705
fn assert_rel_or_abs_error ( y_deriv : f64 , fdiff : f64 ) {
1710
1706
println ! ( "analytic deriv = {y_deriv}, fdiff = {fdiff}" ) ;
1711
- if fdiff. abs ( ) < 2e-1 {
1707
+ if fdiff. abs ( ) < 2e-1 || y_deriv . abs ( ) < 2e-1 {
1712
1708
let atol = 2e-1 ;
1713
- println ! ( "Check absolute error: should be < {atol}" ) ;
1709
+ println ! ( "Check absolute error: abs({y_deriv}) should be < {atol}" ) ;
1714
1710
assert_abs_diff_eq ! ( y_deriv, 0.0 , epsilon = atol) ; // check absolute when close to zero
1715
1711
} else {
1716
- let rtol = 2e -1;
1717
- let rel_error = ( y_deriv - fdiff) . abs ( ) / fdiff; // check relative
1718
- println ! ( "Check relative error: should be < {rtol}" ) ;
1712
+ let rtol = 3e -1;
1713
+ let rel_error = ( y_deriv - fdiff) . abs ( ) / fdiff. abs ( ) ; // check relative
1714
+ println ! ( "Check relative error: {rel_error} should be < {rtol}" ) ;
1719
1715
assert_abs_diff_eq ! ( rel_error, 0.0 , epsilon = rtol) ;
1720
1716
}
1721
1717
}
0 commit comments