Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 18 additions & 16 deletions src/main/java/edu/bristol/IMDBRating.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
174 changes: 154 additions & 20 deletions src/test/java/edu/bristol/IMDBRatingTest.java
Original file line number Diff line number Diff line change
@@ -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<String> findDifference(ArrayList<String> imdb, ArrayList<String> wiki)
{
ArrayList<String> 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<String> titleIMDB = new ArrayList<>();
while(nextLine != null) {
// Check the line to see what it contains
if(nextLine.contains("<img alt=\"")){
//System.out.println(nextLine);
titleIMDB.add(nextLine.substring(11));
}
nextLine = reader.readLine();
}
System.out.println(titleIMDB);

URL url2 = new URL("https://en.wikipedia.org/wiki/Shoestring_(TV_series)");
HttpURLConnection connection2 =(HttpURLConnection)url2.openConnection();
connection2.setDoOutput(true);
connection2.setRequestMethod("GET");
InputStream stream2 = connection2.getInputStream();
BufferedReader reader2 = new BufferedReader(new InputStreamReader(stream2));
nextLine = reader2.readLine();
ArrayList<String> titleWiki = new ArrayList<>();
while(nextLine != null) {
// Check the line to see what it contains
if(nextLine.contains("<span class=\"anchor\" id=\"")){
//System.out.println(findTitle(nextLine));
titleWiki.add(findTitle(nextLine));
}
nextLine = reader2.readLine();
}
System.out.println(titleWiki);

System.out.println(findDifference(titleIMDB, titleWiki));

}

}
Empty file added test.txt
Empty file.