Sha256: 09bd2f19be9d44098514fdccaa0aafba20901015592a668b46cf9f165c246907

Contents?: true

Size: 1.32 KB

Versions: 132

Compression:

Stored size: 1.32 KB

Contents

import play.api.libs.json.Json

import scala.io.Source

class BinarySearchTestGenerator {
  implicit val testCaseReader = Json.reads[BinarySearchTestCase]

  private val filename = "binarysearch.json"
  private val fileContents = Source.fromFile(filename).getLines.mkString
  private val json = Json.parse(fileContents)

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

    implicit def testCaseToGen(tc: BinarySearchTestCase): TestCaseGen = {
      val elements = tc.array.map(elem => elem.toString).mkString(", ")
      val elementStr =
        if (elements.isEmpty)
          "Array[Int]()"
        else
          s"Array(${elements})"

      val callSUT =
        s"BinarySearch.search(${elementStr}, ${tc.value})"
      val expected =
        if (tc.expected == -1)
          "None"
        else
          s"Some(${tc.expected})"

      TestCaseGen(tc.description, callSUT, expected)
    }

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

case class BinarySearchTestCase(description: String,
                                array: Array[Int],
                                value: Int, expected: Int)

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

Version data entries

132 entries across 132 versions & 1 rubygems

Version Path
trackler-2.2.1.10 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.2.1.9 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.2.1.8 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.2.1.7 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.2.1.6 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.2.1.5 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.2.1.4 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.2.1.3 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.2.1.2 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.2.1.1 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.2.1.0 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.2.0.6 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.2.0.5 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.2.0.4 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.2.0.3 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.2.0.2 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.2.0.1 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.2.0.0 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.1.0.55 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala
trackler-2.1.0.54 tracks/scala/testgen/src/main/scala/BinarySearchTestGenerator.scala