Skip to content

Commit

Permalink
Unit tests complete
Browse files Browse the repository at this point in the history
  • Loading branch information
mjunkin committed Oct 8, 2024
1 parent 4548791 commit 4de445b
Show file tree
Hide file tree
Showing 9 changed files with 9,137 additions and 152 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,36 +19,36 @@

public class CachingResolvedControlMapImpl implements ResolvedControlMap {

private final BecLookup becLookup;
private final GenusDefinitionMap genusDefinitionMap;
private final Map<String, Coefficients> netDecayWasteCoeMap;
private final MatrixMap2<Integer, Integer, Optional<Coefficients>> netDecayCoeMap;
private final MatrixMap2<String, Region, Float> wasteModifierMap;
private final MatrixMap2<String, Region, Float> decayModifierMap;
private final MatrixMap2<Integer, Integer, Optional<Coefficients>> closeUtilizationCoeMap;
private final Map<Integer, Coefficients> totalStandWholeStepVolumeCoeMap;
private final MatrixMap2<Integer, Integer, Optional<Coefficients>> wholeStemUtilizationComponentMap;
private final MatrixMap3<Integer, String, String, Coefficients> quadMeanDiameterUtilizationComponentMap;
private final MatrixMap3<Integer, String, String, Coefficients> basalAreaDiameterUtilizationComponentMap;
private final Map<String, Coefficients> smallComponentWholeStemVolumeCoefficients;
private final Map<String, Coefficients> smallComponentLoreyHeightCoefficients;
private final Map<String, Coefficients> smallComponentQuadMeanDiameterCoefficients;
private final Map<String, Coefficients> smallComponentBasalAreaCoefficients;
private final Map<String, Coefficients> smallComponentProbabilityCoefficients;
private final Map<Integer, SiteCurveAgeMaximum> maximumAgeBySiteCurveNumber;
private final Map<Integer, Coefficients> upperBounds;
private final MatrixMap2<String, String, Integer> defaultEquationGroup;
private final MatrixMap2<Integer, Integer, Optional<Integer>> equationModifierGroup;
private final MatrixMap2<String, Region, Coefficients> hl1Coefficients;
private final MatrixMap2<String, Region, Coefficients> hl2Coefficients;
private final MatrixMap2<String, Region, Coefficients> hl3Coefficients;
private final MatrixMap3<String, String, Region, Optional<NonprimaryHLCoefficients>> hlNonPrimaryCoefficients;
private final MatrixMap2<String, Region, ComponentSizeLimits> componentSizeLimitCoefficients;
private final Map<Integer, Coefficients> breakageMap;
private final MatrixMap2<String, String, Integer> volumeEquationGroups;
private final MatrixMap2<String, String, Integer> decayEquationGroups;
private final MatrixMap2<String, String, Integer> breakageEquationGroups;
private final Map<String, Coefficients> quadMeanDiameterBySpeciesCoefficients;
private final Optional<BecLookup> becLookup;
private final Optional<GenusDefinitionMap> genusDefinitionMap;
private final Optional<Map<String, Coefficients>> netDecayWasteCoeMap;
private final Optional<MatrixMap2<Integer, Integer, Optional<Coefficients>>> netDecayCoeMap;
private final Optional<MatrixMap2<String, Region, Float>> wasteModifierMap;
private final Optional<MatrixMap2<String, Region, Float>> decayModifierMap;
private final Optional<MatrixMap2<Integer, Integer, Optional<Coefficients>>> closeUtilizationCoeMap;
private final Optional<Map<Integer, Coefficients>> totalStandWholeStepVolumeCoeMap;
private final Optional<MatrixMap2<Integer, Integer, Optional<Coefficients>>> wholeStemUtilizationComponentMap;
private final Optional<MatrixMap3<Integer, String, String, Coefficients>> quadMeanDiameterUtilizationComponentMap;
private final Optional<MatrixMap3<Integer, String, String, Coefficients>> basalAreaDiameterUtilizationComponentMap;
private final Optional<Map<String, Coefficients>> smallComponentWholeStemVolumeCoefficients;
private final Optional<Map<String, Coefficients>> smallComponentLoreyHeightCoefficients;
private final Optional<Map<String, Coefficients>> smallComponentQuadMeanDiameterCoefficients;
private final Optional<Map<String, Coefficients>> smallComponentBasalAreaCoefficients;
private final Optional<Map<String, Coefficients>> smallComponentProbabilityCoefficients;
private final Optional<Map<Integer, SiteCurveAgeMaximum>> maximumAgeBySiteCurveNumber;
private final Optional<Map<Integer, Coefficients>> upperBounds;
private final Optional<MatrixMap2<String, String, Integer>> defaultEquationGroup;
private final Optional<MatrixMap2<Integer, Integer, Optional<Integer>>> equationModifierGroup;
private final Optional<MatrixMap2<String, Region, Coefficients>> hl1Coefficients;
private final Optional<MatrixMap2<String, Region, Coefficients>> hl2Coefficients;
private final Optional<MatrixMap2<String, Region, Coefficients>> hl3Coefficients;
private final Optional<MatrixMap3<String, String, Region, Optional<NonprimaryHLCoefficients>>> hlNonPrimaryCoefficients;
private final Optional<MatrixMap2<String, Region, ComponentSizeLimits>> componentSizeLimitCoefficients;
private final Optional<Map<Integer, Coefficients>> breakageMap;
private final Optional<MatrixMap2<String, String, Integer>> volumeEquationGroups;
private final Optional<MatrixMap2<String, String, Integer>> decayEquationGroups;
private final Optional<MatrixMap2<String, String, Integer>> breakageEquationGroups;
private final Optional<Map<String, Coefficients>> quadMeanDiameterBySpeciesCoefficients;

private final Map<String, Object> controlMap;

Expand Down Expand Up @@ -97,157 +97,157 @@ public Map<String, Object> getControlMap() {
return Collections.unmodifiableMap(controlMap);
}

protected <U> U get(ControlKey key, Class<? super U> clazz) {
return Utils.expectParsedControl(controlMap, key, clazz);
protected <U> Optional<U> get(ControlKey key, Class<? super U> clazz) {
return Utils.parsedControl(controlMap, key, clazz);
}

@Override
public BecLookup getBecLookup() {
return becLookup;
return becLookup.orElseThrow();
}

@Override
public GenusDefinitionMap getGenusDefinitionMap() {
return genusDefinitionMap;
return genusDefinitionMap.orElseThrow();
}

@Override
public Map<String, Coefficients> getNetDecayWasteCoeMap() {
return netDecayWasteCoeMap;
return netDecayWasteCoeMap.orElseThrow();
}

@Override
public MatrixMap2<Integer, Integer, Optional<Coefficients>> getNetDecayCoeMap() {
return netDecayCoeMap;
return netDecayCoeMap.orElseThrow();
}

@Override
public MatrixMap2<String, Region, Float> getWasteModifierMap() {
return wasteModifierMap;
return wasteModifierMap.orElseThrow();
}

@Override
public MatrixMap2<String, Region, Float> getDecayModifierMap() {
return decayModifierMap;
return decayModifierMap.orElseThrow();
}

@Override
public MatrixMap2<Integer, Integer, Optional<Coefficients>> getCloseUtilizationCoeMap() {
return closeUtilizationCoeMap;
return closeUtilizationCoeMap.orElseThrow();
}

@Override
public Map<Integer, Coefficients> getTotalStandWholeStepVolumeCoeMap() {
return totalStandWholeStepVolumeCoeMap;
return totalStandWholeStepVolumeCoeMap.orElseThrow();
}

@Override
public MatrixMap2<Integer, Integer, Optional<Coefficients>> getWholeStemUtilizationComponentMap() {
return wholeStemUtilizationComponentMap;
return wholeStemUtilizationComponentMap.orElseThrow();
}

@Override
public MatrixMap3<Integer, String, String, Coefficients> getQuadMeanDiameterUtilizationComponentMap() {
return quadMeanDiameterUtilizationComponentMap;
return quadMeanDiameterUtilizationComponentMap.orElseThrow();
}

@Override
public MatrixMap3<Integer, String, String, Coefficients> getBasalAreaDiameterUtilizationComponentMap() {
return basalAreaDiameterUtilizationComponentMap;
return basalAreaDiameterUtilizationComponentMap.orElseThrow();
}

@Override
public Map<String, Coefficients> getSmallComponentWholeStemVolumeCoefficients() {
return smallComponentWholeStemVolumeCoefficients;
return smallComponentWholeStemVolumeCoefficients.orElseThrow();
}

@Override
public Map<String, Coefficients> getSmallComponentLoreyHeightCoefficients() {
return smallComponentLoreyHeightCoefficients;
return smallComponentLoreyHeightCoefficients.orElseThrow();
}

@Override
public Map<String, Coefficients> getSmallComponentQuadMeanDiameterCoefficients() {
return smallComponentQuadMeanDiameterCoefficients;
return smallComponentQuadMeanDiameterCoefficients.orElseThrow();
}

@Override
public Map<String, Coefficients> getSmallComponentBasalAreaCoefficients() {
return smallComponentBasalAreaCoefficients;
return smallComponentBasalAreaCoefficients.orElseThrow();
}

@Override
public Map<String, Coefficients> getSmallComponentProbabilityCoefficients() {
return smallComponentProbabilityCoefficients;
return smallComponentProbabilityCoefficients.orElseThrow();
}

@Override
public Map<Integer, SiteCurveAgeMaximum> getMaximumAgeBySiteCurveNumber() {
return maximumAgeBySiteCurveNumber;
return maximumAgeBySiteCurveNumber.orElseThrow();
}

@Override
public Map<Integer, Coefficients> getUpperBounds() {
return upperBounds;
return upperBounds.orElseThrow();
}

@Override
public MatrixMap2<String, String, Integer> getDefaultEquationGroup() {
return defaultEquationGroup;
return defaultEquationGroup.orElseThrow();
}

@Override
public MatrixMap2<Integer, Integer, Optional<Integer>> getEquationModifierGroup() {
return equationModifierGroup;
return equationModifierGroup.orElseThrow();
}

@Override
public MatrixMap2<String, Region, Coefficients> getHl1Coefficients() {
return hl1Coefficients;
return hl1Coefficients.orElseThrow();
}

@Override
public MatrixMap2<String, Region, Coefficients> getHl2Coefficients() {
return hl2Coefficients;
return hl2Coefficients.orElseThrow();
}

@Override
public MatrixMap2<String, Region, Coefficients> getHl3Coefficients() {
return hl3Coefficients;
return hl3Coefficients.orElseThrow();
}

@Override
public MatrixMap3<String, String, Region, Optional<NonprimaryHLCoefficients>> getHlNonPrimaryCoefficients() {
return hlNonPrimaryCoefficients;
return hlNonPrimaryCoefficients.orElseThrow();
}

@Override
public MatrixMap2<String, Region, ComponentSizeLimits> getComponentSizeLimits() {
return componentSizeLimitCoefficients;
return componentSizeLimitCoefficients.orElseThrow();
}

@Override
public Map<Integer, Coefficients> getNetBreakageMap() {
return breakageMap;
return breakageMap.orElseThrow();
}

@Override
public MatrixMap2<String, String, Integer> getVolumeEquationGroups() {
return volumeEquationGroups;
return volumeEquationGroups.orElseThrow();
}

@Override
public MatrixMap2<String, String, Integer> getDecayEquationGroups() {
return decayEquationGroups;
return decayEquationGroups.orElseThrow();
}

@Override
public MatrixMap2<String, String, Integer> getBreakageEquationGroups() {
return breakageEquationGroups;
return breakageEquationGroups.orElseThrow();
}

@Override
public Map<String, Coefficients> getQuadMeanDiameterBySpeciesCoefficients() {
return quadMeanDiameterBySpeciesCoefficients;
return quadMeanDiameterBySpeciesCoefficients.orElseThrow();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import java.util.EnumMap;
import java.util.HashMap;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Optional;

import org.slf4j.Logger;
Expand Down Expand Up @@ -259,20 +260,35 @@ private void calculateSpeciesCoverage(VdypSpecies s, Map<UtilizationClass, VdypU
protected void applyGroups(BecDefinition bec, String genus, VdypSpecies species) {
// Look up Volume group, Decay Group, and Breakage group for each species.

var volumeGroupMap = resolvedControlMap.getVolumeEquationGroups();
var decayGroupMap = resolvedControlMap.getDecayEquationGroups();
var breakageGroupMap = resolvedControlMap.getBreakageEquationGroups();
try
{
// VGRPFIND
var volumeGroupMap = resolvedControlMap.getVolumeEquationGroups();
var volumeGroup = volumeGroupMap.get(genus, bec.getVolumeBec().getAlias());
species.setVolumeGroup(volumeGroup);
} catch (NoSuchElementException e) {
// group will remain undefined
}

// VGRPFIND
var volumeGroup = volumeGroupMap.get(genus, bec.getVolumeBec().getAlias());
// DGRPFIND
var decayGroup = decayGroupMap.get(genus, bec.getDecayBec().getAlias());
// BGRPFIND (Breakage uses decay BEC)
var breakageGroup = breakageGroupMap.get(genus, bec.getDecayBec().getAlias());
try
{
// DGRPFIND
var decayGroupMap = resolvedControlMap.getDecayEquationGroups();
var decayGroup = decayGroupMap.get(genus, bec.getDecayBec().getAlias());
species.setDecayGroup(decayGroup);
} catch (NoSuchElementException e) {
// group will remain undefined
}

species.setVolumeGroup(volumeGroup);
species.setDecayGroup(decayGroup);
species.setBreakageGroup(breakageGroup);
try
{
// BGRPFIND (Breakage uses decay BEC)
var breakageGroupMap = resolvedControlMap.getBreakageEquationGroups();
var breakageGroup = breakageGroupMap.get(genus, bec.getDecayBec().getAlias());
species.setBreakageGroup(breakageGroup);
} catch (NoSuchElementException e) {
// group will remain undefined
}
}

private void setUtilizations(VdypUtilizationHolder u, Map<UtilizationClass, VdypUtilization> speciesUtilizations) {
Expand Down
Loading

0 comments on commit 4de445b

Please sign in to comment.