A table-driven test runs the same check over several input values.

Count passing cases

table_cases.swift
let multiplier = 
let inputs = [1, 2, 3]
let expected = [2, 4, 6]
var passed = 0

for index in 0..<inputs.count {
    let actual = inputs[index] * multiplier
    if actual == expected[index] {
        passed += 1
    }
}

let message = "passed=\(passed)/\(inputs.count)"

print(message)
let multiplier = 
let inputs = [1, 2, 3]
let expected = [2, 4, 6]
var passed = 0

for index in 0..<inputs.count {
    let actual = inputs[index] * multiplier
    if actual == expected[index] {
        passed += 1
    }
}

let message = "passed=\(passed)/\(inputs.count)"

print(message)
let multiplier = 
let inputs = [1, 2, 3]
let expected = [2, 4, 6]
var passed = 0

for index in 0..<inputs.count {
    let actual = inputs[index] * multiplier
    if actual == expected[index] {
        passed += 1
    }
}

let message = "passed=\(passed)/\(inputs.count)"

print(message)
table-driven test A loop can apply one testing rule to each input and count how many cases pass.