func PanicsVal(f func(), wantVal interface{}) (didPanic bool, pEquals bool, pVal interface{}) {
	defer func() {
		pVal = recover()
		didPanic = pVal != nil
		pEquals = pVal == wantVal
	}()
	f()
	return false, false, nil // overridden by the deferred function; here for the compiler
}
// PanicsVal tests if the given function panics, and returns a boolean that is true if it does.  It also takes a value,
// to allow checking the contents of the panic; if the function does panic, and the panic value equals wantVal, pEquals
// will be true.  The panic value itself is also returned.  (Specifically, this is the return value from recover(),
// which is nil if the function did not panic.)
//
// See PanicsStr() for a string-flavored version of how to use this function.
//
// PanicsVal itself panics if pVal and wantVal are of the same type, but it's not a type that Go can compare with ==.
PanicsVal tests if the given function panics, and returns a boolean that is true if it does.  It also takes a value,
to allow checking the contents of the panic; if the function does panic, and the panic value equals wantVal, pEquals
will be true.  The panic value itself is also returned.  (Specifically, this is the return value from recover(),
which is nil if the function did not panic.)

See PanicsStr() for a string-flavored version of how to use this function.

PanicsVal itself panics if pVal and wantVal are of the same type, but it's not a type that Go can compare with ==.
// PanicsVal tests if the given function panics and returns a boolean that is true if it does . It also takes a value // to allow checking the contents of the panic ; if the function does panic and the panic value equals wantVal pEquals // will be true . The panic value itself is also returned . ( Specifically this is the return value from recover () // which is nil if the function did not panic . ) // // See PanicsStr () for a string - flavored version of how to use this function . // // PanicsVal itself panics if pVal and wantVal are of the same type but it ' s not a type that Go can compare with == .
func PanicsVal(f func(), wantVal interface{}) (didPanic bool, pEquals bool, pVal interface{}) {
	defer func() {
		pVal = recover()
		didPanic = pVal != nil
		pEquals = pVal == wantVal
	}()
	f()
	return false, false, nil 
}
func PanicsVal ( f func ( ) , wantVal interface { } ) ( didPanic bool , pEquals bool , pVal interface { } ) { defer func ( ) { pVal = recover ( ) didPanic = pVal != nil pEquals = pVal == wantVal } ( ) f ( ) return false , false , nil }
PanicsVal tests if the given function panics, and returns a boolean that is true if it does.
PanicsVal tests if the given function panics and returns a boolean that is true if it does .
// overridden by the deferred function; here for the compiler