diff --git a/src/main/scala/ninetyNineScalaProblems/Problem28.scala b/src/main/scala/ninetyNineScalaProblems/Problem28.scala new file mode 100644 index 0000000..e3d6312 --- /dev/null +++ b/src/main/scala/ninetyNineScalaProblems/Problem28.scala @@ -0,0 +1,7 @@ +package ninetyNineScalaProblems + +import scala.annotation.tailrec + +object Problem28: + def lsort(list: List[List[Any]]): List[Any] = + list.sortWith((a, b) => a.length < b.length) \ No newline at end of file diff --git a/src/test/scala/ninetyNineScalaProblems/Problem28Suite.scala b/src/test/scala/ninetyNineScalaProblems/Problem28Suite.scala new file mode 100644 index 0000000..98c909a --- /dev/null +++ b/src/test/scala/ninetyNineScalaProblems/Problem28Suite.scala @@ -0,0 +1,15 @@ +package ninetyNineScalaProblems + +class Problem26Suite extends munit.FunSuite: + List( + (List(List(1, 2), List(1, 2, 3, 4), List(1, 2, 3)), List(List(1, 2), List(1, 2, 3), List(1, 2, 3, 4))), + (List(List(1, 2), List(1, 2, 3), List(1, 2, 3, 4)), List(List(1, 2), List(1, 2, 3), List(1, 2, 3, 4))), + (List(), List()), + (List(List(1)), List(List(1))), + (List(List(1), List(1)), List(List(1), List(1))), + (List(List(1, 2, 3), List(4, 5), List(6, 7, 8), List(4, 5), List(9, 10, 11, 12), List(13, 14), List(15)), + List(List(15), List(4, 5), List(4, 5), List(13, 14), List(1, 2, 3), List(6, 7, 8), List(9, 10, 11, 12))), + ).foreach: + case (list, expected) => + test(s"lsort returns [$expected]"): + assertEquals(Problem28.lsort(list), expected) \ No newline at end of file