Sha256: 651a1c21aa2abc09487acf5007964a958595f44a9c23bf07a9c6f9fb5b19bb9d
Contents?: true
Size: 1.45 KB
Versions: 64
Compression:
Stored size: 1.45 KB
Contents
import testgen._ import TestSuiteBuilder.{toString, _} import java.io.File object SumOfMultiplesTestGenerator { def toArgString(any: Any): String = { any match { case list: List[_] => val vals = list.map(s => TestSuiteBuilder.toString(s)).mkString(", ") s"Set($vals)" case lstr: Long => lstr.toString + "l" case _ => any.toString } } def sutArgsFromInput(parseResult: CanonicalDataParser.ParseResult, argNames: String*): String = argNames map (name => toArgString(parseResult("input").asInstanceOf[Map[String, Any]](name))) mkString ", " def toString(expected: CanonicalDataParser.Expected): String = { expected match { case Left(_) => throw new IllegalStateException() case Right(n) => s"$n" } } def fromLabeledTestFromInput(argNames: String*): ToTestCaseData = withLabeledTest { sut => labeledTest => val args = sutArgsFromInput(labeledTest.result, argNames: _*) val property = labeledTest.property val sutCall = s"$sut.$property($args)" val expected = toString(labeledTest.expected) TestCaseData(labeledTest.description, sutCall, expected) } def main(args: Array[String]): Unit = { val file = new File("src/main/resources/sum-of-multiples.json") val code = TestSuiteBuilder.build(file, fromLabeledTestFromInput("factors", "limit")) println(s"-------------") println(code) println(s"-------------") } }
Version data entries
64 entries across 64 versions & 1 rubygems