From 49e5781288400b96c5656f2c6b912cac6aba60ab Mon Sep 17 00:00:00 2001 From: Graham Date: Sat, 29 May 2021 12:48:25 +0100 Subject: [PATCH] Add addAll and clear methods to UniqueQueue Signed-off-by: Graham --- .../org/openrs2/util/collect/UniqueQueue.kt | 19 ++++++++++++++++++ .../openrs2/util/collect/UniqueQueueTest.kt | 20 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/util/src/main/kotlin/org/openrs2/util/collect/UniqueQueue.kt b/util/src/main/kotlin/org/openrs2/util/collect/UniqueQueue.kt index 85ab246b..d6f4e87f 100644 --- a/util/src/main/kotlin/org/openrs2/util/collect/UniqueQueue.kt +++ b/util/src/main/kotlin/org/openrs2/util/collect/UniqueQueue.kt @@ -13,6 +13,20 @@ public class UniqueQueue { return false } + public operator fun plusAssign(v: T) { + add(v) + } + + public fun addAll(vs: Iterable) { + for (v in vs) { + add(v) + } + } + + public operator fun plusAssign(vs: Iterable) { + addAll(vs) + } + public fun poll(): T? { val v = queue.removeFirstOrNull() if (v != null) { @@ -22,4 +36,9 @@ public class UniqueQueue { return null } + + public fun clear() { + queue.clear() + set.clear() + } } diff --git a/util/src/test/kotlin/org/openrs2/util/collect/UniqueQueueTest.kt b/util/src/test/kotlin/org/openrs2/util/collect/UniqueQueueTest.kt index 09302967..535699c3 100644 --- a/util/src/test/kotlin/org/openrs2/util/collect/UniqueQueueTest.kt +++ b/util/src/test/kotlin/org/openrs2/util/collect/UniqueQueueTest.kt @@ -18,4 +18,24 @@ class UniqueQueueTest { assertEquals("b", queue.poll()) assertNull(queue.poll()) } + + @Test + fun testAddAll() { + val queue = UniqueQueue() + queue.addAll(listOf("a", "b", "a")) + + assertEquals("a", queue.poll()) + assertEquals("b", queue.poll()) + assertNull(queue.poll()) + } + + @Test + fun testClear() { + val queue = UniqueQueue() + assertTrue(queue.add("a")) + + queue.clear() + + assertNull(queue.poll()) + } }