Table tests run the same check against a small list of inputs and expected outputs.

Table Tests

table_tests.rb
def square(number)
  number * number
end

case_count = 
cases = [
  [1, 1],
  [2, 4],
  [3, 9],
  [4, 16]
]

selected_cases = cases.first(case_count)
passed_count = 0

selected_cases.each do |input, expected|
  actual = square(input)
  passed_count += 1 if actual == expected
end

puts "cases=#{selected_cases.length}"
puts "passed=#{passed_count}"
puts "all_passed=#{passed_count == selected_cases.length}"
def square(number)
  number * number
end

case_count = 
cases = [
  [1, 1],
  [2, 4],
  [3, 9],
  [4, 16]
]

selected_cases = cases.first(case_count)
passed_count = 0

selected_cases.each do |input, expected|
  actual = square(input)
  passed_count += 1 if actual == expected
end

puts "cases=#{selected_cases.length}"
puts "passed=#{passed_count}"
puts "all_passed=#{passed_count == selected_cases.length}"
def square(number)
  number * number
end

case_count = 
cases = [
  [1, 1],
  [2, 4],
  [3, 9],
  [4, 16]
]

selected_cases = cases.first(case_count)
passed_count = 0

selected_cases.each do |input, expected|
  actual = square(input)
  passed_count += 1 if actual == expected
end

puts "cases=#{selected_cases.length}"
puts "passed=#{passed_count}"
puts "all_passed=#{passed_count == selected_cases.length}"
table test A table test stores example cases as data, then loops over them with one shared check.