diff --git a/src/main/java/Student.java b/src/main/java/Student.java new file mode 100644 index 00000000..2fcba6f0 --- /dev/null +++ b/src/main/java/Student.java @@ -0,0 +1,38 @@ +import java.util.ArrayList; + +public class Student { + private String name; + private long id; + private ArrayList grades; + + public Student(String name, long id) { + this.name = name; + this.id = id; + this.grades = new ArrayList<>(); + } + + public long getId() { + return id; + } + + public String getName() { + return name; + } + + public void addGrade(int grade) { + grades.add(grade); + } + + public ArrayList getGrades() { + return grades; + } + + public double getGradeAverage() { + int sum = 0; + for (int grade : grades) { + sum += grade; + } + return sum / (double) grades.size(); + } +} + diff --git a/src/test/java/StudentTest.java b/src/test/java/StudentTest.java new file mode 100644 index 00000000..50b01b9f --- /dev/null +++ b/src/test/java/StudentTest.java @@ -0,0 +1,41 @@ +import org.junit.Before; +import org.junit.Test; + +import java.util.ArrayList; + +import static org.junit.Assert.*; + +public class StudentTest { + private Student student; + + @Before + public void setUp(){ + student = new Student("John Doe", 1); + } + + @Test + public void testStudentConstructorSetsNameAndId() { + assertEquals("John Doe", student.getName()); + assertEquals(1, student.getId()); + } + + @Test + public void testStudentStartsWithNoGrades() { + assertEquals(new ArrayList(), student.getGrades()); + } + + @Test + public void testAddGradeChangesGrades() { + student.addGrade(90); + ArrayList expectedGrades = new ArrayList<>(); + expectedGrades.add(90); + assertEquals(expectedGrades, student.getGrades()); + } + + @Test + public void testGetGradeAverageCalculatesCorrectAverage() { + student.addGrade(100); + student.addGrade(75); + assertEquals(87.5, student.getGradeAverage(), 0.001); + } +}