From 6600fc0e9a1b81736ce7bac6390ec2123af665e3 Mon Sep 17 00:00:00 2001 From: Bryson Zimmerman Date: Wed, 6 Nov 2024 11:47:19 -0500 Subject: [PATCH] Finished TileHeap conversion --- src/main/kotlin/data/TileHeap.kt | 4 +++- src/test/kotlin/TileHeapTest.kt | 9 +++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/data/TileHeap.kt b/src/main/kotlin/data/TileHeap.kt index c8610b8..6ba7de8 100644 --- a/src/main/kotlin/data/TileHeap.kt +++ b/src/main/kotlin/data/TileHeap.kt @@ -1,5 +1,6 @@ package technology.zim.data +import technology.zim.World import kotlin.math.abs //Translated code from CS222 MaxHeap homework @@ -13,12 +14,13 @@ class TileHeap(val end: Tile) { } fun popMin(): Tile { - if(dat.isEmpty()) { + if(dat.isEmpty()) { throw ArrayIndexOutOfBoundsException() } val ret = dat[1] dat[1] = dat[dat.size - 1] + dat.removeLast() siftDown(1) return ret diff --git a/src/test/kotlin/TileHeapTest.kt b/src/test/kotlin/TileHeapTest.kt index 43286dd..10c5ea8 100644 --- a/src/test/kotlin/TileHeapTest.kt +++ b/src/test/kotlin/TileHeapTest.kt @@ -1,3 +1,4 @@ +import technology.zim.data.Tile import technology.zim.data.TileHeap import kotlin.test.Test import kotlin.test.BeforeTest @@ -6,19 +7,19 @@ import kotlin.test.BeforeTest class TileHeapTest { companion object { - var heap = TileHeap() + var heap = TileHeap(Tile(20, 20)) } @BeforeTest fun setUp() { - heap = TileHeap() - arrayOf(10, 20, 15, 17, 9, 21).forEach { item -> + heap = TileHeap(Tile(20, 20)) + arrayOf(Tile(0, 0), Tile(1, 1), Tile(5, 5), Tile(4, 4), Tile(19, 19), Tile(2, 2)).forEach { item -> heap.insert(item) } } @Test fun sortTest() { - arrayOf(9, 10, 15, 17, 20, 21 ).forEach { item -> + arrayOf(Tile(19, 19), Tile(5, 5), Tile(4, 4), Tile(2, 2), Tile(1, 1), Tile(0, 0) ).forEach { item -> val popped = heap.popMin() println("$item: Got $popped")