yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
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
Quintiq file version 2.0
#parent: #root
Method VerifyIsOverloaded (
  LaneLeg laneleg,
  Unit fleet,
  Period_MP period
)
{
  Description: 'Check the overload constraint is violated'
  TextBody:
  [*
    // Verify capacity overload sanity check
    unitperiod := select( fleet, UnitPeriod, up, up.Period_MP() = period );
    if ( this.Run().AssertNotIsNull( unitperiod, 'Verify unit failed, unit period ' + [String]period.Start() + ' for ' + fleet.Name() + ' not found' ) )
    {
      hassanitycheckwarning := unitperiod.SanityCheckGroupUnitCapacity( relsize ) > 0;
      this.Run().AssertTrue( hassanitycheckwarning, 'Verify unit capacity sanity check warning failed, expect the overload warning on ' + [String]period.Start() );
    }
                                
    // Verify capacity overload constraint
    uptc := select( laneleg, Trip.ArrivalUnitPeriod.astype( UnitPeriodTransportQuantity ), arrivalperiod, true );
    
    if ( this.Run().AssertNotIsNull( uptc, 'Verify unit period transport quantity failed as no unit period transport quantity found') )
    {
      this.Run().AssertFalse( uptc.HasNoOverload(), 
                              'Verify unit period transport quantity failed, expect HasNoOverload constraint is violated but the value is ' + [String]uptc.HasNoOverload() );
    
      this.Run().AssertFalse( uptc.HasNoSecondaryOverload(),
                              'Verify unit period transport quantity failed, expect HasNoSecondaryOverload constraint is violated but the value is ' + [String]uptc.HasNoSecondaryOverload() );
    }
  *]
  InterfaceProperties { Accessibility: 'Module' }
}