MatchPrediction prediction = new MatchPrediction();
addItemProbabilities(prediction, MATCH, ALWAYS_TRUE);
addItemProbabilities(prediction, SURFACE, isSurface(surface));
addItemProbabilities(prediction, LEVEL, isLevel(level));
addItemProbabilities(prediction, ROUND, isRound(round));
<BUG>addItemProbabilities(prediction, RECENT, isRecent(date, getMatchRecentPeriod()));

addItemProbabilities(prediction, SURFACE_RECENT, isSurface(surface).and(isRecent(date, getMatchRecentPeriod())));

addItemProbabilities(prediction, LEVEL_RECENT, isLevel(level).and(isRecent(date, getMatchRecentPeriod())));

addItemProbabilities(prediction, ROUND_RECENT, isRound(round).and(isRecent(date, getMatchRecentPeriod())));
</BUG>
addItemProbabilities(prediction, SET, ALWAYS_TRUE);

MatchPrediction prediction = new MatchPrediction();
addItemProbabilities(prediction, MATCH, ALWAYS_TRUE);
addItemProbabilities(prediction, SURFACE, isSurface(surface));
addItemProbabilities(prediction, LEVEL, isLevel(level));
addItemProbabilities(prediction, ROUND, isRound(round));
addItemProbabilities(prediction, RECENT, isRecent(date1, getMatchRecentPeriod()), isRecent(date2, getMatchRecentPeriod()));
addItemProbabilities(prediction, SURFACE_RECENT, isSurface(surface).and(isRecent(date1, getMatchRecentPeriod())), isSurface(surface).and(isRecent(date2, getMatchRecentPeriod())));
addItemProbabilities(prediction, LEVEL_RECENT, isLevel(level).and(isRecent(date1, getMatchRecentPeriod())), isLevel(level).and(isRecent(date2, getMatchRecentPeriod())));
addItemProbabilities(prediction, ROUND_RECENT, isRound(round).and(isRecent(date1, getMatchRecentPeriod())), isRound(round).and(isRecent(date2, getMatchRecentPeriod())));
addItemProbabilities(prediction, SET, ALWAYS_TRUE);
