// assertIp4InArray asserts every address in want is at the same position in have and that the lengths match
assertIp4InArray asserts every address in want is at the same position in have and that the lengths match
// assertIp4InArray asserts every address in want is at the same position in have and that the lengths match
func assertIp4InArray(t *testing.T, have []*Ip4AndPort, want ...*udp.Addr) {
	assert.Len(t, have, len(want))
	for k, w := range want {
		if !(have[k].Ip == uint32(iputil.Ip2VpnIp(w.IP)) && have[k].Port == uint32(w.Port)) {
			assert.Fail(t, fmt.Sprintf("Response did not contain: %v:%v at %v; %v", w.IP, w.Port, k, translateV4toUdpAddr(have)))
		}
	}
}
func assertIp4InArray ( t * testing . T , have [ ] * Ip4AndPort , want ... * udp . Addr ) { assert . Len ( t , have , len ( want ) ) for k , w := range want { if ! ( have [ k ] . Ip == uint32 ( iputil . Ip2VpnIp ( w . IP ) ) && have [ k ] . Port == uint32 ( w . Port ) ) { assert . Fail ( t , fmt . Sprintf ( " " , w . IP , w . Port , k , translateV4toUdpAddr ( have ) ) ) } } }
assertIp4InArray asserts every address in want is at the same position in have and that the lengths match
assertIp4InArray asserts every address in want is at the same position in have and that the lengths match