Files
Insurance-Coding-Challenge/src/main/java/com/pfefferminzia/petinsurance/tariffs/AgeTariff.java
T

28 lines
746 B
Java

package com.pfefferminzia.petinsurance.tariffs;
import java.math.BigDecimal;
public enum AgeTariff {
UP_TO_TWO(2, new BigDecimal("0.2")), UP_TO_FIVE(5, new BigDecimal("0.25")), UP_TO_SEVEN(7,
new BigDecimal("0.28")), OVER_SEVEN(Integer.MAX_VALUE, new BigDecimal("0.3"));
private final int maxAge;
private final BigDecimal factor;
private AgeTariff(int maxAge, BigDecimal factor) {
this.maxAge = maxAge;
this.factor = factor;
}
public static BigDecimal getFactorForAge(int age) {
for (AgeTariff rate : values()) {
if (age <= rate.maxAge) {
return rate.factor;
}
}
throw new AssertionError("Unexpected age: " + age);
}
}