|
|
@ -1102,6 +1102,20 @@ func init() { |
|
|
|
cycleMap3["different"] = cycleMap3 |
|
|
|
} |
|
|
|
|
|
|
|
type deepEqualInterface interface { |
|
|
|
Foo() |
|
|
|
} |
|
|
|
type deepEqualConcrete struct { |
|
|
|
int |
|
|
|
} |
|
|
|
|
|
|
|
func (deepEqualConcrete) Foo() {} |
|
|
|
|
|
|
|
var ( |
|
|
|
deepEqualConcrete1 = deepEqualConcrete{1} |
|
|
|
deepEqualConcrete2 = deepEqualConcrete{2} |
|
|
|
) |
|
|
|
|
|
|
|
var deepEqualTests = []DeepEqualTest{ |
|
|
|
// Equalities
|
|
|
|
{nil, nil, true}, |
|
|
@ -1119,6 +1133,7 @@ var deepEqualTests = []DeepEqualTest{ |
|
|
|
{[]byte{1, 2, 3}, []byte{1, 2, 3}, true}, |
|
|
|
{[]MyByte{1, 2, 3}, []MyByte{1, 2, 3}, true}, |
|
|
|
{MyBytes{1, 2, 3}, MyBytes{1, 2, 3}, true}, |
|
|
|
{map[deepEqualInterface]string{deepEqualConcrete1: "a"}, map[deepEqualInterface]string{deepEqualConcrete1: "a"}, true}, |
|
|
|
|
|
|
|
// Inequalities
|
|
|
|
{1, 2, false}, |
|
|
@ -1140,6 +1155,7 @@ var deepEqualTests = []DeepEqualTest{ |
|
|
|
{fn3, fn3, false}, |
|
|
|
{[][]int{{1}}, [][]int{{2}}, false}, |
|
|
|
{&structWithSelfPtr{p: &structWithSelfPtr{s: "a"}}, &structWithSelfPtr{p: &structWithSelfPtr{s: "b"}}, false}, |
|
|
|
{map[deepEqualInterface]string{deepEqualConcrete1: "a"}, map[deepEqualInterface]string{deepEqualConcrete2: "a"}, false}, |
|
|
|
|
|
|
|
// Fun with floating point.
|
|
|
|
{math.NaN(), math.NaN(), false}, |
|
|
|