diff --git a/src/main/java/Cohort.java b/src/main/java/Cohort.java new file mode 100644 index 00000000..4baa092f --- /dev/null +++ b/src/main/java/Cohort.java @@ -0,0 +1,27 @@ +import java.util.ArrayList; +import java.util.List; + +public class Cohort { + + private List students; + + 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; + } +} \ 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..686e1ca6 --- /dev/null +++ b/src/main/java/Student.java @@ -0,0 +1,38 @@ +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 void addGrade(int grade) { + grades.add(grade); + } + + public ArrayList getGrades() { + return this.grades; + } + + public double getGradeAverage() { + double sum = 0; + for (int grade : this.grades) { + sum += grade; + } + return sum / getGrades().size(); + } +} \ No newline at end of file diff --git a/src/test/java/CohortTest.java b/src/test/java/CohortTest.java new file mode 100644 index 00000000..9de5c0ed --- /dev/null +++ b/src/test/java/CohortTest.java @@ -0,0 +1,2 @@ +public class CohortTest { +} diff --git a/src/test/java/StudentTest.java b/src/test/java/StudentTest.java new file mode 100644 index 00000000..9d4bb6b3 --- /dev/null +++ b/src/test/java/StudentTest.java @@ -0,0 +1,88 @@ +import org.junit.Test; +import static org.junit.Assert.*; + +public class StudentTest { + + @Test + public void testIfStudentCanBeCreated(){ + Student fer = new Student(1L, "fer"); + Student nullStudent = null; + assertNotNull(fer); + assertNull(nullStudent); + } + + @Test + public void testIfFieldsAreSet(){ + Student fer = new Student(1L, "fer"); + assertEquals(1L, fer.getId()); + assertEquals("fer", fer.getName()); + + Student rosie = new Student(40L, "Rosie"); + assertEquals(40L, rosie.getId()); + assertEquals("Rosie", rosie.getName()); + } + + @Test + public void testIfAddGradeWorks(){ + Student fer = new Student(1L, "fer"); + assertEquals(0, fer.getGrades().size()); + fer.addGrade(90); + assertEquals(1, fer.getGrades().size()); + fer.addGrade(70); + assertEquals(2, fer.getGrades().size()); + } + + @Test + public void testIfGetGradesWorks(){ + Student fer = new Student(1L, "fer"); + fer.addGrade(90); + fer.addGrade(70); + assertSame(90, fer.getGrades().get(0)); + assertSame(70, fer.getGrades().get(1)); + } + + @Test + public void testIfGetAVGWorks(){ + Student fer = new Student(1L, "fer"); + fer.addGrade(90); + fer.addGrade(70); // 160 / 2 = 80 + assertEquals(80, fer.getGradeAverage(), 0); + fer.addGrade(50); // 210 / 3 = 70 + assertEquals(70, fer.getGradeAverage(), 0); + } + + @Test + public void testCreateStudent(){ + Student fer = new Student(1L, "fer"); + Student ryan = null; + assertNull(ryan); + assertNotNull(fer); + } + + @Test + public void testStudentFields(){ + Student fer = new Student(1L, "fer"); + assertSame(1L, fer.getId()); + assertSame("fer", fer.getName()); + assertSame(0, fer.getGrades().size()); + } + + + @Test + public void testAddGrade(){ + Student fer = new Student(1L, "fer"); + fer.addGrade(100); + assertSame(100, fer.getGrades().get(0)); + fer.addGrade(80); + assertSame(80, fer.getGrades().get(1)); + } + + @Test + public void testAverageGrade(){ + Student fer = new Student(1L, "fer"); + fer.addGrade(100); + fer.addGrade(80); + assertEquals(90, fer.getGradeAverage(), 0); + } + +} \ No newline at end of file