From 53bd826e913cf9c48cc58f479895f9f124416b04 Mon Sep 17 00:00:00 2001 From: "nise.moe" Date: Thu, 7 Mar 2024 21:45:22 +0100 Subject: [PATCH] Simplified judgement model by having time as an Int instead of Double --- .../org/nisemoe/mari/judgements/CompressJudgements.kt | 6 +++--- .../kotlin/org/nisemoe/mari/judgements/JudgementModel.kt | 2 +- .../org/nisemoe/mari/judgements/CompressJudgementsTest.kt | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mari/src/main/kotlin/org/nisemoe/mari/judgements/CompressJudgements.kt b/mari/src/main/kotlin/org/nisemoe/mari/judgements/CompressJudgements.kt index 19dd7b0..b830fd4 100644 --- a/mari/src/main/kotlin/org/nisemoe/mari/judgements/CompressJudgements.kt +++ b/mari/src/main/kotlin/org/nisemoe/mari/judgements/CompressJudgements.kt @@ -55,7 +55,7 @@ class CompressJudgements { fun compress(judgements: List): ByteArray { val byteStream = ByteArrayOutputStream() - var lastTimestamp = 0.0 + var lastTimestamp = 0 judgements.forEach { judgement -> byteStream.use { stream -> @@ -63,7 +63,7 @@ class CompressJudgements { * We allocate an arbitrary amount of buffer which *hopefully* is enough. */ ByteBuffer.allocate(4096).let { buffer -> - buffer.putVLQ((judgement.time - lastTimestamp).toInt()) + buffer.putVLQ((judgement.time - lastTimestamp)) buffer.putVLQ(round(judgement.x * 100).toInt()) buffer.putVLQ(round(judgement.y * 100).toInt()) buffer.put(judgement.type.ordinal.toByte()) @@ -85,7 +85,7 @@ class CompressJudgements { val buffer = ByteBuffer.wrap(data) val judgements = mutableListOf() - var lastTime = 0.0 + var lastTime = 0 while (buffer.hasRemaining()) { val deltaTime = buffer.getVLQ() diff --git a/mari/src/main/kotlin/org/nisemoe/mari/judgements/JudgementModel.kt b/mari/src/main/kotlin/org/nisemoe/mari/judgements/JudgementModel.kt index 2b5a111..175c11c 100644 --- a/mari/src/main/kotlin/org/nisemoe/mari/judgements/JudgementModel.kt +++ b/mari/src/main/kotlin/org/nisemoe/mari/judgements/JudgementModel.kt @@ -9,7 +9,7 @@ import kotlinx.serialization.Serializable */ @Serializable data class Judgement( - val time: Double, + val time: Int, val x: Double, val y: Double, val type: Type, diff --git a/mari/src/test/kotlin/org/nisemoe/mari/judgements/CompressJudgementsTest.kt b/mari/src/test/kotlin/org/nisemoe/mari/judgements/CompressJudgementsTest.kt index 9d5f761..06b7063 100644 --- a/mari/src/test/kotlin/org/nisemoe/mari/judgements/CompressJudgementsTest.kt +++ b/mari/src/test/kotlin/org/nisemoe/mari/judgements/CompressJudgementsTest.kt @@ -9,8 +9,8 @@ class CompressJudgementsTest { @Test fun testCompress() { val judgements = listOf( - Judgement(time = 1.0, x = 1.0, y = 1.0, type = Judgement.Type.THREE_HUNDRED, distanceToCenter = 1.0, distanceToEdge = 1.0, error = 1.0), - Judgement(time = 2.0, x = 2.0, y = 2.0, type = Judgement.Type.THREE_HUNDRED, distanceToCenter = 2.0, distanceToEdge = 2.0, error = 2.0) + Judgement(time = 1, x = 1.0, y = 1.0, type = Judgement.Type.THREE_HUNDRED, distanceToCenter = 1.0, distanceToEdge = 1.0, error = 1.0), + Judgement(time = 2, x = 2.0, y = 2.0, type = Judgement.Type.THREE_HUNDRED, distanceToCenter = 2.0, distanceToEdge = 2.0, error = 2.0) ) val compressedData = CompressJudgements.compress(judgements) assertTrue(compressedData.isNotEmpty()) @@ -19,8 +19,8 @@ class CompressJudgementsTest { @Test fun testCompressAndDecompress() { val originalJudgements = listOf( - Judgement(time = 1.123456789123456, x = 1.0, y = 1.0, type = Judgement.Type.THREE_HUNDRED, distanceToCenter = 1.0, distanceToEdge = 1.0, error = 1.0), - Judgement(time = 2.123456789123456, x = 2.0, y = 2.0, type = Judgement.Type.THREE_HUNDRED, distanceToCenter = 2.0, distanceToEdge = 2.0, error = 2.0) + Judgement(time = 1, x = 1.0, y = 1.0, type = Judgement.Type.THREE_HUNDRED, distanceToCenter = 1.0, distanceToEdge = 1.0, error = 1.0), + Judgement(time = 2, x = 2.0, y = 2.0, type = Judgement.Type.THREE_HUNDRED, distanceToCenter = 2.0, distanceToEdge = 2.0, error = 2.0) ) val compressedData = CompressJudgements.compress(originalJudgements) val decompressedJudgements = CompressJudgements.decompress(compressedData)