diff options
Diffstat (limited to 'tst/com/p4square/grow/model')
| -rw-r--r-- | tst/com/p4square/grow/model/SliderQuestionTest.java | 6 | ||||
| -rw-r--r-- | tst/com/p4square/grow/model/SliderScoringEngineTest.java | 74 | 
2 files changed, 77 insertions, 3 deletions
| diff --git a/tst/com/p4square/grow/model/SliderQuestionTest.java b/tst/com/p4square/grow/model/SliderQuestionTest.java index eaa67b5..b5c4e83 100644 --- a/tst/com/p4square/grow/model/SliderQuestionTest.java +++ b/tst/com/p4square/grow/model/SliderQuestionTest.java @@ -26,6 +26,12 @@ public class SliderQuestionTest {      @Before      public void setUp() {          mQuestion = new SliderQuestion(); + +        // Add some "answers" for the scoring engine. +        mQuestion.getAnswers().put("1", new Answer()); +        mQuestion.getAnswers().put("2", new Answer()); +        mQuestion.getAnswers().put("3", new Answer()); +        mQuestion.getAnswers().put("4", new Answer());      }      /** diff --git a/tst/com/p4square/grow/model/SliderScoringEngineTest.java b/tst/com/p4square/grow/model/SliderScoringEngineTest.java index fdbfd6f..1ea0d4c 100644 --- a/tst/com/p4square/grow/model/SliderScoringEngineTest.java +++ b/tst/com/p4square/grow/model/SliderScoringEngineTest.java @@ -4,6 +4,8 @@  package com.p4square.grow.model; +import java.util.Map; +  import org.junit.Before;  import org.junit.Test; @@ -32,10 +34,13 @@ public class SliderScoringEngineTest {      }      /** -     * Test the scoreAnswer() method. +     * Test the scoreAnswer() method with four answers.       */      @Test -    public void testScoreAnswer() { +    public void testScoreAnswerFourAnswers() { +        // Create the four answers. +        createAnswers(4); +          Score score = new Score();          RecordedAnswer answer = new RecordedAnswer(); @@ -51,11 +56,59 @@ public class SliderScoringEngineTest {          assertEquals(2, score.count);          assertEquals(5, score.sum, DELTA); -        // Test fraction (0.33) +        // Test 0.33. Should be 2.          answer.setAnswerId("0.33333");          assertTrue(mEngine.scoreAnswer(score, mQuestion, answer));          assertEquals(3, score.count);          assertEquals(7, score.sum, DELTA); + +        // Test 0.9, should be 4. +        answer.setAnswerId("0.9"); +        assertTrue(mEngine.scoreAnswer(score, mQuestion, answer)); +        assertEquals(4, score.count); +        assertEquals(11, score.sum, DELTA); +    } + +    /** +     * Test the scoreAnswer() method with six answers. +     */ +    @Test +    public void testScoreAnswerSixAnswers() { +        // Create the four answers. +        createAnswers(6); + +        Score score = new Score(); +        RecordedAnswer answer = new RecordedAnswer(); + +        // Test 0 +        answer.setAnswerId("0"); +        assertTrue(mEngine.scoreAnswer(score, mQuestion, answer)); +        assertEquals(1, score.count); +        assertEquals(1, score.sum, DELTA); + +        // Test 1 +        answer.setAnswerId("1"); +        assertTrue(mEngine.scoreAnswer(score, mQuestion, answer)); +        assertEquals(2, score.count); +        assertEquals(5, score.sum, DELTA); + +        // Test 0.33. Should score as 1.33 +        answer.setAnswerId("0.33333"); +        assertTrue(mEngine.scoreAnswer(score, mQuestion, answer)); +        assertEquals(3, score.count); +        assertEquals(6.3333, score.sum, DELTA); + +        // Test 0.55. Should score as 2.66 +        answer.setAnswerId("0.55"); +        assertTrue(mEngine.scoreAnswer(score, mQuestion, answer)); +        assertEquals(4, score.count); +        assertEquals(9, score.sum, DELTA); + +        // Test 0.9. Should score as 4. +        answer.setAnswerId("0.90"); +        assertTrue(mEngine.scoreAnswer(score, mQuestion, answer)); +        assertEquals(5, score.count); +        assertEquals(13, score.sum, DELTA);      }      /** @@ -74,6 +127,7 @@ public class SliderScoringEngineTest {       */      @Test(expected = IllegalArgumentException.class)      public void testNegativeAnswer() { +        createAnswers(4);          Score score = new Score();          RecordedAnswer answer = new RecordedAnswer();          answer.setAnswerId("-1"); @@ -85,9 +139,23 @@ public class SliderScoringEngineTest {       */      @Test(expected = IllegalArgumentException.class)      public void testAnswerOutOfBounds() { +        createAnswers(4);          Score score = new Score();          RecordedAnswer answer = new RecordedAnswer();          answer.setAnswerId("1.1");          mEngine.scoreAnswer(score, mQuestion, answer);      } + +    /** +     * Helper method to create a number of questions on the slider. +     *  +     * @param count Number of answers on the questions. +     */ +    private void createAnswers(int count) { +        Map<String, Answer> answers = mQuestion.getAnswers(); +        answers.clear(); +        for (int i = 0; i < count; i++) { +            answers.put(String.valueOf(i), new Answer()); +        } +    }  } | 
