| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | package assertimport (	v2net "github.com/v2ray/v2ray-core/common/net"	"github.com/v2ray/v2ray-core/common/serial"	"github.com/v2ray/v2ray-core/testing/assert")func Address(value v2net.Address) *AddressSubject {	return &AddressSubject{value: value}}type AddressSubject struct {	assert.Subject	value v2net.Address}func (subject *AddressSubject) Named(name string) *AddressSubject {	subject.Subject.Named(name)	return subject}func (subject *AddressSubject) DisplayString() string {	return subject.Subject.DisplayString(subject.value.String())}func (subject *AddressSubject) Equals(another v2net.Address) {	if !subject.value.Equals(another) {		subject.Fail(subject.DisplayString(), "equals to", another)	}}func (subject *AddressSubject) IsIPv4() {	if !subject.value.IsIPv4() {		subject.Fail(subject.DisplayString(), "is", serial.StringT("an IPv4 address"))	}}func (subject *AddressSubject) IsNotIPv4() {	if subject.value.IsIPv4() {		subject.Fail(subject.DisplayString(), "is not", serial.StringT("an IPv4 address"))	}}func (subject *AddressSubject) IsIPv6() {	if !subject.value.IsIPv6() {		subject.Fail(subject.DisplayString(), "is", serial.StringT("an IPv6 address"))	}}func (subject *AddressSubject) IsNotIPv6() {	if subject.value.IsIPv6() {		subject.Fail(subject.DisplayString(), "is not", serial.StringT("an IPv6 address"))	}}func (subject *AddressSubject) IsDomain() {	if !subject.value.IsDomain() {		subject.Fail(subject.DisplayString(), "is", serial.StringT("a domain address"))	}}func (subject *AddressSubject) IsNotDomain() {	if subject.value.IsDomain() {		subject.Fail(subject.DisplayString(), "is not", serial.StringT("a domain address"))	}}
 |