From a43b28b5be27a9def22a4df9a10819492129c461 Mon Sep 17 00:00:00 2001 From: YL <-> Date: Tue, 22 Feb 2022 10:26:20 +0000 Subject: [PATCH 1/7] fix average score bug and add unit tests/release test --- src/main/java/edu/bristol/IMDBRating.java | 34 ++-- src/test/java/edu/bristol/IMDBRatingTest.java | 174 ++++++++++++++++-- 2 files changed, 172 insertions(+), 36 deletions(-) diff --git a/src/main/java/edu/bristol/IMDBRating.java b/src/main/java/edu/bristol/IMDBRating.java index 6021d63..150d92c 100644 --- a/src/main/java/edu/bristol/IMDBRating.java +++ b/src/main/java/edu/bristol/IMDBRating.java @@ -1,16 +1,18 @@ -package edu.bristol; - -public class IMDBRating -{ - private float currentAverage = 0; - private int ratingCount = 0; - - public float addNewRating(int newRating) - { - int previousTotal = (int) (currentAverage * ratingCount); - int newTotal = previousTotal + newRating; - ratingCount++; - currentAverage = newTotal / ratingCount; - return currentAverage; - } -} +package edu.bristol; + +public class IMDBRating +{ + private float accumulateRate = 0; + private float currentAverage = 0; + private int ratingCount = 0; + + public float addNewRating(int newRating) + { + if(newRating >=1 && newRating<=10) { + accumulateRate += newRating; + ratingCount++; + currentAverage = accumulateRate / ratingCount; + } + return currentAverage; + } +} diff --git a/src/test/java/edu/bristol/IMDBRatingTest.java b/src/test/java/edu/bristol/IMDBRatingTest.java index 76a9e9c..58d1f78 100644 --- a/src/test/java/edu/bristol/IMDBRatingTest.java +++ b/src/test/java/edu/bristol/IMDBRatingTest.java @@ -1,20 +1,154 @@ -package edu.bristol; - -import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertTrue; - -public class IMDBRatingTest -{ - @Test - public void testAverageRating() - { - float averageRating; - IMDBRating rater = new IMDBRating(); - - averageRating = rater.addNewRating(2); - assertTrue(averageRating == 2.0, "Adding 1st rating: average should be 2.0"); - - averageRating = rater.addNewRating(4); - assertTrue(averageRating == 3.0, "Adding 2nd rating: average should be 3.0"); - } -} +package edu.bristol; + +import org.junit.jupiter.api.Test; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.ArrayList; + +import static org.junit.jupiter.api.Assertions.assertEquals; + + +public class IMDBRatingTest +{ + public String findTitle(String string) + { + int idx = string.indexOf("anchor\" id="); + int len = "anchor\" id=".length(); + String rest = string.substring(idx+len); + int i=1; + while(rest.charAt(i)!='"'){ + i++; + } + String finalString = rest.replace('_',' '); + return finalString.substring(0,i+1); + } + + public ArrayList findDifference(ArrayList imdb, ArrayList wiki) + { + ArrayList missingMovie = new ArrayList<>(); + for(String movie:wiki){ + if(!imdb.contains(movie)){ + missingMovie.add(movie); + } + } + return missingMovie; + } + + @Test + public void testAverageRating() + { + float averageRating=0; + IMDBRating rater = new IMDBRating(); + + for(int i=1;i<=10;i++){ + averageRating = rater.addNewRating(i); + } + System.out.println(averageRating); + assertEquals(5.5, averageRating, "average should be 5.5 but it was " + averageRating); + } + + @Test + public void testAverageRating2() + { + float averageRating; + IMDBRating rater = new IMDBRating(); + + for(int i=1;i<=10;i++){ + rater.addNewRating(i); + } + rater.addNewRating(8); + averageRating = rater.addNewRating(8); + System.out.println(averageRating); + assertEquals(averageRating, (float) 71 / (float) 12, "average should be 5.5 but it was " + averageRating); + } + + @Test + public void testOutRange() + { + float averageRating; + IMDBRating rater = new IMDBRating(); + + for(int i=1;i<=10;i++){ + rater.addNewRating(i); + } + averageRating = rater.addNewRating(0); + System.out.println(averageRating); + assertEquals(5.5, averageRating, "average should be 5.5 but it was " + averageRating); + } + + @Test + public void testOutRange2() + { + float averageRating; + IMDBRating rater = new IMDBRating(); + + for(int i=1;i<=10;i++){ + rater.addNewRating(i); + } + averageRating = rater.addNewRating(-1); + System.out.println(averageRating); + assertEquals(5.5, averageRating, "average should be 5.5 but it was " + averageRating); + } + + @Test + public void testOutRange3() + { + float averageRating; + IMDBRating rater = new IMDBRating(); + + for(int i=1;i<=10;i++){ + rater.addNewRating(i); + } + averageRating = rater.addNewRating(12); + System.out.println(averageRating); + assertEquals(5.5, averageRating, "average should be 5.5 but it was " + averageRating); + } + + @Test + public void releaseTestIMDBSearch() throws IOException { + URL url = new URL("https://www.imdb.com/search/title/?locations=bristol&role=nm0263368"); + HttpURLConnection connection =(HttpURLConnection)url.openConnection(); + connection.setDoOutput(true); + connection.setRequestMethod("GET"); + InputStream stream = connection.getInputStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); + String nextLine = reader.readLine(); + ArrayList titleIMDB = new ArrayList<>(); + while(nextLine != null) { + // Check the line to see what it contains + if(nextLine.contains("\"")){ titleWiki = new ArrayList<>(); + while(nextLine != null) { + // Check the line to see what it contains + if(nextLine.contains(" Date: Tue, 22 Feb 2022 10:46:33 +0000 Subject: [PATCH 2/7] test --- test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test.txt diff --git a/test.txt b/test.txt new file mode 100644 index 0000000..e69de29 From bddcbcc6b6615322118ab44760b49098ca8ff01f Mon Sep 17 00:00:00 2001 From: YL <-> Date: Tue, 22 Feb 2022 14:57:29 +0000 Subject: [PATCH 3/7] delete test.txt --- test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 test.txt diff --git a/test.txt b/test.txt deleted file mode 100644 index e69de29..0000000 From 2b7f88f67bc7e54b33d93243084aad0b3c630bb2 Mon Sep 17 00:00:00 2001 From: YL <-> Date: Tue, 22 Feb 2022 15:15:52 +0000 Subject: [PATCH 4/7] intentional error in test case --- src/test/java/edu/bristol/IMDBRatingTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/edu/bristol/IMDBRatingTest.java b/src/test/java/edu/bristol/IMDBRatingTest.java index 58d1f78..ed3587c 100644 --- a/src/test/java/edu/bristol/IMDBRatingTest.java +++ b/src/test/java/edu/bristol/IMDBRatingTest.java @@ -106,7 +106,8 @@ public void testOutRange3() } averageRating = rater.addNewRating(12); System.out.println(averageRating); - assertEquals(5.5, averageRating, "average should be 5.5 but it was " + averageRating); + //intentional + assertEquals(6.5, averageRating, "average should be 5.5 but it was " + averageRating); } @Test From 65f5e6c71ea223ced448244cb2579cc454d0dcbb Mon Sep 17 00:00:00 2001 From: YL <-> Date: Tue, 22 Feb 2022 15:20:22 +0000 Subject: [PATCH 5/7] intentional error in test case --- src/test/java/edu/bristol/IMDBRatingTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/edu/bristol/IMDBRatingTest.java b/src/test/java/edu/bristol/IMDBRatingTest.java index ed3587c..3db52f6 100644 --- a/src/test/java/edu/bristol/IMDBRatingTest.java +++ b/src/test/java/edu/bristol/IMDBRatingTest.java @@ -107,7 +107,7 @@ public void testOutRange3() averageRating = rater.addNewRating(12); System.out.println(averageRating); //intentional - assertEquals(6.5, averageRating, "average should be 5.5 but it was " + averageRating); + assertEquals(5.0, averageRating, "average should be 5.5 but it was " + averageRating); } @Test From ab1caa3b05e51b86760f3f0294d55503804a7cc2 Mon Sep 17 00:00:00 2001 From: YL <-> Date: Tue, 22 Feb 2022 15:25:39 +0000 Subject: [PATCH 6/7] remove the error in the test --- src/test/java/edu/bristol/IMDBRatingTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/test/java/edu/bristol/IMDBRatingTest.java b/src/test/java/edu/bristol/IMDBRatingTest.java index 3db52f6..58d1f78 100644 --- a/src/test/java/edu/bristol/IMDBRatingTest.java +++ b/src/test/java/edu/bristol/IMDBRatingTest.java @@ -106,8 +106,7 @@ public void testOutRange3() } averageRating = rater.addNewRating(12); System.out.println(averageRating); - //intentional - assertEquals(5.0, averageRating, "average should be 5.5 but it was " + averageRating); + assertEquals(5.5, averageRating, "average should be 5.5 but it was " + averageRating); } @Test From aa95562124a1ef747bd53f5c3ad388efa2d89a96 Mon Sep 17 00:00:00 2001 From: YL <-> Date: Tue, 22 Feb 2022 15:35:39 +0000 Subject: [PATCH 7/7] test --- test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test.txt diff --git a/test.txt b/test.txt new file mode 100644 index 0000000..e69de29