Skip to content

Commit c0afb07

Browse files
committed
10 digit precision in JVM assertions
1 parent 08f3449 commit c0afb07

File tree

2 files changed

+21
-17
lines changed

2 files changed

+21
-17
lines changed

src/commonTest/kotlin/ltd/mbor/sciko/robotics/ModernRoboticsTest.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ import kotlin.test.assertEquals
2222
import kotlin.test.assertFalse
2323
import kotlin.test.assertTrue
2424

25-
class ModernRoboticsTest {
26-
fun Double.round(scale: Long = 8) = toBigDecimal().roundToDigitPositionAfterDecimalPoint(digitPosition = scale, roundingMode = RoundingMode.ROUND_HALF_CEILING).doubleValue(false)
27-
fun Double.roundSignificand(decimalPrecision: Long) = toBigDecimal().roundSignificand(DecimalMode(decimalPrecision = decimalPrecision, roundingMode = RoundingMode.ROUND_HALF_CEILING)).doubleValue(false)
25+
fun Double.round(scale: Long = 8) = toBigDecimal().roundToDigitPositionAfterDecimalPoint(digitPosition = scale, roundingMode = RoundingMode.ROUND_HALF_CEILING).doubleValue(false)
26+
fun Double.roundSignificand(decimalPrecision: Long) = toBigDecimal().roundSignificand(DecimalMode(decimalPrecision = decimalPrecision, roundingMode = RoundingMode.ROUND_HALF_CEILING)).doubleValue(false)
2827

29-
fun <D: Dimension> MultiArray<Double, D>.round(scale: Long = 8) = map { it.round(scale) }
30-
fun <D: Dimension> MultiArray<Double, D>.roundSignificand(decimalPrecision: Long) = map { it.roundSignificand(decimalPrecision) }
28+
fun <D: Dimension> MultiArray<Double, D>.round(scale: Long = 8) = map { it.round(scale) }
29+
fun <D: Dimension> MultiArray<Double, D>.roundSignificand(decimalPrecision: Long) = map { it.roundSignificand(decimalPrecision) }
3130

31+
class ModernRoboticsTest {
3232
// *** BASIC HELPER FUNCTIONS ***
3333

3434
@Test

src/jvmTest/kotlin/ltd/mbor/sciko/robotics/ModernRoboticsTestJvm.kt

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,17 @@ import org.jetbrains.kotlinx.multik.ndarray.operations.*
1010
import java.io.File
1111
import kotlin.math.PI
1212
import kotlin.math.roundToInt
13+
import kotlin.test.BeforeTest
1314
import kotlin.test.Test
1415
import kotlin.test.assertEquals
1516

1617
class ModernRoboticsTestJvm {
1718

19+
@BeforeTest
20+
fun setup() {
21+
mk.setEngine(KEEngineType)
22+
}
23+
1824
@Test
1925
fun `test InverseDynamicsTrajectory`() {
2026

@@ -77,9 +83,8 @@ class ModernRoboticsTestJvm {
7783
]).transpose(),
7884
)
7985
assertEquals(
80-
mk.d2arrayFromFile("InverseDynamicsTrajectory.csv"),
81-
taumat,
82-
"$taumat not equal ${mk.d2arrayFromFile("InverseDynamicsTrajectory.csv")}"
86+
mk.d2arrayFromFile("InverseDynamicsTrajectory.csv").round(10),
87+
taumat.round(10)
8388
)
8489

8590
//Output using kandy to plot the joint forces/torques
@@ -139,13 +144,12 @@ class ModernRoboticsTestJvm {
139144
intRes = 8
140145
)
141146
assertEquals(
142-
mk.d2arrayFromFile("ForwardDynamicsTrajectory-Theta.csv"),
143-
thetamat,
144-
"$thetamat not equal ${mk.d2arrayFromFile("ForwardDynamicsTrajectory-Theta.csv")}"
147+
mk.d2arrayFromFile("ForwardDynamicsTrajectory-Theta.csv").round(10),
148+
thetamat.round(10)
145149
)
146150
assertEquals(
147-
mk.d2arrayFromFile("ForwardDynamicsTrajectory-DTheta.csv"),
148-
dthetamat
151+
mk.d2arrayFromFile("ForwardDynamicsTrajectory-DTheta.csv").round(10),
152+
dthetamat.round(10)
149153
)
150154

151155
// Output using kandy to plot the joint angle/velocities
@@ -263,12 +267,12 @@ class ModernRoboticsTestJvm {
263267
intRes
264268
)
265269
assertEquals(
266-
mk.d2arrayFromFile("SimulateControl-ThetaActual.csv"),
267-
thetamat
270+
mk.d2arrayFromFile("SimulateControl-ThetaActual.csv").round(10),
271+
thetamat.round(10)
268272
)
269273
assertEquals(
270-
mk.d2arrayFromFile("SimulateControl-ThetaDesired.csv"),
271-
thetamatd
274+
mk.d2arrayFromFile("SimulateControl-ThetaDesired.csv").round(10),
275+
thetamatd.round(10)
272276
)
273277

274278
// Output using kandy to plot

0 commit comments

Comments
 (0)