diff --git a/src/main/scala/ninetyNineScalaProblems/Problem20.scala b/src/main/scala/ninetyNineScalaProblems/Problem20.scala new file mode 100644 index 0000000..af9f52f --- /dev/null +++ b/src/main/scala/ninetyNineScalaProblems/Problem20.scala @@ -0,0 +1,5 @@ +package ninetyNineScalaProblems + +object Problem20: + def removeAt(n: Int, list: List[Any]): Tuple2[List[Any], Any] = + (Problem18.slice(0, n, list) ::: Problem18.slice(n + 1, list.length, list), list(n)) \ No newline at end of file diff --git a/src/test/scala/ninetyNineScalaProblems/Problem20Suite.scala b/src/test/scala/ninetyNineScalaProblems/Problem20Suite.scala new file mode 100644 index 0000000..62f249f --- /dev/null +++ b/src/test/scala/ninetyNineScalaProblems/Problem20Suite.scala @@ -0,0 +1,13 @@ +package ninetyNineScalaProblems + +import scala.compiletime.ops.boolean + +class Problem20Suite extends munit.FunSuite: + List( + ((0, List(1, 2, 3, 4)), (List(2, 3, 4), 1)), + ((1, List(1, 2, 3, 4)), (List(1, 3, 4), 2)), + ((0, List(1)), (List(), 1)), + ).foreach: + case ((n, list), expected) => + test(s"removeAt returns [$expected]"): + assertEquals(Problem20.removeAt(n, list), expected) \ No newline at end of file