// Equal asserts that the expected value equals the actual value.
482571
func (s *Suite) Equal(exp, act interface{}, messages ...string) *Assertion {
	actType := reflect.TypeOf(act)
	expType := reflect.TypeOf(exp)
	assertion := s.setup(fmt.Sprintf("Expected %v[%s] to be equal to %v[%s]", act, actType, exp, expType), messages)
	if exp != act {
		assertion.fail()
	}
	return assertion
}
716848
func (o *DistinctOption) Equal(o2 *DistinctOption) bool {
	if o2 == nil {
		return o.value == 0
	}
	return o.value == o2.value
}
245570
func Equal(a1, a2 interface{}) bool {
	if a1 == nil || a2 == nil {
		return a1 == a2
	}
	v1 := reflect.ValueOf(a1)
	v2 := reflect.ValueOf(a2)
	if v1.Type() != v2.Type() {
		return false
	}
	return deepValueEqual(v1, v2, make(map[visit]bool), 0)
}
883803
func Equal(t Tester, actual, expected interface{}, noun string) {
	actualEqualer, actualEqualerOK := actual.(Equaler)
	expectedEqualer, expectedEqualerOK := expected.(Equaler)
	equals := false
	if actualEqualerOK && expectedEqualerOK {
		equals = actualEqualer.Equal(expectedEqualer)
	} else {
		equals = reflect.DeepEqual(actual, expected)
	}
	if !equals {
		t.Fatalf(callerStrf(WithFrameWrapper(t), "actual %s [%+v] != expected %s [%+v]", noun, actual, noun, expected))
	}
}
794574
func Equal(a, b interface{}) bool {
	if a == nil && b == nil {
		return a == b
	}

	return reflect.DeepEqual(a, b)
}
134140
func (s *String) Equal(value string) *String {
	if !(s.value == value) {
		s.chain.fail("\nexpected string equal to:\n %q\n\nbut got:\n %q",
			value, s.value)
	}
	return s
}
294105
func (a *Assertion) Equal(dst interface{}) {
	if !objectsAreEqual(a.src, dst) {
		a.fail(fmt.Sprintf("%#v %s %#v", a.src, "does not equal", dst))
	}
}
489394
func (o *PrimaryOption) Equal(o2 *PrimaryOption) bool {
	if o2 == nil {
		return o.value == ""
	}
	return o.value == o2.value
}
466954
func (self IntEqualer) Equal(e Equaler) bool {
	return self.I == e.(IntEqualer).I
}
385221
func (o *RuleContextsOption) Equal(o2 *RuleContextsOption) bool {
	if o2 == nil {
		return reflect.DeepEqual(o.value, []string{})
	}
	return reflect.DeepEqual(o.value, o2.value)
}
1266965
func (o *ClickAnalyticsOption) Equal(o2 *ClickAnalyticsOption) bool {
	if o2 == nil {
		return o.value == false
	}
	return o.value == o2.value
}
896971
func (o *ValidUntilOption) Equal(o2 *ValidUntilOption) bool {
	if o2 == nil {
		return o.value.IsZero()
	}
	return o.value.Equal(o2.value)
}
773850
func (o *AdvancedSyntaxOption) Equal(o2 *AdvancedSyntaxOption) bool {
	if o2 == nil {
		return o.value == false
	}
	return o.value == o2.value
}
316218
func (o *MinWordSizefor1TypoOption) Equal(o2 *MinWordSizefor1TypoOption) bool {
	if o2 == nil {
		return o.value == 4
	}
	return o.value == o2.value
}
766486
func (o *TypoToleranceOption) Equal(o2 *TypoToleranceOption) bool {
	if o2 == nil {
		return o.value == typoToleranceTrue
	}
	return o.value == o2.value
}
839985
func (spec *SampleSpec) Equal(other *SampleSpec) bool {
	if C.pa_sample_spec_equal(spec.toC(), other.toC()) == 0 {
		return false
	}
	return true
}
1204935
func Equal(err1 error, err2 error) bool {
	if err1 == err2 {
		return true
	}

	if v, ok := err1.(*error2); ok {
		return Equal(v.Inner, err2)
	}

	if v, ok := err2.(*error2); ok {
		return Equal(v.Inner, err1)
	}

	return false
}