fix another FragmentedArrayFloatList batch adding bug + tests

This commit is contained in:
Moritz Zwerger 2023-10-21 21:17:12 +02:00
parent b2f3e0fc4e
commit 406819f64e
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
3 changed files with 17 additions and 8 deletions

View File

@ -51,7 +51,7 @@ class BakedFace(
val mesh = mesh.mesh(texture)
mesh.data.ensureSize(SingleChunkMesh.WorldMeshStruct.FLOATS_PER_VERTEX * (mesh.order.size / 2))
mesh.data.ensureSize(SingleChunkMesh.WorldMeshStruct.FLOATS_PER_VERTEX * mesh.order.size)
var index = 0
val size = mesh.order.size

View File

@ -88,7 +88,7 @@ class FragmentedArrayFloatList(
return buffer
}
if (left == 0) return buffer
return grow(left)
return this.incomplete.firstOrNull() ?: grow(left)
}
fun add(value1: Float, value2: Float) {

View File

@ -64,9 +64,21 @@ class FragmentedFloatListTest : DirectFloatListTest() {
}
assertEquals(list.size, 700)
val expected = FloatArray(700) { it.toFloat() }
println(expected.contentToString())
val array = list.toArray()
println(array.contentToString())
assertContentEquals(expected, array)
}
@Test
fun `batch adding 7 floats and ensuring size`() {
val list = FragmentedArrayFloatList(100)
for (i in 0 until 100) {
list.ensureSize(21)
val offset = i * 7.0f
list.add(offset + 0, offset + 1, offset + 2, offset + 3, offset + 4, offset + 5, offset + 6)
}
assertEquals(list.size, 700)
val expected = FloatArray(700) { it.toFloat() }
val array = list.toArray()
assertContentEquals(expected, array)
}
@ -75,14 +87,11 @@ class FragmentedFloatListTest : DirectFloatListTest() {
val list = FragmentedArrayFloatList(1)
for (i in 0 until 100) {
val offset = i * 7.0f
val a = floatArrayOf(offset + 0, offset + 1, offset + 2, offset + 3, offset + 4, offset + 5, offset + 6)
list += a
list += floatArrayOf(offset + 0, offset + 1, offset + 2, offset + 3, offset + 4, offset + 5, offset + 6)
}
assertEquals(list.size, 700)
val expected = FloatArray(700) { it.toFloat() }
println(expected.contentToString())
val array = list.toArray()
println(array.contentToString())
assertContentEquals(expected, array)
}
}