Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method VerifyStockLevelInDays ( 
 | 
  String expectations, 
 | 
  MacroPlan macroplan 
 | 
) 
 | 
{ 
 | 
  Description: 'Verify utf result' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // Each line will be checked to verify result 
 | 
    traverse( expectations.Tokenize( String::NewLine() ), Elements, line ) 
 | 
    { 
 | 
      expectedStock := line.Tokenize( ',' ); 
 | 
      p             := expectedStock.Element( 0 ).TrimBoth(); 
 | 
      sp            := expectedStock.Element( 1 ).TrimBoth(); 
 | 
      start         := this.ConvertToDateTime( expectedStock.Element( 2 ), macroplan ); 
 | 
      periodSpec    := expectedStock.Element( 3 ).TrimBoth(); 
 | 
      expectedInvEnd      := this.ConvertToReal( expectedStock.Element( 4 ) ); 
 | 
      expectedStockInDays := this.ConvertToReal( expectedStock.Element( 5 ) ); 
 | 
       
 | 
      // Find corresponded pispip 
 | 
      pisp := macroplan.GetProductInStockingPoint( p, sp ); 
 | 
       
 | 
      pispip := select( pisp, ProductInStockingPointInPeriod, pispip, 
 | 
                        pispip.Start() = start and not isnull( pispip.PeriodSpecificationInPISP() ), // exclude system periods 
 | 
                        pispip.PeriodSpecificationInPISP().PeriodSpecification_MP().ID() = periodSpec ); 
 | 
       
 | 
      // Check inventory level end is propagated 
 | 
      this.Run().AssertEqual( expectedInvEnd, pispip.InventoryLevelEnd(), this.GetErrorMessage( pispip, "inventory level end does not match." ) ); 
 | 
      // Check expected stock level in days = actual result 
 | 
      this.Run().AssertEqual( expectedStockInDays, pispip.StockLevelInDays(), this.GetErrorMessage( pispip, "stock level in days does not match." ) ); 
 | 
    } 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |