diff options
Diffstat (limited to 'internal/assert')
| -rw-r--r-- | internal/assert/assert.go | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/internal/assert/assert.go b/internal/assert/assert.go index 84b6ecf..99af59c 100644 --- a/internal/assert/assert.go +++ b/internal/assert/assert.go @@ -36,3 +36,16 @@ func SliceEqual[V comparable](t testing.TB, actual []V, expected ...V) { } } } + +// SliceDeepEqual is a test assertion. +func SliceDeepEqual[V any](t testing.TB, actual []V, expected ...V) { + t.Helper() + if len(actual) != len(expected) { + t.Errorf("length mismatch: expected %#v, but got %#v", expected, actual) + } + for idx := range actual { + if !reflect.DeepEqual(actual[idx], expected[idx]) { + t.Errorf("element %d: expected %#v, but got %#v", idx, expected[idx], actual[idx]) + } + } +} |
