Add option to change plus and minus modifier separately (#192)

This commit is contained in:
Mikołaj Pich
2018-12-07 00:19:04 +01:00
committed by Rafał Borcz
parent 92baecbd0d
commit 900065d758
9 changed files with 82 additions and 41 deletions

View File

@ -3,31 +3,30 @@ package io.github.wulkanowy.utils
import io.github.wulkanowy.data.db.entities.Grade
import io.github.wulkanowy.data.db.entities.GradeSummary
import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Test
import org.mockito.Mockito.mock
import org.mockito.Mock
import org.mockito.MockitoAnnotations
import org.threeten.bp.LocalDate
class GradeExtensionTest {
@Mock
lateinit var date: LocalDate
@Before
fun before() {
MockitoAnnotations.initMocks(this)
}
@Test
fun calcWeightedAverage() {
val localDate = mock(LocalDate::class.java)
assertEquals(3.47, listOf(
Grade(1, 1, "", "", 5, 0.33
, "", "", "", "", "",
6, localDate, ""),
Grade(1, 1, "", "", 5, -0.33
, "", "", "", "", "",
5, localDate, ""),
Grade(1, 1, "", "", 4, 0.0
, "", "", "", "", "",
1, localDate, ""),
Grade(1, 1, "", "", 1, 0.5
, "", "", "", "", "",
9, localDate, ""),
Grade(1, 1, "", "", 0, 0.0
, "", "", "", "", "",
0, localDate, "")
createGrade(5, 6, 0.33),
createGrade(5, 5, -0.33),
createGrade(4, 1, 0.0),
createGrade(1, 9, 0.5),
createGrade(0, 0, 0.0)
).calcAverage(), 0.005)
}
@ -42,16 +41,39 @@ class GradeExtensionTest {
}
@Test
fun changeModifierTest() {
val localDate = mock(LocalDate::class.java)
assertEquals(0.33, Grade(1, 1, "", "", 5, 0.25
, "", "", "", "", "",
6, localDate, "").changeModifier(0.33).modifier, 0.0)
assertEquals(-0.33, Grade(1, 1, "", "", 5, -0.25
, "", "", "", "", "",
6, localDate, "").changeModifier(0.33).modifier, 0.0)
assertEquals(0.25, Grade(1, 1, "", "", 5, 0.25
, "", "", "", "", "",
6, localDate, "").changeModifier(0.0).modifier, 0.0)
fun changeModifier_default() {
assertEquals(.33, createGrade(5, 0, .33).changeModifier(.0, .0).modifier, .0)
assertEquals(-.33, createGrade(5, 0, -.33).changeModifier(.0, .0).modifier, .0)
}
@Test
fun changeModifier_plus() {
assertEquals(.33, createGrade(5, 0, .25).changeModifier(.33, .50).modifier, .0)
assertEquals(.25, createGrade(5, 0, .33).changeModifier(.25, .0).modifier, .0)
}
@Test
fun changeModifier_minus() {
assertEquals(-.33, createGrade(5, 0, -.25).changeModifier(.25, .33).modifier, .0)
assertEquals(-.25, createGrade(5, 0, -.33).changeModifier(.0, .25).modifier, .0)
}
private fun createGrade(value: Int, weightValue: Int = 0, modifier: Double = 0.25): Grade {
return Grade(
semesterId = 1,
studentId = 1,
subject = "",
entry = "",
value = value,
modifier = modifier,
comment = "",
color = "",
gradeSymbol = "",
description = "",
weight = "",
weightValue = weightValue,
date = date,
teacher = ""
)
}
}