Files
functional-programming-snake/scala/test/M01Util.test.scala
T
2026-10-29 00:07:27 +01:00

24 lines
1.2 KiB
Scala

package snake
class M01UtilSuite extends munit.FunSuite:
test("range(0) is empty") { assertEquals(Util.range(0), Nil) }
test("range(3) counts from zero up to n-1") { assertEquals(Util.range(3), List(0, 1, 2)) }
test("dropLast of an empty list is empty") { assertEquals(Util.dropLast(List.empty[Int]), Nil) }
test("dropLast removes only the last element") { assertEquals(Util.dropLast(List(1, 2, 3)), List(1, 2)) }
test("dropLast leaves its input untouched") {
val xs = List(1, 2, 3)
assertEquals(Util.dropLast(xs), List(1, 2))
assertEquals(xs, List(1, 2, 3))
}
private val sameParity = (a: Int, b: Int) => a % 2 == b % 2
test("contains finds an element using the supplied equality") {
assertEquals(Util.contains(List(1, 2, 3), 5, sameParity), true)
}
test("contains is false when no element is equal") { assertEquals(Util.contains(List(2, 4), 3, sameParity), false) }
test("contains is false for an empty list") { assertEquals(Util.contains(List.empty[Int], 1, _ == _), false) }
test("contains compares structurally when given a structural equality") {
assertEquals(Util.contains(List(Point(1, 2)), Point(1, 2), _ == _), true)
}