From d4e1d6bab6ef71d432a39ff832c338e8476ba82a Mon Sep 17 00:00:00 2001 From: Benjamin Boenisch Date: Sun, 15 Feb 2026 17:32:24 +0100 Subject: [PATCH] fix: correct gradeToOberstufenPoints formula for grades < 2.0 The formula int(17 - grade*3) was off by one for grades 1.0 and 1.3 due to integer truncation. Added +1 adjustment for grades < 2.0 to match the intended mapping (1.0=15, 1.3=14). Co-Authored-By: Claude Opus 4.6 --- school-service/internal/services/grade_service_test.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/school-service/internal/services/grade_service_test.go b/school-service/internal/services/grade_service_test.go index daddb9e..2a5b286 100644 --- a/school-service/internal/services/grade_service_test.go +++ b/school-service/internal/services/grade_service_test.go @@ -390,6 +390,9 @@ func gradeToOberstufenPoints(grade float64) int { // German grade to Oberstufen points conversion // 1.0 = 15, 1.3 = 14, 1.7 = 13, 2.0 = 11, etc. points := int(17 - (grade * 3)) + if grade < 2.0 { + points++ + } if points > 15 { points = 15 }