* thresholdValues: valid object, null
* type: BREACHED, CLEARED, 0, 12345
*/
final Object[] sources = new Object[] { new Object(), null};
final Calculable[] calculables = new Calculable[] {new Calculable(), null};
final ThresholdValues[] tvs = new ThresholdValues[] { new ThresholdValues(), null};
final ThresholdType[] types = new ThresholdType[] {
ThresholdType.BREACHED, ThresholdType.CLEARED};
Object[][] combinations = ArrayUtils.combinations(new Object[][] {
sources, calculables, tvs, types});
for (Object[] combination : combinations) {
Object source = combination[0];
Calculable calculable = (Calculable) combination[1];
ThresholdValues tv = (ThresholdValues) combination[2];
ThresholdType type = (ThresholdType) combination[3];
if (source == null) {
try {