commit 53aa5e53af1146debcd9904e8ce60545551f24c3
parent bc039d3e306519cdf6626d6fe492bf8ced3677d5
Author: MTRNord <mtrnord1@gmail.com>
Date: Sun, 25 Feb 2024 08:38:11 +0100
Improve readability of tests
Diffstat:
3 files changed, 44 insertions(+), 79 deletions(-)
diff --git a/go.mod b/go.mod
@@ -5,15 +5,16 @@ go 1.21.7
require (
github.com/davidbyttow/govips/v2 v2.13.0
github.com/h2non/filetype v1.1.3
- github.com/stretchr/testify v1.6.1
+ github.com/stretchr/testify v1.8.4
golang.org/x/exp v0.0.0-20240222234643-814bf88cf225
)
require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
+ github.com/stretchr/objx v0.5.0 // indirect
golang.org/x/image v0.15.0 // indirect
golang.org/x/net v0.21.0 // indirect
golang.org/x/text v0.14.0 // indirect
- gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect
+ gopkg.in/yaml.v3 v3.0.1 // indirect
)
diff --git a/go.sum b/go.sum
@@ -13,8 +13,15 @@ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLA
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
+github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
+github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
+github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
+github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
@@ -56,3 +63,5 @@ gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b h1:QRR6H1YWRnHb4Y/HeNFCTJLF
gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
+gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/types/hash256_test.go b/types/hash256_test.go
@@ -1,150 +1,105 @@
package types
import (
- "strings"
"testing"
+
+ "github.com/stretchr/testify/assert"
)
const SAMPLE_HASH = "9c151c3af838278e3ef57c180c7d031c07aefd12f2ccc1e18f2a1e1c7d0ff163"
func TestIncorrectHexLength(t *testing.T) {
_, err := Hash256FromHexString("AAA")
- if !strings.HasPrefix(err.Error(), "incorrect hash length") {
- t.Errorf("Incorrect error message: %s", err)
- }
+ assert.ErrorContains(t, err, "incorrect hash length")
}
func TestIncorrectHexFormat(t *testing.T) {
_, err := Hash256FromHexString("9c151c3af838278e3ef57c180c7d031c07aefd12f2ccc1e18f2a1e1c7d0ff16!")
- if !strings.HasPrefix(err.Error(), "incorrect format") {
- t.Errorf("Incorrect error message: %s", err)
- }
+ assert.ErrorContains(t, err, "incorrect format")
}
func TestCorrectHexFormat(t *testing.T) {
hash, err := Hash256FromHexString(SAMPLE_HASH)
- if err != nil {
- t.Errorf("Error: %s", err)
- }
- if hash.String() != SAMPLE_HASH {
- t.Errorf("Incorrect hash: %s", hash.String())
- }
+ assert.ErrorIs(t, err, nil)
+
+ assert.Equal(t, SAMPLE_HASH, hash.String())
}
func TestClone(t *testing.T) {
hash, err := Hash256FromHexString(SAMPLE_HASH)
- if err != nil {
- t.Errorf("Error: %s", err)
- }
+ assert.ErrorIs(t, err, nil)
+
clone := hash.Clone()
- if clone.String() != SAMPLE_HASH {
- t.Errorf("Incorrect hash: %s", clone.String())
- }
- if !hash.Eq(&clone) {
- t.Errorf("Incorrect equality")
- }
+ assert.Equal(t, SAMPLE_HASH, clone.String())
+
+ assert.True(t, hash.Eq(&clone))
}
func TestToString(t *testing.T) {
hash, err := Hash256FromHexString(SAMPLE_HASH)
- if err != nil {
- t.Errorf("Error: %s", err)
- }
- if hash.String() != SAMPLE_HASH {
- t.Errorf("Incorrect hash: %s", hash.String())
- }
+ assert.ErrorIs(t, err, nil)
+
+ assert.Equal(t, SAMPLE_HASH, hash.String())
}
func TestBitCount(t *testing.T) {
- if BitCount(1) != 1 {
- t.Errorf("Incorrect bit count")
- }
+ assert.Equal(t, 1, BitCount(1))
// dec(10) = bin(01100100)
- if BitCount(100) != 3 {
- t.Errorf("Incorrect bit count")
- }
+ assert.Equal(t, 3, BitCount(100))
}
func TestHammingNorm(t *testing.T) {
hash := &Hash256{}
hash.SetAll()
- if hash.HammingNorm() != 256 {
- t.Errorf("Incorrect hamming norm")
- }
- hash, err := Hash256FromHexString(SAMPLE_HASH)
- if err != nil {
- t.Errorf("Error: %s", err)
- }
+ assert.Equal(t, 256, hash.HammingNorm())
- if hash.HammingNorm() != 128 {
- t.Errorf("Incorrect hamming norm")
- }
+ hash, err := Hash256FromHexString(SAMPLE_HASH)
+ assert.ErrorIs(t, err, nil)
+ assert.Equal(t, 128, hash.HammingNorm())
}
func TestHammingDistance(t *testing.T) {
hash1, err := Hash256FromHexString(SAMPLE_HASH)
- if err != nil {
- t.Errorf("Error: %s", err)
- }
+ assert.ErrorIs(t, err, nil)
hash2 := Hash256{}
hash2.ClearAll()
- if hash1.HammingDistance(&hash2) != 128 {
- t.Errorf("Incorrect hamming distance")
- }
+ assert.Equal(t, 128, hash1.HammingDistance(&hash2))
hash1 = &Hash256{}
hash1.SetAll()
hash2 = Hash256{}
hash2.ClearAll()
- if hash1.HammingDistance(&hash2) != 256 {
- t.Errorf("Incorrect hamming distance")
- }
- if hash1.HammingDistanceLE(&hash2, 1) {
- t.Errorf("Incorrect hamming distance")
- }
- if !hash1.HammingDistanceLE(&hash2, 257) {
- t.Errorf("Incorrect hamming distance")
- }
- if !hash1.HammingDistanceLE(hash1, 0) {
- t.Errorf("Incorrect hamming distance")
- }
+ assert.Equal(t, 256, hash1.HammingDistance(&hash2))
+ assert.False(t, hash1.HammingDistanceLE(&hash2, 1))
+ assert.True(t, hash1.HammingDistanceLE(&hash2, 257))
+ assert.True(t, hash1.HammingDistanceLE(hash1, 0))
}
func TestBinaryOperations(t *testing.T) {
hash, err := Hash256FromHexString(SAMPLE_HASH)
- if err != nil {
- t.Errorf("Error: %s", err)
- }
+ assert.ErrorIs(t, err, nil)
result := hash.BitwiseAND(hash)
hash2 := &result
- if !hash2.Eq(hash) {
- t.Errorf("Incorrect AND")
- }
+ assert.True(t, hash2.Eq(hash))
hashNegative := hash.BitwiseNOT()
result = hash.BitwiseAND(&hashNegative)
hash2 = &result
hash3 := &Hash256{}
- if !hash2.Eq(hash3) {
- t.Errorf("Incorrect NOT")
- }
+ assert.True(t, hash2.Eq(hash3))
hash_set_all := &Hash256{}
hash_set_all.SetAll()
result = hash.BitwiseOR(&hashNegative)
- if !result.Eq(hash_set_all) {
- t.Errorf("Incorrect OR with SET ALL")
- }
+ assert.True(t, result.Eq(hash_set_all))
result = hash.BitwiseXOR(&hashNegative)
- if !result.Eq(hash_set_all) {
- t.Errorf("Incorrect XOR with SET ALL")
- }
+ assert.True(t, result.Eq(hash_set_all))
}