func PanicsValLoop(tests []PanicValTest, wantValAll *interface{}, notPanicFunc func(testName string),
	notEqualsFunc func(testName string, wantVal interface{}, pVal interface{}),
) {
	var realWantVal interface{}
	var didPanic, pEquals bool
	var pVal interface{}

	for _, test := range tests {
		if wantValAll != nil {
			realWantVal = *wantValAll
		} else {
			realWantVal = test.WantVal
		}
		didPanic, pEquals, pVal = PanicsVal(test.F, realWantVal)
		if !didPanic {
			notPanicFunc(test.Name)
		} else if !pEquals {
			notEqualsFunc(test.Name, realWantVal, pVal)
		}
	}
}
// PanicsValLoop runs through a slice of panic tests, including checking the panic values.  For any test function that
// does not panic, notPanicFunc is called with the name from the test's struct.  For any test function that does panic,
// but for which the panic value does not equal the test's WantVal, notEqualsFunc is called with test information and
// the panic value.  If wantValAll is not nil, it is used in place of the tests' wantVals.  See also PanicsVal().
//
// See NotEqualsFuncErrorFactory() and NotEqualsFuncFatalFactory() for good starting points for notEqualsFunc.
//
// PanicsValLoop itself panics when attempting to run any test for which the panic value and the test's WantVal are of
// the same type, but it's not a type that Go can compare with ==.
PanicsValLoop runs through a slice of panic tests, including checking the panic values.  For any test function that
does not panic, notPanicFunc is called with the name from the test's struct.  For any test function that does panic,
but for which the panic value does not equal the test's WantVal, notEqualsFunc is called with test information and
the panic value.  If wantValAll is not nil, it is used in place of the tests' wantVals.  See also PanicsVal().

See NotEqualsFuncErrorFactory() and NotEqualsFuncFatalFactory() for good starting points for notEqualsFunc.

PanicsValLoop itself panics when attempting to run any test for which the panic value and the test's WantVal are of
the same type, but it's not a type that Go can compare with ==.
// PanicsValLoop runs through a slice of panic tests including checking the panic values . For any test function that // does not panic notPanicFunc is called with the name from the test ' s struct . For any test function that does panic // but for which the panic value does not equal the test ' s WantVal notEqualsFunc is called with test information and // the panic value . If wantValAll is not nil it is used in place of the tests ' wantVals . See also PanicsVal () . // // See NotEqualsFuncErrorFactory () and NotEqualsFuncFatalFactory () for good starting points for notEqualsFunc . // // PanicsValLoop itself panics when attempting to run any test for which the panic value and the test ' s WantVal are of // the same type but it ' s not a type that Go can compare with == .
func PanicsValLoop(tests []PanicValTest, wantValAll *interface{}, notPanicFunc func(testName string),
	notEqualsFunc func(testName string, wantVal interface{}, pVal interface{}),
) {
	var realWantVal interface{}
	var didPanic, pEquals bool
	var pVal interface{}
	for _, test := range tests {
		if wantValAll != nil {
			realWantVal = *wantValAll
		} else {
			realWantVal = test.WantVal
		}
		didPanic, pEquals, pVal = PanicsVal(test.F, realWantVal)
		if !didPanic {
			notPanicFunc(test.Name)
		} else if !pEquals {
			notEqualsFunc(test.Name, realWantVal, pVal)
		}
	}
}
func PanicsValLoop ( tests [ ] PanicValTest , wantValAll * interface { } , notPanicFunc func ( testName string ) , notEqualsFunc func ( testName string , wantVal interface { } , pVal interface { } ) , ) { var realWantVal interface { } var didPanic , pEquals bool var pVal interface { } for _ , test := range tests { if wantValAll != nil { realWantVal = * wantValAll } else { realWantVal = test . WantVal } didPanic , pEquals , pVal = PanicsVal ( test . F , realWantVal ) if ! didPanic { notPanicFunc ( test . Name ) } else if ! pEquals { notEqualsFunc ( test . Name , realWantVal , pVal ) } } }
PanicsValLoop runs through a slice of panic tests, including checking the panic values.
PanicsValLoop runs through a slice of panic tests including checking the panic values .