summaryrefslogtreecommitdiff
path: root/src/test/scala/forge/TestUtil.scala
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2017-10-31 08:35:46 -0700
committerLi Haoyi <haoyi.sg@gmail.com>2017-10-31 08:35:46 -0700
commit33ee29edc7dcf580099dfc7482737129ac2bddd0 (patch)
treed87c1628ab05125a304177a4ecbcf58e75bde8b1 /src/test/scala/forge/TestUtil.scala
parent405fa45fb0f2fe2a5d7d8f0f7ebd8f112fc7cd70 (diff)
downloadmill-33ee29edc7dcf580099dfc7482737129ac2bddd0.tar.gz
mill-33ee29edc7dcf580099dfc7482737129ac2bddd0.tar.bz2
mill-33ee29edc7dcf580099dfc7482737129ac2bddd0.zip
Sketched out structure of Scala subprojects
Diffstat (limited to 'src/test/scala/forge/TestUtil.scala')
-rw-r--r--src/test/scala/forge/TestUtil.scala20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/test/scala/forge/TestUtil.scala b/src/test/scala/forge/TestUtil.scala
index 8405c87c..9337fbe0 100644
--- a/src/test/scala/forge/TestUtil.scala
+++ b/src/test/scala/forge/TestUtil.scala
@@ -1,12 +1,28 @@
package forge
-import forge.util.OSet
+import forge.util.{Args, OSet}
import utest.assert
-
import scala.collection.mutable
object TestUtil {
+ def test(inputs: Target[Int]*) = {
+ new Test(inputs, pure = inputs.nonEmpty)
+ }
+ /**
+ * A dummy target that takes any number of inputs, and whose output can be
+ * controlled externally, so you can construct arbitrary dataflow graphs and
+ * test how changes propagate.
+ */
+ class Test(val inputs: Seq[Target[Int]],
+ val pure: Boolean) extends Target[Int]{
+ var counter = 0
+ def evaluate(args: Args) = {
+ counter + args.args.map(_.asInstanceOf[Int]).sum
+ }
+
+ override def sideHash = counter
+ }
def checkTopological(targets: OSet[Target[_]]) = {
val seen = mutable.Set.empty[Target[_]]
for(t <- targets.items.reverseIterator){