Question: Using your methods from lab 1 0 do the following: Write at least two Junit tests for the method you wrote that does the compute.

Using your methods from lab 10 do the following:
Write at least two Junit tests for the method you wrote that does the compute.
Write at least two Junit tests for the method you wrote that does the retrieve.
Write at least two Junit tests for the method you wrote that does the update/insert.
Write at least one Junit test that is meant to fail
"SoccerDatabase."
package socc;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
// SoccerDatabase class without 'public' modifier
class SoccerDatabase {
// Sample data for jersey numbers
private static int[] jerseyNumbers ={10,7,10,9,10,7,8,9,10,7};
// Sample data for matches
private static List matches = new ArrayList<>();
// Sample data for players
private static List players = new ArrayList<>();
// Static block to initialize match data
static {
matches.add(new Match("Team A", "Team B",5));
matches.add(new Match("Team C", "Team D",3));
matches.add(new Match("Team E", "Team F",7));
}
/**
* Finds the most popular jersey number among players.
*
* @return The most popular jersey number.
*/
public static int findMostPopularJerseyNumber(){
Map frequencyMap = new HashMap<>();
// Count frequency of each jersey number
for (int number : jerseyNumbers){
frequencyMap.put(number, frequencyMap.getOrDefault(number,0)+1);
}
int popularNumber =-1, maxFrequency =0;
// Find the jersey number with the highest frequency
for (Map.Entry entry : frequencyMap.entrySet()){
if (entry.getValue()> maxFrequency){
popularNumber = entry.getKey();
maxFrequency = entry.getValue();
}
}
return popularNumber;
}
/**
* Retrieves the top 10 highest-scoring matches.
*
* @return A list of the top 10 highest-scoring matches.
*/
public static List getTop10HighestScoringMatches(){
// Sort matches by score in descending order
Collections.sort(matches,(m1, m2)-> Integer.compare(m2.getScore(), m1.getScore()));
// Return the top 10 matches
return matches.subList(0, Math.min(matches.size(),10));
}
/**
* Updates or inserts a player into the database.
*
* @param id Player ID.
* @param name Player name.
* @param jerseyNumber Player's jersey number.
*/
public static void updateOrInsertPlayer(int id, String name, int jerseyNumber){
// Check if player already exists
for (Player player : players){
if (player.id == id){
player.name = name;
player.jerseyNumber = jerseyNumber;
System.out.println("Player updated: "+ player);
return;
}
}
// Add new player if not found
Player newPlayer = new Player(id, name, jerseyNumber);
players.add(newPlayer);
System.out.println("New player added: "+ newPlayer);
}
// Match class to represent a soccer match
static class Match {
private String team1;
private String team2;
private int score;
public Match(String team1, String team2, int score){
this.team1= team1;
this.team2= team2;
this.score = score;
}
public int getScore(){
return score;
}
@Override
public String toString(){
return team1+" vs "+ team2+": "+ score +" goals";
}
}
// Player class to represent a soccer player
static class Player {
int id;
String name;
int jerseyNumber;
public Player(int id, String name, int jerseyNumber){
this.id = id;
this.name = name;
this.jerseyNumber = jerseyNumber;
}
@Override
public String toString(){
return "Player ID: "+ id +", Name: "+ name +", Jersey Number: "+ jerseyNumber;
}
}
}
// Main class to test the functionality
public class Main {
public static void main(String[] args){
// Test finding the most popular jersey number
System.out.println("Most Popular Jersey Number: "+ SoccerDatabase.findMostPopularJerseyNumber());
// Test retrieving the top 10 highest-scoring matches
System.out.println("
Top 10 Highest-Scoring Matches:");
for (SoccerDatabase.Match match : SoccerDatabase.getTop10HighestScoringMatches()){
System.out.println(match);
}
// Test updating or inserting players
System.out.println("
Updating or Inserting Players:");
SoccerDatabase.updateOrInsertPlayer(1, "Player One", 10);
SoccerDatabase.updateOrInsertPlayer(2, "Player Two", 7);
SoccerDatabase.updateOrInsertPlayer(1, "Player One Updated", 99);
}
}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!