package nl.fontys.sofa.limo.simulation.result; import gnu.trove.map.TObjectDoubleMap; import java.util.List; import nl.fontys.sofa.limo.domain.component.SupplyChain; import nl.fontys.sofa.limo.domain.component.event.Event; /** * A TestCaseResult is the result of simulating a single supply chain exactly * one time. * * @author Dominik Kaisers {@literal <d.kaisers@student.fontys.nl>} */ public class TestCaseResult { private final SupplyChain supplyChain; // TOTALS private final double totalCosts; private final double totalLeadTimes; private final double totalDelays; private final double totalExtraCosts; private final double totalCO2; // ORDERED BY CATEGORY private final TObjectDoubleMap<String> costsByCategory; private final TObjectDoubleMap<String> leadTimesByCategory; private final TObjectDoubleMap<String> delaysByCategory; private final TObjectDoubleMap<String> extraCostsByCategory; private final TObjectDoubleMap<String> co2ByCategory; // ORDERED BY NODE private final TObjectDoubleMap<String> costsByNode; private final TObjectDoubleMap<String> leadTimesByNode; private final TObjectDoubleMap<String> delaysByNode; private final TObjectDoubleMap<String> extraCostsByNode; private final TObjectDoubleMap<String> co2ByNode; private final List<Event> executedEvents; public TestCaseResult( SupplyChain supplyChain, double totalCosts, double totalLeadTimes, double totalDelays, double totalExtraCosts, double totalCO2, TObjectDoubleMap<String> costsByCategory, TObjectDoubleMap<String> leadTimesByCategory, TObjectDoubleMap<String> delaysByCategory, TObjectDoubleMap<String> extraCostsByCategory, TObjectDoubleMap<String> co2ByCategory, TObjectDoubleMap<String> costsByNode, TObjectDoubleMap<String> leadTimesByNode, TObjectDoubleMap<String> delaysByNode, TObjectDoubleMap<String> extraCostsByNode, TObjectDoubleMap<String> co2ByNode, List<Event> executedEvents) { this.supplyChain = supplyChain; this.totalCosts = totalCosts; this.totalLeadTimes = totalLeadTimes; this.totalDelays = totalDelays; this.totalExtraCosts = totalExtraCosts; this.totalCO2 = totalCO2; this.costsByCategory = costsByCategory; this.leadTimesByCategory = leadTimesByCategory; this.delaysByCategory = delaysByCategory; this.extraCostsByCategory = extraCostsByCategory; this.co2ByCategory = co2ByCategory; this.costsByNode = costsByNode; this.leadTimesByNode = leadTimesByNode; this.delaysByNode = delaysByNode; this.extraCostsByNode = extraCostsByNode; this.co2ByNode = co2ByNode; this.executedEvents = executedEvents; } public double getTotalCO2() { return totalCO2; } public TObjectDoubleMap<String> getCo2ByCategory() { return co2ByCategory; } public TObjectDoubleMap<String> getCo2ByNode() { return co2ByNode; } public SupplyChain getSupplyChain() { return supplyChain; } public double getTotalCosts() { return totalCosts; } public double getTotalLeadTimes() { return totalLeadTimes; } public double getTotalDelays() { return totalDelays; } public double getTotalExtraCosts() { return totalExtraCosts; } public TObjectDoubleMap<String> getCostsByCategory() { return costsByCategory; } public TObjectDoubleMap<String> getLeadTimesByCategory() { return leadTimesByCategory; } public TObjectDoubleMap<String> getDelaysByCategory() { return delaysByCategory; } public TObjectDoubleMap<String> getExtraCostsByCategory() { return extraCostsByCategory; } public TObjectDoubleMap<String> getCostsByNode() { return costsByNode; } public TObjectDoubleMap<String> getLeadTimesByNode() { return leadTimesByNode; } public TObjectDoubleMap<String> getDelaysByNode() { return delaysByNode; } public TObjectDoubleMap<String> getExtraCostsByNode() { return extraCostsByNode; } public List<Event> getExecutedEvents() { return executedEvents; } }