Sha256: 17d0059abc8917340b6e1cd65a6df1d905fb2dab070ad7a11d6fc2435846ea1e

Contents?: true

Size: 1.41 KB

Versions: 100

Compression:

Stored size: 1.41 KB

Contents

import play.api.libs.json.Json

import scala.io.Source


class AllYourBaseTestGenerator {
  implicit val testCaseReader = Json.reads[AllYourBaseTestCase]

  private val filename = "all-your-base.json"
  private val fileContents = Source.fromFile(filename).getLines.mkString
  private val json = Json.parse(fileContents)

  def write {
    val testCases: List[AllYourBaseTestCase] = (json \ "cases").get.as[List[AllYourBaseTestCase]]

    implicit def testCaseToGen(tc: AllYourBaseTestCase): TestCaseGen = {
      val callSUT =
        s"AllYourBase.rebase(${tc.input_base}, ${toListString(tc.input_digits)}, ${tc.output_base})"
      val expected = toListString(tc.output_digits)

      TestCaseGen(tc.description, callSUT, expected)
    }

    val testBuilder = new TestBuilder("AllYourBaseTest")
    testBuilder.addTestCases(testCases)
    testBuilder.toFile
  }

  private def toListString(a: Array[Int]): String =
      "List(" + a.mkString(", ") + ")"

  private def toListString(o: Option[Array[Int]]): String = {
    o match {
      case Some(a) => "Some(List(" + a.mkString(" ,") + "))"
      case None => "None"
    }
  }
}

case class AllYourBaseTestCase(description: String,
                    input_base: Int, input_digits: Array[Int],
                    output_base: Int, output_digits: Option[Array[Int]])

object AllYourBaseTestGenerator {
  def main(args: Array[String]): Unit = {
    new AllYourBaseTestGenerator().write
  }
}

Version data entries

100 entries across 100 versions & 1 rubygems

Version Path
trackler-2.1.0.41 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.40 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.39 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.38 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.37 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.36 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.34 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.33 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.32 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.31 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.30 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.29 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.28 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.27 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.26 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.25 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.24 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.23 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.22 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala
trackler-2.1.0.21 tracks/scala/testgen/src/main/scala/AllYourBaseTestGenerator.scala