Simplify integerDivisionDown and integerDivisionUp
This commit is contained in:
parent
0d52bd8e19
commit
2fc7073c01
@ -44,16 +44,7 @@ fun BigInteger.toIntSafe(): Int {
|
||||
@Suppress("SameParameterValue")
|
||||
fun integerDivisionDown(elements: Int, elementsPerRow: Int): Int {
|
||||
require(elements >= 0) { "Invalid amount of elements $elements" }
|
||||
|
||||
if (elements == 0) {
|
||||
return 0
|
||||
}
|
||||
|
||||
if (elements % elementsPerRow == 0) {
|
||||
return elements / elementsPerRow - 1
|
||||
}
|
||||
|
||||
return elements / elementsPerRow
|
||||
return (elements - 1) / elementsPerRow
|
||||
}
|
||||
|
||||
/**
|
||||
@ -69,14 +60,5 @@ fun integerDivisionDown(elements: Int, elementsPerRow: Int): Int {
|
||||
@Suppress("SameParameterValue")
|
||||
fun integerDivisionUp(elements: Int, elementsPerRow: Int): Int {
|
||||
require(elements >= 0) { "Invalid amount of elements $elements" }
|
||||
|
||||
if (elements == 0) {
|
||||
return 0
|
||||
}
|
||||
|
||||
if (elements % elementsPerRow == 0) {
|
||||
return elements / elementsPerRow
|
||||
}
|
||||
|
||||
return elements / elementsPerRow + 1
|
||||
return (elements + elementsPerRow - 1) / elementsPerRow
|
||||
}
|
||||
|
41
src/test/kotlin/ru/dbotthepony/mc/otm/tests/MathTests.kt
Normal file
41
src/test/kotlin/ru/dbotthepony/mc/otm/tests/MathTests.kt
Normal file
@ -0,0 +1,41 @@
|
||||
package ru.dbotthepony.mc.otm.tests
|
||||
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import org.junit.jupiter.api.DisplayName
|
||||
import org.junit.jupiter.api.Test
|
||||
import ru.dbotthepony.mc.otm.core.integerDivisionDown
|
||||
import ru.dbotthepony.mc.otm.core.integerDivisionUp
|
||||
|
||||
object MathTests {
|
||||
@Test
|
||||
@DisplayName("Integer divisions (round up and round down)")
|
||||
fun integerDivision() {
|
||||
assertEquals(0, integerDivisionDown(0, 9))
|
||||
assertEquals(0, integerDivisionDown(1, 9))
|
||||
assertEquals(0, integerDivisionDown(4, 9))
|
||||
assertEquals(0, integerDivisionDown(5, 9))
|
||||
assertEquals(0, integerDivisionDown(9, 9))
|
||||
assertEquals(1, integerDivisionDown(10, 9))
|
||||
assertEquals(1, integerDivisionDown(11, 9))
|
||||
assertEquals(1, integerDivisionDown(12, 9))
|
||||
assertEquals(1, integerDivisionDown(15, 9))
|
||||
assertEquals(1, integerDivisionDown(16, 9))
|
||||
assertEquals(1, integerDivisionDown(17, 9))
|
||||
assertEquals(1, integerDivisionDown(18, 9))
|
||||
assertEquals(2, integerDivisionDown(19, 9))
|
||||
|
||||
assertEquals(0, integerDivisionUp(0, 9))
|
||||
assertEquals(1, integerDivisionUp(1, 9))
|
||||
assertEquals(1, integerDivisionUp(4, 9))
|
||||
assertEquals(1, integerDivisionUp(5, 9))
|
||||
assertEquals(1, integerDivisionUp(9, 9))
|
||||
assertEquals(2, integerDivisionUp(10, 9))
|
||||
assertEquals(2, integerDivisionUp(11, 9))
|
||||
assertEquals(2, integerDivisionUp(12, 9))
|
||||
assertEquals(2, integerDivisionUp(15, 9))
|
||||
assertEquals(2, integerDivisionUp(16, 9))
|
||||
assertEquals(2, integerDivisionUp(17, 9))
|
||||
assertEquals(2, integerDivisionUp(18, 9))
|
||||
assertEquals(3, integerDivisionUp(19, 9))
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user