@@ -1609,6 +1609,39 @@ mod tests {
16091609 assert_eq ! ( grid. orders( ) . len( ) , 1 ) ;
16101610 }
16111611
1612+ #[ test]
1613+ fn grid_repair ( ) {
1614+ use super :: super :: packed_array:: PackedArray ;
1615+ // create emtpy grid
1616+ let mut grid = Grid :: new (
1617+ BinsWithFillLimits :: from_fill_limits ( [ 0.0 , 0.25 , 0.5 , 0.75 , 1.0 ] . to_vec ( ) ) . unwrap ( ) ,
1618+ vec ! [ Order :: new( 0 , 2 , 0 , 0 , 0 ) ] ,
1619+ vec ! [ channel![ 1.0 * ( 2 , 2 ) + 1.0 * ( 4 , 4 ) ] ] ,
1620+ PidBasis :: Pdg ,
1621+ vec ! [ Conv :: new( ConvType :: UnpolPDF , 2212 ) ; 2 ] ,
1622+ v0:: default_interps ( false , 2 ) ,
1623+ vec ! [ Kinematics :: Scale ( 0 ) , Kinematics :: X ( 0 ) , Kinematics :: X ( 1 ) ] ,
1624+ Scales {
1625+ ren : ScaleFuncForm :: Scale ( 0 ) ,
1626+ fac : ScaleFuncForm :: Scale ( 0 ) ,
1627+ frg : ScaleFuncForm :: NoScale ,
1628+ } ,
1629+ ) ;
1630+ let was_reparied = grid. repair ( ) ;
1631+ assert ! ( !was_reparied) ;
1632+ // insert nothing
1633+ let x = vec ! [
1634+ 0.015625 , 0.03125 , 0.0625 , 0.125 , 0.1875 , 0.25 , 0.375 , 0.5 , 0.75 , 1.0 ,
1635+ ] ;
1636+ let mut ar = PackedArray :: new ( vec ! [ 1 , 10 , 10 ] ) ;
1637+ ar[ [ 0 , 0 , 0 ] ] = 0. ;
1638+ let sg: SubgridEnum =
1639+ ImportSubgridV1 :: new ( ar, vec ! [ vec![ 0.0 ] , x. clone( ) , x. clone( ) ] ) . into ( ) ;
1640+ grid. subgrids_mut ( ) [ [ 0 , 0 , 0 ] ] = sg;
1641+ let was_reparied = grid. repair ( ) ;
1642+ assert ! ( was_reparied) ;
1643+ }
1644+
16121645 #[ test]
16131646 fn grid_merge_orders ( ) {
16141647 let mut grid = Grid :: new (
0 commit comments