Table tests run the same check across a short list of input and expected values.

Table Tests

table_tests.go
package main

import "fmt"

func double(value int) int {
	return value * 2
}

func main() {
	var caseCount = 
	cases := []struct {
		input    int
		expected int
	}{
		{1, 2},
		{2, 4},
		{3, 6},
		{4, 8},
	}

	passed := 0
	selected := cases[:caseCount]
	for _, testCase := range selected {
		actual := double(testCase.input)
		if actual == testCase.expected {
			passed++
		}
	}

	allPassed := passed == len(selected)
	fmt.Println("cases=", len(selected))
	fmt.Println("passed=", passed)
	fmt.Println("allPassed=", allPassed)
}
package main

import "fmt"

func double(value int) int {
	return value * 2
}

func main() {
	var caseCount = 
	cases := []struct {
		input    int
		expected int
	}{
		{1, 2},
		{2, 4},
		{3, 6},
		{4, 8},
	}

	passed := 0
	selected := cases[:caseCount]
	for _, testCase := range selected {
		actual := double(testCase.input)
		if actual == testCase.expected {
			passed++
		}
	}

	allPassed := passed == len(selected)
	fmt.Println("cases=", len(selected))
	fmt.Println("passed=", passed)
	fmt.Println("allPassed=", allPassed)
}
package main

import "fmt"

func double(value int) int {
	return value * 2
}

func main() {
	var caseCount = 
	cases := []struct {
		input    int
		expected int
	}{
		{1, 2},
		{2, 4},
		{3, 6},
		{4, 8},
	}

	passed := 0
	selected := cases[:caseCount]
	for _, testCase := range selected {
		actual := double(testCase.input)
		if actual == testCase.expected {
			passed++
		}
	}

	allPassed := passed == len(selected)
	fmt.Println("cases=", len(selected))
	fmt.Println("passed=", passed)
	fmt.Println("allPassed=", allPassed)
}
table test A table test stores cases as data, then loops through each case with one shared check.