Sha256: fb3b553d45e5bcc784d4d76731f11c5b7bf8a03e17d23c800465183269740f4c
Contents?: true
Size: 1.49 KB
Versions: 168
Compression:
Stored size: 1.49 KB
Contents
import testgen._ import TestSuiteBuilder.{toString, _} import java.io.File object BowlingTestGenerator { def main(args: Array[String]): Unit = { val file = new File("src/main/resources/bowling.json") def previousRolls(parseResult: CanonicalDataParser.ParseResult): String = TestSuiteBuilder.toString(parseResult("previous_rolls")) def roll(parseResult: CanonicalDataParser.ParseResult): Option[String] = if (parseResult contains "roll") Some(TestSuiteBuilder.toString(parseResult("roll"))) else None def fromLabeledTest(argNames: String*): ToTestCaseData = withLabeledTest { sut => labeledTest => val previousRollsVal = previousRolls(labeledTest.result) val rollVal = roll(labeledTest.result) val isDefined = labeledTest.expected.fold(Function.const(".isLeft"), Function.const("")) val sutCall = rollVal match { case Some(r) => s"""val score = ${previousRollsVal}.foldLeft(Bowling())((acc, roll) => acc.roll(roll)).roll($r).score() score$isDefined""" case None => s"""val score = ${previousRollsVal}.foldLeft(Bowling())((acc, roll) => acc.roll(roll)).score() score$isDefined""" } val expected = labeledTest.expected.fold(Function.const("true"), x => s"Right($x)") TestCaseData(labeledTest.description, sutCall, expected) } val code = TestSuiteBuilder.build(file, fromLabeledTest("previous_rolls", "roll")) println(s"-------------") println(code) println(s"-------------") } }
Version data entries
168 entries across 168 versions & 1 rubygems