haorenhui
2023-10-30 6d6cc10d9e8e242661da7fd655dec155a09d676c
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
35
36
37
38
Quintiq file version 2.0
#parent: #root
Method VerifyOptimizerPuzzleCopy (
  Scenario scenario,
  String puzzlename,
  String description,
  Real timeout,
  Real elapsed
)
{
  TextBody:
  [*
    
    opt := DatasetFindOptions::Construct( scenario.DatasetName() );
    mp := MDSMacroPlan::Find( opt ); 
    
    mp->( macroplan )
    {
        mypuzzle := select( macroplan, OptimizerPuzzle, op, op.Name() = puzzlename );
    
        if( not isnull( mypuzzle ) )
        {
          this.Run().AssertEqual( description, mypuzzle.Description(), "Description of optimizer puzzle not matched." );  
        }
       else
       {
         if( elapsed < timeout )
         {
            waitFor := 0.5;
            wait := stream[Void]::Wait( Duration::Seconds( waitFor ) );
            this->After( wait )->VerifyOptimizerPuzzleCopy( scenario, puzzlename, description, timeout, elapsed + waitFor);
         }
          
       }
    }
  *]
  InterfaceProperties { Accessibility: 'Module' }
}