Drive checks from a list of input/expected pairs.

Table-Driven Cases

TableCases.scala
object Main {
  def triple(n: Int): Int = {
    n * 3
  }

  def main(args: Array[String]): Unit = {
    val minInput = 
    val cases = List((1, 3), (2, 6), (3, 9))
    var passes = 0
    for ((input, expected) <- cases) {
      if (input >= minInput && triple(input) == expected) {
        passes = passes + 1
      }
    }

    println("cases=" + cases.length)
    println("passes=" + passes)
  }
}
object Main {
  def triple(n: Int): Int = {
    n * 3
  }

  def main(args: Array[String]): Unit = {
    val minInput = 
    val cases = List((1, 3), (2, 6), (3, 9))
    var passes = 0
    for ((input, expected) <- cases) {
      if (input >= minInput && triple(input) == expected) {
        passes = passes + 1
      }
    }

    println("cases=" + cases.length)
    println("passes=" + passes)
  }
}
object Main {
  def triple(n: Int): Int = {
    n * 3
  }

  def main(args: Array[String]): Unit = {
    val minInput = 
    val cases = List((1, 3), (2, 6), (3, 9))
    var passes = 0
    for ((input, expected) <- cases) {
      if (input >= minInput && triple(input) == expected) {
        passes = passes + 1
      }
    }

    println("cases=" + cases.length)
    println("passes=" + passes)
  }
}
table-cases A list of `(input, expected)` pairs is a small test table. Iterating the pairs runs the same check on each case and counts the passes.