A small, idiomatic Java gradebook library used as the Java reference example for Coverage Tracker. It exists to give the Java row in the coverage report generation guide a live, working reference, and to populate the demo dashboard with real trend data.
This is a demo/marketing repo, not a test suite for Coverage Tracker itself.
Grade.java— maps a numeric score to a letter grade band (A–F).GpaPoints.java— converts a letter grade, with an optional +/- modifier, to 4.0-scale GPA points.Student.java— a transcript of credit-hour-weighted course results, GPA, and honor-roll status.Roster.java— aggregate stats (average/median GPA, top student, honor roll count) across a group of students.- Each class has unit tests, but some real branches are deliberately left
untested — the
Dgrade band and out-of-range score checks inGrade, the descriptivelabel()method, theMINUSGPA modifier, and the invalid-input guard clauses inStudent/Roster— landing at ~85% line / ~71% branch coverage, sobranch_coverage < line_coverageis visible on the dashboard. .github/workflows/coverage.yml— runs tests under JaCoCo via Maven, then reports to the demo instance via thecoverage-trackerreporting Action. No separate complexity step is needed — JaCoCo'sCOMPLEXITYcounter gives cyclomatic complexity for free.
mvn test jacoco:report # writes target/site/jacoco/jacoco.xml