summaryrefslogtreecommitdiff
path: root/src/test/scala/forge/EvaluationTests.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/scala/forge/EvaluationTests.scala')
-rw-r--r--src/test/scala/forge/EvaluationTests.scala49
1 files changed, 26 insertions, 23 deletions
diff --git a/src/test/scala/forge/EvaluationTests.scala b/src/test/scala/forge/EvaluationTests.scala
index cecbf5f1..d80781c0 100644
--- a/src/test/scala/forge/EvaluationTests.scala
+++ b/src/test/scala/forge/EvaluationTests.scala
@@ -7,30 +7,36 @@ import utest._
object EvaluationTests extends TestSuite{
+ val workspace = jnio.Paths.get("target/workspace")
val tests = Tests{
- val baseCtx = DefCtx("forge.ForgeTests.tests ", None)
-
val graphs = new TestUtil.TestGraphs()
import graphs._
'evaluateSingle - {
- val evaluator = new Evaluator(jnio.Paths.get("target/workspace"), baseCtx)
- def check(target: Target[_], expValue: Any, expEvaled: OSet[Target[_]]) = {
- val Evaluator.Results(returnedValues, returnedEvaluated) = evaluator.evaluate(OSet(target))
- assert(
- returnedValues == Seq(expValue),
- returnedEvaluated == expEvaled
- )
- // Second time the value is already cached, so no evaluation needed
- val Evaluator.Results(returnedValues2, returnedEvaluated2) = evaluator.evaluate(OSet(target))
- assert(
- returnedValues2 == returnedValues,
- returnedEvaluated2 == OSet()
+
+ class Checker[T: Discovered](base: T) {
+ val evaluator = new Evaluator(
+ workspace,
+ implicitly[Discovered[T]].apply(base).map(_.swap).toMap
)
+ def apply(target: Target[_], expValue: Any, expEvaled: OSet[Target[_]]) = {
+ val Evaluator.Results(returnedValues, returnedEvaluated) = evaluator.evaluate(OSet(target))
+ assert(
+ returnedValues == Seq(expValue),
+ returnedEvaluated == expEvaled
+ )
+ // Second time the value is already cached, so no evaluation needed
+ val Evaluator.Results(returnedValues2, returnedEvaluated2) = evaluator.evaluate(OSet(target))
+ assert(
+ returnedValues2 == returnedValues,
+ returnedEvaluated2 == OSet()
+ )
+ }
}
'singleton - {
import singleton._
+ val check = new Checker(singleton)
// First time the target is evaluated
check(single, expValue = 0, expEvaled = OSet(single))
@@ -40,16 +46,20 @@ object EvaluationTests extends TestSuite{
}
'pair - {
import pair._
+ val check = new Checker(pair)
check(down, expValue = 0, expEvaled = OSet(up, down))
+ println("=" * 20 + "incrementing down.counter" + "=" * 20)
down.counter += 1
check(down, expValue = 1, expEvaled = OSet(down))
+ println("=" * 20 + "incrementing up.counter" + "=" * 20)
up.counter += 1
check(down, expValue = 2, expEvaled = OSet(up, down))
}
'anonTriple - {
import anonTriple._
+ val check = new Checker(anonTriple)
val middle = down.inputs(0)
check(down, expValue = 0, expEvaled = OSet(up, middle, down))
@@ -65,6 +75,7 @@ object EvaluationTests extends TestSuite{
}
'diamond - {
import diamond._
+ val check = new Checker(diamond)
check(down, expValue = 0, expEvaled = OSet(up, left, right, down))
down.counter += 1
@@ -82,6 +93,7 @@ object EvaluationTests extends TestSuite{
}
'anonDiamond - {
import anonDiamond._
+ val check = new Checker(anonDiamond)
val left = down.inputs(0).asInstanceOf[Target.Test]
val right = down.inputs(1).asInstanceOf[Target.Test]
check(down, expValue = 0, expEvaled = OSet(up, left, right, down))
@@ -99,15 +111,6 @@ object EvaluationTests extends TestSuite{
right.counter += 1
check(down, expValue = 5, expEvaled = OSet(left, right, down))
}
-// 'anonImpureDiamond - {
-// import AnonImpureDiamond._
-// val left = down.inputs(0).asInstanceOf[Target.Test]
-// val right = down.inputs(1).asInstanceOf[Target.Test]
-// check(down, expValue = 0, expEvaled = Seq(up, left, right, down))
-//
-// down.counter += 1
-// check(down, expValue = 1, expEvaled = Seq(left, down))
-// }
}