log.info(prefix + "1st " + planInfo.getWinningAlternative() + ", 2nd : " + sndAlternative
+ " in plan: " + planInfo.getId());
// this criterion could be a game changer - map it back to the
// measurement scale
if (pLeaf.getTransformer() instanceof NumericTransformer) {
NumericTransformer numTransformer = (NumericTransformer) pLeaf.getTransformer();
// For numeric values: The percentage that we can change the
// value on the (overally!) winning candidate
// without the output range changing so much as to make the
// winning candidate lose its winning rank
// TODO: CHECK: Do we have a problem here? the values of an
// alternative are first transformed, then aggregated
// therefore we have to transform this winning value also
// back ...
double winnerMeasuredValue = numTransformer.transformBack(winnerTargetValue);
double minMeasuredValue = numTransformer.transformBack(minTargetValue);
// TODO: what if the measured value was 0.0?
if (winnerMeasuredValue != 0.0) {
leafFactor = (winnerMeasuredValue - minMeasuredValue) / winnerMeasuredValue;
if (!numTransformer.hasIncreasingOrder()) {
leafFactor *= -1.0;
}
}
log.info(prefix + " - numeric = " + leafFactor + intermediaryResults + "; winnerMeasuredValue = "
+ winnerMeasuredValue + "; minMeasuredValue = " + minMeasuredValue + "; plan id "