1using LotSizingDataModel.Core.DecisionModel.Scheduling;
20 throw new ArgumentNullException(nameof(extensionAnalyzer));
27 ArgumentNullException.ThrowIfNull(descriptor);
28 ArgumentNullException.ThrowIfNull(definition);
37 new[] {
"MacroMicroSchedulingAnalyzer:UnsupportedClass" });
40 var incomplete =
new List<string>();
41 var contradictions =
new List<string>();
45 contradictions.Add(
"Scheduling:Integrated");
48 contradictions.Add(
"Scheduling:MacroMicro");
51 incomplete.Add(
"Scheduling:MicroPeriodGrid");
54 incomplete.Add(
"Scheduling:MicroPeriodLengthMode");
56 contradictions.Add(
"Scheduling:VariableMicroPeriodLength");
59 incomplete.Add(
"Scheduling:MicroPeriodAssignmentMode");
61 contradictions.Add(
"Scheduling:SingleItemPerMicroPeriod");
64 incomplete.Add(
"Structure:ItemCount");
66 contradictions.Add(
"Structure:MultiItem");
69 contradictions.Add(
"Structure:SingleLevel");
72 incomplete.Add(
"Scheduling:ResourceCount");
74 contradictions.Add(
"Scheduling:SingleResource");
77 contradictions.Add(
"Demand:Present");
80 contradictions.Add(
"Demand:Deterministic");
83 contradictions.Add(
"Production:Present");
86 contradictions.Add(
"Capacity:Production");
89 contradictions.Add(
"Capacity:Shared");
91 if (contradictions.Count > 0)
96 failedRequirements: contradictions);
99 if (incomplete.Count > 0)
104 failedRequirements: incomplete);
108 new HashSet<LotSizingProblemClassExtensionKind>
117 .Where(extension => !coreExtensions.Contains(extension))
122 extensions.Length == 0
bool HasSharedProductionCapacity
bool HasProductionCapacity
Typed structured description of the factual lot-sizing problem characteristics currently represented ...
CapacityDescriptor Capacity
StructureDescriptor Structure
SchedulingDescriptor Scheduling
ProductionDescriptor Production
Factual integrated lot-sizing/scheduling characteristics.
int SchedulingResourceCount
bool HasVariableLengthMicroPeriods
bool HasSingleSchedulingResource
bool HasSingleItemPerMicroPeriod
MicroPeriodLengthMode MicroPeriodLengthMode
MicroPeriodAssignmentMode MicroPeriodAssignmentMode
bool HasMicroPeriodStructure
bool HasExplicitMicroPeriodGrid
bool HasIntegratedScheduling
One canonical scientific problem-class definition.
CanonicalLotSizingProblemClassId Id
Identifies modeled extensions outside the six currently executable canonical lot-sizing core signatur...
Complete canonical problem-class membership assessment.
MacroMicroSchedulingProblemClassAnalyzer(LotSizingProblemClassExtensionAnalyzer extensionAnalyzer)
MacroMicroSchedulingProblemClassAnalyzer()
LotSizingProblemClassMatchResult Assess(LotSizingProblemDescriptor descriptor, LotSizingProblemClassDefinition definition)
LotSizingProblemClassMatchKind
Relationship between an instance descriptor and one canonical problem class.
LotSizingProblemClassExtensionKind
Modeled characteristics outside the canonical core signatures.
CanonicalLotSizingProblemClassId
Stable canonical LotSizingDataModel identifiers for problem classes.