From 5af7008a60039c6bed59622972ac416773e5c246 Mon Sep 17 00:00:00 2001 From: bearmug Date: Sun, 5 Mar 2017 23:31:02 +0300 Subject: [PATCH] #20 fix failed code coverage --- .../org/bearmug/algo/course01/week04/Karger.scala | 13 ++++++++----- .../algo/course01/week02/InversionsSuite.scala | 8 ++++++++ .../bearmug/algo/course01/week04/KargerSuite.scala | 4 ++++ 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/main/scala/org/bearmug/algo/course01/week04/Karger.scala b/src/main/scala/org/bearmug/algo/course01/week04/Karger.scala index 35ab96e..dbe8f65 100644 --- a/src/main/scala/org/bearmug/algo/course01/week04/Karger.scala +++ b/src/main/scala/org/bearmug/algo/course01/week04/Karger.scala @@ -28,8 +28,7 @@ class Karger(m: Map[Int, List[Int]]) { } m match { - case e if e.isEmpty => Int.MaxValue - case _ => (0 until m.size).map { _ => calcCut(m, m.keys.toVector) } min + case _ => (0 until (m.size max 10)).map { _ => calcCut(m, m.keys.toVector) }.min } } } @@ -38,8 +37,12 @@ object Karger { def apply(m: Map[Int, List[Int]]): Karger = new Karger(m) def apply(fileName: String): Karger = - apply(Source.fromURL(getClass.getResource(fileName)).getLines().map{ _.split("\t").map(_.toInt).toList match { - case n :: rest => n -> rest - }}.toMap) + apply(Source.fromURL(getClass.getResource(fileName)) + .getLines() + .map(_ + .split("\t") + .map(_.toInt) + .toList) + .map(l => l.head -> l.tail).toMap) } diff --git a/src/test/scala/org/bearmug/algo/course01/week02/InversionsSuite.scala b/src/test/scala/org/bearmug/algo/course01/week02/InversionsSuite.scala index e4bc9f9..2064201 100644 --- a/src/test/scala/org/bearmug/algo/course01/week02/InversionsSuite.scala +++ b/src/test/scala/org/bearmug/algo/course01/week02/InversionsSuite.scala @@ -67,6 +67,14 @@ class InversionsSuite extends FunSuite { assert(Inversions((1 to 100000 reverse).toVector).inversionsPar(4) == (100000 / 2) * (100000 - 1)) } + test("inversionsForce works for single element") { + assert(Inversions(Vector(1)).inversionsForce() == 0) + } + + test("inversionsForce works for of non-inversed elements") { + assert(Inversions(Vector(1, 2, 3)).inversionsForce() == 0) + } + test("inversionsForce works for of three two inversed elements") { assert(Inversions(Vector(3, 2, 1)).inversionsForce() == 3) } diff --git a/src/test/scala/org/bearmug/algo/course01/week04/KargerSuite.scala b/src/test/scala/org/bearmug/algo/course01/week04/KargerSuite.scala index b6bc453..b988934 100644 --- a/src/test/scala/org/bearmug/algo/course01/week04/KargerSuite.scala +++ b/src/test/scala/org/bearmug/algo/course01/week04/KargerSuite.scala @@ -10,6 +10,10 @@ class KargerSuite extends FunSuite { assert(Karger(Map[Int, List[Int]]()).minCut() == Int.MaxValue) } + test("minCut works for one-node graph") { + assert(Karger(Map(1 -> List(2))).minCut() == Int.MaxValue) + } + test("minCut works for two-nodes graph") { assert(Karger(Map(1 -> List(2), 2 -> List(1))).minCut() == 1) }