-
Notifications
You must be signed in to change notification settings - Fork 40
Open
Description
The vehicle variability example has incorrect constraint expression in VehicleVariabilityModel::'150% Model'::PartsTree::vehicleFamily where engine is being tested against a part usage rather than a variant reference.
package MVCE {
private import ScalarValues::*;
part def Vehicle;
part def Engine;
part vehicle : Vehicle {
part engine : Engine[1];
}
part engine : Engine;
part '4cylEngine' :> engine;
part '6cylEngine' :> engine;
variation part def EngineChoices :> Engine {
variant '4cylEngine';
variant '6cylEngine';
}
abstract part lowcostVehicleFamily :> vehicle {
part :>> engine : EngineChoices[1];
assert constraint engineConstraint { engine == '4cylEngine' }
}
part vehicle4Cyl :> lowcostVehicleFamily {
part :>> engine = engine::'4cylEngine';
}
}
%eval MVCE::vehicle4Cyl.engineConstraint()
LiteralBoolean false (3aa994ba-2a68-4555-8e08-7b48d0133290)
package MVCE_Corrected {
private import ScalarValues::*;
part def Vehicle;
part def Engine;
part vehicle : Vehicle {
part engine : Engine[1];
}
part engine : Engine;
part '4cylEngine' :> engine;
part '6cylEngine' :> engine;
variation part def EngineChoices :> Engine {
variant '4cylEngine';
variant '6cylEngine';
}
abstract part lowcostVehicleFamily :> vehicle {
part :>> engine : EngineChoices[1];
assert constraint engineConstraint { engine == engine::'4cylEngine' }
}
part vehicle4Cyl :> lowcostVehicleFamily {
part :>> engine = engine::'4cylEngine';
}
}
%eval MVCE_Corrected::vehicle4Cyl.engineConstraint()
LiteralBoolean true (03008dbc-16f2-4a6d-90a7-7a2213f22044)
Metadata
Metadata
Assignees
Labels
No labels