Karlo Lozovina
01/25/2022, 11:32 PMo1 shouldBe o2
(o1 == o2) shouldBe true
sam
01/25/2022, 11:41 PMsam
01/25/2022, 11:41 PMKarlo Lozovina
01/25/2022, 11:41 PMKarlo Lozovina
01/25/2022, 11:42 PMsam
01/25/2022, 11:42 PMsam
01/25/2022, 11:42 PMKarlo Lozovina
01/25/2022, 11:44 PMKarlo Lozovina
01/25/2022, 11:46 PMsam
01/25/2022, 11:46 PMsam
01/25/2022, 11:46 PMsam
01/25/2022, 11:46 PMKarlo Lozovina
01/25/2022, 11:46 PMKarlo Lozovina
01/25/2022, 11:47 PMKarlo Lozovina
01/26/2022, 12:11 AMimport io.kotest.core.spec.style.FunSpec
import io.kotest.matchers.shouldBe
class ArraySet(val orders: Array<String>) : Set<String> {
override val size get() = orders.size
override fun iterator() = orders.iterator()
override fun contains(element: String) = orders.contains(element)
override fun containsAll(elements: Collection<String>) = orders.toList().containsAll(elements)
override fun isEmpty() = orders.isEmpty()
override fun equals(other: Any?): Boolean = false
override fun hashCode(): Int {
return orders.sumOf { it.hashCode() }
}
companion object {
fun of(vararg orders: String): ArraySet {
return ArraySet(orders.distinct().toTypedArray())
}
}
}
class ArraySetTest : FunSpec({
val o1 = ArraySet.of("foo", "bar")
val o2 = ArraySet.of("bar", "foo")
val o3 = ArraySet.of("foo", "bar")
val o4 = ArraySet.of("foo, bar, baz")
test("1. permutation") {
o1 shouldBe o2
}
test("2. completely equal") {
o1 shouldBe o3
}
test("3. different elements") {
o1 shouldBe o4
}
})
sam
01/26/2022, 12:21 AMsam
01/26/2022, 12:21 AMKarlo Lozovina
01/26/2022, 12:25 AMsam
01/26/2022, 12:25 AMsam
01/26/2022, 12:25 AM