admin
2025-01-22 7e31442f0e9b07764e9c6a9680d3d4aeba5fe1de
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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' }
}