diff --git a/src/main/scala/ninetyNineScalaProblems/Problem23.scala b/src/main/scala/ninetyNineScalaProblems/Problem23.scala new file mode 100644 index 0000000..0129672 --- /dev/null +++ b/src/main/scala/ninetyNineScalaProblems/Problem23.scala @@ -0,0 +1,7 @@ +package ninetyNineScalaProblems + +import scala.util.Random + +object Problem23: + def randomSelect(n: Int, list: List[Any]): List[Any] = + Problem18.slice(0, n, Random.shuffle(list)) \ No newline at end of file diff --git a/src/test/scala/ninetyNineScalaProblems/Problem23Suite.scala b/src/test/scala/ninetyNineScalaProblems/Problem23Suite.scala new file mode 100644 index 0000000..9a8d51e --- /dev/null +++ b/src/test/scala/ninetyNineScalaProblems/Problem23Suite.scala @@ -0,0 +1,13 @@ +package ninetyNineScalaProblems + +class Problem23Suite extends munit.FunSuite: + List( + ((1, List(1)), 1), + ((0, List()), 0), + ((0, List(1)), 0), + ((0, List(1, 2, 3, 4, 5)), 0), + ((3, List(1, 2, 3, 4, 5)), 3), + ).foreach: + case ((n, list), expectedLength) => + test(s"randomSelect returns [$expectedLength]"): + assertEquals(Problem23.randomSelect(n, list).length, expectedLength) \ No newline at end of file