mirror of
https://github.com/hanzoai/traces.git
synced 2026-10-30 18:20:41 +00:00
29 lines
882 B
Go
29 lines
882 B
Go
// Provenance-includes-location: https://github.com/weaveworks/common/blob/main/test/diff.go
|
|
// Provenance-includes-license: Apache-2.0
|
|
// Provenance-includes-copyright: Weaveworks Ltd.
|
|
|
|
package test
|
|
|
|
import (
|
|
"github.com/davecgh/go-spew/spew"
|
|
"github.com/pmezard/go-difflib/difflib"
|
|
)
|
|
|
|
// Diff diffs two arbitrary data structures, giving human-readable output.
|
|
func Diff(want, have interface{}) string {
|
|
config := spew.NewDefaultConfig()
|
|
// Set ContinueOnMethod to true if you cannot see a difference and
|
|
// want to look beyond the String() method
|
|
config.ContinueOnMethod = false
|
|
config.SortKeys = true
|
|
config.SpewKeys = true
|
|
text, _ := difflib.GetUnifiedDiffString(difflib.UnifiedDiff{
|
|
A: difflib.SplitLines(config.Sdump(want)),
|
|
B: difflib.SplitLines(config.Sdump(have)),
|
|
FromFile: "want",
|
|
ToFile: "have",
|
|
Context: 3,
|
|
})
|
|
return "\n" + text
|
|
}
|