From b7e284c68c7f34e23ab30ffe95d364f22b6ced4e Mon Sep 17 00:00:00 2001 From: tjp Date: Sun, 2 Jun 2024 20:04:57 -0600 Subject: initial commit [Not]Equal checks in `assert` and `must` packages --- assert.go | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 assert.go (limited to 'assert.go') diff --git a/assert.go b/assert.go new file mode 100644 index 0000000..8a38e9e --- /dev/null +++ b/assert.go @@ -0,0 +1,55 @@ +// package assert contains functions for checking values in unit tests. +// +// The functions in this package will log messages and mark tests as failed, +// not bail out of the test immediately, but rather return a boolean of whether +// or not the check passed. +// +// For analogues which stop the test and lose the boolean return value, see +// package assert/must. +package assert + +import ( + "testing" + + "github.com/google/go-cmp/cmp" +) + +// Equal asserts that two values compare as equal. +func Equal(t testing.TB, actual, expect any) bool { + t.Helper() + if !cmp.Equal(actual, expect) { + t.Errorf(` +Equal check failed +------------------ +actual: +%v + +expect: +%v + +diff: +%s`[1:], + actual, + expect, + cmp.Diff(expect, actual), + ) + return false + } + return true +} + +// NotEqual asserts that two values compare as unequal. +func NotEqual(t testing.TB, actual, expect any) bool { + t.Helper() + if cmp.Equal(actual, expect) { + t.Errorf(` +NotEqual check failed +--------------------- +value: +%v`[1:], + expect, + ) + return false + } + return true +} -- cgit v1.2.3