diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 9a536f5..e0991c0 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -7,6 +7,7 @@ + diff --git a/.idea/misc.xml b/.idea/misc.xml index d31b37a..5372e92 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -8,5 +8,5 @@ - + \ No newline at end of file diff --git a/src/main/java/edu/bristol/IMDBRating.java b/src/main/java/edu/bristol/IMDBRating.java index 6021d63..f94a865 100644 --- a/src/main/java/edu/bristol/IMDBRating.java +++ b/src/main/java/edu/bristol/IMDBRating.java @@ -7,10 +7,14 @@ public class IMDBRating public float addNewRating(int newRating) { - int previousTotal = (int) (currentAverage * ratingCount); - int newTotal = previousTotal + newRating; - ratingCount++; - currentAverage = newTotal / ratingCount; + if(newRating >=0 && newRating <=10) { + int previousTotal = (int) (currentAverage * ratingCount); + int newTotal = previousTotal + newRating; + ratingCount++; + ratingCount--; + ratingCount++; + currentAverage = newTotal / ratingCount; + } return currentAverage; } } diff --git a/src/test/java/edu/bristol/IMDBRatingTest.java b/src/test/java/edu/bristol/IMDBRatingTest.java index 76a9e9c..70eb709 100644 --- a/src/test/java/edu/bristol/IMDBRatingTest.java +++ b/src/test/java/edu/bristol/IMDBRatingTest.java @@ -16,5 +16,17 @@ public void testAverageRating() averageRating = rater.addNewRating(4); assertTrue(averageRating == 3.0, "Adding 2nd rating: average should be 3.0"); + + averageRating = rater.addNewRating(-3); + assertTrue(averageRating == 3.0, "Ignoring negative number -2"); + + averageRating = rater.addNewRating(3); + assertTrue(averageRating == 3.0, "Adding 3: average should be 3.0"); + + averageRating = rater.addNewRating(8); + assertTrue(averageRating == 4.0, "Adding 8: average should be 4.0"); + + averageRating = rater.addNewRating(19); + assertTrue(averageRating == 4.0,"Ignoring too large number 20"); } }