From bcf8280726d49d5e0b9f8b3d2e6aeae32484a235 Mon Sep 17 00:00:00 2001
From: "Emmanouil (Manos) Koukoutos" <emmanouil.koukoutos@epfl.ch>
Date: Fri, 19 Dec 2014 15:08:44 +0100
Subject: [PATCH] Don't run correct examples

---
 .../leon/repair/RepairTrackingEvaluator.scala |  2 +-
 src/main/scala/leon/repair/Repairman.scala    | 23 ++++---------------
 2 files changed, 6 insertions(+), 19 deletions(-)

diff --git a/src/main/scala/leon/repair/RepairTrackingEvaluator.scala b/src/main/scala/leon/repair/RepairTrackingEvaluator.scala
index 3fcb7f331..8ac452b9f 100644
--- a/src/main/scala/leon/repair/RepairTrackingEvaluator.scala
+++ b/src/main/scala/leon/repair/RepairTrackingEvaluator.scala
@@ -9,7 +9,7 @@ import leon.purescala.Definitions._
 import leon.LeonContext
 import leon.evaluators.RecursiveEvaluator
 
-abstract class RepairTrackingEvaluator(ctx: LeonContext, prog: Program) extends RecursiveEvaluator(ctx, prog, 50000) {
+class RepairTrackingEvaluator(ctx: LeonContext, prog: Program) extends RecursiveEvaluator(ctx, prog, 50000) {
   type RC = CollectingRecContext
   type GC = GlobalContext
   
diff --git a/src/main/scala/leon/repair/Repairman.scala b/src/main/scala/leon/repair/Repairman.scala
index 818dbb9a7..1c0cf9ed9 100644
--- a/src/main/scala/leon/repair/Repairman.scala
+++ b/src/main/scala/leon/repair/Repairman.scala
@@ -174,32 +174,19 @@ class Repairman(ctx: LeonContext, initProgram: Program, fd: FunDef, verifTimeout
       // We don't want tests whose invocation will call other failing tests.
       // This is because they will appear erroneous, 
       // even though the error comes from the called test
-      val testEval : RepairTrackingEvaluator = new RepairTrackingEvaluator(ctx, program) {
-        def withFilter(fi : FI) = fi._1 == fd
-      }
-
-      val passingTs = for (test <- passingTests) yield InExample(test.ins)
-      val failingTs = for (test <- failingTests) yield InExample(test.ins)
-
-      (failingTs ++ passingTs) foreach { ts => 
+      val testEval = new RepairTrackingEvaluator(ctx, program)
+      
+      failingTests foreach { ts => 
         testEval.eval(functionInvocation(fd, ts.ins))
       }
       
       val test2Tests : Map[FI, Set[FI]] = testEval.fullCallGraph
-      
-      //println("CALL GRAPH")
-      //for {
-      //  ((fi, args), tos) <- test2Tests
-      //  (tofi, toArgs) <- tos
-      //}{
-      //  println(s"${fi.id}(${args mkString ", "}) ----> ${tofi.id}(${toArgs mkString ", "})")
-      //}
 
       def isFailing(fi : FI) = !testEval.fiStatus(fi) && (fi._1 == fd)
       val failing = test2Tests filter { case (from, to) => 
-         isFailing(from) && (to forall (!isFailing(_)) )
+        isFailing(from) && (to forall (!isFailing(_)) )
       }
-
+      
       failing.keySet map { case (_, args) => InExample(args) }
     }
 
-- 
GitLab