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

Version Path
trackler-2.2.1.180 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.179 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.178 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.177 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.176 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.175 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.174 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.173 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.172 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.171 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.170 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.169 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.167 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.166 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.165 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.164 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.163 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.162 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.161 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala
trackler-2.2.1.160 tracks/scala/testgen/src/main/scala/BowlingTestGenerator.scala