chenqinghong
2024-05-07 3ec06a830367465068963156dcc1d8e522571c13
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
Quintiq file version 2.0
#parent: #root
Method VerifyMPData (
  MacroPlan macroplan,
  MPSync mpsync
)
{
  TextBody:
  [*
    expectedactualpisps := mpsync.IOActualProductInStockingPointInPeriod( relsize );
    expectedactualunitperiods := mpsync.IOActualUnitPeriod( relsize );
    expectedbaseconversionfactors := mpsync.IOBaseConversionFactor( relsize );
    expectedcampaigns := mpsync.IOCampaign_MP( relsize );
    expectedcampaigntypes := mpsync.IOCampaignType_MP( relsize );
    expectedcurrencies := mpsync.IOCurrency_MP( relsize );
    expectedcurrencyrates := mpsync.IOCurrencyRate_MP( relsize );
    expecteddisaggregatefactors := mpsync.IODisaggregationFactor( relsize );
    expectedextsupplies := mpsync.IOInventorySupply( relsize );
    expectedfeedbackperiodtaskops := mpsync.IOFeedbackPeriodTaskOperation( relsize );
    expectedfeedbackprodintrips := mpsync.IOFeedbackProductInTrip( relsize );
    expectedforecasts := counter( mpsync, IOSalesDemandBase.astype( IOForecast ), f, true, true );
    expectedfulfillmentrestrics := mpsync.IOFulfillmentRestriction( relsize );
    expectedfulfillmenttargets := mpsync.IOFulfillmentTarget( relsize );
    expectedgp := mpsync.IOGlobalParameter( relsize );
    expectedgroups := mpsync.IOGroup( relsize );
    expectedingredients := mpsync.IOIngredient( relsize );
    expectedinvspec := mpsync.IOInventorySpecification( relsize );
    expectedinvsupplycost := mpsync.IOInventorySupplyCost( relsize );
    expectedinvvalueandcosts := mpsync.IOInventoryValueAndCost( relsize );
    expectedlanecosts := mpsync.IOLaneCost( relsize );
    expectedlanelegcosts := mpsync.IOLaneLegCost( relsize );
    expectedlanelegs := mpsync.IOLaneLeg( relsize );
    expectedlanes := mpsync.IOLane( relsize );
    expectedopboms := mpsync.IOOperationBOM( relsize );
    expectedopcosts := mpsync.IOOperationCost( relsize );
    expectedopincampaigntypes := mpsync.IOOperationInCampaignType( relsize );
    expectedopinputgroups := mpsync.IOOperationInputGroup( relsize );
    expectedopinputsets := mpsync.IOOperationInputSet( relsize );
    expectedopintransitiontypes := mpsync.IOOperationInTransitionType( relsize );
    expectedoplinks := mpsync.IOOperationLink( relsize );
    expectedops := mpsync.IOOperation( relsize );
    expectedperiodparams := mpsync.IOPeriodParameter_MP( relsize );
    expectedperiodspecs := mpsync.IOPeriodSpecification_MP( relsize );
    expectedpispspecs := mpsync.IOPISPSpecification( relsize );
    expectedpostponementsalesdemandcosts := mpsync.IOPostponedSalesDemandCost( relsize );
    expectedpostponementspecs := mpsync.IOPostponementSpecification( relsize );
    expectedpriorities := mpsync.IOPriority( relsize );
    expectedprodudctinlanes := mpsync.IOProductInLane( relsize );
    expectedproductlevels := mpsync.IOProductLevel_MP( relsize );
    expectedproducts := mpsync.IOProduct_MP( relsize );
    expectedproductvalueandcosts := mpsync.IOProductValueAndCost( relsize );
    expectedrecipeingredients := mpsync.IORecipeIngredient( relsize );
    expectedrecipts := mpsync.IORecipe( relsize );
    expectedreciptwitheffectivedates := mpsync.IORecipeWithEffectiveDate( relsize );
    expectedroutingconfigviews := mpsync.IORoutingConfiguratorView( relsize );
    expectedroutings := mpsync.IORouting( relsize );
    expectedroutingsteps := mpsync.IORoutingStep( relsize );
    expectedsafetystocks := mpsync.IOSafetyStock( relsize );
    expectedsaleslevels := mpsync.IOSalesLevel_MP( relsize );
    expectedsalessegments := mpsync.IOSalesSegment_MP( relsize );
    expectedservicelevels := mpsync.IOServiceLevel( relsize );
    expectedshiftdays := mpsync.IOShiftDay( relsize );
    expectedshiftpatterns := mpsync.IOShiftPattern( relsize );
    expectedspcapacities := mpsync.IOStockingPointCapacity( relsize );
    expectedspcosts := mpsync.IOStockingPointCost( relsize );
    expectedsps := mpsync.IOStockingPoint_MP( relsize );
    expectedsupplyspecs := mpsync.IOSupplySpecification( relsize );
    expectedtransitiontypes := mpsync.IOTransitionType_MP( relsize );
    expectedtransportavailabilities := mpsync.IOTransportAvailability( relsize );
    expectedtransportcapacities := mpsync.IOTransportCapacity( relsize );
    expectedunitavailabilities := mpsync.IOUnitAvailability( relsize );
    expectedunitcalendarelements := mpsync.IOUnitCalendarElement( relsize );
    expectedunitcapacities := mpsync.IOUnitCapacity( relsize );
    expectedunitcosts := mpsync.IOUnitCost( relsize );
    expecteduoms := mpsync.IOUnitOfMeasure_MP( relsize );
    expectedunits := mpsync.IOUnit( relsize );
    
    actualpisps := counter( macroplan, Actual.astype( ActualProductInStockingPointInPeriod ), actualpisp, true );
    actualunitperiods := counter( macroplan, Actual.astype( ActualUnitPeriod ), actualpisp, true );
    baseconversionfactors :=  counter( macroplan, UnitOfMeasure_MP.BaseConversionFactor, bcf, true );
    campaigns := counter( macroplan, Unit.Campaign_MP, campaign, true );
    campaigntypes := counter( macroplan, Unit.CampaignType_MP, campaigntype, true );
    currencies := macroplan.Currency_MP( relsize );
    currencyrates := counter( macroplan, Currency_MP.CurrencyRate_MP, cr, true );
    disaggregatefactors := counter( macroplan, Product_MP.DisaggregationFactor, df, true );
    extsupplies := counter( macroplan, Product_MP.InventorySupply, invsupply, true );
    feedbackperiodtaskops := counter( macroplan, Feedback.astype( FeedbackPeriodTaskOperation ), fpto, true );
    feedbackprodintrips := counter( macroplan, Feedback.astype( FeedbackProductInTrip ), fpto, true );
    forecasts := counter( macroplan, SalesDemand.astype( Forecast ), forecast, true );
    fulfillmentrestrics := macroplan.FulfillmentRestriction( relsize );
    fulfillmenttargets := macroplan.FulfillmentTarget( relsize );
    gp := macroplan.GlobalParameters_MP( relsize );
    groups := macroplan.Group( relsize );
    ingredients := macroplan.Ingredient( relsize );
    invspec := counter( macroplan, Product_MP.InventorySpecification, invspec, true );
    invsupplycost := counter( macroplan, Product_MP.InventorySupply.InventorySupplyCost, invsupplycost, true );
    invvalueandcosts := counter( macroplan, Product_MP.InventoryValueAndCost, invvalueandcost, true );
    lanecosts := counter( macroplan, Unit.Lane.LaneCost, lanecost, true );
    lanelegcosts := counter( macroplan, Unit.Lane.LaneLeg.LaneLegCost, lanelegcost, true );
    lanelegs := counter( macroplan, Unit.Lane.LaneLeg, laneleg, true );
    lanes := counter( macroplan, Unit.Lane, lane, true );
    opboms := counter( macroplan, Unit.Operation.OperationBOM, opbom, true );
    opcosts := counter( macroplan, Unit.Operation.OperationCost, opcost, true );
    opincampaigntypes := counter( macroplan, Unit.Operation.OperationInCampaignType, opinct, true );
    opinputgroups := counter( macroplan, Unit.Operation.OperationInputGroup, opinputgroup, true );
    opinputsets := counter( macroplan, Unit.Operation.OperationInputSet, opinputset, true );
    opintransitiontypes := counter( macroplan, Unit.Operation.OperationInTransitionType, optt, true );
    oplinks := counter( macroplan, Unit.Operation.SourceOperationLink, oplink, true );
    ops := counter( macroplan, Unit.Operation, op, true );
    periodparams := macroplan.PeriodParameter_MP( relsize );
    periodspecs := counter( macroplan, PeriodSpecification_MP, pp, not pp.ID() = "Planning periods" );
    pispspecs := macroplan.PISPSpecification( relsize );
    postponementsalesdemandcosts := counter( macroplan, Product_MP.PostponedSalesDemandCost, postponementsdc, true );
    postponementspecs := counter( macroplan, SalesSegment_MP.PostponementSpecification, ps, true );
    priorities := macroplan.Priority( relsize );
    produdctinlanes := counter( macroplan, Product_MP.ProductInLane, prodinlane, true );
    productlevels := counter( macroplan, Product_MP.ProductLevel_MP, pl, true );
    products := counter( macroplan, Product_MP, product, true );
    productvalueandcosts := counter( macroplan, Product_MP.ProductValueAndCost, productvalueandcost, true );
    recipeingredients := counter( macroplan, Recipe.RecipeIngredient, ri, true );
    recipts := macroplan.Recipe( relsize );
    reciptwitheffectivedates := counter( macroplan, Recipe.RecipeWithEffectiveDate, rwed, true );
    routingconfigviews := macroplan.RoutingConfiguratorView( relsize );
    routings := macroplan.Routing( relsize );
    routingsteps := counter( macroplan, Routing.RoutingStep, rs, true );
    safetystocks := counter( macroplan, Product_MP.SafetyStock, ss, true );
    saleslevels := macroplan.SalesLevel_MP( relsize );
    salessegments := macroplan.SalesSegment_MP( relsize );
    servicelevels := macroplan.ServiceLevel( relsize );
    shiftdays := counter( macroplan, ShiftPattern.ShiftDay, sd, true );
    shiftpatterns := macroplan.ShiftPattern( relsize );
    spcapacities := counter( macroplan, StockingPoint_MP.StockingPointCapacity, spc, true );
    spcosts := counter( macroplan, StockingPoint_MP.StockingPointCost, spc, true );
    sps := macroplan.StockingPoint_MP( relsize );
    supplyspecs := counter( macroplan, Unit.SupplySpecification, ss, true );
    transitiontypes := counter( macroplan, Unit.TransitionType_MP, tt, true );
    transportavailabilities := counter( macroplan, Unit.TransportAvailability, ta, true );
    transportcapacities := counter( macroplan, Unit.TransportCapacity, tc, true );
    unitavailabilities := counter( macroplan, Unit.UnitAvailability, ua, true );
    unitcalendarelements := counter( macroplan, Unit.UnitCalendarElement, uce, true );
    unitcapacities := counter( macroplan, Unit.UnitCapacity, uc, true );
    unitcosts := counter( macroplan, Unit.UnitCost, uc, true );
    uoms := macroplan.UnitOfMeasure_MP( relsize );
    units := macroplan.Unit( relsize );
    
    this.Run().AssertEqual( expectedactualpisps ,actualpisps , 'The number of actua lpisps in MacroPlan ' + [String]actualpisps  + ' is not matching MPSync number of actual pisps ' + [String]expectedactualpisps + '.' );
    this.Run().AssertEqual( expectedactualunitperiods ,actualunitperiods , 'The number of actual unit periods in MacroPlan ' + [String]actualunitperiods  + ' is not matching MPSync number of actual unit periods ' + [String]expectedactualunitperiods + '.' );
    this.Run().AssertEqual( expectedbaseconversionfactors ,baseconversionfactors , 'The number of base conversion factors in MacroPlan ' + [String]baseconversionfactors  + ' is not matching MPSync number of base conversionf actors ' + [String]expectedbaseconversionfactors + '.' );
    this.Run().AssertEqual( expectedcampaigns ,campaigns , 'The number of campaigns in MacroPlan ' + [String]campaigns  + ' is not matching MPSync number of campaigns ' + [String]expectedcampaigns + '.' );
    this.Run().AssertEqual( expectedcampaigntypes ,campaigntypes , 'The number of campaign types in MacroPlan ' + [String]campaigntypes  + ' is not matching MPSync number of campaign types ' + [String]expectedcampaigntypes + '.' );
    this.Run().AssertEqual( expectedcurrencies ,currencies , 'The number of currencies in MacroPlan ' + [String]currencies  + ' is not matching MPSync number of currencies ' + [String]expectedcurrencies + '.' );
    this.Run().AssertEqual( expectedcurrencyrates ,currencyrates , 'The number of currency rates in MacroPlan ' + [String]currencyrates  + ' is not matching MPSync number of currency rates ' + [String]expectedcurrencyrates + '.' );
    this.Run().AssertEqual( expecteddisaggregatefactors ,disaggregatefactors , 'The number of disaggregation factors in MacroPlan ' + [String]disaggregatefactors  + ' is not matching MPSync number of disaggregation factors ' + [String]expecteddisaggregatefactors + '.' );
    this.Run().AssertEqual( expectedextsupplies ,extsupplies , 'The number of invsupplies in MacroPlan ' + [String]extsupplies  + ' is not matching MPSync number of invsupplies ' + [String]expectedextsupplies + '.' );
    this.Run().AssertEqual( expectedfeedbackperiodtaskops ,feedbackperiodtaskops , 'The number of feedbackperiodtaskops in MacroPlan ' + [String]feedbackperiodtaskops  + ' is not matching MPSync number of feedbackperiodtaskops ' + [String]expectedfeedbackperiodtaskops + '.' );
    this.Run().AssertEqual( expectedfeedbackprodintrips ,feedbackprodintrips , 'The number of feedbackprodintrips in MacroPlan ' + [String]feedbackprodintrips  + ' is not matching MPSync number of feedbackprodintrips ' + [String]expectedfeedbackprodintrips + '.' );
    this.Run().AssertEqual( expectedforecasts ,forecasts , 'The number of forecasts in MacroPlan ' + [String]forecasts  + ' is not matching MPSync number of forecasts ' + [String]expectedforecasts + '.' );
    this.Run().AssertEqual( expectedfulfillmentrestrics ,fulfillmentrestrics , 'The number of fulfillmentrestrics in MacroPlan ' + [String]fulfillmentrestrics  + ' is not matching MPSync number of fulfillmentrestrics ' + [String]expectedfulfillmentrestrics + '.' );
    this.Run().AssertEqual( expectedfulfillmenttargets ,fulfillmenttargets , 'The number of fulfillmenttargets in MacroPlan ' + [String]fulfillmenttargets  + ' is not matching MPSync number of fulfillmenttargets ' + [String]expectedfulfillmenttargets + '.' );
    this.Run().AssertEqual( expectedgp ,gp , 'The number of gp in MacroPlan ' + [String]gp  + ' is not matching MPSync number of gp ' + [String]expectedgp + '.' );
    this.Run().AssertEqual( expectedgroups ,groups , 'The number of groups in MacroPlan ' + [String]groups  + ' is not matching MPSync number of groups ' + [String]expectedgroups + '.' );
    this.Run().AssertEqual( expectedingredients ,ingredients , 'The number of ingredients in MacroPlan ' + [String]ingredients  + ' is not matching MPSync number of ingredients ' + [String]expectedingredients + '.' );
    this.Run().AssertEqual( expectedinvspec ,invspec , 'The number of invspec in MacroPlan ' + [String]invspec  + ' is not matching MPSync number of invspec ' + [String]expectedinvspec + '.' );
    this.Run().AssertEqual( expectedinvsupplycost ,invsupplycost , 'The number of invsupplycost in MacroPlan ' + [String]invsupplycost  + ' is not matching MPSync number of invsupplycost ' + [String]expectedinvsupplycost + '.' );
    this.Run().AssertEqual( expectedinvvalueandcosts ,invvalueandcosts , 'The number of invvalueandcosts in MacroPlan ' + [String]invvalueandcosts  + ' is not matching MPSync number of invvalueandcosts ' + [String]expectedinvvalueandcosts + '.' );
    this.Run().AssertEqual( expectedlanecosts ,lanecosts , 'The number of lanecosts in MacroPlan ' + [String]lanecosts  + ' is not matching MPSync number of lanecosts ' + [String]expectedlanecosts + '.' );
    this.Run().AssertEqual( expectedlanelegcosts ,lanelegcosts , 'The number of lanelegcosts in MacroPlan ' + [String]lanelegcosts  + ' is not matching MPSync number of lanelegcosts ' + [String]expectedlanelegcosts + '.' );
    this.Run().AssertEqual( expectedlanelegs ,lanelegs , 'The number of lanelegs in MacroPlan ' + [String]lanelegs  + ' is not matching MPSync number of lanelegs ' + [String]expectedlanelegs + '.' );
    this.Run().AssertEqual( expectedlanes ,lanes , 'The number of lanes in MacroPlan ' + [String]lanes  + ' is not matching MPSync number of lanes ' + [String]expectedlanes + '.' );
    this.Run().AssertEqual( expectedopboms ,opboms , 'The number of opboms in MacroPlan ' + [String]opboms  + ' is not matching MPSync number of opboms ' + [String]expectedopboms + '.' );
    this.Run().AssertEqual( expectedopcosts ,opcosts , 'The number of opcosts in MacroPlan ' + [String]opcosts  + ' is not matching MPSync number of opcosts ' + [String]expectedopcosts + '.' );
    this.Run().AssertEqual( expectedopincampaigntypes ,opincampaigntypes , 'The number of opincampaigntypes in MacroPlan ' + [String]opincampaigntypes  + ' is not matching MPSync number of opincampaigntypes ' + [String]expectedopincampaigntypes + '.' );
    this.Run().AssertEqual( expectedopinputgroups ,opinputgroups , 'The number of opinputgroups in MacroPlan ' + [String]opinputgroups  + ' is not matching MPSync number of opinputgroups ' + [String]expectedopinputgroups + '.' );
    this.Run().AssertEqual( expectedopinputsets ,opinputsets , 'The number of opinputsets in MacroPlan ' + [String]opinputsets  + ' is not matching MPSync number of opinputsets ' + [String]expectedopinputsets + '.' );
    this.Run().AssertEqual( expectedopintransitiontypes ,opintransitiontypes , 'The number of opintransitiontypes in MacroPlan ' + [String]opintransitiontypes  + ' is not matching MPSync number of opintransitiontypes ' + [String]expectedopintransitiontypes + '.' );
    this.Run().AssertEqual( expectedoplinks ,oplinks , 'The number of oplinks in MacroPlan ' + [String]oplinks  + ' is not matching MPSync number of oplinks ' + [String]expectedoplinks + '.' );
    this.Run().AssertEqual( expectedops ,ops , 'The number of ops in MacroPlan ' + [String]ops  + ' is not matching MPSync number of ops ' + [String]expectedops + '.' );
    this.Run().AssertEqual( expectedperiodparams ,periodparams , 'The number of periodparams in MacroPlan ' + [String]periodparams  + ' is not matching MPSync number of periodparams ' + [String]expectedperiodparams + '.' );
    this.Run().AssertEqual( expectedperiodspecs ,periodspecs , 'The number of periodspecs in MacroPlan ' + [String]periodspecs  + ' is not matching MPSync number of periodspecs ' + [String]expectedperiodspecs + '.' );
    this.Run().AssertEqual( expectedpispspecs ,pispspecs , 'The number of pispspecs in MacroPlan ' + [String]pispspecs  + ' is not matching MPSync number of pispspecs ' + [String]expectedpispspecs + '.' );
    this.Run().AssertEqual( expectedpostponementsalesdemandcosts ,postponementsalesdemandcosts , 'The number of postponementsalesdemandcosts in MacroPlan ' + [String]postponementsalesdemandcosts  + ' is not matching MPSync number of postponementsalesdemandcosts ' + [String]expectedpostponementsalesdemandcosts + '.' );
    this.Run().AssertEqual( expectedpostponementspecs ,postponementspecs , 'The number of postponementspecs in MacroPlan ' + [String]postponementspecs  + ' is not matching MPSync number of postponementspecs ' + [String]expectedpostponementspecs + '.' );
    this.Run().AssertEqual( expectedpriorities ,priorities , 'The number of priorities in MacroPlan ' + [String]priorities  + ' is not matching MPSync number of priorities ' + [String]expectedpriorities + '.' );
    this.Run().AssertEqual( expectedprodudctinlanes ,produdctinlanes , 'The number of produdctinlanes in MacroPlan ' + [String]produdctinlanes  + ' is not matching MPSync number of produdctinlanes ' + [String]expectedprodudctinlanes + '.' );
    this.Run().AssertEqual( expectedproductlevels ,productlevels , 'The number of productlevels in MacroPlan ' + [String]productlevels  + ' is not matching MPSync number of productlevels ' + [String]expectedproductlevels + '.' );
    this.Run().AssertEqual( expectedproducts ,products , 'The number of products in MacroPlan ' + [String]products  + ' is not matching MPSync number of products ' + [String]expectedproducts + '.' );
    this.Run().AssertEqual( expectedproductvalueandcosts ,productvalueandcosts , 'The number of productvalueandcosts in MacroPlan ' + [String]productvalueandcosts  + ' is not matching MPSync number of productvalueandcosts ' + [String]expectedproductvalueandcosts + '.' );
    this.Run().AssertEqual( expectedrecipeingredients ,recipeingredients , 'The number of recipeingredients in MacroPlan ' + [String]recipeingredients  + ' is not matching MPSync number of recipeingredients ' + [String]expectedrecipeingredients + '.' );
    this.Run().AssertEqual( expectedrecipts ,recipts , 'The number of recipts in MacroPlan ' + [String]recipts  + ' is not matching MPSync number of recipts ' + [String]expectedrecipts + '.' );
    this.Run().AssertEqual( expectedreciptwitheffectivedates ,reciptwitheffectivedates , 'The number of reciptwitheffectivedates in MacroPlan ' + [String]reciptwitheffectivedates  + ' is not matching MPSync number of reciptwitheffectivedates ' + [String]expectedreciptwitheffectivedates + '.' );
    this.Run().AssertEqual( expectedroutingconfigviews ,routingconfigviews , 'The number of routingconfigviews in MacroPlan ' + [String]routingconfigviews  + ' is not matching MPSync number of routingconfigviews ' + [String]expectedroutingconfigviews + '.' );
    this.Run().AssertEqual( expectedroutings ,routings , 'The number of routings in MacroPlan ' + [String]routings  + ' is not matching MPSync number of routings ' + [String]expectedroutings + '.' );
    this.Run().AssertEqual( expectedroutingsteps ,routingsteps , 'The number of routingsteps in MacroPlan ' + [String]routingsteps  + ' is not matching MPSync number of routingsteps ' + [String]expectedroutingsteps + '.' );
    this.Run().AssertEqual( expectedsafetystocks ,safetystocks , 'The number of safetystocks in MacroPlan ' + [String]safetystocks  + ' is not matching MPSync number of safetystocks ' + [String]expectedsafetystocks + '.' );
    this.Run().AssertEqual( expectedsaleslevels ,saleslevels , 'The number of saleslevels in MacroPlan ' + [String]saleslevels  + ' is not matching MPSync number of saleslevels ' + [String]expectedsaleslevels + '.' );
    this.Run().AssertEqual( expectedsalessegments ,salessegments , 'The number of salessegments in MacroPlan ' + [String]salessegments  + ' is not matching MPSync number of salessegments ' + [String]expectedsalessegments + '.' );
    this.Run().AssertEqual( expectedservicelevels ,servicelevels , 'The number of servicelevels in MacroPlan ' + [String]servicelevels  + ' is not matching MPSync number of servicelevels ' + [String]expectedservicelevels + '.' );
    this.Run().AssertEqual( expectedshiftdays ,shiftdays , 'The number of shiftdays in MacroPlan ' + [String]shiftdays  + ' is not matching MPSync number of shiftdays ' + [String]expectedshiftdays + '.' );
    this.Run().AssertEqual( expectedshiftpatterns ,shiftpatterns , 'The number of shiftpatterns in MacroPlan ' + [String]shiftpatterns  + ' is not matching MPSync number of shiftpatterns ' + [String]expectedshiftpatterns + '.' );
    this.Run().AssertEqual( expectedspcapacities ,spcapacities , 'The number of spcapacities in MacroPlan ' + [String]spcapacities  + ' is not matching MPSync number of spcapacities ' + [String]expectedspcapacities + '.' );
    this.Run().AssertEqual( expectedspcosts ,spcosts , 'The number of spcosts in MacroPlan ' + [String]spcosts  + ' is not matching MPSync number of spcosts ' + [String]expectedspcosts + '.' );
    this.Run().AssertEqual( expectedsps ,sps , 'The number of sps in MacroPlan ' + [String]sps  + ' is not matching MPSync number of sps ' + [String]expectedsps + '.' );
    this.Run().AssertEqual( expectedsupplyspecs ,supplyspecs , 'The number of supplyspecs in MacroPlan ' + [String]supplyspecs  + ' is not matching MPSync number of supplyspecs ' + [String]expectedsupplyspecs + '.' );
    this.Run().AssertEqual( expectedtransitiontypes ,transitiontypes , 'The number of transitiontypes in MacroPlan ' + [String]transitiontypes  + ' is not matching MPSync number of transitiontypes ' + [String]expectedtransitiontypes + '.' );
    this.Run().AssertEqual( expectedtransportavailabilities ,transportavailabilities , 'The number of transportavailabilities in MacroPlan ' + [String]transportavailabilities  + ' is not matching MPSync number of transportavailabilities ' + [String]expectedtransportavailabilities + '.' );
    this.Run().AssertEqual( expectedtransportcapacities ,transportcapacities , 'The number of transportcapacities in MacroPlan ' + [String]transportcapacities  + ' is not matching MPSync number of transportcapacities ' + [String]expectedtransportcapacities + '.' );
    this.Run().AssertEqual( expectedunitavailabilities ,unitavailabilities , 'The number of unitavailabilities in MacroPlan ' + [String]unitavailabilities  + ' is not matching MPSync number of unitavailabilities ' + [String]expectedunitavailabilities + '.' );
    this.Run().AssertEqual( expectedunitcalendarelements ,unitcalendarelements , 'The number of unitcalendarelements in MacroPlan ' + [String]unitcalendarelements  + ' is not matching MPSync number of unitcalendarelements ' + [String]expectedunitcalendarelements + '.' );
    this.Run().AssertEqual( expectedunitcapacities ,unitcapacities , 'The number of unitcapacities in MacroPlan ' + [String]unitcapacities  + ' is not matching MPSync number of unitcapacities ' + [String]expectedunitcapacities + '.' );
    this.Run().AssertEqual( expectedunitcosts ,unitcosts , 'The number of unitcosts in MacroPlan ' + [String]unitcosts  + ' is not matching MPSync number of unitcosts ' + [String]expectedunitcosts + '.' );
    this.Run().AssertEqual( expecteduoms ,uoms , 'The number of uoms in MacroPlan ' + [String]uoms  + ' is not matching MPSync number of uoms ' + [String]expecteduoms + '.' );
    this.Run().AssertEqual( expectedunits ,units , 'The number of units in MacroPlan ' + [String]units  + ' is not matching MPSync number of units ' + [String]expectedunits + '.' );
  *]
  InterfaceProperties { Accessibility: 'Module' }
}