Simplify integerDivisionDown and integerDivisionUp
This commit is contained in:
parent
0d52bd8e19
commit
2fc7073c01
@ -44,16 +44,7 @@ fun BigInteger.toIntSafe(): Int {
|
|||||||
@Suppress("SameParameterValue")
|
@Suppress("SameParameterValue")
|
||||||
fun integerDivisionDown(elements: Int, elementsPerRow: Int): Int {
|
fun integerDivisionDown(elements: Int, elementsPerRow: Int): Int {
|
||||||
require(elements >= 0) { "Invalid amount of elements $elements" }
|
require(elements >= 0) { "Invalid amount of elements $elements" }
|
||||||
|
return (elements - 1) / elementsPerRow
|
||||||
if (elements == 0) {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
if (elements % elementsPerRow == 0) {
|
|
||||||
return elements / elementsPerRow - 1
|
|
||||||
}
|
|
||||||
|
|
||||||
return elements / elementsPerRow
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -69,14 +60,5 @@ fun integerDivisionDown(elements: Int, elementsPerRow: Int): Int {
|
|||||||
@Suppress("SameParameterValue")
|
@Suppress("SameParameterValue")
|
||||||
fun integerDivisionUp(elements: Int, elementsPerRow: Int): Int {
|
fun integerDivisionUp(elements: Int, elementsPerRow: Int): Int {
|
||||||
require(elements >= 0) { "Invalid amount of elements $elements" }
|
require(elements >= 0) { "Invalid amount of elements $elements" }
|
||||||
|
return (elements + elementsPerRow - 1) / elementsPerRow
|
||||||
if (elements == 0) {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
if (elements % elementsPerRow == 0) {
|
|
||||||
return elements / elementsPerRow
|
|
||||||
}
|
|
||||||
|
|
||||||
return elements / elementsPerRow + 1
|
|
||||||
}
|
}
|
||||||
|
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