func TestCompare(t *testing.T) { … } var compareTests … func TestLang(t *testing.T) { … } var langTests … func TestIsValid(t *testing.T) { … } var isValidTests … type testCase1 … type testCase2 … func test1[In, Out any](t *testing.T, tests []testCase1[In, Out], name string, f func(In) Out) { … } func test2[In1, In2, Out any](t *testing.T, tests []testCase2[In1, In2, Out], name string, f func(In1, In2) Out) { … }