private void test(List<Answer> allAnswers, List<Answer> possibleAnswers,
                      QuestionDifficulty difficulty, int incorrectMin, int incorrectMax) {
        int lowestIncorrect = Integer.MAX_VALUE;
        int highestIncorrect = Integer.MIN_VALUE;
        int lowestCorrect = Integer.MAX_VALUE;
        int highestCorrect = Integer.MIN_VALUE;

        for (int testRunNo = 1; testRunNo <= TEST_RUNS; testRunNo++) {
            AudienceVotingResult result = alg.vote(allAnswers, possibleAnswers, difficulty);
            int correctMin = (100 - ((possibleAnswers.size() - 1) * incorrectMax));
            int correctMax = (100 - ((possibleAnswers.size() - 1) * incorrectMin));


            for (int i = 0; i < allAnswers.size() - 1; i++) {
                if (possibleAnswers.contains(allAnswers.get(i))) { // it is possible answer
                    int incorrectResult = result.getPercents(i);
                    Assert.assertTrue(incorrectResult >= incorrectMin && incorrectResult <= incorrectMax);
                    lowestIncorrect = lowestIncorrect > incorrectResult ? incorrectResult : lowestIncorrect;
                    highestIncorrect = highestIncorrect < incorrectResult ? incorrectResult : highestIncorrect;
                } else {
                    Assert.assertEquals(0, result.getPercents(i));
                }
            }
            int correctResult = result.getPercents(allAnswers.size() - 1);
            Assert.assertTrue(correctResult >= correctMin && correctResult <= correctMax);
            lowestCorrect = lowestCorrect > correctResult ? correctResult : lowestCorrect;
            highestCorrect = highestCorrect < correctResult ? correctResult : highestCorrect;
        }
        System.out.println(possibleAnswers.size() + " answers " + difficulty + " min/Max incorrect: <" + lowestIncorrect + "," + highestIncorrect + ">, " +
                "correct: <" + lowestCorrect + "," + highestCorrect + ">");
    }