| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod Strategy (POAAlgorithm poa, Duration duration, Boolean should_error,  | 
|   String algorithm_store_key) as POAAlgorithm | 
| { | 
|   Description: 'The mock strategy used to test the POA suboptimizer' | 
|   TextBody: | 
|   [* | 
|     LibOpt_SuboptimizerPOA::StrategyStart( poa ); | 
|      | 
|     // Store a counter of the amount of times the strategy is called | 
|     algorithm := AlgorithmStore::Retrieve( algorithm_store_key ); | 
|      | 
|     count := guard( algorithm.RetrieveReal( LibOpt_MyPOASuboptimizer::GetExecuteStrategyCounterName() ), 0 ); | 
|     algorithm.StoreReal( LibOpt_MyPOASuboptimizer::GetExecuteStrategyCounterName(), count + 1 ); | 
|      | 
|     AlgorithmStore::Store( algorithm_store_key, & algorithm ); | 
|      | 
|      | 
|     OS::Sleep( ceil( duration.MinutesAsReal() * 60 * 1000 ) ); | 
|     strategy := poa.Strategy(); | 
|      | 
|     strategy.NewActions( 'actions' ); | 
|      | 
|     if( should_error ) | 
|     { | 
|       error( 'Expected error at strategy' ); | 
|     } | 
|     LibOpt_SuboptimizerPOA::StrategyFinish( poa ); | 
|      | 
|     return poa; | 
|   *] | 
|   InterfaceProperties { Accessibility: 'Module' } | 
| } |