public void setPredictions() {
        short val, max, S;
        double itemAccuracy;
        double sumUserRMSE = 0, userRMSE;
        for (Integer test : testingSet.keySet()) { // calculate prediction for each item
            max = 1;
            for (int i = 0; i < 3; i++) { // for each attr calculate S
                val = Utils.items.get(test).getAttrVal(i);
                S = (short) Math.round(4 * getDOI(i, val) + 1);
                if (S > max) {
                    max = S;
                }
            }
            testingSet.get(test).setPrediction(max);
            itemAccuracy = Math.pow(max - testingSet.get(test).getRating(), 2);
            sumUserRMSE += itemAccuracy;
            Utils.sumRMSE += itemAccuracy;
        }
        userRMSE = Math.sqrt((double) sumUserRMSE / testingSet.size()); // store rmse for each user [question E]
        // depending on his team, add user's rmse to the correspoing rmse 
        // for the mean rmse to be calculated [question E]
        switch (team) {
            case 'A':
                Utils.sumTeamRMSE[0] += userRMSE;
                break;
            case 'B':
                Utils.sumTeamRMSE[1] += userRMSE;
                break;
            case 'C':
                Utils.sumTeamRMSE[2] += userRMSE;
                break;
            case 'D':
                Utils.sumTeamRMSE[3] += userRMSE;
                break;
            case 'v':
                // do nothing
                break;
            default:
                // will never execute
                break;
        }
    }