Skip to content

Commit 042fe48

Browse files
committed
Implement basic StudentGradeCalculator
1 parent 373dcdb commit 042fe48

File tree

2 files changed

+43
-5
lines changed

2 files changed

+43
-5
lines changed

examples/java/java-student_grades-01_base_example/src/main/java/tv/codely/student_grades/StudentGradeCalculator.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,19 @@
33
import java.util.List;
44

55
public class StudentGradeCalculator {
6-
public Integer calculateGrades(List<Integer> examsGrades) {
6+
public Float calculateGrades(final List<Float> examsGrades) {
77
if (!examsGrades.isEmpty()) {
8-
return 1;
8+
Float gradesSum = 0.f;
9+
Integer gradesCounter = 0;
10+
11+
for (Float examGrade : examsGrades) {
12+
gradesSum += examGrade;
13+
gradesCounter++;
14+
}
15+
16+
return gradesSum / gradesCounter;
917
} else {
10-
return 0;
18+
return 0.f;
1119
}
1220
}
1321
}

examples/java/java-student_grades-01_base_example/src/test/java/tv/codely/student_grades/StudentGradeCalculatorShould.java

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,43 @@
55
import org.junit.jupiter.api.Test;
66

77
import java.util.Collections;
8+
import java.util.List;
89

910
public class StudentGradeCalculatorShould {
1011

1112
@Test
12-
void return_0_with_no_exam_grades() {
13+
void calculate_0_with_no_exam_grades() {
1314
StudentGradeCalculator studentGradeCalculator = new StudentGradeCalculator();
1415

15-
assertEquals(0, studentGradeCalculator.calculateGrades(Collections.emptyList()));
16+
final List<Float> examsGrades = Collections.emptyList();
17+
18+
assertEquals(0, studentGradeCalculator.calculateGrades(examsGrades));
19+
}
20+
21+
@Test
22+
void calculate_same_grade_with_one_single_exam() {
23+
StudentGradeCalculator studentGradeCalculator = new StudentGradeCalculator();
24+
25+
final List<Float> examsGrades = List.of(5.f);
26+
27+
assertEquals(5, studentGradeCalculator.calculateGrades(examsGrades));
28+
}
29+
30+
@Test
31+
void calculate_average_grade_based_on_different_exam_grades() {
32+
StudentGradeCalculator studentGradeCalculator = new StudentGradeCalculator();
33+
34+
final List<Float> examsGrades = List.of(5.f, 4.f, 6.f, 2.f, 8.f, 0.f, 10.f);
35+
36+
assertEquals(5, studentGradeCalculator.calculateGrades(examsGrades));
37+
}
38+
39+
@Test
40+
void round_up_to_2_decimals() {
41+
StudentGradeCalculator studentGradeCalculator = new StudentGradeCalculator();
42+
43+
final List<Float> examsGrades = List.of(5.f, 4.f);
44+
45+
assertEquals(4.5f, studentGradeCalculator.calculateGrades(examsGrades));
1646
}
1747
}

0 commit comments

Comments
 (0)