xref: /aosp_15_r20/external/go-cmp/cmp/testdata/diffs (revision 88d15eac089d7f20c739ff1001d56b91872b21a1)
1*88d15eacSSasha Smundak<<< TestDiff/Comparer/StructInequal
2*88d15eacSSasha Smundak  struct{ A int; B int; C int }{
3*88d15eacSSasha Smundak  	A: 1,
4*88d15eacSSasha Smundak  	B: 2,
5*88d15eacSSasha Smundak- 	C: 3,
6*88d15eacSSasha Smundak+ 	C: 4,
7*88d15eacSSasha Smundak  }
8*88d15eacSSasha Smundak>>> TestDiff/Comparer/StructInequal
9*88d15eacSSasha Smundak<<< TestDiff/Comparer/PointerStructInequal
10*88d15eacSSasha Smundak  &struct{ A *int }{
11*88d15eacSSasha Smundak- 	A: &4,
12*88d15eacSSasha Smundak+ 	A: &5,
13*88d15eacSSasha Smundak  }
14*88d15eacSSasha Smundak>>> TestDiff/Comparer/PointerStructInequal
15*88d15eacSSasha Smundak<<< TestDiff/Comparer/StructNestedPointerInequal
16*88d15eacSSasha Smundak  &struct{ R *bytes.Buffer }{
17*88d15eacSSasha Smundak- 	R: s"",
18*88d15eacSSasha Smundak+ 	R: nil,
19*88d15eacSSasha Smundak  }
20*88d15eacSSasha Smundak>>> TestDiff/Comparer/StructNestedPointerInequal
21*88d15eacSSasha Smundak<<< TestDiff/Comparer/RegexpInequal
22*88d15eacSSasha Smundak  []*regexp.Regexp{
23*88d15eacSSasha Smundak  	nil,
24*88d15eacSSasha Smundak- 	s"a*b*c*",
25*88d15eacSSasha Smundak+ 	s"a*b*d*",
26*88d15eacSSasha Smundak  }
27*88d15eacSSasha Smundak>>> TestDiff/Comparer/RegexpInequal
28*88d15eacSSasha Smundak<<< TestDiff/Comparer/TriplePointerInequal
29*88d15eacSSasha Smundak  &&&int(
30*88d15eacSSasha Smundak- 	0,
31*88d15eacSSasha Smundak+ 	1,
32*88d15eacSSasha Smundak  )
33*88d15eacSSasha Smundak>>> TestDiff/Comparer/TriplePointerInequal
34*88d15eacSSasha Smundak<<< TestDiff/Comparer/StringerInequal
35*88d15eacSSasha Smundak  struct{ fmt.Stringer }(
36*88d15eacSSasha Smundak- 	s"hello",
37*88d15eacSSasha Smundak+ 	s"hello2",
38*88d15eacSSasha Smundak  )
39*88d15eacSSasha Smundak>>> TestDiff/Comparer/StringerInequal
40*88d15eacSSasha Smundak<<< TestDiff/Comparer/DifferingHash
41*88d15eacSSasha Smundak  [32]uint8{
42*88d15eacSSasha Smundak- 	0xca, 0x97, 0x81, 0x12, 0xca, 0x1b, 0xbd, 0xca, 0xfa, 0xc2, 0x31, 0xb3, 0x9a, 0x23, 0xdc, 0x4d,
43*88d15eacSSasha Smundak- 	0xa7, 0x86, 0xef, 0xf8, 0x14, 0x7c, 0x4e, 0x72, 0xb9, 0x80, 0x77, 0x85, 0xaf, 0xee, 0x48, 0xbb,
44*88d15eacSSasha Smundak+ 	0x3e, 0x23, 0xe8, 0x16, 0x00, 0x39, 0x59, 0x4a, 0x33, 0x89, 0x4f, 0x65, 0x64, 0xe1, 0xb1, 0x34,
45*88d15eacSSasha Smundak+ 	0x8b, 0xbd, 0x7a, 0x00, 0x88, 0xd4, 0x2c, 0x4a, 0xcb, 0x73, 0xee, 0xae, 0xd5, 0x9c, 0x00, 0x9d,
46*88d15eacSSasha Smundak  }
47*88d15eacSSasha Smundak>>> TestDiff/Comparer/DifferingHash
48*88d15eacSSasha Smundak<<< TestDiff/Comparer/NilStringer
49*88d15eacSSasha Smundak  any(
50*88d15eacSSasha Smundak- 	&fmt.Stringer(nil),
51*88d15eacSSasha Smundak  )
52*88d15eacSSasha Smundak>>> TestDiff/Comparer/NilStringer
53*88d15eacSSasha Smundak<<< TestDiff/Comparer/TarHeaders
54*88d15eacSSasha Smundak  []cmp_test.tarHeader{
55*88d15eacSSasha Smundak  	{
56*88d15eacSSasha Smundak  		... // 4 identical fields
57*88d15eacSSasha Smundak  		Size:     1,
58*88d15eacSSasha Smundak  		ModTime:  s"2009-11-10 23:00:00 +0000 UTC",
59*88d15eacSSasha Smundak- 		Typeflag: 48,
60*88d15eacSSasha Smundak+ 		Typeflag: 0,
61*88d15eacSSasha Smundak  		Linkname: "",
62*88d15eacSSasha Smundak  		Uname:    "user",
63*88d15eacSSasha Smundak  		... // 6 identical fields
64*88d15eacSSasha Smundak  	},
65*88d15eacSSasha Smundak  	{
66*88d15eacSSasha Smundak  		... // 4 identical fields
67*88d15eacSSasha Smundak  		Size:     2,
68*88d15eacSSasha Smundak  		ModTime:  s"2009-11-11 00:00:00 +0000 UTC",
69*88d15eacSSasha Smundak- 		Typeflag: 48,
70*88d15eacSSasha Smundak+ 		Typeflag: 0,
71*88d15eacSSasha Smundak  		Linkname: "",
72*88d15eacSSasha Smundak  		Uname:    "user",
73*88d15eacSSasha Smundak  		... // 6 identical fields
74*88d15eacSSasha Smundak  	},
75*88d15eacSSasha Smundak  	{
76*88d15eacSSasha Smundak  		... // 4 identical fields
77*88d15eacSSasha Smundak  		Size:     4,
78*88d15eacSSasha Smundak  		ModTime:  s"2009-11-11 01:00:00 +0000 UTC",
79*88d15eacSSasha Smundak- 		Typeflag: 48,
80*88d15eacSSasha Smundak+ 		Typeflag: 0,
81*88d15eacSSasha Smundak  		Linkname: "",
82*88d15eacSSasha Smundak  		Uname:    "user",
83*88d15eacSSasha Smundak  		... // 6 identical fields
84*88d15eacSSasha Smundak  	},
85*88d15eacSSasha Smundak  	{
86*88d15eacSSasha Smundak  		... // 4 identical fields
87*88d15eacSSasha Smundak  		Size:     8,
88*88d15eacSSasha Smundak  		ModTime:  s"2009-11-11 02:00:00 +0000 UTC",
89*88d15eacSSasha Smundak- 		Typeflag: 48,
90*88d15eacSSasha Smundak+ 		Typeflag: 0,
91*88d15eacSSasha Smundak  		Linkname: "",
92*88d15eacSSasha Smundak  		Uname:    "user",
93*88d15eacSSasha Smundak  		... // 6 identical fields
94*88d15eacSSasha Smundak  	},
95*88d15eacSSasha Smundak  	{
96*88d15eacSSasha Smundak  		... // 4 identical fields
97*88d15eacSSasha Smundak  		Size:     16,
98*88d15eacSSasha Smundak  		ModTime:  s"2009-11-11 03:00:00 +0000 UTC",
99*88d15eacSSasha Smundak- 		Typeflag: 48,
100*88d15eacSSasha Smundak+ 		Typeflag: 0,
101*88d15eacSSasha Smundak  		Linkname: "",
102*88d15eacSSasha Smundak  		Uname:    "user",
103*88d15eacSSasha Smundak  		... // 6 identical fields
104*88d15eacSSasha Smundak  	},
105*88d15eacSSasha Smundak  }
106*88d15eacSSasha Smundak>>> TestDiff/Comparer/TarHeaders
107*88d15eacSSasha Smundak<<< TestDiff/Comparer/IrreflexiveComparison
108*88d15eacSSasha Smundak  []int{
109*88d15eacSSasha Smundak- 	Inverse(λ, float64(NaN)),
110*88d15eacSSasha Smundak+ 	Inverse(λ, float64(NaN)),
111*88d15eacSSasha Smundak- 	Inverse(λ, float64(NaN)),
112*88d15eacSSasha Smundak+ 	Inverse(λ, float64(NaN)),
113*88d15eacSSasha Smundak- 	Inverse(λ, float64(NaN)),
114*88d15eacSSasha Smundak+ 	Inverse(λ, float64(NaN)),
115*88d15eacSSasha Smundak- 	Inverse(λ, float64(NaN)),
116*88d15eacSSasha Smundak+ 	Inverse(λ, float64(NaN)),
117*88d15eacSSasha Smundak- 	Inverse(λ, float64(NaN)),
118*88d15eacSSasha Smundak+ 	Inverse(λ, float64(NaN)),
119*88d15eacSSasha Smundak- 	Inverse(λ, float64(NaN)),
120*88d15eacSSasha Smundak+ 	Inverse(λ, float64(NaN)),
121*88d15eacSSasha Smundak- 	Inverse(λ, float64(NaN)),
122*88d15eacSSasha Smundak+ 	Inverse(λ, float64(NaN)),
123*88d15eacSSasha Smundak- 	Inverse(λ, float64(NaN)),
124*88d15eacSSasha Smundak+ 	Inverse(λ, float64(NaN)),
125*88d15eacSSasha Smundak- 	Inverse(λ, float64(NaN)),
126*88d15eacSSasha Smundak+ 	Inverse(λ, float64(NaN)),
127*88d15eacSSasha Smundak- 	Inverse(λ, float64(NaN)),
128*88d15eacSSasha Smundak+ 	Inverse(λ, float64(NaN)),
129*88d15eacSSasha Smundak  }
130*88d15eacSSasha Smundak>>> TestDiff/Comparer/IrreflexiveComparison
131*88d15eacSSasha Smundak<<< TestDiff/Comparer/StringerMapKey
132*88d15eacSSasha Smundak  map[*testprotos.Stringer]*testprotos.Stringer(
133*88d15eacSSasha Smundak- 	{s"hello": s"world"},
134*88d15eacSSasha Smundak+ 	nil,
135*88d15eacSSasha Smundak  )
136*88d15eacSSasha Smundak>>> TestDiff/Comparer/StringerMapKey
137*88d15eacSSasha Smundak<<< TestDiff/Comparer/StringerBacktick
138*88d15eacSSasha Smundak  any(
139*88d15eacSSasha Smundak- 	[]*testprotos.Stringer{s`multi\nline\nline\nline`},
140*88d15eacSSasha Smundak  )
141*88d15eacSSasha Smundak>>> TestDiff/Comparer/StringerBacktick
142*88d15eacSSasha Smundak<<< TestDiff/Comparer/DynamicMap
143*88d15eacSSasha Smundak  []any{
144*88d15eacSSasha Smundak  	map[string]any{
145*88d15eacSSasha Smundak  		"avg":  float64(0.278),
146*88d15eacSSasha Smundak- 		"hr":   int(65),
147*88d15eacSSasha Smundak+ 		"hr":   float64(65),
148*88d15eacSSasha Smundak  		"name": string("Mark McGwire"),
149*88d15eacSSasha Smundak  	},
150*88d15eacSSasha Smundak  	map[string]any{
151*88d15eacSSasha Smundak  		"avg":  float64(0.288),
152*88d15eacSSasha Smundak- 		"hr":   int(63),
153*88d15eacSSasha Smundak+ 		"hr":   float64(63),
154*88d15eacSSasha Smundak  		"name": string("Sammy Sosa"),
155*88d15eacSSasha Smundak  	},
156*88d15eacSSasha Smundak  }
157*88d15eacSSasha Smundak>>> TestDiff/Comparer/DynamicMap
158*88d15eacSSasha Smundak<<< TestDiff/Comparer/MapKeyPointer
159*88d15eacSSasha Smundak  map[*int]string{
160*88d15eacSSasha Smundak- 	&⟪0xdeadf00f⟫0: "hello",
161*88d15eacSSasha Smundak+ 	&⟪0xdeadf00f⟫0: "world",
162*88d15eacSSasha Smundak  }
163*88d15eacSSasha Smundak>>> TestDiff/Comparer/MapKeyPointer
164*88d15eacSSasha Smundak<<< TestDiff/Comparer/IgnoreSliceElements
165*88d15eacSSasha Smundak  [2][]int{
166*88d15eacSSasha Smundak  	{..., 1, 2, 3, ...},
167*88d15eacSSasha Smundak  	{
168*88d15eacSSasha Smundak  		... // 6 ignored and 1 identical elements
169*88d15eacSSasha Smundak- 		20,
170*88d15eacSSasha Smundak+ 		2,
171*88d15eacSSasha Smundak  		... // 3 ignored elements
172*88d15eacSSasha Smundak  	},
173*88d15eacSSasha Smundak  }
174*88d15eacSSasha Smundak>>> TestDiff/Comparer/IgnoreSliceElements
175*88d15eacSSasha Smundak<<< TestDiff/Comparer/IgnoreMapEntries
176*88d15eacSSasha Smundak  [2]map[string]int{
177*88d15eacSSasha Smundak  	{"KEEP3": 3, "keep1": 1, "keep2": 2, ...},
178*88d15eacSSasha Smundak  	{
179*88d15eacSSasha Smundak  		... // 2 ignored entries
180*88d15eacSSasha Smundak  		"keep1": 1,
181*88d15eacSSasha Smundak+ 		"keep2": 2,
182*88d15eacSSasha Smundak  	},
183*88d15eacSSasha Smundak  }
184*88d15eacSSasha Smundak>>> TestDiff/Comparer/IgnoreMapEntries
185*88d15eacSSasha Smundak<<< TestDiff/Transformer/Uints
186*88d15eacSSasha Smundak  uint8(Inverse(λ, uint16(Inverse(λ, uint32(Inverse(λ, uint64(
187*88d15eacSSasha Smundak- 	0,
188*88d15eacSSasha Smundak+ 	1,
189*88d15eacSSasha Smundak  )))))))
190*88d15eacSSasha Smundak>>> TestDiff/Transformer/Uints
191*88d15eacSSasha Smundak<<< TestDiff/Transformer/Filtered
192*88d15eacSSasha Smundak  []int{
193*88d15eacSSasha Smundak  	Inverse(λ, int64(0)),
194*88d15eacSSasha Smundak- 	Inverse(λ, int64(-5)),
195*88d15eacSSasha Smundak+ 	Inverse(λ, int64(3)),
196*88d15eacSSasha Smundak  	Inverse(λ, int64(0)),
197*88d15eacSSasha Smundak- 	Inverse(λ, int64(-1)),
198*88d15eacSSasha Smundak+ 	Inverse(λ, int64(-5)),
199*88d15eacSSasha Smundak  }
200*88d15eacSSasha Smundak>>> TestDiff/Transformer/Filtered
201*88d15eacSSasha Smundak<<< TestDiff/Transformer/DisjointOutput
202*88d15eacSSasha Smundak  int(Inverse(λ, any(
203*88d15eacSSasha Smundak- 	string("zero"),
204*88d15eacSSasha Smundak+ 	float64(1),
205*88d15eacSSasha Smundak  )))
206*88d15eacSSasha Smundak>>> TestDiff/Transformer/DisjointOutput
207*88d15eacSSasha Smundak<<< TestDiff/Transformer/JSON
208*88d15eacSSasha Smundak  string(Inverse(ParseJSON, map[string]any{
209*88d15eacSSasha Smundak  	"address": map[string]any{
210*88d15eacSSasha Smundak- 		"city":          string("Los Angeles"),
211*88d15eacSSasha Smundak+ 		"city":          string("New York"),
212*88d15eacSSasha Smundak  		"postalCode":    string("10021-3100"),
213*88d15eacSSasha Smundak- 		"state":         string("CA"),
214*88d15eacSSasha Smundak+ 		"state":         string("NY"),
215*88d15eacSSasha Smundak  		"streetAddress": string("21 2nd Street"),
216*88d15eacSSasha Smundak  	},
217*88d15eacSSasha Smundak  	"age":       float64(25),
218*88d15eacSSasha Smundak  	"children":  []any{},
219*88d15eacSSasha Smundak  	"firstName": string("John"),
220*88d15eacSSasha Smundak  	"isAlive":   bool(true),
221*88d15eacSSasha Smundak  	"lastName":  string("Smith"),
222*88d15eacSSasha Smundak  	"phoneNumbers": []any{
223*88d15eacSSasha Smundak  		map[string]any{
224*88d15eacSSasha Smundak- 			"number": string("212 555-4321"),
225*88d15eacSSasha Smundak+ 			"number": string("212 555-1234"),
226*88d15eacSSasha Smundak  			"type":   string("home"),
227*88d15eacSSasha Smundak  		},
228*88d15eacSSasha Smundak  		map[string]any{"number": string("646 555-4567"), "type": string("office")},
229*88d15eacSSasha Smundak  		map[string]any{"number": string("123 456-7890"), "type": string("mobile")},
230*88d15eacSSasha Smundak  	},
231*88d15eacSSasha Smundak+ 	"spouse": nil,
232*88d15eacSSasha Smundak  }))
233*88d15eacSSasha Smundak>>> TestDiff/Transformer/JSON
234*88d15eacSSasha Smundak<<< TestDiff/Transformer/AcyclicString
235*88d15eacSSasha Smundak  cmp_test.StringBytes{
236*88d15eacSSasha Smundak  	String: Inverse(SplitString, []string{
237*88d15eacSSasha Smundak  		"some",
238*88d15eacSSasha Smundak  		"multi",
239*88d15eacSSasha Smundak- 		"Line",
240*88d15eacSSasha Smundak+ 		"line",
241*88d15eacSSasha Smundak  		"string",
242*88d15eacSSasha Smundak  	}),
243*88d15eacSSasha Smundak  	Bytes: []uint8(Inverse(SplitBytes, [][]uint8{
244*88d15eacSSasha Smundak  		"some",
245*88d15eacSSasha Smundak  		"multi",
246*88d15eacSSasha Smundak  		"line",
247*88d15eacSSasha Smundak  		{
248*88d15eacSSasha Smundak- 			0x62,
249*88d15eacSSasha Smundak+ 			0x42,
250*88d15eacSSasha Smundak  			0x79,
251*88d15eacSSasha Smundak  			0x74,
252*88d15eacSSasha Smundak  			... // 2 identical elements
253*88d15eacSSasha Smundak  		},
254*88d15eacSSasha Smundak  	})),
255*88d15eacSSasha Smundak  }
256*88d15eacSSasha Smundak>>> TestDiff/Transformer/AcyclicString
257*88d15eacSSasha Smundak<<< TestDiff/Reporter/PanicStringer
258*88d15eacSSasha Smundak  struct{ X fmt.Stringer }{
259*88d15eacSSasha Smundak- 	X: struct{ fmt.Stringer }{},
260*88d15eacSSasha Smundak+ 	X: s"",
261*88d15eacSSasha Smundak  }
262*88d15eacSSasha Smundak>>> TestDiff/Reporter/PanicStringer
263*88d15eacSSasha Smundak<<< TestDiff/Reporter/PanicError
264*88d15eacSSasha Smundak  struct{ X error }{
265*88d15eacSSasha Smundak- 	X: struct{ error }{},
266*88d15eacSSasha Smundak+ 	X: e"",
267*88d15eacSSasha Smundak  }
268*88d15eacSSasha Smundak>>> TestDiff/Reporter/PanicError
269*88d15eacSSasha Smundak<<< TestDiff/Reporter/AmbiguousType
270*88d15eacSSasha Smundak  any(
271*88d15eacSSasha Smundak- 	"github.com/google/go-cmp/cmp/internal/teststructs/foo1".Bar{},
272*88d15eacSSasha Smundak+ 	"github.com/google/go-cmp/cmp/internal/teststructs/foo2".Bar{},
273*88d15eacSSasha Smundak  )
274*88d15eacSSasha Smundak>>> TestDiff/Reporter/AmbiguousType
275*88d15eacSSasha Smundak<<< TestDiff/Reporter/AmbiguousPointer
276*88d15eacSSasha Smundak  (*int)(
277*88d15eacSSasha Smundak- 	&⟪0xdeadf00f⟫0,
278*88d15eacSSasha Smundak+ 	&⟪0xdeadf00f⟫0,
279*88d15eacSSasha Smundak  )
280*88d15eacSSasha Smundak>>> TestDiff/Reporter/AmbiguousPointer
281*88d15eacSSasha Smundak<<< TestDiff/Reporter/AmbiguousPointerStruct
282*88d15eacSSasha Smundak  struct{ I *int }{
283*88d15eacSSasha Smundak- 	I: &⟪0xdeadf00f⟫0,
284*88d15eacSSasha Smundak+ 	I: &⟪0xdeadf00f⟫0,
285*88d15eacSSasha Smundak  }
286*88d15eacSSasha Smundak>>> TestDiff/Reporter/AmbiguousPointerStruct
287*88d15eacSSasha Smundak<<< TestDiff/Reporter/AmbiguousPointerSlice
288*88d15eacSSasha Smundak  []*int{
289*88d15eacSSasha Smundak- 	&⟪0xdeadf00f⟫0,
290*88d15eacSSasha Smundak+ 	&⟪0xdeadf00f⟫0,
291*88d15eacSSasha Smundak  }
292*88d15eacSSasha Smundak>>> TestDiff/Reporter/AmbiguousPointerSlice
293*88d15eacSSasha Smundak<<< TestDiff/Reporter/AmbiguousPointerMap
294*88d15eacSSasha Smundak  map[string]*int{
295*88d15eacSSasha Smundak- 	"zero": &⟪0xdeadf00f⟫0,
296*88d15eacSSasha Smundak+ 	"zero": &⟪0xdeadf00f⟫0,
297*88d15eacSSasha Smundak  }
298*88d15eacSSasha Smundak>>> TestDiff/Reporter/AmbiguousPointerMap
299*88d15eacSSasha Smundak<<< TestDiff/Reporter/AmbiguousStringer
300*88d15eacSSasha Smundak  any(
301*88d15eacSSasha Smundak- 	cmp_test.Stringer("hello"),
302*88d15eacSSasha Smundak+ 	&cmp_test.Stringer("hello"),
303*88d15eacSSasha Smundak  )
304*88d15eacSSasha Smundak>>> TestDiff/Reporter/AmbiguousStringer
305*88d15eacSSasha Smundak<<< TestDiff/Reporter/AmbiguousStringerStruct
306*88d15eacSSasha Smundak  struct{ S fmt.Stringer }{
307*88d15eacSSasha Smundak- 	S: cmp_test.Stringer("hello"),
308*88d15eacSSasha Smundak+ 	S: &cmp_test.Stringer("hello"),
309*88d15eacSSasha Smundak  }
310*88d15eacSSasha Smundak>>> TestDiff/Reporter/AmbiguousStringerStruct
311*88d15eacSSasha Smundak<<< TestDiff/Reporter/AmbiguousStringerSlice
312*88d15eacSSasha Smundak  []fmt.Stringer{
313*88d15eacSSasha Smundak- 	cmp_test.Stringer("hello"),
314*88d15eacSSasha Smundak+ 	&cmp_test.Stringer("hello"),
315*88d15eacSSasha Smundak  }
316*88d15eacSSasha Smundak>>> TestDiff/Reporter/AmbiguousStringerSlice
317*88d15eacSSasha Smundak<<< TestDiff/Reporter/AmbiguousStringerMap
318*88d15eacSSasha Smundak  map[string]fmt.Stringer{
319*88d15eacSSasha Smundak- 	"zero": cmp_test.Stringer("hello"),
320*88d15eacSSasha Smundak+ 	"zero": &cmp_test.Stringer("hello"),
321*88d15eacSSasha Smundak  }
322*88d15eacSSasha Smundak>>> TestDiff/Reporter/AmbiguousStringerMap
323*88d15eacSSasha Smundak<<< TestDiff/Reporter/AmbiguousSliceHeader
324*88d15eacSSasha Smundak  []int(
325*88d15eacSSasha Smundak- 	⟪ptr:0xdeadf00f, len:0, cap:5⟫{},
326*88d15eacSSasha Smundak+ 	⟪ptr:0xdeadf00f, len:0, cap:1000⟫{},
327*88d15eacSSasha Smundak  )
328*88d15eacSSasha Smundak>>> TestDiff/Reporter/AmbiguousSliceHeader
329*88d15eacSSasha Smundak<<< TestDiff/Reporter/AmbiguousStringerMapKey
330*88d15eacSSasha Smundak  map[any]string{
331*88d15eacSSasha Smundak- 	nil:                                                                     "nil",
332*88d15eacSSasha Smundak+ 	&⟪0xdeadf00f⟫"github.com/google/go-cmp/cmp_test".Stringer("hello"):      "goodbye",
333*88d15eacSSasha Smundak- 	"github.com/google/go-cmp/cmp_test".Stringer("hello"):                   "goodbye",
334*88d15eacSSasha Smundak- 	"github.com/google/go-cmp/cmp/internal/teststructs/foo1".Bar{S: "fizz"}: "buzz",
335*88d15eacSSasha Smundak+ 	"github.com/google/go-cmp/cmp/internal/teststructs/foo2".Bar{S: "fizz"}: "buzz",
336*88d15eacSSasha Smundak  }
337*88d15eacSSasha Smundak>>> TestDiff/Reporter/AmbiguousStringerMapKey
338*88d15eacSSasha Smundak<<< TestDiff/Reporter/NonAmbiguousStringerMapKey
339*88d15eacSSasha Smundak  map[any]string{
340*88d15eacSSasha Smundak+ 	s"fizz":  "buzz",
341*88d15eacSSasha Smundak- 	s"hello": "goodbye",
342*88d15eacSSasha Smundak  }
343*88d15eacSSasha Smundak>>> TestDiff/Reporter/NonAmbiguousStringerMapKey
344*88d15eacSSasha Smundak<<< TestDiff/Reporter/InvalidUTF8
345*88d15eacSSasha Smundak  any(
346*88d15eacSSasha Smundak- 	cmp_test.MyString("\xed\xa0\x80"),
347*88d15eacSSasha Smundak  )
348*88d15eacSSasha Smundak>>> TestDiff/Reporter/InvalidUTF8
349*88d15eacSSasha Smundak<<< TestDiff/Reporter/UnbatchedSlice
350*88d15eacSSasha Smundak  cmp_test.MyComposite{
351*88d15eacSSasha Smundak  	... // 3 identical fields
352*88d15eacSSasha Smundak  	BytesB: nil,
353*88d15eacSSasha Smundak  	BytesC: nil,
354*88d15eacSSasha Smundak  	IntsA: []int8{
355*88d15eacSSasha Smundak+ 		10,
356*88d15eacSSasha Smundak  		11,
357*88d15eacSSasha Smundak- 		12,
358*88d15eacSSasha Smundak+ 		21,
359*88d15eacSSasha Smundak  		13,
360*88d15eacSSasha Smundak  		14,
361*88d15eacSSasha Smundak  		... // 15 identical elements
362*88d15eacSSasha Smundak  	},
363*88d15eacSSasha Smundak  	IntsB: nil,
364*88d15eacSSasha Smundak  	IntsC: nil,
365*88d15eacSSasha Smundak  	... // 6 identical fields
366*88d15eacSSasha Smundak  }
367*88d15eacSSasha Smundak>>> TestDiff/Reporter/UnbatchedSlice
368*88d15eacSSasha Smundak<<< TestDiff/Reporter/BatchedSlice
369*88d15eacSSasha Smundak  cmp_test.MyComposite{
370*88d15eacSSasha Smundak  	... // 3 identical fields
371*88d15eacSSasha Smundak  	BytesB: nil,
372*88d15eacSSasha Smundak  	BytesC: nil,
373*88d15eacSSasha Smundak  	IntsA: []int8{
374*88d15eacSSasha Smundak- 		10, 11, 12, 13, 14, 15, 16,
375*88d15eacSSasha Smundak+ 		12, 29, 13, 27, 22, 23,
376*88d15eacSSasha Smundak  		17, 18, 19, 20, 21,
377*88d15eacSSasha Smundak- 		22, 23, 24, 25, 26, 27, 28, 29,
378*88d15eacSSasha Smundak+ 		10, 26, 16, 25, 28, 11, 15, 24, 14,
379*88d15eacSSasha Smundak  	},
380*88d15eacSSasha Smundak  	IntsB: nil,
381*88d15eacSSasha Smundak  	IntsC: nil,
382*88d15eacSSasha Smundak  	... // 6 identical fields
383*88d15eacSSasha Smundak  }
384*88d15eacSSasha Smundak>>> TestDiff/Reporter/BatchedSlice
385*88d15eacSSasha Smundak<<< TestDiff/Reporter/BatchedWithComparer
386*88d15eacSSasha Smundak  cmp_test.MyComposite{
387*88d15eacSSasha Smundak  	StringA: "",
388*88d15eacSSasha Smundak  	StringB: "",
389*88d15eacSSasha Smundak  	BytesA: []uint8{
390*88d15eacSSasha Smundak- 		0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,             // -|.......|
391*88d15eacSSasha Smundak+ 		0x0c, 0x1d, 0x0d, 0x1b, 0x16, 0x17,                   // +|......|
392*88d15eacSSasha Smundak  		0x11, 0x12, 0x13, 0x14, 0x15,                         //  |.....|
393*88d15eacSSasha Smundak- 		0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d,       // -|........|
394*88d15eacSSasha Smundak+ 		0x0a, 0x1a, 0x10, 0x19, 0x1c, 0x0b, 0x0f, 0x18, 0x0e, // +|.........|
395*88d15eacSSasha Smundak  	},
396*88d15eacSSasha Smundak  	BytesB: nil,
397*88d15eacSSasha Smundak  	BytesC: nil,
398*88d15eacSSasha Smundak  	... // 9 identical fields
399*88d15eacSSasha Smundak  }
400*88d15eacSSasha Smundak>>> TestDiff/Reporter/BatchedWithComparer
401*88d15eacSSasha Smundak<<< TestDiff/Reporter/BatchedLong
402*88d15eacSSasha Smundak  any(
403*88d15eacSSasha Smundak- 	cmp_test.MyComposite{IntsA: []int8{0, 1, 2, 3, 4, 5, 6, 7, ...}},
404*88d15eacSSasha Smundak  )
405*88d15eacSSasha Smundak>>> TestDiff/Reporter/BatchedLong
406*88d15eacSSasha Smundak<<< TestDiff/Reporter/BatchedNamedAndUnnamed
407*88d15eacSSasha Smundak  cmp_test.MyComposite{
408*88d15eacSSasha Smundak  	StringA: "",
409*88d15eacSSasha Smundak  	StringB: "",
410*88d15eacSSasha Smundak  	BytesA: []uint8{
411*88d15eacSSasha Smundak- 		0x01, 0x02, 0x03, // -|...|
412*88d15eacSSasha Smundak+ 		0x03, 0x02, 0x01, // +|...|
413*88d15eacSSasha Smundak  	},
414*88d15eacSSasha Smundak  	BytesB: []cmp_test.MyByte{
415*88d15eacSSasha Smundak- 		0x04, 0x05, 0x06,
416*88d15eacSSasha Smundak+ 		0x06, 0x05, 0x04,
417*88d15eacSSasha Smundak  	},
418*88d15eacSSasha Smundak  	BytesC: cmp_test.MyBytes{
419*88d15eacSSasha Smundak- 		0x07, 0x08, 0x09, // -|...|
420*88d15eacSSasha Smundak+ 		0x09, 0x08, 0x07, // +|...|
421*88d15eacSSasha Smundak  	},
422*88d15eacSSasha Smundak  	IntsA: []int8{
423*88d15eacSSasha Smundak- 		-1, -2, -3,
424*88d15eacSSasha Smundak+ 		-3, -2, -1,
425*88d15eacSSasha Smundak  	},
426*88d15eacSSasha Smundak  	IntsB: []cmp_test.MyInt{
427*88d15eacSSasha Smundak- 		-4, -5, -6,
428*88d15eacSSasha Smundak+ 		-6, -5, -4,
429*88d15eacSSasha Smundak  	},
430*88d15eacSSasha Smundak  	IntsC: cmp_test.MyInts{
431*88d15eacSSasha Smundak- 		-7, -8, -9,
432*88d15eacSSasha Smundak+ 		-9, -8, -7,
433*88d15eacSSasha Smundak  	},
434*88d15eacSSasha Smundak  	UintsA: []uint16{
435*88d15eacSSasha Smundak- 		1000, 2000, 3000,
436*88d15eacSSasha Smundak+ 		3000, 2000, 1000,
437*88d15eacSSasha Smundak  	},
438*88d15eacSSasha Smundak  	UintsB: []cmp_test.MyUint{
439*88d15eacSSasha Smundak- 		4000, 5000, 6000,
440*88d15eacSSasha Smundak+ 		6000, 5000, 4000,
441*88d15eacSSasha Smundak  	},
442*88d15eacSSasha Smundak  	UintsC: cmp_test.MyUints{
443*88d15eacSSasha Smundak- 		7000, 8000, 9000,
444*88d15eacSSasha Smundak+ 		9000, 8000, 7000,
445*88d15eacSSasha Smundak  	},
446*88d15eacSSasha Smundak  	FloatsA: []float32{
447*88d15eacSSasha Smundak- 		1.5, 2.5, 3.5,
448*88d15eacSSasha Smundak+ 		3.5, 2.5, 1.5,
449*88d15eacSSasha Smundak  	},
450*88d15eacSSasha Smundak  	FloatsB: []cmp_test.MyFloat{
451*88d15eacSSasha Smundak- 		4.5, 5.5, 6.5,
452*88d15eacSSasha Smundak+ 		6.5, 5.5, 4.5,
453*88d15eacSSasha Smundak  	},
454*88d15eacSSasha Smundak  	FloatsC: cmp_test.MyFloats{
455*88d15eacSSasha Smundak- 		7.5, 8.5, 9.5,
456*88d15eacSSasha Smundak+ 		9.5, 8.5, 7.5,
457*88d15eacSSasha Smundak  	},
458*88d15eacSSasha Smundak  }
459*88d15eacSSasha Smundak>>> TestDiff/Reporter/BatchedNamedAndUnnamed
460*88d15eacSSasha Smundak<<< TestDiff/Reporter/BinaryHexdump
461*88d15eacSSasha Smundak  cmp_test.MyComposite{
462*88d15eacSSasha Smundak  	StringA: "",
463*88d15eacSSasha Smundak  	StringB: "",
464*88d15eacSSasha Smundak  	BytesA: []uint8{
465*88d15eacSSasha Smundak  		0xf3, 0x0f, 0x8a, 0xa4, 0xd3, 0x12, 0x52, 0x09, 0x24, 0xbe,                                     //  |......R.$.|
466*88d15eacSSasha Smundak- 		0x58, 0x95, 0x41, 0xfd, 0x24, 0x66, 0x58, 0x8b, 0x79,                                           // -|X.A.$fX.y|
467*88d15eacSSasha Smundak  		0x54, 0xac, 0x0d, 0xd8, 0x71, 0x77, 0x70, 0x20, 0x6a, 0x5c, 0x73, 0x7f, 0x8c, 0x17, 0x55, 0xc0, //  |T...qwp j\s...U.|
468*88d15eacSSasha Smundak  		0x34, 0xce, 0x6e, 0xf7, 0xaa, 0x47, 0xee, 0x32, 0x9d, 0xc5, 0xca, 0x1e, 0x58, 0xaf, 0x8f, 0x27, //  |4.n..G.2....X..'|
469*88d15eacSSasha Smundak  		0xf3, 0x02, 0x4a, 0x90, 0xed, 0x69, 0x2e, 0x70, 0x32, 0xb4, 0xab, 0x30, 0x20, 0xb6, 0xbd, 0x5c, //  |..J..i.p2..0 ..\|
470*88d15eacSSasha Smundak  		0x62, 0x34, 0x17, 0xb0, 0x00, 0xbb, 0x4f, 0x7e, 0x27, 0x47, 0x06, 0xf4, 0x2e, 0x66, 0xfd, 0x63, //  |b4....O~'G...f.c|
471*88d15eacSSasha Smundak  		0xd7, 0x04, 0xdd, 0xb7, 0x30, 0xb7, 0xd1,                                                       //  |....0..|
472*88d15eacSSasha Smundak- 		0x55, 0x7e, 0x7b, 0xf6, 0xb3, 0x7e, 0x1d, 0x57, 0x69,                                           // -|U~{..~.Wi|
473*88d15eacSSasha Smundak+ 		0x75, 0x2d, 0x5b, 0x5d, 0x5d, 0xf6, 0xb3, 0x68, 0x61, 0x68, 0x61, 0x7e, 0x1d, 0x57, 0x49,       // +|u-[]]..haha~.WI|
474*88d15eacSSasha Smundak  		0x20, 0x9e, 0xbc, 0xdf, 0xe1, 0x4d, 0xa9, 0xef, 0xa2, 0xd2, 0xed, 0xb4, 0x47, 0x78, 0xc9, 0xc9, //  | ....M......Gx..|
475*88d15eacSSasha Smundak  		0x27, 0xa4, 0xc6, 0xce, 0xec, 0x44, 0x70, 0x5d,                                                 //  |'....Dp]|
476*88d15eacSSasha Smundak  	},
477*88d15eacSSasha Smundak  	BytesB: nil,
478*88d15eacSSasha Smundak  	BytesC: nil,
479*88d15eacSSasha Smundak  	... // 9 identical fields
480*88d15eacSSasha Smundak  }
481*88d15eacSSasha Smundak>>> TestDiff/Reporter/BinaryHexdump
482*88d15eacSSasha Smundak<<< TestDiff/Reporter/StringHexdump
483*88d15eacSSasha Smundak  cmp_test.MyComposite{
484*88d15eacSSasha Smundak  	StringA: "",
485*88d15eacSSasha Smundak  	StringB: cmp_test.MyString{
486*88d15eacSSasha Smundak- 		0x72, 0x65, 0x61, 0x64, 0x6d, 0x65,                                                             // -|readme|
487*88d15eacSSasha Smundak+ 		0x67, 0x6f, 0x70, 0x68, 0x65, 0x72,                                                             // +|gopher|
488*88d15eacSSasha Smundak  		0x2e, 0x74, 0x78, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //  |.txt............|
489*88d15eacSSasha Smundak  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //  |................|
490*88d15eacSSasha Smundak  		... // 64 identical bytes
491*88d15eacSSasha Smundak  		0x30, 0x30, 0x36, 0x30, 0x30, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30, //  |00600.0000000.00|
492*88d15eacSSasha Smundak  		0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x34, //  |00000.0000000004|
493*88d15eacSSasha Smundak- 		0x36,                                                                                           // -|6|
494*88d15eacSSasha Smundak+ 		0x33,                                                                                           // +|3|
495*88d15eacSSasha Smundak  		0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x31, 0x31, //  |.00000000000.011|
496*88d15eacSSasha Smundak- 		0x31, 0x37, 0x33,                                                                               // -|173|
497*88d15eacSSasha Smundak+ 		0x32, 0x31, 0x37,                                                                               // +|217|
498*88d15eacSSasha Smundak  		0x00, 0x20, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //  |. 0.............|
499*88d15eacSSasha Smundak  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //  |................|
500*88d15eacSSasha Smundak  		... // 326 identical bytes
501*88d15eacSSasha Smundak  	},
502*88d15eacSSasha Smundak  	BytesA: nil,
503*88d15eacSSasha Smundak  	BytesB: nil,
504*88d15eacSSasha Smundak  	... // 10 identical fields
505*88d15eacSSasha Smundak  }
506*88d15eacSSasha Smundak>>> TestDiff/Reporter/StringHexdump
507*88d15eacSSasha Smundak<<< TestDiff/Reporter/BinaryString
508*88d15eacSSasha Smundak  cmp_test.MyComposite{
509*88d15eacSSasha Smundak  	StringA: "",
510*88d15eacSSasha Smundak  	StringB: "",
511*88d15eacSSasha Smundak  	BytesA: bytes.Join({
512*88d15eacSSasha Smundak  		`{"firstName":"John","lastName":"Smith","isAlive":true,"age":27,"`,
513*88d15eacSSasha Smundak  		`address":{"streetAddress":"`,
514*88d15eacSSasha Smundak- 		"314 54th Avenue",
515*88d15eacSSasha Smundak+ 		"21 2nd Street",
516*88d15eacSSasha Smundak  		`","city":"New York","state":"NY","postalCode":"10021-3100"},"pho`,
517*88d15eacSSasha Smundak  		`neNumbers":[{"type":"home","number":"212 555-1234"},{"type":"off`,
518*88d15eacSSasha Smundak  		... // 101 identical bytes
519*88d15eacSSasha Smundak  	}, ""),
520*88d15eacSSasha Smundak  	BytesB: nil,
521*88d15eacSSasha Smundak  	BytesC: nil,
522*88d15eacSSasha Smundak  	... // 9 identical fields
523*88d15eacSSasha Smundak  }
524*88d15eacSSasha Smundak>>> TestDiff/Reporter/BinaryString
525*88d15eacSSasha Smundak<<< TestDiff/Reporter/TripleQuote
526*88d15eacSSasha Smundak  cmp_test.MyComposite{
527*88d15eacSSasha Smundak  	StringA: (
528*88d15eacSSasha Smundak  		"""
529*88d15eacSSasha Smundak  		aaa
530*88d15eacSSasha Smundak  		bbb
531*88d15eacSSasha Smundak- 		ccc
532*88d15eacSSasha Smundak+ 		CCC
533*88d15eacSSasha Smundak  		ddd
534*88d15eacSSasha Smundak  		eee
535*88d15eacSSasha Smundak  		... // 10 identical lines
536*88d15eacSSasha Smundak  		ppp
537*88d15eacSSasha Smundak  		qqq
538*88d15eacSSasha Smundak- 		RRR
539*88d15eacSSasha Smundak- 		sss
540*88d15eacSSasha Smundak+ 		rrr
541*88d15eacSSasha Smundak+ 		SSS
542*88d15eacSSasha Smundak  		ttt
543*88d15eacSSasha Smundak  		uuu
544*88d15eacSSasha Smundak  		... // 6 identical lines
545*88d15eacSSasha Smundak  		"""
546*88d15eacSSasha Smundak  	),
547*88d15eacSSasha Smundak  	StringB: "",
548*88d15eacSSasha Smundak  	BytesA:  nil,
549*88d15eacSSasha Smundak  	... // 11 identical fields
550*88d15eacSSasha Smundak  }
551*88d15eacSSasha Smundak>>> TestDiff/Reporter/TripleQuote
552*88d15eacSSasha Smundak<<< TestDiff/Reporter/TripleQuoteSlice
553*88d15eacSSasha Smundak  []string{
554*88d15eacSSasha Smundak  	(
555*88d15eacSSasha Smundak  		"""
556*88d15eacSSasha Smundak  		... // 23 identical lines
557*88d15eacSSasha Smundak  		xxx
558*88d15eacSSasha Smundak  		yyy
559*88d15eacSSasha Smundak- 		zzz
560*88d15eacSSasha Smundak  		"""
561*88d15eacSSasha Smundak  	),
562*88d15eacSSasha Smundak  	"aaa\nbbb\nccc\nddd\neee\nfff\nggg\nhhh\niii\njjj\nkkk\nlll\nmmm\nnnn\nooo\nppp\n"...,
563*88d15eacSSasha Smundak  }
564*88d15eacSSasha Smundak>>> TestDiff/Reporter/TripleQuoteSlice
565*88d15eacSSasha Smundak<<< TestDiff/Reporter/TripleQuoteNamedTypes
566*88d15eacSSasha Smundak  cmp_test.MyComposite{
567*88d15eacSSasha Smundak  	StringA: "",
568*88d15eacSSasha Smundak  	StringB: (
569*88d15eacSSasha Smundak  		"""
570*88d15eacSSasha Smundak  		aaa
571*88d15eacSSasha Smundak  		bbb
572*88d15eacSSasha Smundak- 		ccc
573*88d15eacSSasha Smundak+ 		CCC
574*88d15eacSSasha Smundak  		ddd
575*88d15eacSSasha Smundak  		eee
576*88d15eacSSasha Smundak  		... // 10 identical lines
577*88d15eacSSasha Smundak  		ppp
578*88d15eacSSasha Smundak  		qqq
579*88d15eacSSasha Smundak- 		RRR
580*88d15eacSSasha Smundak- 		sss
581*88d15eacSSasha Smundak+ 		rrr
582*88d15eacSSasha Smundak+ 		SSS
583*88d15eacSSasha Smundak  		ttt
584*88d15eacSSasha Smundak  		uuu
585*88d15eacSSasha Smundak  		... // 5 identical lines
586*88d15eacSSasha Smundak  		"""
587*88d15eacSSasha Smundak  	),
588*88d15eacSSasha Smundak  	BytesA: nil,
589*88d15eacSSasha Smundak  	BytesB: nil,
590*88d15eacSSasha Smundak  	BytesC: cmp_test.MyBytes(
591*88d15eacSSasha Smundak  		"""
592*88d15eacSSasha Smundak  		aaa
593*88d15eacSSasha Smundak  		bbb
594*88d15eacSSasha Smundak- 		ccc
595*88d15eacSSasha Smundak+ 		CCC
596*88d15eacSSasha Smundak  		ddd
597*88d15eacSSasha Smundak  		eee
598*88d15eacSSasha Smundak  		... // 10 identical lines
599*88d15eacSSasha Smundak  		ppp
600*88d15eacSSasha Smundak  		qqq
601*88d15eacSSasha Smundak- 		RRR
602*88d15eacSSasha Smundak- 		sss
603*88d15eacSSasha Smundak+ 		rrr
604*88d15eacSSasha Smundak+ 		SSS
605*88d15eacSSasha Smundak  		ttt
606*88d15eacSSasha Smundak  		uuu
607*88d15eacSSasha Smundak  		... // 5 identical lines
608*88d15eacSSasha Smundak  		"""
609*88d15eacSSasha Smundak  	),
610*88d15eacSSasha Smundak  	IntsA: nil,
611*88d15eacSSasha Smundak  	IntsB: nil,
612*88d15eacSSasha Smundak  	... // 7 identical fields
613*88d15eacSSasha Smundak  }
614*88d15eacSSasha Smundak>>> TestDiff/Reporter/TripleQuoteNamedTypes
615*88d15eacSSasha Smundak<<< TestDiff/Reporter/TripleQuoteSliceNamedTypes
616*88d15eacSSasha Smundak  []cmp_test.MyString{
617*88d15eacSSasha Smundak  	(
618*88d15eacSSasha Smundak  		"""
619*88d15eacSSasha Smundak  		... // 23 identical lines
620*88d15eacSSasha Smundak  		xxx
621*88d15eacSSasha Smundak  		yyy
622*88d15eacSSasha Smundak- 		zzz
623*88d15eacSSasha Smundak  		"""
624*88d15eacSSasha Smundak  	),
625*88d15eacSSasha Smundak  	"aaa\nbbb\nccc\nddd\neee\nfff\nggg\nhhh\niii\njjj\nkkk\nlll\nmmm\nnnn\nooo\nppp\n"...,
626*88d15eacSSasha Smundak  }
627*88d15eacSSasha Smundak>>> TestDiff/Reporter/TripleQuoteSliceNamedTypes
628*88d15eacSSasha Smundak<<< TestDiff/Reporter/TripleQuoteEndlines
629*88d15eacSSasha Smundak  (
630*88d15eacSSasha Smundak  	"""
631*88d15eacSSasha Smundak  	aaa
632*88d15eacSSasha Smundak  	bbb
633*88d15eacSSasha Smundak- 	ccc
634*88d15eacSSasha Smundak+ 	CCC
635*88d15eacSSasha Smundak  	ddd
636*88d15eacSSasha Smundak  	eee
637*88d15eacSSasha Smundak  	... // 10 identical lines
638*88d15eacSSasha Smundak  	ppp
639*88d15eacSSasha Smundak  	qqq
640*88d15eacSSasha Smundak- 	RRR
641*88d15eacSSasha Smundak+ 	rrr
642*88d15eacSSasha Smundak  	sss
643*88d15eacSSasha Smundak  	ttt
644*88d15eacSSasha Smundak  	... // 4 identical lines
645*88d15eacSSasha Smundak  	yyy
646*88d15eacSSasha Smundak  	zzz
647*88d15eacSSasha Smundak-
648*88d15eacSSasha Smundak  	"""
649*88d15eacSSasha Smundak  )
650*88d15eacSSasha Smundak>>> TestDiff/Reporter/TripleQuoteEndlines
651*88d15eacSSasha Smundak<<< TestDiff/Reporter/AvoidTripleQuoteAmbiguousQuotes
652*88d15eacSSasha Smundak  strings.Join({
653*88d15eacSSasha Smundak  	"aaa",
654*88d15eacSSasha Smundak  	"bbb",
655*88d15eacSSasha Smundak- 	"ccc",
656*88d15eacSSasha Smundak+ 	"CCC",
657*88d15eacSSasha Smundak  	"ddd",
658*88d15eacSSasha Smundak  	"eee",
659*88d15eacSSasha Smundak- 	"fff",
660*88d15eacSSasha Smundak+ 	`"""`,
661*88d15eacSSasha Smundak  	"ggg",
662*88d15eacSSasha Smundak  	"hhh",
663*88d15eacSSasha Smundak  	... // 7 identical lines
664*88d15eacSSasha Smundak  	"ppp",
665*88d15eacSSasha Smundak  	"qqq",
666*88d15eacSSasha Smundak- 	"RRR",
667*88d15eacSSasha Smundak+ 	"rrr",
668*88d15eacSSasha Smundak  	"sss",
669*88d15eacSSasha Smundak  	"ttt",
670*88d15eacSSasha Smundak  	... // 7 identical lines
671*88d15eacSSasha Smundak  }, "\n")
672*88d15eacSSasha Smundak>>> TestDiff/Reporter/AvoidTripleQuoteAmbiguousQuotes
673*88d15eacSSasha Smundak<<< TestDiff/Reporter/AvoidTripleQuoteAmbiguousEllipsis
674*88d15eacSSasha Smundak  strings.Join({
675*88d15eacSSasha Smundak  	"aaa",
676*88d15eacSSasha Smundak  	"bbb",
677*88d15eacSSasha Smundak- 	"ccc",
678*88d15eacSSasha Smundak- 	"...",
679*88d15eacSSasha Smundak+ 	"CCC",
680*88d15eacSSasha Smundak+ 	"ddd",
681*88d15eacSSasha Smundak  	"eee",
682*88d15eacSSasha Smundak  	"fff",
683*88d15eacSSasha Smundak  	... // 9 identical lines
684*88d15eacSSasha Smundak  	"ppp",
685*88d15eacSSasha Smundak  	"qqq",
686*88d15eacSSasha Smundak- 	"RRR",
687*88d15eacSSasha Smundak+ 	"rrr",
688*88d15eacSSasha Smundak  	"sss",
689*88d15eacSSasha Smundak  	"ttt",
690*88d15eacSSasha Smundak  	... // 7 identical lines
691*88d15eacSSasha Smundak  }, "\n")
692*88d15eacSSasha Smundak>>> TestDiff/Reporter/AvoidTripleQuoteAmbiguousEllipsis
693*88d15eacSSasha Smundak<<< TestDiff/Reporter/AvoidTripleQuoteNonPrintable
694*88d15eacSSasha Smundak  strings.Join({
695*88d15eacSSasha Smundak  	"aaa",
696*88d15eacSSasha Smundak  	"bbb",
697*88d15eacSSasha Smundak- 	"ccc",
698*88d15eacSSasha Smundak+ 	"CCC",
699*88d15eacSSasha Smundak  	"ddd",
700*88d15eacSSasha Smundak  	"eee",
701*88d15eacSSasha Smundak  	... // 7 identical lines
702*88d15eacSSasha Smundak  	"mmm",
703*88d15eacSSasha Smundak  	"nnn",
704*88d15eacSSasha Smundak- 	"ooo",
705*88d15eacSSasha Smundak+ 	"o\roo",
706*88d15eacSSasha Smundak  	"ppp",
707*88d15eacSSasha Smundak  	"qqq",
708*88d15eacSSasha Smundak- 	"RRR",
709*88d15eacSSasha Smundak+ 	"rrr",
710*88d15eacSSasha Smundak  	"sss",
711*88d15eacSSasha Smundak  	"ttt",
712*88d15eacSSasha Smundak  	... // 7 identical lines
713*88d15eacSSasha Smundak  }, "\n")
714*88d15eacSSasha Smundak>>> TestDiff/Reporter/AvoidTripleQuoteNonPrintable
715*88d15eacSSasha Smundak<<< TestDiff/Reporter/AvoidTripleQuoteIdenticalWhitespace
716*88d15eacSSasha Smundak  strings.Join({
717*88d15eacSSasha Smundak  	"aaa",
718*88d15eacSSasha Smundak  	"bbb",
719*88d15eacSSasha Smundak- 	"ccc",
720*88d15eacSSasha Smundak- 	" ddd",
721*88d15eacSSasha Smundak+ 	"ccc ",
722*88d15eacSSasha Smundak+ 	"ddd",
723*88d15eacSSasha Smundak  	"eee",
724*88d15eacSSasha Smundak  	"fff",
725*88d15eacSSasha Smundak  	... // 9 identical lines
726*88d15eacSSasha Smundak  	"ppp",
727*88d15eacSSasha Smundak  	"qqq",
728*88d15eacSSasha Smundak- 	"RRR",
729*88d15eacSSasha Smundak+ 	"rrr",
730*88d15eacSSasha Smundak  	"sss",
731*88d15eacSSasha Smundak  	"ttt",
732*88d15eacSSasha Smundak  	... // 7 identical lines
733*88d15eacSSasha Smundak  }, "\n")
734*88d15eacSSasha Smundak>>> TestDiff/Reporter/AvoidTripleQuoteIdenticalWhitespace
735*88d15eacSSasha Smundak<<< TestDiff/Reporter/TripleQuoteStringer
736*88d15eacSSasha Smundak  []fmt.Stringer{
737*88d15eacSSasha Smundak  	s"package main\n\nimport (\n\t\"fmt\"\n)\n\nfunc main() {\n\tfmt.Println(\"Hel"...,
738*88d15eacSSasha Smundak- 	(
739*88d15eacSSasha Smundak- 		s"""
740*88d15eacSSasha Smundak- 		package main
741*88d15eacSSasha Smundak-
742*88d15eacSSasha Smundak- 		import (
743*88d15eacSSasha Smundak- 			"fmt"
744*88d15eacSSasha Smundak- 			"math/rand"
745*88d15eacSSasha Smundak- 		)
746*88d15eacSSasha Smundak-
747*88d15eacSSasha Smundak- 		func main() {
748*88d15eacSSasha Smundak- 			fmt.Println("My favorite number is", rand.Intn(10))
749*88d15eacSSasha Smundak- 		}
750*88d15eacSSasha Smundak- 		s"""
751*88d15eacSSasha Smundak- 	),
752*88d15eacSSasha Smundak+ 	(
753*88d15eacSSasha Smundak+ 		s"""
754*88d15eacSSasha Smundak+ 		package main
755*88d15eacSSasha Smundak+
756*88d15eacSSasha Smundak+ 		import (
757*88d15eacSSasha Smundak+ 			"fmt"
758*88d15eacSSasha Smundak+ 			"math"
759*88d15eacSSasha Smundak+ 		)
760*88d15eacSSasha Smundak+
761*88d15eacSSasha Smundak+ 		func main() {
762*88d15eacSSasha Smundak+ 			fmt.Printf("Now you have %g problems.\n", math.Sqrt(7))
763*88d15eacSSasha Smundak+ 		}
764*88d15eacSSasha Smundak+ 		s"""
765*88d15eacSSasha Smundak+ 	),
766*88d15eacSSasha Smundak  }
767*88d15eacSSasha Smundak>>> TestDiff/Reporter/TripleQuoteStringer
768*88d15eacSSasha Smundak<<< TestDiff/Reporter/LimitMaximumBytesDiffs
769*88d15eacSSasha Smundak  []uint8{
770*88d15eacSSasha Smundak- 	0xcd, 0x3d, 0x3d, 0x3d, 0x3d, 0x06, 0x1f, 0xc2, 0xcc, 0xc2, 0x2d, 0x53,                         // -|.====.....-S|
771*88d15eacSSasha Smundak+ 	0x5c, 0x3d, 0x3d, 0x3d, 0x3d, 0x7c, 0x96, 0xe7, 0x53, 0x42, 0xa0, 0xab,                         // +|\====|..SB..|
772*88d15eacSSasha Smundak  	0x3d, 0x3d, 0x3d, 0x3d, 0x3d,                                                                   //  |=====|
773*88d15eacSSasha Smundak- 	0x1d, 0xdf, 0x61, 0xae, 0x98, 0x9f, 0x48,                                                       // -|..a...H|
774*88d15eacSSasha Smundak+ 	0xf0, 0xbd, 0xa5, 0x71, 0xab, 0x17, 0x3b,                                                       // +|...q..;|
775*88d15eacSSasha Smundak  	0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,                                                             //  |======|
776*88d15eacSSasha Smundak- 	0xc7, 0xb0, 0xb7,                                                                               // -|...|
777*88d15eacSSasha Smundak+ 	0xab, 0x50, 0x00,                                                                               // +|.P.|
778*88d15eacSSasha Smundak  	0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,                                                       //  |=======|
779*88d15eacSSasha Smundak- 	0xef, 0x3d, 0x3d, 0x3d, 0x3d, 0x3a, 0x5c, 0x94, 0xe6, 0x4a, 0xc7,                               // -|.====:\..J.|
780*88d15eacSSasha Smundak+ 	0xeb, 0x3d, 0x3d, 0x3d, 0x3d, 0xa5, 0x14, 0xe6, 0x4f, 0x28, 0xe4,                               // +|.====...O(.|
781*88d15eacSSasha Smundak  	0x3d, 0x3d, 0x3d, 0x3d, 0x3d,                                                                   //  |=====|
782*88d15eacSSasha Smundak- 	0xb4,                                                                                           // -|.|
783*88d15eacSSasha Smundak+ 	0x28,                                                                                           // +|(|
784*88d15eacSSasha Smundak  	0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,                                                             //  |======|
785*88d15eacSSasha Smundak- 	0x0a, 0x0a, 0xf7, 0x94,                                                                         // -|....|
786*88d15eacSSasha Smundak+ 	0x2f, 0x63, 0x40, 0x3f,                                                                         // +|/c@?|
787*88d15eacSSasha Smundak  	0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,                               //  |===========|
788*88d15eacSSasha Smundak- 	0xf2, 0x9c, 0xc0, 0x66,                                                                         // -|...f|
789*88d15eacSSasha Smundak+ 	0xd9, 0x78, 0xed, 0x13,                                                                         // +|.x..|
790*88d15eacSSasha Smundak  	0x3d, 0x3d, 0x3d, 0x3d, 0x3d,                                                                   //  |=====|
791*88d15eacSSasha Smundak- 	0x34, 0xf6, 0xf1, 0xc3, 0x17, 0x82,                                                             // -|4.....|
792*88d15eacSSasha Smundak+ 	0x4a, 0xfc, 0x91, 0x38, 0x42, 0x8d,                                                             // +|J..8B.|
793*88d15eacSSasha Smundak  	0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,                                                             //  |======|
794*88d15eacSSasha Smundak- 	0x6e, 0x16, 0x60, 0x91, 0x44, 0xc6, 0x06,                                                       // -|n.`.D..|
795*88d15eacSSasha Smundak+ 	0x61, 0x38, 0x41, 0xeb, 0x73, 0x04, 0xae,                                                       // +|a8A.s..|
796*88d15eacSSasha Smundak  	0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,                                                       //  |=======|
797*88d15eacSSasha Smundak- 	0x1c, 0x45, 0x3d, 0x3d, 0x3d, 0x3d, 0x2e,                                                       // -|.E====.|
798*88d15eacSSasha Smundak+ 	0x07, 0x43, 0x3d, 0x3d, 0x3d, 0x3d, 0x1c,                                                       // +|.C====.|
799*88d15eacSSasha Smundak  	0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,                               //  |===========|
800*88d15eacSSasha Smundak- 	0xc4, 0x18,                                                                                     // -|..|
801*88d15eacSSasha Smundak+ 	0x91, 0x22,                                                                                     // +|."|
802*88d15eacSSasha Smundak  	0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,                                                       //  |=======|
803*88d15eacSSasha Smundak- 	0x8a, 0x8d, 0x0e, 0x3d, 0x3d, 0x3d, 0x3d, 0x87, 0xb1, 0xa5, 0x8e, 0xc3, 0x3d, 0x3d, 0x3d, 0x3d, // -|...====.....====|
804*88d15eacSSasha Smundak- 	0x3d, 0x7a, 0x0f, 0x31, 0xae, 0x55, 0x3d,                                                       // -|=z.1.U=|
805*88d15eacSSasha Smundak+ 	0x75, 0xd8, 0xbe, 0x3d, 0x3d, 0x3d, 0x3d, 0x73, 0xec, 0x84, 0x35, 0x07, 0x3d, 0x3d, 0x3d, 0x3d, // +|u..====s..5.====|
806*88d15eacSSasha Smundak+ 	0x3d, 0x3b, 0xab, 0x53, 0x39, 0x74,                                                             // +|=;.S9t|
807*88d15eacSSasha Smundak  	0x3d, 0x3d, 0x3d, 0x3d, 0x3d,                                                                   //  |=====|
808*88d15eacSSasha Smundak- 	0x47, 0x2c, 0x3d,                                                                               // -|G,=|
809*88d15eacSSasha Smundak+ 	0x3d, 0x1f, 0x1b,                                                                               // +|=..|
810*88d15eacSSasha Smundak  	0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,                                                             //  |======|
811*88d15eacSSasha Smundak- 	0x35, 0xe7, 0x35, 0xee, 0x82, 0xf4, 0xce, 0x3d, 0x3d, 0x3d, 0x3d, 0x11, 0x72, 0x3d,             // -|5.5....====.r=|
812*88d15eacSSasha Smundak+ 	0x3d, 0x80, 0xab, 0x2f, 0xed, 0x2b, 0x3a, 0x3b, 0x3d, 0x3d, 0x3d, 0x3d, 0xea, 0x49,             // +|=../.+:;====.I|
813*88d15eacSSasha Smundak  	0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,                                     //  |==========|
814*88d15eacSSasha Smundak- 	0xaf, 0x5d, 0x3d,                                                                               // -|.]=|
815*88d15eacSSasha Smundak+ 	0x3d, 0xab, 0x6c,                                                                               // +|=.l|
816*88d15eacSSasha Smundak  	... // 51 identical, 34 removed, and 35 inserted bytes
817*88d15eacSSasha Smundak  }
818*88d15eacSSasha Smundak>>> TestDiff/Reporter/LimitMaximumBytesDiffs
819*88d15eacSSasha Smundak<<< TestDiff/Reporter/LimitMaximumStringDiffs
820*88d15eacSSasha Smundak  (
821*88d15eacSSasha Smundak  	"""
822*88d15eacSSasha Smundak- 	a
823*88d15eacSSasha Smundak+ 	aa
824*88d15eacSSasha Smundak  	b
825*88d15eacSSasha Smundak- 	c
826*88d15eacSSasha Smundak+ 	cc
827*88d15eacSSasha Smundak  	d
828*88d15eacSSasha Smundak- 	e
829*88d15eacSSasha Smundak+ 	ee
830*88d15eacSSasha Smundak  	f
831*88d15eacSSasha Smundak- 	g
832*88d15eacSSasha Smundak+ 	gg
833*88d15eacSSasha Smundak  	h
834*88d15eacSSasha Smundak- 	i
835*88d15eacSSasha Smundak+ 	ii
836*88d15eacSSasha Smundak  	j
837*88d15eacSSasha Smundak- 	k
838*88d15eacSSasha Smundak+ 	kk
839*88d15eacSSasha Smundak  	l
840*88d15eacSSasha Smundak- 	m
841*88d15eacSSasha Smundak+ 	mm
842*88d15eacSSasha Smundak  	n
843*88d15eacSSasha Smundak- 	o
844*88d15eacSSasha Smundak+ 	oo
845*88d15eacSSasha Smundak  	p
846*88d15eacSSasha Smundak- 	q
847*88d15eacSSasha Smundak+ 	qq
848*88d15eacSSasha Smundak  	r
849*88d15eacSSasha Smundak- 	s
850*88d15eacSSasha Smundak+ 	ss
851*88d15eacSSasha Smundak  	t
852*88d15eacSSasha Smundak- 	u
853*88d15eacSSasha Smundak+ 	uu
854*88d15eacSSasha Smundak  	v
855*88d15eacSSasha Smundak- 	w
856*88d15eacSSasha Smundak+ 	ww
857*88d15eacSSasha Smundak  	x
858*88d15eacSSasha Smundak- 	y
859*88d15eacSSasha Smundak+ 	yy
860*88d15eacSSasha Smundak  	z
861*88d15eacSSasha Smundak- 	A
862*88d15eacSSasha Smundak+ 	AA
863*88d15eacSSasha Smundak  	B
864*88d15eacSSasha Smundak- 	C
865*88d15eacSSasha Smundak+ 	CC
866*88d15eacSSasha Smundak  	D
867*88d15eacSSasha Smundak- 	E
868*88d15eacSSasha Smundak+ 	EE
869*88d15eacSSasha Smundak  	... // 12 identical, 10 removed, and 10 inserted lines
870*88d15eacSSasha Smundak  	"""
871*88d15eacSSasha Smundak  )
872*88d15eacSSasha Smundak>>> TestDiff/Reporter/LimitMaximumStringDiffs
873*88d15eacSSasha Smundak<<< TestDiff/Reporter/LimitMaximumSliceDiffs
874*88d15eacSSasha Smundak  []struct{ S string }{
875*88d15eacSSasha Smundak- 	{S: "a"},
876*88d15eacSSasha Smundak+ 	{S: "aa"},
877*88d15eacSSasha Smundak  	{S: "b"},
878*88d15eacSSasha Smundak- 	{S: "c"},
879*88d15eacSSasha Smundak+ 	{S: "cc"},
880*88d15eacSSasha Smundak  	{S: "d"},
881*88d15eacSSasha Smundak- 	{S: "e"},
882*88d15eacSSasha Smundak+ 	{S: "ee"},
883*88d15eacSSasha Smundak  	{S: "f"},
884*88d15eacSSasha Smundak- 	{S: "g"},
885*88d15eacSSasha Smundak+ 	{S: "gg"},
886*88d15eacSSasha Smundak  	{S: "h"},
887*88d15eacSSasha Smundak- 	{S: "i"},
888*88d15eacSSasha Smundak+ 	{S: "ii"},
889*88d15eacSSasha Smundak  	{S: "j"},
890*88d15eacSSasha Smundak- 	{S: "k"},
891*88d15eacSSasha Smundak+ 	{S: "kk"},
892*88d15eacSSasha Smundak  	{S: "l"},
893*88d15eacSSasha Smundak- 	{S: "m"},
894*88d15eacSSasha Smundak+ 	{S: "mm"},
895*88d15eacSSasha Smundak  	{S: "n"},
896*88d15eacSSasha Smundak- 	{S: "o"},
897*88d15eacSSasha Smundak+ 	{S: "oo"},
898*88d15eacSSasha Smundak  	{S: "p"},
899*88d15eacSSasha Smundak- 	{S: "q"},
900*88d15eacSSasha Smundak+ 	{S: "qq"},
901*88d15eacSSasha Smundak  	{S: "r"},
902*88d15eacSSasha Smundak- 	{S: "s"},
903*88d15eacSSasha Smundak+ 	{S: "ss"},
904*88d15eacSSasha Smundak  	{S: "t"},
905*88d15eacSSasha Smundak- 	{S: "u"},
906*88d15eacSSasha Smundak+ 	{S: "uu"},
907*88d15eacSSasha Smundak  	{S: "v"},
908*88d15eacSSasha Smundak- 	{S: "w"},
909*88d15eacSSasha Smundak+ 	{S: "ww"},
910*88d15eacSSasha Smundak  	{S: "x"},
911*88d15eacSSasha Smundak- 	{S: "y"},
912*88d15eacSSasha Smundak+ 	{S: "yy"},
913*88d15eacSSasha Smundak  	{S: "z"},
914*88d15eacSSasha Smundak- 	{S: "A"},
915*88d15eacSSasha Smundak+ 	{S: "AA"},
916*88d15eacSSasha Smundak  	{S: "B"},
917*88d15eacSSasha Smundak- 	{S: "C"},
918*88d15eacSSasha Smundak+ 	{S: "CC"},
919*88d15eacSSasha Smundak  	{S: "D"},
920*88d15eacSSasha Smundak- 	{S: "E"},
921*88d15eacSSasha Smundak+ 	{S: "EE"},
922*88d15eacSSasha Smundak  	... // 12 identical and 10 modified elements
923*88d15eacSSasha Smundak  }
924*88d15eacSSasha Smundak>>> TestDiff/Reporter/LimitMaximumSliceDiffs
925*88d15eacSSasha Smundak<<< TestDiff/Reporter/MultilineString
926*88d15eacSSasha Smundak  cmp_test.MyComposite{
927*88d15eacSSasha Smundak  	StringA: (
928*88d15eacSSasha Smundak  		"""
929*88d15eacSSasha Smundak- 		Package cmp determines equality of values.
930*88d15eacSSasha Smundak+ 		Package cmp determines equality of value.
931*88d15eacSSasha Smundak
932*88d15eacSSasha Smundak  		This package is intended to be a more powerful and safer alternative to
933*88d15eacSSasha Smundak  		... // 6 identical lines
934*88d15eacSSasha Smundak  		For example, an equality function may report floats as equal so long as they
935*88d15eacSSasha Smundak  		are within some tolerance of each other.
936*88d15eacSSasha Smundak-
937*88d15eacSSasha Smundak- 		• Types that have an Equal method may use that method to determine equality.
938*88d15eacSSasha Smundak- 		This allows package authors to determine the equality operation for the types
939*88d15eacSSasha Smundak- 		that they define.
940*88d15eacSSasha Smundak
941*88d15eacSSasha Smundak  		• If no custom equality functions are used and no Equal method is defined,
942*88d15eacSSasha Smundak  		... // 3 identical lines
943*88d15eacSSasha Smundak  		by using an Ignore option (see cmpopts.IgnoreUnexported) or explicitly compared
944*88d15eacSSasha Smundak  		using the AllowUnexported option.
945*88d15eacSSasha Smundak-
946*88d15eacSSasha Smundak  		"""
947*88d15eacSSasha Smundak  	),
948*88d15eacSSasha Smundak  	StringB: "",
949*88d15eacSSasha Smundak  	BytesA:  nil,
950*88d15eacSSasha Smundak  	... // 11 identical fields
951*88d15eacSSasha Smundak  }
952*88d15eacSSasha Smundak>>> TestDiff/Reporter/MultilineString
953*88d15eacSSasha Smundak<<< TestDiff/Reporter/Slices
954*88d15eacSSasha Smundak  cmp_test.MyComposite{
955*88d15eacSSasha Smundak  	StringA: "",
956*88d15eacSSasha Smundak  	StringB: "",
957*88d15eacSSasha Smundak- 	BytesA:  []uint8{0x01, 0x02, 0x03},
958*88d15eacSSasha Smundak+ 	BytesA:  nil,
959*88d15eacSSasha Smundak- 	BytesB:  []cmp_test.MyByte{0x04, 0x05, 0x06},
960*88d15eacSSasha Smundak+ 	BytesB:  nil,
961*88d15eacSSasha Smundak- 	BytesC:  cmp_test.MyBytes{0x07, 0x08, 0x09},
962*88d15eacSSasha Smundak+ 	BytesC:  nil,
963*88d15eacSSasha Smundak- 	IntsA:   []int8{-1, -2, -3},
964*88d15eacSSasha Smundak+ 	IntsA:   nil,
965*88d15eacSSasha Smundak- 	IntsB:   []cmp_test.MyInt{-4, -5, -6},
966*88d15eacSSasha Smundak+ 	IntsB:   nil,
967*88d15eacSSasha Smundak- 	IntsC:   cmp_test.MyInts{-7, -8, -9},
968*88d15eacSSasha Smundak+ 	IntsC:   nil,
969*88d15eacSSasha Smundak- 	UintsA:  []uint16{1000, 2000, 3000},
970*88d15eacSSasha Smundak+ 	UintsA:  nil,
971*88d15eacSSasha Smundak- 	UintsB:  []cmp_test.MyUint{4000, 5000, 6000},
972*88d15eacSSasha Smundak+ 	UintsB:  nil,
973*88d15eacSSasha Smundak- 	UintsC:  cmp_test.MyUints{7000, 8000, 9000},
974*88d15eacSSasha Smundak+ 	UintsC:  nil,
975*88d15eacSSasha Smundak- 	FloatsA: []float32{1.5, 2.5, 3.5},
976*88d15eacSSasha Smundak+ 	FloatsA: nil,
977*88d15eacSSasha Smundak- 	FloatsB: []cmp_test.MyFloat{4.5, 5.5, 6.5},
978*88d15eacSSasha Smundak+ 	FloatsB: nil,
979*88d15eacSSasha Smundak- 	FloatsC: cmp_test.MyFloats{7.5, 8.5, 9.5},
980*88d15eacSSasha Smundak+ 	FloatsC: nil,
981*88d15eacSSasha Smundak  }
982*88d15eacSSasha Smundak>>> TestDiff/Reporter/Slices
983*88d15eacSSasha Smundak<<< TestDiff/Reporter/EmptySlices
984*88d15eacSSasha Smundak  cmp_test.MyComposite{
985*88d15eacSSasha Smundak  	StringA: "",
986*88d15eacSSasha Smundak  	StringB: "",
987*88d15eacSSasha Smundak- 	BytesA:  []uint8{},
988*88d15eacSSasha Smundak+ 	BytesA:  nil,
989*88d15eacSSasha Smundak- 	BytesB:  []cmp_test.MyByte{},
990*88d15eacSSasha Smundak+ 	BytesB:  nil,
991*88d15eacSSasha Smundak- 	BytesC:  cmp_test.MyBytes{},
992*88d15eacSSasha Smundak+ 	BytesC:  nil,
993*88d15eacSSasha Smundak- 	IntsA:   []int8{},
994*88d15eacSSasha Smundak+ 	IntsA:   nil,
995*88d15eacSSasha Smundak- 	IntsB:   []cmp_test.MyInt{},
996*88d15eacSSasha Smundak+ 	IntsB:   nil,
997*88d15eacSSasha Smundak- 	IntsC:   cmp_test.MyInts{},
998*88d15eacSSasha Smundak+ 	IntsC:   nil,
999*88d15eacSSasha Smundak- 	UintsA:  []uint16{},
1000*88d15eacSSasha Smundak+ 	UintsA:  nil,
1001*88d15eacSSasha Smundak- 	UintsB:  []cmp_test.MyUint{},
1002*88d15eacSSasha Smundak+ 	UintsB:  nil,
1003*88d15eacSSasha Smundak- 	UintsC:  cmp_test.MyUints{},
1004*88d15eacSSasha Smundak+ 	UintsC:  nil,
1005*88d15eacSSasha Smundak- 	FloatsA: []float32{},
1006*88d15eacSSasha Smundak+ 	FloatsA: nil,
1007*88d15eacSSasha Smundak- 	FloatsB: []cmp_test.MyFloat{},
1008*88d15eacSSasha Smundak+ 	FloatsB: nil,
1009*88d15eacSSasha Smundak- 	FloatsC: cmp_test.MyFloats{},
1010*88d15eacSSasha Smundak+ 	FloatsC: nil,
1011*88d15eacSSasha Smundak  }
1012*88d15eacSSasha Smundak>>> TestDiff/Reporter/EmptySlices
1013*88d15eacSSasha Smundak<<< TestDiff/Reporter/LargeMapKey
1014*88d15eacSSasha Smundak  map[*[]uint8]int{
1015*88d15eacSSasha Smundak- 	&⟪0xdeadf00f⟫⟪ptr:0xdeadf00f, len:1048576, cap:1048576⟫{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ...}: 0,
1016*88d15eacSSasha Smundak+ 	&⟪0xdeadf00f⟫⟪ptr:0xdeadf00f, len:1048576, cap:1048576⟫{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ...}: 0,
1017*88d15eacSSasha Smundak  }
1018*88d15eacSSasha Smundak>>> TestDiff/Reporter/LargeMapKey
1019*88d15eacSSasha Smundak<<< TestDiff/Reporter/LargeStringInInterface
1020*88d15eacSSasha Smundak  struct{ X any }{
1021*88d15eacSSasha Smundak  	X: strings.Join({
1022*88d15eacSSasha Smundak  		... // 485 identical bytes
1023*88d15eacSSasha Smundak  		"s mus. Pellentesque mi lorem, consectetur id porttitor id, solli",
1024*88d15eacSSasha Smundak  		"citudin sit amet enim. Duis eu dolor magna. Nunc ut augue turpis",
1025*88d15eacSSasha Smundak- 		".",
1026*88d15eacSSasha Smundak+ 		",",
1027*88d15eacSSasha Smundak  	}, ""),
1028*88d15eacSSasha Smundak  }
1029*88d15eacSSasha Smundak>>> TestDiff/Reporter/LargeStringInInterface
1030*88d15eacSSasha Smundak<<< TestDiff/Reporter/LargeBytesInInterface
1031*88d15eacSSasha Smundak  struct{ X any }{
1032*88d15eacSSasha Smundak  	X: bytes.Join({
1033*88d15eacSSasha Smundak  		... // 485 identical bytes
1034*88d15eacSSasha Smundak  		"s mus. Pellentesque mi lorem, consectetur id porttitor id, solli",
1035*88d15eacSSasha Smundak  		"citudin sit amet enim. Duis eu dolor magna. Nunc ut augue turpis",
1036*88d15eacSSasha Smundak- 		".",
1037*88d15eacSSasha Smundak+ 		",",
1038*88d15eacSSasha Smundak  	}, ""),
1039*88d15eacSSasha Smundak  }
1040*88d15eacSSasha Smundak>>> TestDiff/Reporter/LargeBytesInInterface
1041*88d15eacSSasha Smundak<<< TestDiff/Reporter/LargeStandaloneString
1042*88d15eacSSasha Smundak  struct{ X any }{
1043*88d15eacSSasha Smundak- 	X: [1]string{
1044*88d15eacSSasha Smundak- 		"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet pretium ligula, at gravida quam. Integer iaculis, velit at sagittis ultricies, lacus metus scelerisque turpis, ornare feugiat nulla nisl ac erat. Maecenas elementum ultricies libero, sed efficitur lacus molestie non. Nulla ac pretium dolor. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque mi lorem, consectetur id porttitor id, sollicitudin sit amet enim. Duis eu dolor magna. Nunc ut augue turpis.",
1045*88d15eacSSasha Smundak- 	},
1046*88d15eacSSasha Smundak+ 	X: [1]string{
1047*88d15eacSSasha Smundak+ 		"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet pretium ligula, at gravida quam. Integer iaculis, velit at sagittis ultricies, lacus metus scelerisque turpis, ornare feugiat nulla nisl ac erat. Maecenas elementum ultricies libero, sed efficitur lacus molestie non. Nulla ac pretium dolor. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque mi lorem, consectetur id porttitor id, sollicitudin sit amet enim. Duis eu dolor magna. Nunc ut augue turpis,",
1048*88d15eacSSasha Smundak+ 	},
1049*88d15eacSSasha Smundak  }
1050*88d15eacSSasha Smundak>>> TestDiff/Reporter/LargeStandaloneString
1051*88d15eacSSasha Smundak<<< TestDiff/Reporter/SurroundingEqualElements
1052*88d15eacSSasha Smundak  strings.Join({
1053*88d15eacSSasha Smundak  	"org-4747474747474747,bucket-4242424242424242:m,tag1=a,tag2=aa",
1054*88d15eacSSasha Smundak- 	",#=_value",
1055*88d15eacSSasha Smundak  	` _value=2 11	org-4747474747474747,bucket-4242424242424242:m,tag1`,
1056*88d15eacSSasha Smundak  	"=a,tag2=bb",
1057*88d15eacSSasha Smundak- 	",#=_value",
1058*88d15eacSSasha Smundak  	` _value=2 21	org-4747474747474747,bucket-4242424242424242:m,tag1`,
1059*88d15eacSSasha Smundak  	"=b,tag2=cc",
1060*88d15eacSSasha Smundak- 	",#=_value",
1061*88d15eacSSasha Smundak  	` _value=1 21	org-4747474747474747,bucket-4242424242424242:m,tag1`,
1062*88d15eacSSasha Smundak  	"=a,tag2=dd",
1063*88d15eacSSasha Smundak- 	",#=_value",
1064*88d15eacSSasha Smundak  	` _value=3 31	org-4747474747474747,bucket-4242424242424242:m,tag1`,
1065*88d15eacSSasha Smundak  	"=c",
1066*88d15eacSSasha Smundak- 	",#=_value",
1067*88d15eacSSasha Smundak  	` _value=4 41	`,
1068*88d15eacSSasha Smundak  }, "")
1069*88d15eacSSasha Smundak>>> TestDiff/Reporter/SurroundingEqualElements
1070*88d15eacSSasha Smundak<<< TestDiff/Reporter/MostlyTextString
1071*88d15eacSSasha Smundak  strings.Join({
1072*88d15eacSSasha Smundak  	"org-4747474747474747,bucket-4242424242424242:m,tag1=a,tag2=aa",
1073*88d15eacSSasha Smundak- 	",\xff=_value",
1074*88d15eacSSasha Smundak  	" _value=2 11\norg-4747474747474747,bucket-4242424242424242:m,tag1",
1075*88d15eacSSasha Smundak  	"=a,tag2=bb",
1076*88d15eacSSasha Smundak- 	",\xff=_value",
1077*88d15eacSSasha Smundak  	" _value=2 21\norg-4747474747474747,bucket-4242424242424242:m,tag1",
1078*88d15eacSSasha Smundak  	"=b,tag2=cc",
1079*88d15eacSSasha Smundak- 	",\xff=_value",
1080*88d15eacSSasha Smundak  	" _value=1 21\norg-4747474747474747,bucket-4242424242424242:m,tag1",
1081*88d15eacSSasha Smundak  	"=a,tag2=dd",
1082*88d15eacSSasha Smundak- 	",\xff=_value",
1083*88d15eacSSasha Smundak  	" _value=3 31\norg-4747474747474747,bucket-4242424242424242:m,tag1",
1084*88d15eacSSasha Smundak  	"=c",
1085*88d15eacSSasha Smundak- 	",\xff=_value",
1086*88d15eacSSasha Smundak  	" _value=4 41\n",
1087*88d15eacSSasha Smundak  }, "")
1088*88d15eacSSasha Smundak>>> TestDiff/Reporter/MostlyTextString
1089*88d15eacSSasha Smundak<<< TestDiff/Reporter/AllLinesDiffer
1090*88d15eacSSasha Smundak  strings.Join({
1091*88d15eacSSasha Smundak+ 	"X",
1092*88d15eacSSasha Smundak  	"d5c14bdf6bac81c27afc5429500ed750\n",
1093*88d15eacSSasha Smundak+ 	"X",
1094*88d15eacSSasha Smundak  	"25483503b557c606dad4f144d27ae10b\n",
1095*88d15eacSSasha Smundak+ 	"X",
1096*88d15eacSSasha Smundak  	"90bdbcdbb6ea7156068e3dcfb7459244\n",
1097*88d15eacSSasha Smundak+ 	"X",
1098*88d15eacSSasha Smundak  	"978f480a6e3cced51e297fbff9a506b7\n",
1099*88d15eacSSasha Smundak  }, "")
1100*88d15eacSSasha Smundak>>> TestDiff/Reporter/AllLinesDiffer
1101*88d15eacSSasha Smundak<<< TestDiff/Reporter/StringifiedBytes
1102*88d15eacSSasha Smundak  struct{ X []uint8 }{
1103*88d15eacSSasha Smundak- 	X: []uint8("hello, world!"),
1104*88d15eacSSasha Smundak+ 	X: nil,
1105*88d15eacSSasha Smundak  }
1106*88d15eacSSasha Smundak>>> TestDiff/Reporter/StringifiedBytes
1107*88d15eacSSasha Smundak<<< TestDiff/Reporter/NonStringifiedBytes
1108*88d15eacSSasha Smundak  struct{ X []uint8 }{
1109*88d15eacSSasha Smundak- 	X: []uint8{0xde, 0xad, 0xbe, 0xef},
1110*88d15eacSSasha Smundak+ 	X: nil,
1111*88d15eacSSasha Smundak  }
1112*88d15eacSSasha Smundak>>> TestDiff/Reporter/NonStringifiedBytes
1113*88d15eacSSasha Smundak<<< TestDiff/Reporter/StringifiedNamedBytes
1114*88d15eacSSasha Smundak  struct{ X cmp_test.MyBytes }{
1115*88d15eacSSasha Smundak- 	X: cmp_test.MyBytes("hello, world!"),
1116*88d15eacSSasha Smundak+ 	X: nil,
1117*88d15eacSSasha Smundak  }
1118*88d15eacSSasha Smundak>>> TestDiff/Reporter/StringifiedNamedBytes
1119*88d15eacSSasha Smundak<<< TestDiff/Reporter/NonStringifiedNamedBytes
1120*88d15eacSSasha Smundak  struct{ X cmp_test.MyBytes }{
1121*88d15eacSSasha Smundak- 	X: cmp_test.MyBytes{0xde, 0xad, 0xbe, 0xef},
1122*88d15eacSSasha Smundak+ 	X: nil,
1123*88d15eacSSasha Smundak  }
1124*88d15eacSSasha Smundak>>> TestDiff/Reporter/NonStringifiedNamedBytes
1125*88d15eacSSasha Smundak<<< TestDiff/Reporter/ShortJSON
1126*88d15eacSSasha Smundak  (
1127*88d15eacSSasha Smundak  	"""
1128*88d15eacSSasha Smundak  	{
1129*88d15eacSSasha Smundak- 		"id": 1,
1130*88d15eacSSasha Smundak+ 		"id": 1434180,
1131*88d15eacSSasha Smundak  		"foo": true,
1132*88d15eacSSasha Smundak  		"bar": true,
1133*88d15eacSSasha Smundak  	}
1134*88d15eacSSasha Smundak  	"""
1135*88d15eacSSasha Smundak  )
1136*88d15eacSSasha Smundak>>> TestDiff/Reporter/ShortJSON
1137*88d15eacSSasha Smundak<<< TestDiff/Reporter/PointerToStringOrAny
1138*88d15eacSSasha Smundak  any(
1139*88d15eacSSasha Smundak- 	&string("hello"),
1140*88d15eacSSasha Smundak+ 	&any(string("hello")),
1141*88d15eacSSasha Smundak  )
1142*88d15eacSSasha Smundak>>> TestDiff/Reporter/PointerToStringOrAny
1143*88d15eacSSasha Smundak<<< TestDiff/Reporter/NamedPointer
1144*88d15eacSSasha Smundak  any(
1145*88d15eacSSasha Smundak- 	&string("hello"),
1146*88d15eacSSasha Smundak+ 	cmp_test.PointerString(&string("hello")),
1147*88d15eacSSasha Smundak  )
1148*88d15eacSSasha Smundak>>> TestDiff/Reporter/NamedPointer
1149*88d15eacSSasha Smundak<<< TestDiff/Reporter/MapStringAny
1150*88d15eacSSasha Smundak  map[string]any{
1151*88d15eacSSasha Smundak- 	"key": int(0),
1152*88d15eacSSasha Smundak+ 	"key": uint(0),
1153*88d15eacSSasha Smundak  }
1154*88d15eacSSasha Smundak>>> TestDiff/Reporter/MapStringAny
1155*88d15eacSSasha Smundak<<< TestDiff/Reporter/StructFieldAny
1156*88d15eacSSasha Smundak  struct{ X any }{
1157*88d15eacSSasha Smundak- 	X: int(0),
1158*88d15eacSSasha Smundak+ 	X: uint(0),
1159*88d15eacSSasha Smundak  }
1160*88d15eacSSasha Smundak>>> TestDiff/Reporter/StructFieldAny
1161*88d15eacSSasha Smundak<<< TestDiff/Reporter/SliceOfBytesText
1162*88d15eacSSasha Smundak  [][]uint8{
1163*88d15eacSSasha Smundak- 	"hello",
1164*88d15eacSSasha Smundak  	"foo",
1165*88d15eacSSasha Smundak+ 	"foo",
1166*88d15eacSSasha Smundak  	"barbaz",
1167*88d15eacSSasha Smundak+ 	"added",
1168*88d15eacSSasha Smundak+ 	"here",
1169*88d15eacSSasha Smundak- 	"blahdieblah",
1170*88d15eacSSasha Smundak+ 	"hrmph",
1171*88d15eacSSasha Smundak  }
1172*88d15eacSSasha Smundak>>> TestDiff/Reporter/SliceOfBytesText
1173*88d15eacSSasha Smundak<<< TestDiff/Reporter/SliceOfBytesBinary
1174*88d15eacSSasha Smundak  [][]uint8{
1175*88d15eacSSasha Smundak- 	{0xde, 0xad, 0xbe, 0xef},
1176*88d15eacSSasha Smundak  	{0xff, 0x6f, 0x6f},
1177*88d15eacSSasha Smundak+ 	"foo",
1178*88d15eacSSasha Smundak  	"barbaz",
1179*88d15eacSSasha Smundak+ 	"added",
1180*88d15eacSSasha Smundak+ 	"here",
1181*88d15eacSSasha Smundak- 	"blahdieblah",
1182*88d15eacSSasha Smundak+ 	{0x68, 0x72, 0x6d, 0x70, 0x68, 0xff},
1183*88d15eacSSasha Smundak  }
1184*88d15eacSSasha Smundak>>> TestDiff/Reporter/SliceOfBytesBinary
1185*88d15eacSSasha Smundak<<< TestDiff/Reporter/ManyEscapeCharacters
1186*88d15eacSSasha Smundak  (
1187*88d15eacSSasha Smundak  	"""
1188*88d15eacSSasha Smundak  	[
1189*88d15eacSSasha Smundak- 		{"Base32": "NA======"},
1190*88d15eacSSasha Smundak+ 		{"Base32": "NB======"},
1191*88d15eacSSasha Smundak  		{"Base32": "NBSQ===="},
1192*88d15eacSSasha Smundak  		{"Base32": "NBSWY==="},
1193*88d15eacSSasha Smundak  	... // 3 identical lines
1194*88d15eacSSasha Smundak  	"""
1195*88d15eacSSasha Smundak  )
1196*88d15eacSSasha Smundak>>> TestDiff/Reporter/ManyEscapeCharacters
1197*88d15eacSSasha Smundak<<< TestDiff/EmbeddedStruct/ParentStructA/Inequal
1198*88d15eacSSasha Smundak  teststructs.ParentStructA{
1199*88d15eacSSasha Smundak  	privateStruct: teststructs.privateStruct{
1200*88d15eacSSasha Smundak- 		Public:  1,
1201*88d15eacSSasha Smundak+ 		Public:  2,
1202*88d15eacSSasha Smundak- 		private: 2,
1203*88d15eacSSasha Smundak+ 		private: 3,
1204*88d15eacSSasha Smundak  	},
1205*88d15eacSSasha Smundak  }
1206*88d15eacSSasha Smundak>>> TestDiff/EmbeddedStruct/ParentStructA/Inequal
1207*88d15eacSSasha Smundak<<< TestDiff/EmbeddedStruct/ParentStructB/Inequal
1208*88d15eacSSasha Smundak  teststructs.ParentStructB{
1209*88d15eacSSasha Smundak  	PublicStruct: teststructs.PublicStruct{
1210*88d15eacSSasha Smundak- 		Public:  1,
1211*88d15eacSSasha Smundak+ 		Public:  2,
1212*88d15eacSSasha Smundak- 		private: 2,
1213*88d15eacSSasha Smundak+ 		private: 3,
1214*88d15eacSSasha Smundak  	},
1215*88d15eacSSasha Smundak  }
1216*88d15eacSSasha Smundak>>> TestDiff/EmbeddedStruct/ParentStructB/Inequal
1217*88d15eacSSasha Smundak<<< TestDiff/EmbeddedStruct/ParentStructC/Inequal
1218*88d15eacSSasha Smundak  teststructs.ParentStructC{
1219*88d15eacSSasha Smundak  	privateStruct: teststructs.privateStruct{
1220*88d15eacSSasha Smundak- 		Public:  1,
1221*88d15eacSSasha Smundak+ 		Public:  2,
1222*88d15eacSSasha Smundak- 		private: 2,
1223*88d15eacSSasha Smundak+ 		private: 3,
1224*88d15eacSSasha Smundak  	},
1225*88d15eacSSasha Smundak- 	Public:  3,
1226*88d15eacSSasha Smundak+ 	Public:  4,
1227*88d15eacSSasha Smundak- 	private: 4,
1228*88d15eacSSasha Smundak+ 	private: 5,
1229*88d15eacSSasha Smundak  }
1230*88d15eacSSasha Smundak>>> TestDiff/EmbeddedStruct/ParentStructC/Inequal
1231*88d15eacSSasha Smundak<<< TestDiff/EmbeddedStruct/ParentStructD/Inequal
1232*88d15eacSSasha Smundak  teststructs.ParentStructD{
1233*88d15eacSSasha Smundak  	PublicStruct: teststructs.PublicStruct{
1234*88d15eacSSasha Smundak- 		Public:  1,
1235*88d15eacSSasha Smundak+ 		Public:  2,
1236*88d15eacSSasha Smundak- 		private: 2,
1237*88d15eacSSasha Smundak+ 		private: 3,
1238*88d15eacSSasha Smundak  	},
1239*88d15eacSSasha Smundak- 	Public:  3,
1240*88d15eacSSasha Smundak+ 	Public:  4,
1241*88d15eacSSasha Smundak- 	private: 4,
1242*88d15eacSSasha Smundak+ 	private: 5,
1243*88d15eacSSasha Smundak  }
1244*88d15eacSSasha Smundak>>> TestDiff/EmbeddedStruct/ParentStructD/Inequal
1245*88d15eacSSasha Smundak<<< TestDiff/EmbeddedStruct/ParentStructE/Inequal
1246*88d15eacSSasha Smundak  teststructs.ParentStructE{
1247*88d15eacSSasha Smundak  	privateStruct: teststructs.privateStruct{
1248*88d15eacSSasha Smundak- 		Public:  1,
1249*88d15eacSSasha Smundak+ 		Public:  2,
1250*88d15eacSSasha Smundak- 		private: 2,
1251*88d15eacSSasha Smundak+ 		private: 3,
1252*88d15eacSSasha Smundak  	},
1253*88d15eacSSasha Smundak  	PublicStruct: teststructs.PublicStruct{
1254*88d15eacSSasha Smundak- 		Public:  3,
1255*88d15eacSSasha Smundak+ 		Public:  4,
1256*88d15eacSSasha Smundak- 		private: 4,
1257*88d15eacSSasha Smundak+ 		private: 5,
1258*88d15eacSSasha Smundak  	},
1259*88d15eacSSasha Smundak  }
1260*88d15eacSSasha Smundak>>> TestDiff/EmbeddedStruct/ParentStructE/Inequal
1261*88d15eacSSasha Smundak<<< TestDiff/EmbeddedStruct/ParentStructF/Inequal
1262*88d15eacSSasha Smundak  teststructs.ParentStructF{
1263*88d15eacSSasha Smundak  	privateStruct: teststructs.privateStruct{
1264*88d15eacSSasha Smundak- 		Public:  1,
1265*88d15eacSSasha Smundak+ 		Public:  2,
1266*88d15eacSSasha Smundak- 		private: 2,
1267*88d15eacSSasha Smundak+ 		private: 3,
1268*88d15eacSSasha Smundak  	},
1269*88d15eacSSasha Smundak  	PublicStruct: teststructs.PublicStruct{
1270*88d15eacSSasha Smundak- 		Public:  3,
1271*88d15eacSSasha Smundak+ 		Public:  4,
1272*88d15eacSSasha Smundak- 		private: 4,
1273*88d15eacSSasha Smundak+ 		private: 5,
1274*88d15eacSSasha Smundak  	},
1275*88d15eacSSasha Smundak- 	Public:  5,
1276*88d15eacSSasha Smundak+ 	Public:  6,
1277*88d15eacSSasha Smundak- 	private: 6,
1278*88d15eacSSasha Smundak+ 	private: 7,
1279*88d15eacSSasha Smundak  }
1280*88d15eacSSasha Smundak>>> TestDiff/EmbeddedStruct/ParentStructF/Inequal
1281*88d15eacSSasha Smundak<<< TestDiff/EmbeddedStruct/ParentStructG/Inequal
1282*88d15eacSSasha Smundak  &teststructs.ParentStructG{
1283*88d15eacSSasha Smundak  	privateStruct: &teststructs.privateStruct{
1284*88d15eacSSasha Smundak- 		Public:  1,
1285*88d15eacSSasha Smundak+ 		Public:  2,
1286*88d15eacSSasha Smundak- 		private: 2,
1287*88d15eacSSasha Smundak+ 		private: 3,
1288*88d15eacSSasha Smundak  	},
1289*88d15eacSSasha Smundak  }
1290*88d15eacSSasha Smundak>>> TestDiff/EmbeddedStruct/ParentStructG/Inequal
1291*88d15eacSSasha Smundak<<< TestDiff/EmbeddedStruct/ParentStructH/Inequal
1292*88d15eacSSasha Smundak  &teststructs.ParentStructH{
1293*88d15eacSSasha Smundak  	PublicStruct: &teststructs.PublicStruct{
1294*88d15eacSSasha Smundak- 		Public:  1,
1295*88d15eacSSasha Smundak+ 		Public:  2,
1296*88d15eacSSasha Smundak- 		private: 2,
1297*88d15eacSSasha Smundak+ 		private: 3,
1298*88d15eacSSasha Smundak  	},
1299*88d15eacSSasha Smundak  }
1300*88d15eacSSasha Smundak>>> TestDiff/EmbeddedStruct/ParentStructH/Inequal
1301*88d15eacSSasha Smundak<<< TestDiff/EmbeddedStruct/ParentStructI/Inequal
1302*88d15eacSSasha Smundak  &teststructs.ParentStructI{
1303*88d15eacSSasha Smundak  	privateStruct: &teststructs.privateStruct{
1304*88d15eacSSasha Smundak- 		Public:  1,
1305*88d15eacSSasha Smundak+ 		Public:  2,
1306*88d15eacSSasha Smundak- 		private: 2,
1307*88d15eacSSasha Smundak+ 		private: 3,
1308*88d15eacSSasha Smundak  	},
1309*88d15eacSSasha Smundak  	PublicStruct: &teststructs.PublicStruct{
1310*88d15eacSSasha Smundak- 		Public:  3,
1311*88d15eacSSasha Smundak+ 		Public:  4,
1312*88d15eacSSasha Smundak- 		private: 4,
1313*88d15eacSSasha Smundak+ 		private: 5,
1314*88d15eacSSasha Smundak  	},
1315*88d15eacSSasha Smundak  }
1316*88d15eacSSasha Smundak>>> TestDiff/EmbeddedStruct/ParentStructI/Inequal
1317*88d15eacSSasha Smundak<<< TestDiff/EmbeddedStruct/ParentStructJ/Inequal
1318*88d15eacSSasha Smundak  &teststructs.ParentStructJ{
1319*88d15eacSSasha Smundak  	privateStruct: &teststructs.privateStruct{
1320*88d15eacSSasha Smundak- 		Public:  1,
1321*88d15eacSSasha Smundak+ 		Public:  2,
1322*88d15eacSSasha Smundak- 		private: 2,
1323*88d15eacSSasha Smundak+ 		private: 3,
1324*88d15eacSSasha Smundak  	},
1325*88d15eacSSasha Smundak  	PublicStruct: &teststructs.PublicStruct{
1326*88d15eacSSasha Smundak- 		Public:  3,
1327*88d15eacSSasha Smundak+ 		Public:  4,
1328*88d15eacSSasha Smundak- 		private: 4,
1329*88d15eacSSasha Smundak+ 		private: 5,
1330*88d15eacSSasha Smundak  	},
1331*88d15eacSSasha Smundak  	Public: teststructs.PublicStruct{
1332*88d15eacSSasha Smundak- 		Public:  7,
1333*88d15eacSSasha Smundak+ 		Public:  8,
1334*88d15eacSSasha Smundak- 		private: 8,
1335*88d15eacSSasha Smundak+ 		private: 9,
1336*88d15eacSSasha Smundak  	},
1337*88d15eacSSasha Smundak  	private: teststructs.privateStruct{
1338*88d15eacSSasha Smundak- 		Public:  5,
1339*88d15eacSSasha Smundak+ 		Public:  6,
1340*88d15eacSSasha Smundak- 		private: 6,
1341*88d15eacSSasha Smundak+ 		private: 7,
1342*88d15eacSSasha Smundak  	},
1343*88d15eacSSasha Smundak  }
1344*88d15eacSSasha Smundak>>> TestDiff/EmbeddedStruct/ParentStructJ/Inequal
1345*88d15eacSSasha Smundak<<< TestDiff/EqualMethod/StructB/ValueInequal
1346*88d15eacSSasha Smundak  teststructs.StructB{
1347*88d15eacSSasha Smundak- 	X: "NotEqual",
1348*88d15eacSSasha Smundak+ 	X: "not_equal",
1349*88d15eacSSasha Smundak  }
1350*88d15eacSSasha Smundak>>> TestDiff/EqualMethod/StructB/ValueInequal
1351*88d15eacSSasha Smundak<<< TestDiff/EqualMethod/StructD/ValueInequal
1352*88d15eacSSasha Smundak  teststructs.StructD{
1353*88d15eacSSasha Smundak- 	X: "NotEqual",
1354*88d15eacSSasha Smundak+ 	X: "not_equal",
1355*88d15eacSSasha Smundak  }
1356*88d15eacSSasha Smundak>>> TestDiff/EqualMethod/StructD/ValueInequal
1357*88d15eacSSasha Smundak<<< TestDiff/EqualMethod/StructE/ValueInequal
1358*88d15eacSSasha Smundak  teststructs.StructE{
1359*88d15eacSSasha Smundak- 	X: "NotEqual",
1360*88d15eacSSasha Smundak+ 	X: "not_equal",
1361*88d15eacSSasha Smundak  }
1362*88d15eacSSasha Smundak>>> TestDiff/EqualMethod/StructE/ValueInequal
1363*88d15eacSSasha Smundak<<< TestDiff/EqualMethod/StructF/ValueInequal
1364*88d15eacSSasha Smundak  teststructs.StructF{
1365*88d15eacSSasha Smundak- 	X: "NotEqual",
1366*88d15eacSSasha Smundak+ 	X: "not_equal",
1367*88d15eacSSasha Smundak  }
1368*88d15eacSSasha Smundak>>> TestDiff/EqualMethod/StructF/ValueInequal
1369*88d15eacSSasha Smundak<<< TestDiff/EqualMethod/StructA1/ValueInequal
1370*88d15eacSSasha Smundak  teststructs.StructA1{
1371*88d15eacSSasha Smundak  	StructA: {X: "NotEqual"},
1372*88d15eacSSasha Smundak- 	X:       "NotEqual",
1373*88d15eacSSasha Smundak+ 	X:       "not_equal",
1374*88d15eacSSasha Smundak  }
1375*88d15eacSSasha Smundak>>> TestDiff/EqualMethod/StructA1/ValueInequal
1376*88d15eacSSasha Smundak<<< TestDiff/EqualMethod/StructA1/PointerInequal
1377*88d15eacSSasha Smundak  &teststructs.StructA1{
1378*88d15eacSSasha Smundak  	StructA: {X: "NotEqual"},
1379*88d15eacSSasha Smundak- 	X:       "NotEqual",
1380*88d15eacSSasha Smundak+ 	X:       "not_equal",
1381*88d15eacSSasha Smundak  }
1382*88d15eacSSasha Smundak>>> TestDiff/EqualMethod/StructA1/PointerInequal
1383*88d15eacSSasha Smundak<<< TestDiff/EqualMethod/StructB1/ValueInequal
1384*88d15eacSSasha Smundak  teststructs.StructB1{
1385*88d15eacSSasha Smundak  	StructB: Inverse(Addr, &teststructs.StructB{X: "NotEqual"}),
1386*88d15eacSSasha Smundak- 	X:       "NotEqual",
1387*88d15eacSSasha Smundak+ 	X:       "not_equal",
1388*88d15eacSSasha Smundak  }
1389*88d15eacSSasha Smundak>>> TestDiff/EqualMethod/StructB1/ValueInequal
1390*88d15eacSSasha Smundak<<< TestDiff/EqualMethod/StructB1/PointerInequal
1391*88d15eacSSasha Smundak  &teststructs.StructB1{
1392*88d15eacSSasha Smundak  	StructB: Inverse(Addr, &teststructs.StructB{X: "NotEqual"}),
1393*88d15eacSSasha Smundak- 	X:       "NotEqual",
1394*88d15eacSSasha Smundak+ 	X:       "not_equal",
1395*88d15eacSSasha Smundak  }
1396*88d15eacSSasha Smundak>>> TestDiff/EqualMethod/StructB1/PointerInequal
1397*88d15eacSSasha Smundak<<< TestDiff/EqualMethod/StructD1/ValueInequal
1398*88d15eacSSasha Smundak  teststructs.StructD1{
1399*88d15eacSSasha Smundak- 	StructD: teststructs.StructD{X: "NotEqual"},
1400*88d15eacSSasha Smundak+ 	StructD: teststructs.StructD{X: "not_equal"},
1401*88d15eacSSasha Smundak- 	X:       "NotEqual",
1402*88d15eacSSasha Smundak+ 	X:       "not_equal",
1403*88d15eacSSasha Smundak  }
1404*88d15eacSSasha Smundak>>> TestDiff/EqualMethod/StructD1/ValueInequal
1405*88d15eacSSasha Smundak<<< TestDiff/EqualMethod/StructE1/ValueInequal
1406*88d15eacSSasha Smundak  teststructs.StructE1{
1407*88d15eacSSasha Smundak- 	StructE: teststructs.StructE{X: "NotEqual"},
1408*88d15eacSSasha Smundak+ 	StructE: teststructs.StructE{X: "not_equal"},
1409*88d15eacSSasha Smundak- 	X:       "NotEqual",
1410*88d15eacSSasha Smundak+ 	X:       "not_equal",
1411*88d15eacSSasha Smundak  }
1412*88d15eacSSasha Smundak>>> TestDiff/EqualMethod/StructE1/ValueInequal
1413*88d15eacSSasha Smundak<<< TestDiff/EqualMethod/StructF1/ValueInequal
1414*88d15eacSSasha Smundak  teststructs.StructF1{
1415*88d15eacSSasha Smundak- 	StructF: teststructs.StructF{X: "NotEqual"},
1416*88d15eacSSasha Smundak+ 	StructF: teststructs.StructF{X: "not_equal"},
1417*88d15eacSSasha Smundak- 	X:       "NotEqual",
1418*88d15eacSSasha Smundak+ 	X:       "not_equal",
1419*88d15eacSSasha Smundak  }
1420*88d15eacSSasha Smundak>>> TestDiff/EqualMethod/StructF1/ValueInequal
1421*88d15eacSSasha Smundak<<< TestDiff/EqualMethod/StructA2/ValueInequal
1422*88d15eacSSasha Smundak  teststructs.StructA2{
1423*88d15eacSSasha Smundak  	StructA: &{X: "NotEqual"},
1424*88d15eacSSasha Smundak- 	X:       "NotEqual",
1425*88d15eacSSasha Smundak+ 	X:       "not_equal",
1426*88d15eacSSasha Smundak  }
1427*88d15eacSSasha Smundak>>> TestDiff/EqualMethod/StructA2/ValueInequal
1428*88d15eacSSasha Smundak<<< TestDiff/EqualMethod/StructA2/PointerInequal
1429*88d15eacSSasha Smundak  &teststructs.StructA2{
1430*88d15eacSSasha Smundak  	StructA: &{X: "NotEqual"},
1431*88d15eacSSasha Smundak- 	X:       "NotEqual",
1432*88d15eacSSasha Smundak+ 	X:       "not_equal",
1433*88d15eacSSasha Smundak  }
1434*88d15eacSSasha Smundak>>> TestDiff/EqualMethod/StructA2/PointerInequal
1435*88d15eacSSasha Smundak<<< TestDiff/EqualMethod/StructB2/ValueInequal
1436*88d15eacSSasha Smundak  teststructs.StructB2{
1437*88d15eacSSasha Smundak  	StructB: &{X: "NotEqual"},
1438*88d15eacSSasha Smundak- 	X:       "NotEqual",
1439*88d15eacSSasha Smundak+ 	X:       "not_equal",
1440*88d15eacSSasha Smundak  }
1441*88d15eacSSasha Smundak>>> TestDiff/EqualMethod/StructB2/ValueInequal
1442*88d15eacSSasha Smundak<<< TestDiff/EqualMethod/StructB2/PointerInequal
1443*88d15eacSSasha Smundak  &teststructs.StructB2{
1444*88d15eacSSasha Smundak  	StructB: &{X: "NotEqual"},
1445*88d15eacSSasha Smundak- 	X:       "NotEqual",
1446*88d15eacSSasha Smundak+ 	X:       "not_equal",
1447*88d15eacSSasha Smundak  }
1448*88d15eacSSasha Smundak>>> TestDiff/EqualMethod/StructB2/PointerInequal
1449*88d15eacSSasha Smundak<<< TestDiff/EqualMethod/StructNo/Inequal
1450*88d15eacSSasha Smundak  teststructs.StructNo{
1451*88d15eacSSasha Smundak- 	X: "NotEqual",
1452*88d15eacSSasha Smundak+ 	X: "not_equal",
1453*88d15eacSSasha Smundak  }
1454*88d15eacSSasha Smundak>>> TestDiff/EqualMethod/StructNo/Inequal
1455*88d15eacSSasha Smundak<<< TestDiff/Cycle/PointersInequal
1456*88d15eacSSasha Smundak  &&⟪ref#0⟫cmp_test.P(
1457*88d15eacSSasha Smundak- 	&⟪ref#0⟫(...),
1458*88d15eacSSasha Smundak+ 	&&⟪ref#0⟫(...),
1459*88d15eacSSasha Smundak  )
1460*88d15eacSSasha Smundak>>> TestDiff/Cycle/PointersInequal
1461*88d15eacSSasha Smundak<<< TestDiff/Cycle/SlicesInequal
1462*88d15eacSSasha Smundak  cmp_test.S{
1463*88d15eacSSasha Smundak- 	⟪ref#0⟫{⟪ref#0⟫(...)},
1464*88d15eacSSasha Smundak+ 	⟪ref#1⟫{{⟪ref#1⟫(...)}},
1465*88d15eacSSasha Smundak  }
1466*88d15eacSSasha Smundak>>> TestDiff/Cycle/SlicesInequal
1467*88d15eacSSasha Smundak<<< TestDiff/Cycle/MapsInequal
1468*88d15eacSSasha Smundak  cmp_test.M⟪ref#0⟫{
1469*88d15eacSSasha Smundak- 	0: ⟪ref#0⟫(...),
1470*88d15eacSSasha Smundak+ 	0: {0: ⟪ref#0⟫(...)},
1471*88d15eacSSasha Smundak  }
1472*88d15eacSSasha Smundak>>> TestDiff/Cycle/MapsInequal
1473*88d15eacSSasha Smundak<<< TestDiff/Cycle/GraphInequalZeroed
1474*88d15eacSSasha Smundak  map[string]*cmp_test.CycleAlpha{
1475*88d15eacSSasha Smundak  	"Bar": &⟪ref#0⟫{
1476*88d15eacSSasha Smundak  		Name: "Bar",
1477*88d15eacSSasha Smundak  		Bravos: map[string]*cmp_test.CycleBravo{
1478*88d15eacSSasha Smundak  			"BarBuzzBravo": &⟪ref#1⟫{
1479*88d15eacSSasha Smundak- 				ID:   102,
1480*88d15eacSSasha Smundak+ 				ID:   0,
1481*88d15eacSSasha Smundak  				Name: "BarBuzzBravo",
1482*88d15eacSSasha Smundak  				Mods: 2,
1483*88d15eacSSasha Smundak  				Alphas: map[string]*cmp_test.CycleAlpha{
1484*88d15eacSSasha Smundak  					"Bar": &⟪ref#0⟫(...),
1485*88d15eacSSasha Smundak  					"Buzz": &⟪ref#2⟫{
1486*88d15eacSSasha Smundak  						Name: "Buzz",
1487*88d15eacSSasha Smundak  						Bravos: map[string]*cmp_test.CycleBravo{
1488*88d15eacSSasha Smundak  							"BarBuzzBravo": &⟪ref#1⟫(...),
1489*88d15eacSSasha Smundak  							"BuzzBarBravo": &⟪ref#3⟫{
1490*88d15eacSSasha Smundak- 								ID:     103,
1491*88d15eacSSasha Smundak+ 								ID:     0,
1492*88d15eacSSasha Smundak  								Name:   "BuzzBarBravo",
1493*88d15eacSSasha Smundak  								Mods:   0,
1494*88d15eacSSasha Smundak  								Alphas: {"Bar": &⟪ref#0⟫(...), "Buzz": &⟪ref#2⟫(...)},
1495*88d15eacSSasha Smundak  							},
1496*88d15eacSSasha Smundak  						},
1497*88d15eacSSasha Smundak  					},
1498*88d15eacSSasha Smundak  				},
1499*88d15eacSSasha Smundak  			},
1500*88d15eacSSasha Smundak  			"BuzzBarBravo": &⟪ref#3⟫{
1501*88d15eacSSasha Smundak- 				ID:   103,
1502*88d15eacSSasha Smundak+ 				ID:   0,
1503*88d15eacSSasha Smundak  				Name: "BuzzBarBravo",
1504*88d15eacSSasha Smundak  				Mods: 0,
1505*88d15eacSSasha Smundak  				Alphas: map[string]*cmp_test.CycleAlpha{
1506*88d15eacSSasha Smundak  					"Bar": &⟪ref#0⟫(...),
1507*88d15eacSSasha Smundak  					"Buzz": &⟪ref#2⟫{
1508*88d15eacSSasha Smundak  						Name: "Buzz",
1509*88d15eacSSasha Smundak  						Bravos: map[string]*cmp_test.CycleBravo{
1510*88d15eacSSasha Smundak  							"BarBuzzBravo": &⟪ref#1⟫{
1511*88d15eacSSasha Smundak- 								ID:     102,
1512*88d15eacSSasha Smundak+ 								ID:     0,
1513*88d15eacSSasha Smundak  								Name:   "BarBuzzBravo",
1514*88d15eacSSasha Smundak  								Mods:   2,
1515*88d15eacSSasha Smundak  								Alphas: {"Bar": &⟪ref#0⟫(...), "Buzz": &⟪ref#2⟫(...)},
1516*88d15eacSSasha Smundak  							},
1517*88d15eacSSasha Smundak  							"BuzzBarBravo": &⟪ref#3⟫(...),
1518*88d15eacSSasha Smundak  						},
1519*88d15eacSSasha Smundak  					},
1520*88d15eacSSasha Smundak  				},
1521*88d15eacSSasha Smundak  			},
1522*88d15eacSSasha Smundak  		},
1523*88d15eacSSasha Smundak  	},
1524*88d15eacSSasha Smundak  	"Buzz": &⟪ref#2⟫{
1525*88d15eacSSasha Smundak  		Name: "Buzz",
1526*88d15eacSSasha Smundak  		Bravos: map[string]*cmp_test.CycleBravo{
1527*88d15eacSSasha Smundak  			"BarBuzzBravo": &⟪ref#1⟫{
1528*88d15eacSSasha Smundak- 				ID:   102,
1529*88d15eacSSasha Smundak+ 				ID:   0,
1530*88d15eacSSasha Smundak  				Name: "BarBuzzBravo",
1531*88d15eacSSasha Smundak  				Mods: 2,
1532*88d15eacSSasha Smundak  				Alphas: map[string]*cmp_test.CycleAlpha{
1533*88d15eacSSasha Smundak  					"Bar": &⟪ref#0⟫{
1534*88d15eacSSasha Smundak  						Name: "Bar",
1535*88d15eacSSasha Smundak  						Bravos: map[string]*cmp_test.CycleBravo{
1536*88d15eacSSasha Smundak  							"BarBuzzBravo": &⟪ref#1⟫(...),
1537*88d15eacSSasha Smundak  							"BuzzBarBravo": &⟪ref#3⟫{
1538*88d15eacSSasha Smundak- 								ID:     103,
1539*88d15eacSSasha Smundak+ 								ID:     0,
1540*88d15eacSSasha Smundak  								Name:   "BuzzBarBravo",
1541*88d15eacSSasha Smundak  								Mods:   0,
1542*88d15eacSSasha Smundak  								Alphas: {"Bar": &⟪ref#0⟫(...), "Buzz": &⟪ref#2⟫(...)},
1543*88d15eacSSasha Smundak  							},
1544*88d15eacSSasha Smundak  						},
1545*88d15eacSSasha Smundak  					},
1546*88d15eacSSasha Smundak  					"Buzz": &⟪ref#2⟫(...),
1547*88d15eacSSasha Smundak  				},
1548*88d15eacSSasha Smundak  			},
1549*88d15eacSSasha Smundak  			"BuzzBarBravo": &⟪ref#3⟫{
1550*88d15eacSSasha Smundak- 				ID:   103,
1551*88d15eacSSasha Smundak+ 				ID:   0,
1552*88d15eacSSasha Smundak  				Name: "BuzzBarBravo",
1553*88d15eacSSasha Smundak  				Mods: 0,
1554*88d15eacSSasha Smundak  				Alphas: map[string]*cmp_test.CycleAlpha{
1555*88d15eacSSasha Smundak  					"Bar": &⟪ref#0⟫{
1556*88d15eacSSasha Smundak  						Name: "Bar",
1557*88d15eacSSasha Smundak  						Bravos: map[string]*cmp_test.CycleBravo{
1558*88d15eacSSasha Smundak  							"BarBuzzBravo": &⟪ref#1⟫{
1559*88d15eacSSasha Smundak- 								ID:     102,
1560*88d15eacSSasha Smundak+ 								ID:     0,
1561*88d15eacSSasha Smundak  								Name:   "BarBuzzBravo",
1562*88d15eacSSasha Smundak  								Mods:   2,
1563*88d15eacSSasha Smundak  								Alphas: {"Bar": &⟪ref#0⟫(...), "Buzz": &⟪ref#2⟫(...)},
1564*88d15eacSSasha Smundak  							},
1565*88d15eacSSasha Smundak  							"BuzzBarBravo": &⟪ref#3⟫(...),
1566*88d15eacSSasha Smundak  						},
1567*88d15eacSSasha Smundak  					},
1568*88d15eacSSasha Smundak  					"Buzz": &⟪ref#2⟫(...),
1569*88d15eacSSasha Smundak  				},
1570*88d15eacSSasha Smundak  			},
1571*88d15eacSSasha Smundak  		},
1572*88d15eacSSasha Smundak  	},
1573*88d15eacSSasha Smundak  	"Foo": &⟪ref#4⟫{
1574*88d15eacSSasha Smundak  		Name: "Foo",
1575*88d15eacSSasha Smundak  		Bravos: map[string]*cmp_test.CycleBravo{
1576*88d15eacSSasha Smundak  			"FooBravo": &{
1577*88d15eacSSasha Smundak- 				ID:     101,
1578*88d15eacSSasha Smundak+ 				ID:     0,
1579*88d15eacSSasha Smundak  				Name:   "FooBravo",
1580*88d15eacSSasha Smundak  				Mods:   100,
1581*88d15eacSSasha Smundak  				Alphas: {"Foo": &⟪ref#4⟫(...)},
1582*88d15eacSSasha Smundak  			},
1583*88d15eacSSasha Smundak  		},
1584*88d15eacSSasha Smundak  	},
1585*88d15eacSSasha Smundak  }
1586*88d15eacSSasha Smundak>>> TestDiff/Cycle/GraphInequalZeroed
1587*88d15eacSSasha Smundak<<< TestDiff/Cycle/GraphInequalStruct
1588*88d15eacSSasha Smundak  map[string]*cmp_test.CycleAlpha{
1589*88d15eacSSasha Smundak  	"Bar": &⟪ref#0⟫{
1590*88d15eacSSasha Smundak  		Name: "Bar",
1591*88d15eacSSasha Smundak  		Bravos: map[string]*cmp_test.CycleBravo{
1592*88d15eacSSasha Smundak  			"BarBuzzBravo": &⟪ref#1⟫{
1593*88d15eacSSasha Smundak  				ID:   102,
1594*88d15eacSSasha Smundak  				Name: "BarBuzzBravo",
1595*88d15eacSSasha Smundak  				Mods: 2,
1596*88d15eacSSasha Smundak  				Alphas: map[string]*cmp_test.CycleAlpha{
1597*88d15eacSSasha Smundak  					"Bar": &⟪ref#0⟫(...),
1598*88d15eacSSasha Smundak  					"Buzz": &⟪ref#2⟫{
1599*88d15eacSSasha Smundak  						Name: "Buzz",
1600*88d15eacSSasha Smundak  						Bravos: map[string]*cmp_test.CycleBravo{
1601*88d15eacSSasha Smundak  							"BarBuzzBravo": &⟪ref#1⟫(...),
1602*88d15eacSSasha Smundak  							"BuzzBarBravo": &⟪ref#3⟫{
1603*88d15eacSSasha Smundak  								ID:     103,
1604*88d15eacSSasha Smundak  								Name:   "BuzzBarBravo",
1605*88d15eacSSasha Smundak  								Mods:   0,
1606*88d15eacSSasha Smundak- 								Alphas: nil,
1607*88d15eacSSasha Smundak+ 								Alphas: map[string]*cmp_test.CycleAlpha{"Bar": &⟪ref#0⟫(...), "Buzz": &⟪ref#2⟫(...)},
1608*88d15eacSSasha Smundak  							},
1609*88d15eacSSasha Smundak  						},
1610*88d15eacSSasha Smundak  					},
1611*88d15eacSSasha Smundak  				},
1612*88d15eacSSasha Smundak  			},
1613*88d15eacSSasha Smundak  			"BuzzBarBravo": &⟪ref#3⟫{
1614*88d15eacSSasha Smundak  				ID:   103,
1615*88d15eacSSasha Smundak  				Name: "BuzzBarBravo",
1616*88d15eacSSasha Smundak  				Mods: 0,
1617*88d15eacSSasha Smundak  				Alphas: map[string]*cmp_test.CycleAlpha{
1618*88d15eacSSasha Smundak  					"Bar": &⟪ref#0⟫(...),
1619*88d15eacSSasha Smundak  					"Buzz": &⟪ref#2⟫{
1620*88d15eacSSasha Smundak  						Name: "Buzz",
1621*88d15eacSSasha Smundak  						Bravos: map[string]*cmp_test.CycleBravo{
1622*88d15eacSSasha Smundak  							"BarBuzzBravo": &⟪ref#1⟫{ID: 102, Name: "BarBuzzBravo", Mods: 2, Alphas: {"Bar": &⟪ref#0⟫(...), "Buzz": &⟪ref#2⟫(...)}},
1623*88d15eacSSasha Smundak- 							"BuzzBarBravo": &{ID: 103, Name: "BuzzBarBravo"},
1624*88d15eacSSasha Smundak+ 							"BuzzBarBravo": &⟪ref#3⟫(...),
1625*88d15eacSSasha Smundak  						},
1626*88d15eacSSasha Smundak  					},
1627*88d15eacSSasha Smundak  				},
1628*88d15eacSSasha Smundak  			},
1629*88d15eacSSasha Smundak  		},
1630*88d15eacSSasha Smundak  	},
1631*88d15eacSSasha Smundak  	"Buzz": &⟪ref#2⟫{
1632*88d15eacSSasha Smundak  		Name: "Buzz",
1633*88d15eacSSasha Smundak  		Bravos: map[string]*cmp_test.CycleBravo{
1634*88d15eacSSasha Smundak  			"BarBuzzBravo": &⟪ref#1⟫{ID: 102, Name: "BarBuzzBravo", Mods: 2, Alphas: {"Bar": &⟪ref#0⟫{Name: "Bar", Bravos: {"BarBuzzBravo": &⟪ref#1⟫(...), "BuzzBarBravo": &⟪ref#3⟫{ID: 103, Name: "BuzzBarBravo", Alphas: {"Bar": &⟪ref#0⟫(...), "Buzz": &⟪ref#2⟫(...)}}}}, "Buzz": &⟪ref#2⟫(...)}},
1635*88d15eacSSasha Smundak  			"BuzzBarBravo": &⟪ref#3⟫{
1636*88d15eacSSasha Smundak  				ID:     103,
1637*88d15eacSSasha Smundak  				Name:   "BuzzBarBravo",
1638*88d15eacSSasha Smundak  				Mods:   0,
1639*88d15eacSSasha Smundak- 				Alphas: nil,
1640*88d15eacSSasha Smundak+ 				Alphas: map[string]*cmp_test.CycleAlpha{
1641*88d15eacSSasha Smundak+ 					"Bar": &⟪ref#0⟫{
1642*88d15eacSSasha Smundak+ 						Name:   "Bar",
1643*88d15eacSSasha Smundak+ 						Bravos: map[string]*cmp_test.CycleBravo{"BarBuzzBravo": &⟪ref#1⟫{...}, "BuzzBarBravo": &⟪ref#3⟫(...)},
1644*88d15eacSSasha Smundak+ 					},
1645*88d15eacSSasha Smundak+ 					"Buzz": &⟪ref#2⟫(...),
1646*88d15eacSSasha Smundak+ 				},
1647*88d15eacSSasha Smundak  			},
1648*88d15eacSSasha Smundak  		},
1649*88d15eacSSasha Smundak  	},
1650*88d15eacSSasha Smundak  	"Foo": &⟪ref#4⟫{Name: "Foo", Bravos: {"FooBravo": &{ID: 101, Name: "FooBravo", Mods: 100, Alphas: {"Foo": &⟪ref#4⟫(...)}}}},
1651*88d15eacSSasha Smundak  }
1652*88d15eacSSasha Smundak>>> TestDiff/Cycle/GraphInequalStruct
1653*88d15eacSSasha Smundak<<< TestDiff/Project1/ProtoInequal
1654*88d15eacSSasha Smundak  teststructs.Eagle{
1655*88d15eacSSasha Smundak  	... // 4 identical fields
1656*88d15eacSSasha Smundak  	Dreamers: nil,
1657*88d15eacSSasha Smundak  	Prong:    0,
1658*88d15eacSSasha Smundak  	Slaps: []teststructs.Slap{
1659*88d15eacSSasha Smundak  		... // 2 identical elements
1660*88d15eacSSasha Smundak  		{},
1661*88d15eacSSasha Smundak  		{},
1662*88d15eacSSasha Smundak  		{
1663*88d15eacSSasha Smundak  			Name:     "",
1664*88d15eacSSasha Smundak  			Desc:     "",
1665*88d15eacSSasha Smundak  			DescLong: "",
1666*88d15eacSSasha Smundak- 			Args:     s"metadata",
1667*88d15eacSSasha Smundak+ 			Args:     s"metadata2",
1668*88d15eacSSasha Smundak  			Tense:    0,
1669*88d15eacSSasha Smundak  			Interval: 0,
1670*88d15eacSSasha Smundak  			... // 3 identical fields
1671*88d15eacSSasha Smundak  		},
1672*88d15eacSSasha Smundak  	},
1673*88d15eacSSasha Smundak  	StateGoverner: "",
1674*88d15eacSSasha Smundak  	PrankRating:   "",
1675*88d15eacSSasha Smundak  	... // 2 identical fields
1676*88d15eacSSasha Smundak  }
1677*88d15eacSSasha Smundak>>> TestDiff/Project1/ProtoInequal
1678*88d15eacSSasha Smundak<<< TestDiff/Project1/Inequal
1679*88d15eacSSasha Smundak  teststructs.Eagle{
1680*88d15eacSSasha Smundak  	... // 2 identical fields
1681*88d15eacSSasha Smundak  	Desc:     "some description",
1682*88d15eacSSasha Smundak  	DescLong: "",
1683*88d15eacSSasha Smundak  	Dreamers: []teststructs.Dreamer{
1684*88d15eacSSasha Smundak  		{},
1685*88d15eacSSasha Smundak  		{
1686*88d15eacSSasha Smundak  			... // 4 identical fields
1687*88d15eacSSasha Smundak  			ContSlaps:         nil,
1688*88d15eacSSasha Smundak  			ContSlapsInterval: 0,
1689*88d15eacSSasha Smundak  			Animal: []any{
1690*88d15eacSSasha Smundak  				teststructs.Goat{
1691*88d15eacSSasha Smundak  					Target:     "corporation",
1692*88d15eacSSasha Smundak  					Slaps:      nil,
1693*88d15eacSSasha Smundak  					FunnyPrank: "",
1694*88d15eacSSasha Smundak  					Immutable: &teststructs.GoatImmutable{
1695*88d15eacSSasha Smundak- 						ID:      "southbay2",
1696*88d15eacSSasha Smundak+ 						ID:      "southbay",
1697*88d15eacSSasha Smundak- 						State:   &6,
1698*88d15eacSSasha Smundak+ 						State:   &5,
1699*88d15eacSSasha Smundak  						Started: s"2009-11-10 23:00:00 +0000 UTC",
1700*88d15eacSSasha Smundak  						Stopped: s"0001-01-01 00:00:00 +0000 UTC",
1701*88d15eacSSasha Smundak  						... // 1 ignored and 1 identical fields
1702*88d15eacSSasha Smundak  					},
1703*88d15eacSSasha Smundak  				},
1704*88d15eacSSasha Smundak  				teststructs.Donkey{},
1705*88d15eacSSasha Smundak  			},
1706*88d15eacSSasha Smundak  			Ornamental: false,
1707*88d15eacSSasha Smundak  			Amoeba:     53,
1708*88d15eacSSasha Smundak  			... // 5 identical fields
1709*88d15eacSSasha Smundak  		},
1710*88d15eacSSasha Smundak  	},
1711*88d15eacSSasha Smundak  	Prong: 0,
1712*88d15eacSSasha Smundak  	Slaps: []teststructs.Slap{
1713*88d15eacSSasha Smundak  		{
1714*88d15eacSSasha Smundak  			... // 6 identical fields
1715*88d15eacSSasha Smundak  			Homeland:   0,
1716*88d15eacSSasha Smundak  			FunnyPrank: "",
1717*88d15eacSSasha Smundak  			Immutable: &teststructs.SlapImmutable{
1718*88d15eacSSasha Smundak  				ID:          "immutableSlap",
1719*88d15eacSSasha Smundak  				Out:         nil,
1720*88d15eacSSasha Smundak- 				MildSlap:    false,
1721*88d15eacSSasha Smundak+ 				MildSlap:    true,
1722*88d15eacSSasha Smundak  				PrettyPrint: "",
1723*88d15eacSSasha Smundak  				State:       nil,
1724*88d15eacSSasha Smundak  				Started:     s"2009-11-10 23:00:00 +0000 UTC",
1725*88d15eacSSasha Smundak  				Stopped:     s"0001-01-01 00:00:00 +0000 UTC",
1726*88d15eacSSasha Smundak  				LastUpdate:  s"0001-01-01 00:00:00 +0000 UTC",
1727*88d15eacSSasha Smundak  				LoveRadius: &teststructs.LoveRadius{
1728*88d15eacSSasha Smundak  					Summer: &teststructs.SummerLove{
1729*88d15eacSSasha Smundak  						Summary: &teststructs.SummerLoveSummary{
1730*88d15eacSSasha Smundak  							Devices: []string{
1731*88d15eacSSasha Smundak  								"foo",
1732*88d15eacSSasha Smundak- 								"bar",
1733*88d15eacSSasha Smundak- 								"baz",
1734*88d15eacSSasha Smundak  							},
1735*88d15eacSSasha Smundak  							ChangeType: {1, 2, 3},
1736*88d15eacSSasha Smundak  							... // 1 ignored field
1737*88d15eacSSasha Smundak  						},
1738*88d15eacSSasha Smundak  						... // 1 ignored field
1739*88d15eacSSasha Smundak  					},
1740*88d15eacSSasha Smundak  					... // 1 ignored field
1741*88d15eacSSasha Smundak  				},
1742*88d15eacSSasha Smundak  				... // 1 ignored field
1743*88d15eacSSasha Smundak  			},
1744*88d15eacSSasha Smundak  		},
1745*88d15eacSSasha Smundak  	},
1746*88d15eacSSasha Smundak  	StateGoverner: "",
1747*88d15eacSSasha Smundak  	PrankRating:   "",
1748*88d15eacSSasha Smundak  	... // 2 identical fields
1749*88d15eacSSasha Smundak  }
1750*88d15eacSSasha Smundak>>> TestDiff/Project1/Inequal
1751*88d15eacSSasha Smundak<<< TestDiff/Project2/InequalOrder
1752*88d15eacSSasha Smundak  teststructs.GermBatch{
1753*88d15eacSSasha Smundak  	DirtyGerms: map[int32][]*testprotos.Germ{
1754*88d15eacSSasha Smundak  		17: {s"germ1"},
1755*88d15eacSSasha Smundak  		18: {
1756*88d15eacSSasha Smundak- 			s"germ2",
1757*88d15eacSSasha Smundak  			s"germ3",
1758*88d15eacSSasha Smundak  			s"germ4",
1759*88d15eacSSasha Smundak+ 			s"germ2",
1760*88d15eacSSasha Smundak  		},
1761*88d15eacSSasha Smundak  	},
1762*88d15eacSSasha Smundak  	CleanGerms: nil,
1763*88d15eacSSasha Smundak  	GermMap:    {13: s"germ13", 21: s"germ21"},
1764*88d15eacSSasha Smundak  	... // 7 identical fields
1765*88d15eacSSasha Smundak  }
1766*88d15eacSSasha Smundak>>> TestDiff/Project2/InequalOrder
1767*88d15eacSSasha Smundak<<< TestDiff/Project2/Inequal
1768*88d15eacSSasha Smundak  teststructs.GermBatch{
1769*88d15eacSSasha Smundak  	DirtyGerms: map[int32][]*testprotos.Germ{
1770*88d15eacSSasha Smundak+ 		17: {s"germ1"},
1771*88d15eacSSasha Smundak  		18: Inverse(Sort, []*testprotos.Germ{
1772*88d15eacSSasha Smundak  			s"germ2",
1773*88d15eacSSasha Smundak  			s"germ3",
1774*88d15eacSSasha Smundak- 			s"germ4",
1775*88d15eacSSasha Smundak  		}),
1776*88d15eacSSasha Smundak  	},
1777*88d15eacSSasha Smundak  	CleanGerms: nil,
1778*88d15eacSSasha Smundak  	GermMap:    {13: s"germ13", 21: s"germ21"},
1779*88d15eacSSasha Smundak  	DishMap: map[int32]*teststructs.Dish{
1780*88d15eacSSasha Smundak  		0: &{err: e"EOF"},
1781*88d15eacSSasha Smundak- 		1: nil,
1782*88d15eacSSasha Smundak+ 		1: &{err: e"unexpected EOF"},
1783*88d15eacSSasha Smundak  		2: &{pb: s"dish"},
1784*88d15eacSSasha Smundak  	},
1785*88d15eacSSasha Smundak  	HasPreviousResult: true,
1786*88d15eacSSasha Smundak  	DirtyID:           10,
1787*88d15eacSSasha Smundak  	CleanID:           0,
1788*88d15eacSSasha Smundak- 	GermStrain:        421,
1789*88d15eacSSasha Smundak+ 	GermStrain:        22,
1790*88d15eacSSasha Smundak  	TotalDirtyGerms:   0,
1791*88d15eacSSasha Smundak  	InfectedAt:        s"2009-11-10 23:00:00 +0000 UTC",
1792*88d15eacSSasha Smundak  }
1793*88d15eacSSasha Smundak>>> TestDiff/Project2/Inequal
1794*88d15eacSSasha Smundak<<< TestDiff/Project3/Inequal
1795*88d15eacSSasha Smundak  teststructs.Dirt{
1796*88d15eacSSasha Smundak- 	table:   &teststructs.MockTable{state: []string{"a", "c"}},
1797*88d15eacSSasha Smundak+ 	table:   &teststructs.MockTable{state: []string{"a", "b", "c"}},
1798*88d15eacSSasha Smundak  	ts:      12345,
1799*88d15eacSSasha Smundak- 	Discord: 554,
1800*88d15eacSSasha Smundak+ 	Discord: 500,
1801*88d15eacSSasha Smundak- 	Proto:   testprotos.Dirt(Inverse(λ, s"blah")),
1802*88d15eacSSasha Smundak+ 	Proto:   testprotos.Dirt(Inverse(λ, s"proto")),
1803*88d15eacSSasha Smundak  	wizard: map[string]*testprotos.Wizard{
1804*88d15eacSSasha Smundak- 		"albus": s"dumbledore",
1805*88d15eacSSasha Smundak- 		"harry": s"potter",
1806*88d15eacSSasha Smundak+ 		"harry": s"otter",
1807*88d15eacSSasha Smundak  	},
1808*88d15eacSSasha Smundak  	sadistic: nil,
1809*88d15eacSSasha Smundak  	lastTime: 54321,
1810*88d15eacSSasha Smundak  	... // 1 ignored field
1811*88d15eacSSasha Smundak  }
1812*88d15eacSSasha Smundak>>> TestDiff/Project3/Inequal
1813*88d15eacSSasha Smundak<<< TestDiff/Project4/Inequal
1814*88d15eacSSasha Smundak  teststructs.Cartel{
1815*88d15eacSSasha Smundak  	Headquarter: teststructs.Headquarter{
1816*88d15eacSSasha Smundak  		id:       5,
1817*88d15eacSSasha Smundak  		location: "moon",
1818*88d15eacSSasha Smundak  		subDivisions: []string{
1819*88d15eacSSasha Smundak- 			"alpha",
1820*88d15eacSSasha Smundak  			"bravo",
1821*88d15eacSSasha Smundak  			"charlie",
1822*88d15eacSSasha Smundak  		},
1823*88d15eacSSasha Smundak  		incorporatedDate: s"0001-01-01 00:00:00 +0000 UTC",
1824*88d15eacSSasha Smundak  		metaData:         s"metadata",
1825*88d15eacSSasha Smundak  		privateMessage:   nil,
1826*88d15eacSSasha Smundak  		publicMessage: []uint8{
1827*88d15eacSSasha Smundak  			0x01,
1828*88d15eacSSasha Smundak  			0x02,
1829*88d15eacSSasha Smundak- 			0x03,
1830*88d15eacSSasha Smundak+ 			0x04,
1831*88d15eacSSasha Smundak- 			0x04,
1832*88d15eacSSasha Smundak+ 			0x03,
1833*88d15eacSSasha Smundak  			0x05,
1834*88d15eacSSasha Smundak  		},
1835*88d15eacSSasha Smundak  		horseBack: "abcdef",
1836*88d15eacSSasha Smundak  		rattle:    "",
1837*88d15eacSSasha Smundak  		... // 5 identical fields
1838*88d15eacSSasha Smundak  	},
1839*88d15eacSSasha Smundak  	source:        "mars",
1840*88d15eacSSasha Smundak  	creationDate:  s"0001-01-01 00:00:00 +0000 UTC",
1841*88d15eacSSasha Smundak  	boss:          "al capone",
1842*88d15eacSSasha Smundak  	lastCrimeDate: s"0001-01-01 00:00:00 +0000 UTC",
1843*88d15eacSSasha Smundak  	poisons: []*teststructs.Poison{
1844*88d15eacSSasha Smundak  		&{
1845*88d15eacSSasha Smundak- 			poisonType:   1,
1846*88d15eacSSasha Smundak+ 			poisonType:   5,
1847*88d15eacSSasha Smundak  			expiration:   s"2009-11-10 23:00:00 +0000 UTC",
1848*88d15eacSSasha Smundak  			manufacturer: "acme",
1849*88d15eacSSasha Smundak  			potency:      0,
1850*88d15eacSSasha Smundak  		},
1851*88d15eacSSasha Smundak- 		&{poisonType: 2, manufacturer: "acme2"},
1852*88d15eacSSasha Smundak  	},
1853*88d15eacSSasha Smundak  }
1854*88d15eacSSasha Smundak>>> TestDiff/Project4/Inequal
1855