diff --git a/android/app/src/main/java/com/clhs/score/data/GradeAnalysis.kt b/android/app/src/main/java/com/clhs/score/data/GradeAnalysis.kt index 88fb7e3..7015953 100644 --- a/android/app/src/main/java/com/clhs/score/data/GradeAnalysis.kt +++ b/android/app/src/main/java/com/clhs/score/data/GradeAnalysis.kt @@ -485,7 +485,7 @@ private fun summaryText( .plus("。") } -private fun performanceLevel(topPercent: Int): String = when { +internal fun performanceLevel(topPercent: Int): String = when { topPercent <= 25 -> "班級前段" topPercent <= 50 -> "中上" topPercent <= 75 -> "中段" diff --git a/android/app/src/test/java/com/clhs/score/data/GradeAnalysisTest.kt b/android/app/src/test/java/com/clhs/score/data/GradeAnalysisTest.kt index 258087b..b386ca2 100644 --- a/android/app/src/test/java/com/clhs/score/data/GradeAnalysisTest.kt +++ b/android/app/src/test/java/com/clhs/score/data/GradeAnalysisTest.kt @@ -357,6 +357,18 @@ class GradeAnalysisTest { ) } + @Test + fun performanceLevelMapsTopPercentCorrectly() { + assertEquals("班級前段", performanceLevel(1)) + assertEquals("班級前段", performanceLevel(25)) + assertEquals("中上", performanceLevel(26)) + assertEquals("中上", performanceLevel(50)) + assertEquals("中段", performanceLevel(51)) + assertEquals("中段", performanceLevel(75)) + assertEquals("需要加強", performanceLevel(76)) + assertEquals("需要加強", performanceLevel(100)) + } + @Test fun localInsightsDoNotEstimateRankWhenRankDataMissing() { val current = MockGradeSystem.generateReport(customClassRank = null)