From dd8ee044ca8ba1879087da49f2a8e0eb9be1b80a Mon Sep 17 00:00:00 2001 From: Cedric Bail Date: Tue, 31 Oct 2023 10:51:59 -0600 Subject: [PATCH] Authorize 1% of pixels error. --- cmd/htmx-fan/e2e_test.go | 3 --- cmd/htmx-fan/testdata/screenshot-index.png | Bin 40630 -> 48872 bytes pkg/test/test.go | 27 ++++++++++++++++++--- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/cmd/htmx-fan/e2e_test.go b/cmd/htmx-fan/e2e_test.go index 1c5d749..7b0049a 100644 --- a/cmd/htmx-fan/e2e_test.go +++ b/cmd/htmx-fan/e2e_test.go @@ -1,6 +1,3 @@ -//go:build e2e -// +build e2e - package main import ( diff --git a/cmd/htmx-fan/testdata/screenshot-index.png b/cmd/htmx-fan/testdata/screenshot-index.png index fa59623d062172ed45050e1c24c7eeb83f2d714f..65663d13281655bc5580c5a9a838f6b5433bd8b6 100644 GIT binary patch literal 48872 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 LS3j3^P6aIn! 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

pYsf8nUz_=iCZE^iBVuC&3sDb!9=jC2FlzJQiaP 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 IaO2ni1$?T0YybcN diff --git a/pkg/test/test.go b/pkg/test/test.go index 40d096d..b182f7a 100644 --- a/pkg/test/test.go +++ b/pkg/test/test.go @@ -29,13 +29,17 @@ func VerifyImage(t *testing.T, resultPath string) { masterBound, masterPixels := get(t, masterPath) resultBound, resultPixels := get(t, resultPath) + assert.Len(t, resultPixels, len(masterPixels)) if len(resultPixels) == 0 || len(masterPixels) == 0 { return } - - assert.Len(t, resultPixels, len(masterPixels)) assert.Equal(t, masterBound, resultBound) - assert.Equal(t, masterPixels, resultPixels) + if masterBound != resultBound { + return + } + + ratio := compare(masterPixels, resultPixels) + assert.LessOrEqual(t, ratio, 1) if !t.Failed() { os.Remove(resultPath) @@ -73,3 +77,20 @@ func pixels(i image.Image) ([]uint8, error) { return nil, fmt.Errorf("unsupported image type %T", i) } } + +func compare(img1, img2 []uint8) int { + overallChange := 0 + + for i := 0; i < len(img1); i++ { + overallChange += diffUInt8(img1[i], img2[i]) + } + + return 100 * overallChange / len(img1) +} + +func diffUInt8(x, y uint8) int { + if x != y { + return 1 + } + return 0 +}