Add descriptive grades (#2411)

This commit is contained in:
Rafał Borcz 2024-02-08 09:16:09 +01:00 committed by GitHub
parent bce92b7347
commit 22f72981cb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
24 changed files with 3248 additions and 224 deletions

View file

@ -2,6 +2,7 @@ package io.github.wulkanowy.data.repositories
import io.github.wulkanowy.data.dataOrNull
import io.github.wulkanowy.data.db.dao.GradeDao
import io.github.wulkanowy.data.db.dao.GradeDescriptiveDao
import io.github.wulkanowy.data.db.dao.GradeSummaryDao
import io.github.wulkanowy.data.errorOrNull
import io.github.wulkanowy.data.mappers.mapToEntities
@ -42,6 +43,9 @@ class GradeRepositoryTest {
@MockK
private lateinit var gradeSummaryDb: GradeSummaryDao
@MockK
private lateinit var gradeDescriptiveDb: GradeDescriptiveDao
@MockK(relaxUnitFun = true)
private lateinit var refreshHelper: AutoRefreshHelper
@ -56,7 +60,8 @@ class GradeRepositoryTest {
MockKAnnotations.init(this)
every { refreshHelper.shouldBeRefreshed(any()) } returns false
gradeRepository = GradeRepository(gradeDb, gradeSummaryDb, sdk, refreshHelper)
gradeRepository =
GradeRepository(gradeDb, gradeSummaryDb, gradeDescriptiveDb, sdk, refreshHelper)
coEvery { gradeDb.deleteAll(any()) } just Runs
coEvery { gradeDb.insertAll(any()) } returns listOf()
@ -68,6 +73,13 @@ class GradeRepositoryTest {
)
coEvery { gradeSummaryDb.deleteAll(any()) } just Runs
coEvery { gradeSummaryDb.insertAll(any()) } returns listOf()
coEvery { gradeDescriptiveDb.loadAll(any(), any()) } returnsMany listOf(
flowOf(listOf()),
)
coEvery { gradeDescriptiveDb.deleteAll(any()) } just Runs
coEvery { gradeDescriptiveDb.insertAll(any()) } returns listOf()
}
@Test

View file

@ -1,12 +1,16 @@
package io.github.wulkanowy.ui.modules.grade
import io.github.wulkanowy.data.*
import io.github.wulkanowy.data.Resource
import io.github.wulkanowy.data.dataOrNull
import io.github.wulkanowy.data.db.entities.Grade
import io.github.wulkanowy.data.db.entities.GradeSummary
import io.github.wulkanowy.data.db.entities.Student
import io.github.wulkanowy.data.errorOrNull
import io.github.wulkanowy.data.repositories.GradeRepository
import io.github.wulkanowy.data.repositories.PreferencesRepository
import io.github.wulkanowy.data.repositories.SemesterRepository
import io.github.wulkanowy.data.resourceFlow
import io.github.wulkanowy.data.toFirstResult
import io.github.wulkanowy.getSemesterEntity
import io.github.wulkanowy.sdk.Sdk
import io.github.wulkanowy.utils.Status
@ -158,7 +162,9 @@ class GradeAverageProviderTest {
semesters[2],
true
)
} returns resourceFlow { noWeightGrades to noWeightGradesSummary }
} returns resourceFlow {
Triple(noWeightGrades, noWeightGradesSummary, emptyList())
}
val items = runBlocking {
gradeAverageProvider.getGradesDetailsWithAverage(
@ -186,7 +192,9 @@ class GradeAverageProviderTest {
semesters[2],
true
)
} returns resourceFlow { noWeightGrades to noWeightGradesArithmeticSummary }
} returns resourceFlow {
Triple(noWeightGrades, noWeightGradesArithmeticSummary, emptyList())
}
val items = runBlocking {
gradeAverageProvider.getGradesDetailsWithAverage(
@ -211,8 +219,24 @@ class GradeAverageProviderTest {
coEvery { semesterRepository.getSemesters(student) } returns semesters
coEvery { gradeRepository.getGrades(student, semesters[2], true) } returns flow {
emit(Resource.Loading())
emit(Resource.Intermediate(secondGradeWithModifier to secondSummariesWithModifier))
emit(Resource.Success(secondGradeWithModifier to secondSummariesWithModifier))
emit(
Resource.Intermediate(
Triple(
secondGradeWithModifier,
secondSummariesWithModifier,
emptyList()
)
)
)
emit(
Resource.Success(
Triple(
secondGradeWithModifier,
secondSummariesWithModifier,
emptyList()
)
)
)
}
val items = runBlocking {
@ -253,11 +277,27 @@ class GradeAverageProviderTest {
coEvery { gradeRepository.getGrades(student, semesters[2], false) } returns flow {
emit(Resource.Loading())
delay(1000)
emit(Resource.Success(secondGradeWithModifier to secondSummariesWithModifier))
emit(
Resource.Success(
Triple(
secondGradeWithModifier,
secondSummariesWithModifier,
emptyList()
)
)
)
}
coEvery { gradeRepository.getGrades(student, semesters[1], false) } returns flow {
emit(Resource.Loading())
emit(Resource.Success(secondGradeWithModifier to secondSummariesWithModifier))
emit(
Resource.Success(
Triple(
secondGradeWithModifier,
secondSummariesWithModifier,
emptyList()
)
)
)
}
val items = runBlocking {
@ -296,7 +336,13 @@ class GradeAverageProviderTest {
semesters[1],
false
)
} returns resourceFlow { secondGradeWithModifier to secondSummariesWithModifier }
} returns resourceFlow {
Triple(
secondGradeWithModifier,
secondSummariesWithModifier,
emptyList()
)
}
coEvery {
gradeRepository.getGrades(
student,
@ -304,8 +350,10 @@ class GradeAverageProviderTest {
false
)
} returns resourceFlow {
listOf(getGrade(semesters[2].semesterId, "Język polski", .0, .0, .0)) to listOf(
getSummary(semesters[2].semesterId, "Język polski", 2.5)
Triple(
listOf(getGrade(semesters[2].semesterId, "Język polski", .0, .0, .0)),
listOf(getSummary(semesters[2].semesterId, "Język polski", 2.5)),
emptyList()
)
}
@ -332,7 +380,13 @@ class GradeAverageProviderTest {
semesters[1],
false
)
} returns resourceFlow { secondGradeWithModifier to secondSummariesWithModifier }
} returns resourceFlow {
Triple(
secondGradeWithModifier,
secondSummariesWithModifier,
emptyList()
)
}
coEvery {
gradeRepository.getGrades(
student,
@ -340,12 +394,14 @@ class GradeAverageProviderTest {
false
)
} returns resourceFlow {
emptyList<Grade>() to listOf(
getSummary(
24,
"Język polski",
.0
)
Triple(
emptyList(), listOf(
getSummary(
24,
"Język polski",
.0
)
), emptyList()
)
}
@ -372,14 +428,22 @@ class GradeAverageProviderTest {
semesters[1],
true
)
} returns resourceFlow { emptyList<Grade>() to emptyList() }
} returns resourceFlow {
Triple(
emptyList(),
emptyList(),
emptyList()
)
}
coEvery {
gradeRepository.getGrades(
student,
semesters[2],
true
)
} returns resourceFlow { emptyList<Grade>() to emptyList() }
} returns resourceFlow {
Triple(emptyList(), emptyList(), emptyList())
}
val items = runBlocking {
gradeAverageProvider.getGradesDetailsWithAverage(
@ -404,7 +468,13 @@ class GradeAverageProviderTest {
semesters[2],
true
)
} returns resourceFlow { secondGradeWithModifier to secondSummariesWithModifier }
} returns resourceFlow {
Triple(
secondGradeWithModifier,
secondSummariesWithModifier,
emptyList()
)
}
val items = runBlocking {
gradeAverageProvider.getGradesDetailsWithAverage(
@ -438,7 +508,13 @@ class GradeAverageProviderTest {
semesters[2],
true
)
} returns resourceFlow { secondGradeWithModifier to secondSummariesWithModifier }
} returns resourceFlow {
Triple(
secondGradeWithModifier,
secondSummariesWithModifier,
emptyList()
)
}
val items = runBlocking {
gradeAverageProvider.getGradesDetailsWithAverage(
@ -472,7 +548,13 @@ class GradeAverageProviderTest {
semesters[2],
true
)
} returns resourceFlow { secondGradeWithModifier to secondSummariesWithModifier }
} returns resourceFlow {
Triple(
secondGradeWithModifier,
secondSummariesWithModifier,
emptyList()
)
}
val items = runBlocking {
gradeAverageProvider.getGradesDetailsWithAverage(
@ -506,7 +588,13 @@ class GradeAverageProviderTest {
semesters[2],
true
)
} returns resourceFlow { secondGradeWithModifier to secondSummariesWithModifier }
} returns resourceFlow {
Triple(
secondGradeWithModifier,
secondSummariesWithModifier,
emptyList()
)
}
val items = runBlocking {
gradeAverageProvider.getGradesDetailsWithAverage(
@ -534,7 +622,7 @@ class GradeAverageProviderTest {
semesters[2],
true
)
} returns resourceFlow { secondGrades to secondSummaries }
} returns resourceFlow { Triple(secondGrades, secondSummaries, emptyList()) }
val items = runBlocking {
gradeAverageProvider.getGradesDetailsWithAverage(
@ -564,7 +652,7 @@ class GradeAverageProviderTest {
semesters[2],
true
)
} returns resourceFlow { secondGrades to secondSummaries }
} returns resourceFlow { Triple(secondGrades, secondSummaries, emptyList()) }
val items = runBlocking {
gradeAverageProvider.getGradesDetailsWithAverage(
@ -594,7 +682,7 @@ class GradeAverageProviderTest {
semesters[1],
true
)
} returns resourceFlow { firstGrades to firstSummaries }
} returns resourceFlow { Triple(firstGrades, firstSummaries, emptyList()) }
val items = runBlocking {
gradeAverageProvider.getGradesDetailsWithAverage(
@ -625,8 +713,8 @@ class GradeAverageProviderTest {
coEvery { semesterRepository.getSemesters(student) } returns semesters
coEvery { gradeRepository.getGrades(student, semesters[1], true) } returns flow {
emit(Resource.Loading())
emit(Resource.Intermediate(firstGrades to firstSummaries))
emit(Resource.Success(firstGrades to firstSummaries))
emit(Resource.Intermediate(Triple(firstGrades, firstSummaries, emptyList())))
emit(Resource.Success(Triple(firstGrades, firstSummaries, emptyList())))
}
val items = runBlocking {
@ -675,9 +763,11 @@ class GradeAverageProviderTest {
true
)
} returns resourceFlow {
firstGrades to listOf(
getSummary(22, "Matematyka", 3.0),
getSummary(22, "Fizyka", 3.5)
Triple(
firstGrades, listOf(
getSummary(22, "Matematyka", 3.0),
getSummary(22, "Fizyka", 3.5)
), emptyList()
)
}
coEvery {
@ -687,9 +777,13 @@ class GradeAverageProviderTest {
true
)
} returns resourceFlow {
secondGrades to listOf(
getSummary(22, "Matematyka", 3.5),
getSummary(22, "Fizyka", 4.0)
Triple(
secondGrades,
listOf(
getSummary(22, "Matematyka", 3.5),
getSummary(22, "Fizyka", 4.0)
),
emptyList()
)
}
@ -723,17 +817,21 @@ class GradeAverageProviderTest {
emit(Resource.Loading())
emit(
Resource.Intermediate(
firstGrades to listOf(
getSummary(22, "Matematyka", 3.0),
getSummary(22, "Fizyka", 3.5)
Triple(
firstGrades, listOf(
getSummary(22, "Matematyka", 3.0),
getSummary(22, "Fizyka", 3.5)
), emptyList()
)
)
)
emit(
Resource.Success(
firstGrades to listOf(
getSummary(22, "Matematyka", 3.0),
getSummary(22, "Fizyka", 3.5)
Triple(
firstGrades, listOf(
getSummary(22, "Matematyka", 3.0),
getSummary(22, "Fizyka", 3.5)
), emptyList()
)
)
)
@ -742,17 +840,21 @@ class GradeAverageProviderTest {
emit(Resource.Loading())
emit(
Resource.Intermediate(
secondGrades to listOf(
getSummary(22, "Matematyka", 3.5),
getSummary(22, "Fizyka", 4.0)
Triple(
secondGrades, listOf(
getSummary(22, "Matematyka", 3.5),
getSummary(22, "Fizyka", 4.0)
), emptyList()
)
)
)
emit(
Resource.Success(
secondGrades to listOf(
getSummary(22, "Matematyka", 3.5),
getSummary(22, "Fizyka", 4.0)
Triple(
secondGrades, listOf(
getSummary(22, "Matematyka", 3.5),
getSummary(22, "Fizyka", 4.0)
), emptyList()
)
)
)
@ -803,7 +905,7 @@ class GradeAverageProviderTest {
semesters[1],
true
)
} returns resourceFlow { firstGrades to firstSummaries }
} returns resourceFlow { Triple(firstGrades, firstSummaries, emptyList()) }
coEvery {
gradeRepository.getGrades(
student,
@ -811,9 +913,11 @@ class GradeAverageProviderTest {
true
)
} returns resourceFlow {
secondGrades to listOf(
getSummary(22, "Matematyka", 1.1),
getSummary(22, "Fizyka", 7.26)
Triple(
secondGrades, listOf(
getSummary(22, "Matematyka", 1.1),
getSummary(22, "Fizyka", 7.26)
), emptyList()
)
}
@ -850,9 +954,11 @@ class GradeAverageProviderTest {
true
)
} returns resourceFlow {
firstGrades to listOf(
getSummary(22, "Matematyka", .0),
getSummary(22, "Fizyka", .0)
Triple(
firstGrades, listOf(
getSummary(22, "Matematyka", .0),
getSummary(22, "Fizyka", .0)
), emptyList()
)
}
coEvery {
@ -862,9 +968,11 @@ class GradeAverageProviderTest {
true
)
} returns resourceFlow {
secondGrades to listOf(
getSummary(22, "Matematyka", .0),
getSummary(22, "Fizyka", .0)
Triple(
secondGrades, listOf(
getSummary(22, "Matematyka", .0),
getSummary(22, "Fizyka", .0)
), emptyList()
)
}
@ -889,24 +997,28 @@ class GradeAverageProviderTest {
coEvery { semesterRepository.getSemesters(student) } returns semesters
coEvery { gradeRepository.getGrades(student, semesters[1], true) } returns flow {
emit(Resource.Loading())
emit(Resource.Intermediate(firstGrades to firstSummaries))
emit(Resource.Success(firstGrades to firstSummaries))
emit(Resource.Intermediate(Triple(firstGrades, firstSummaries, emptyList())))
emit(Resource.Success(Triple(firstGrades, firstSummaries, emptyList())))
}
coEvery { gradeRepository.getGrades(student, semesters[2], true) } returns flow {
emit(Resource.Loading())
emit(
Resource.Intermediate(
secondGrades to listOf(
getSummary(22, "Matematyka", 1.1),
getSummary(22, "Fizyka", 7.26)
Triple(
secondGrades, listOf(
getSummary(22, "Matematyka", 1.1),
getSummary(22, "Fizyka", 7.26)
), emptyList()
)
)
)
emit(
Resource.Success(
secondGrades to listOf(
getSummary(22, "Matematyka", 1.1),
getSummary(22, "Fizyka", 7.26)
Triple(
secondGrades, listOf(
getSummary(22, "Matematyka", 1.1),
getSummary(22, "Fizyka", 7.26)
), emptyList()
)
)
)
@ -958,14 +1070,14 @@ class GradeAverageProviderTest {
semesters[1],
true
)
} returns resourceFlow { firstGrades to emptyList() }
} returns resourceFlow { Triple(firstGrades, emptyList(), emptyList()) }
coEvery {
gradeRepository.getGrades(
student,
semesters[2],
true
)
} returns resourceFlow { secondGrades to emptyList() }
} returns resourceFlow { Triple(secondGrades, emptyList(), emptyList()) }
val items = runBlocking {
gradeAverageProvider.getGradesDetailsWithAverage(
@ -1000,14 +1112,14 @@ class GradeAverageProviderTest {
semesters[1],
true
)
} returns resourceFlow { firstGrades to emptyList() }
} returns resourceFlow { Triple(firstGrades, emptyList(), emptyList()) }
coEvery {
gradeRepository.getGrades(
student,
semesters[2],
true
)
} returns resourceFlow { secondGrades to emptyList() }
} returns resourceFlow { Triple(secondGrades, emptyList(), emptyList()) }
val items = runBlocking {
gradeAverageProvider.getGradesDetailsWithAverage(
@ -1043,8 +1155,10 @@ class GradeAverageProviderTest {
true
)
} returns resourceFlow {
firstGrades to listOf(
getSummary(22, "Matematyka", 4.0)
Triple(
firstGrades, listOf(
getSummary(22, "Matematyka", 4.0)
), emptyList()
)
}
coEvery {
@ -1054,8 +1168,10 @@ class GradeAverageProviderTest {
true
)
} returns resourceFlow {
secondGrades to listOf(
getSummary(23, "Matematyka", 3.0)
Triple(
secondGrades, listOf(
getSummary(23, "Matematyka", 3.0)
), emptyList()
)
}
@ -1092,14 +1208,20 @@ class GradeAverageProviderTest {
semesters[1],
true
)
} returns resourceFlow { firstGrades to firstSummaries }
} returns resourceFlow { Triple(firstGrades, firstSummaries, emptyList()) }
coEvery {
gradeRepository.getGrades(
student,
semesters[2],
true
)
} returns resourceFlow { secondGrades to secondSummaries.dropLast(1) }
} returns resourceFlow {
Triple(
secondGrades,
secondSummaries.dropLast(1),
emptyList()
)
}
val items = runBlocking {
gradeAverageProvider.getGradesDetailsWithAverage(
@ -1134,14 +1256,20 @@ class GradeAverageProviderTest {
semesters[1],
true
)
} returns resourceFlow { firstGrades to firstSummaries.dropLast(1) }
} returns resourceFlow {
Triple(
firstGrades,
firstSummaries.dropLast(1),
emptyList()
)
}
coEvery {
gradeRepository.getGrades(
student,
semesters[2],
true
)
} returns resourceFlow { secondGrades to secondSummaries }
} returns resourceFlow { Triple(secondGrades, secondSummaries, emptyList()) }
val items = runBlocking {
gradeAverageProvider.getGradesDetailsWithAverage(
@ -1176,14 +1304,20 @@ class GradeAverageProviderTest {
semesters[1],
true
)
} returns resourceFlow { firstGrades to firstSummaries.dropLast(1) }
} returns resourceFlow {
Triple(
firstGrades,
firstSummaries.dropLast(1),
emptyList()
)
}
coEvery {
gradeRepository.getGrades(
student,
semesters[2],
true
)
} returns resourceFlow { secondGrades to secondSummaries }
} returns resourceFlow { Triple(secondGrades, secondSummaries, emptyList()) }
val items = runBlocking {
gradeAverageProvider.getGradesDetailsWithAverage(
@ -1219,16 +1353,20 @@ class GradeAverageProviderTest {
true
)
} returns resourceFlow {
listOf(
getGrade(22, "Fizyka", 5.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 5.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0)
) to listOf(getSummary(semesterId = 22, subject = "Fizyka", average = .0))
Triple(
listOf(
getGrade(22, "Fizyka", 5.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 5.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0)
),
listOf(getSummary(semesterId = 22, subject = "Fizyka", average = .0)),
emptyList()
)
}
coEvery {
gradeRepository.getGrades(
@ -1237,11 +1375,15 @@ class GradeAverageProviderTest {
true
)
} returns resourceFlow {
listOf(
getGrade(23, "Fizyka", 5.0, weight = 1.0),
getGrade(23, "Fizyka", 5.0, weight = 2.0),
getGrade(23, "Fizyka", 4.0, modifier = 0.3, weight = 2.0)
) to listOf(getSummary(semesterId = 23, subject = "Fizyka", average = .0))
Triple(
listOf(
getGrade(23, "Fizyka", 5.0, weight = 1.0),
getGrade(23, "Fizyka", 5.0, weight = 2.0),
getGrade(23, "Fizyka", 4.0, modifier = 0.3, weight = 2.0)
),
listOf(getSummary(semesterId = 23, subject = "Fizyka", average = .0)),
emptyList()
)
}
val items = runBlocking {
@ -1266,23 +1408,31 @@ class GradeAverageProviderTest {
every { preferencesRepository.gradeAverageModeFlow } returns flowOf(GradeAverageMode.ALL_YEAR)
coEvery { gradeRepository.getGrades(student, semesters[1], true) } returns resourceFlow {
listOf(
getGrade(22, "Fizyka", 5.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 5.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0)
) to listOf(getSummary(semesterId = 22, subject = "Fizyka", average = .0))
Triple(
listOf(
getGrade(22, "Fizyka", 5.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 5.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0)
),
listOf(getSummary(semesterId = 22, subject = "Fizyka", average = .0)),
emptyList()
)
}
coEvery { gradeRepository.getGrades(student, semesters[2], true) } returns resourceFlow {
listOf(
getGrade(23, "Fizyka", 5.0, weight = 1.0),
getGrade(23, "Fizyka", 5.0, weight = 2.0),
getGrade(23, "Fizyka", 4.0, modifier = 0.3, weight = 2.0)
) to listOf(getSummary(semesterId = 23, subject = "Fizyka", average = .0))
Triple(
listOf(
getGrade(23, "Fizyka", 5.0, weight = 1.0),
getGrade(23, "Fizyka", 5.0, weight = 2.0),
getGrade(23, "Fizyka", 4.0, modifier = 0.3, weight = 2.0)
),
listOf(getSummary(semesterId = 23, subject = "Fizyka", average = .0)),
emptyList()
)
}
val items = runBlocking {
@ -1313,23 +1463,31 @@ class GradeAverageProviderTest {
coEvery { semesterRepository.getSemesters(student) } returns semesters
coEvery { gradeRepository.getGrades(student, semesters[1], true) } returns resourceFlow {
listOf(
getGrade(22, "Fizyka", 5.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 5.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0)
) to listOf(getSummary(semesterId = 22, subject = "Fizyka", average = .0))
Triple(
listOf(
getGrade(22, "Fizyka", 5.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 5.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0)
),
listOf(getSummary(semesterId = 22, subject = "Fizyka", average = .0)),
emptyList()
)
}
coEvery { gradeRepository.getGrades(student, semesters[2], true) } returns resourceFlow {
listOf(
getGrade(23, "Fizyka", 5.0, weight = 1.0),
getGrade(23, "Fizyka", 5.0, weight = 2.0),
getGrade(23, "Fizyka", 4.0, modifier = 0.33, weight = 2.0)
) to listOf(getSummary(semesterId = 23, subject = "Fizyka", average = .0))
Triple(
listOf(
getGrade(23, "Fizyka", 5.0, weight = 1.0),
getGrade(23, "Fizyka", 5.0, weight = 2.0),
getGrade(23, "Fizyka", 4.0, modifier = 0.33, weight = 2.0)
),
listOf(getSummary(semesterId = 23, subject = "Fizyka", average = .0)),
emptyList()
)
}
val items = runBlocking {
@ -1366,16 +1524,20 @@ class GradeAverageProviderTest {
true
)
} returns resourceFlow {
listOf(
getGrade(22, "Fizyka", 5.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 5.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0)
) to listOf(getSummary(semesterId = 22, subject = "Fizyka", average = .0))
Triple(
listOf(
getGrade(22, "Fizyka", 5.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 5.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0),
getGrade(22, "Fizyka", 6.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 4.0),
getGrade(22, "Fizyka", 6.0, weight = 2.0)
),
listOf(getSummary(semesterId = 22, subject = "Fizyka", average = .0)),
emptyList()
)
}
coEvery {
gradeRepository.getGrades(
@ -1384,11 +1546,15 @@ class GradeAverageProviderTest {
true
)
} returns resourceFlow {
listOf(
getGrade(23, "Fizyka", 5.0, weight = 1.0),
getGrade(23, "Fizyka", 5.0, weight = 2.0),
getGrade(23, "Fizyka", 4.0, modifier = 0.33, weight = 2.0)
) to listOf(getSummary(semesterId = 23, subject = "Fizyka", average = .0))
Triple(
listOf(
getGrade(23, "Fizyka", 5.0, weight = 1.0),
getGrade(23, "Fizyka", 5.0, weight = 2.0),
getGrade(23, "Fizyka", 4.0, modifier = 0.33, weight = 2.0)
),
listOf(getSummary(semesterId = 23, subject = "Fizyka", average = .0)),
emptyList()
)
}
val items = runBlocking {
@ -1413,9 +1579,9 @@ class GradeAverageProviderTest {
every { preferencesRepository.isOptionalArithmeticAverageFlow } returns flowOf(false)
coEvery { gradeRepository.getGrades(student, semesters[1], true) } returns
resourceFlow { firstGrades to firstSummaries }
resourceFlow { Triple(firstGrades, firstSummaries, emptyList()) }
coEvery { gradeRepository.getGrades(student, semesters[2], true) } returns
resourceFlow { listOf<Grade>() to firstSummaries }
resourceFlow { Triple(listOf<Grade>(), firstSummaries, emptyList()) }
val items = runBlocking {
gradeAverageProvider.getGradesDetailsWithAverage(