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
38 changes: 38 additions & 0 deletions src/main/java/Student.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import java.util.ArrayList;

public class Student {
private String name;
private long id;
private ArrayList<Integer> 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<Integer> getGrades() {
return grades;
}

public double getGradeAverage() {
int sum = 0;
for (int grade : grades) {
sum += grade;
}
return sum / (double) grades.size();
}
}

41 changes: 41 additions & 0 deletions src/test/java/StudentTest.java
Original file line number Diff line number Diff line change
@@ -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<Integer>(), student.getGrades());
}

@Test
public void testAddGradeChangesGrades() {
student.addGrade(90);
ArrayList<Integer> 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);
}
}