...

Text file src/github.com/google/go-cmp/cmp/testdata/diffs

Documentation: github.com/google/go-cmp/cmp/testdata

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

View as plain text