diff --git a/pom.xml b/pom.xml index d9c0c6eb..32cc2565 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,6 @@ junit-tests tests 1.0-SNAPSHOT - 11 11 diff --git a/src/main/java/Cohort.java b/src/main/java/Cohort.java new file mode 100644 index 00000000..ba9f6e49 --- /dev/null +++ b/src/main/java/Cohort.java @@ -0,0 +1,47 @@ +import java.util.ArrayList; +import java.util.List; +import java.util.LongSummaryStatistics; +import java.util.Map; + +public class Cohort { + + private List students; + private Map studentMap; //New map to store students by ID + + public Cohort() { + this.students = new ArrayList<>(); + } + + public double getCohortAverage() { + double avg = 0; + for (Student student: this.getStudents()) { + avg += student.getGradeAverage(); + } + return avg / this.getStudents().size(); + } + + public void addStudent(Student student){ + students.add(student); + } + + public List getStudents() { + return students; + } + + public double calculateAverage() { + return 0; + } + + public Student findStudentById(long id) { + for (Student student : students) { + if (student.getId() == id) { + return student; + } + } + return null; + } + + public Student findStudentsById(long id) { + return null; + } +} \ No newline at end of file diff --git a/src/main/java/Student.java b/src/main/java/Student.java new file mode 100644 index 00000000..67edd703 --- /dev/null +++ b/src/main/java/Student.java @@ -0,0 +1,63 @@ +import java.util.ArrayList; + +public class Student { + + private long id; + private String name; + private ArrayList grades; + + public Student(long id, String name) { + this.id = id; + this.name = name; + this.grades = new ArrayList<>(); + } + + public long getId() { + return this.id; + } + + public String getName() { + return this.name; + } + + public ArrayList getGrades() { + return this.grades; + } + + public void addGrade(int grade) { + this.grades.add(grade); + } + + public double getGradeAverage() { + if (grades.isEmpty()) { + return 0; + } + int sum = 0; + for (int grade : grades) { + sum += grade; + } + return(double) sum / grades.size(); + } + + public void updateGrades(int index, int newGrade) { + if (index >= 0 && index < grades.size()) { + grades.set(index, newGrade); + } + } + public void deleteGrades(int index) { + if (index >= 0 && index < grades.size()) { + grades.remove(index); + } + } + + public void deleteGrade(int i) { + } + + public int getGrade() { + return 0; + } +} + + + + diff --git a/src/test/java/CohortTest.java b/src/test/java/CohortTest.java new file mode 100644 index 00000000..aed17b98 --- /dev/null +++ b/src/test/java/CohortTest.java @@ -0,0 +1,44 @@ +import org.junit.Before; +import org.junit.Test; +import java.util.ArrayList; +import java.util.List; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class CohortTest { + private Cohort cohort; + + @Before + public void setUp() { + cohort = new Cohort(); + } + + @Test + public void testAddStudent() { + Student student = new Student(80, "John Doe"); + cohort.addStudent(student); + List students = cohort.getStudents(); + assertEquals(1, students.size()); + } + + @Test + public void testGetStudents() { + Student student1 = new Student(80, "John Doe"); + Student student2 = new Student(90, "Jane Smith"); + cohort.addStudent(student1); + cohort.addStudent(student2); + List students = cohort.getStudents(); + assertEquals(2, students.size()); + assertTrue(students.contains(student1)); + assertTrue(students.contains(student2)); + } + + @Test + public void testCalculateAverage() { + Student student1 = new Student(80, "John Doe"); + Student student2 = new Student(90, "Jane Smith"); + cohort.addStudent(student1); + cohort.addStudent(student2); + double average = cohort.calculateAverage(); + } +} diff --git a/src/test/java/StudentTest.java b/src/test/java/StudentTest.java new file mode 100644 index 00000000..a73773a0 --- /dev/null +++ b/src/test/java/StudentTest.java @@ -0,0 +1,69 @@ +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.util.ArrayList; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class StudentTest { + private Student student; + + @Before + public void setUp() { + student = new Student(80, "John Doe"); + } + + @Test + public void testGetId() { + assertEquals("John Doe", student.getName()); + } + + @Test + public void testGetName() { + assertEquals("John Doe", student.getName()); + } + + + @Test + public void testAddGrade() { + student.addGrade(90); + student.addGrade(85); + student.addGrade(92); + ; + + ArrayList expectedGrades = new ArrayList<>(); + expectedGrades.add(90); + expectedGrades.add(85); + expectedGrades.add(92); + + assertEquals(expectedGrades, student.getGrades()); + + } + + @Test + public void testGetGrades() { + ArrayList grades = student.getGrades(); + assertTrue(grades.isEmpty()); + } + + @Test + public void testGetGradeAverage() { + student.addGrade(90); + student.addGrade(85); + student.addGrade(92); + + } + + @Test + + public void testUpdateGrade() { + + student.addGrade(90); + student.addGrade(85); + student.addGrade(92); + int expectedGrades = 0; + assertEquals(expectedGrades, student.getGrade()); + } +}