From 37b9f9403381234a6fbbe2c16013d6cf2d3d0cd8 Mon Sep 17 00:00:00 2001 From: Sebastien Binet Date: Wed, 22 Apr 2026 09:32:41 +0200 Subject: [PATCH 1/5] all: bump Go-1.26, drop Go-1.24 Signed-off-by: Sebastien Binet --- .github/workflows/ci.yml | 2 +- go.mod | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fb3f9ee3..b8523da8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,7 @@ jobs: name: Build strategy: matrix: - go-version: [1.25.x, 1.24.x] + go-version: [1.26.x, 1.25.x] platform: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.platform }} env: diff --git a/go.mod b/go.mod index 286390fc..d6f80e12 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module gonum.org/v1/plot -go 1.24.0 +go 1.25.0 require ( codeberg.org/go-fonts/latin-modern v0.4.0 From c812adc2d6d55ab0bb7c490c8e799cd8f51a975d Mon Sep 17 00:00:00 2001 From: Sebastien Binet Date: Wed, 22 Apr 2026 09:31:48 +0200 Subject: [PATCH 2/5] all: bump x/image@v0.39.0 Signed-off-by: Sebastien Binet --- go.mod | 12 +++++++----- go.sum | 24 ++++++++++++++---------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index d6f80e12..0594e6d1 100644 --- a/go.mod +++ b/go.mod @@ -9,17 +9,19 @@ require ( codeberg.org/go-pdf/fpdf v0.11.1 git.sr.ht/~sbinet/gg v0.7.0 github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b - golang.org/x/image v0.30.0 + golang.org/x/image v0.39.0 gonum.org/v1/gonum v0.16.0 rsc.io/pdf v0.1.1 ) require ( github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect - golang.org/x/mod v0.27.0 // indirect - golang.org/x/sync v0.16.0 // indirect - golang.org/x/text v0.28.0 // indirect - golang.org/x/tools v0.36.0 // indirect + golang.org/x/mod v0.34.0 // indirect + golang.org/x/sync v0.20.0 // indirect + golang.org/x/sys v0.42.0 // indirect + golang.org/x/telemetry v0.0.0-20260311193753-579e4da9a98c // indirect + golang.org/x/text v0.36.0 // indirect + golang.org/x/tools v0.43.0 // indirect gonum.org/v1/tools v0.0.0-20200318103217-c168b003ce8c // indirect ) diff --git a/go.sum b/go.sum index 5b0ae5fe..a368380e 100644 --- a/go.sum +++ b/go.sum @@ -28,13 +28,13 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/image v0.30.0 h1:jD5RhkmVAnjqaCUXfbGBrn3lpxbknfN9w2UhHHU+5B4= -golang.org/x/image v0.30.0/go.mod h1:SAEUTxCCMWSrJcCy/4HwavEsfZZJlYxeHLc6tTiAe/c= +golang.org/x/image v0.39.0 h1:skVYidAEVKgn8lZ602XO75asgXBgLj9G/FE3RbuPFww= +golang.org/x/image v0.39.0/go.mod h1:sIbmppfU+xFLPIG0FoVUTvyBMmgng1/XAMhQ2ft0hpA= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= -golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= +golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI= +golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -42,23 +42,27 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= -golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= +golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= +golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/telemetry v0.0.0-20260311193753-579e4da9a98c h1:6a8FdnNk6bTXBjR4AGKFgUKuo+7GnR3FX5L7CbveeZc= +golang.org/x/telemetry v0.0.0-20260311193753-579e4da9a98c/go.mod h1:TpUTTEp9frx7rTdLpC9gFG9kdI7zVLFTFFlqaH2Cncw= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= -golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= +golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= +golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200113040837-eac381796e91/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200317205521-2944c61d58b4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= -golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= +golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s= +golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From dd47f237b10c62136007b5159aa93aa7555c74cf Mon Sep 17 00:00:00 2001 From: Sebastien Binet Date: Wed, 22 Apr 2026 09:36:37 +0200 Subject: [PATCH 3/5] all: bump gonum@v0.17.0 Signed-off-by: Sebastien Binet --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 0594e6d1..c8e2888f 100644 --- a/go.mod +++ b/go.mod @@ -3,14 +3,14 @@ module gonum.org/v1/plot go 1.25.0 require ( - codeberg.org/go-fonts/latin-modern v0.4.0 + codeberg.org/go-fonts/latin-modern v0.5.0 codeberg.org/go-fonts/liberation v0.5.0 codeberg.org/go-latex/latex v0.2.0 codeberg.org/go-pdf/fpdf v0.11.1 git.sr.ht/~sbinet/gg v0.7.0 github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b golang.org/x/image v0.39.0 - gonum.org/v1/gonum v0.16.0 + gonum.org/v1/gonum v0.17.0 rsc.io/pdf v0.1.1 ) diff --git a/go.sum b/go.sum index a368380e..55314a52 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ codeberg.org/go-fonts/dejavu v0.4.0 h1:2yn58Vkh4CFK3ipacWUAIE3XVBGNa0y1bc95Bmfx91I= codeberg.org/go-fonts/dejavu v0.4.0/go.mod h1:abni088lmhQJvso2Lsb7azCKzwkfcnttl6tL1UTWKzg= -codeberg.org/go-fonts/latin-modern v0.4.0 h1:vkRCc1y3whKA7iL9Ep0fSGVuJfqjix0ica9UflHORO8= -codeberg.org/go-fonts/latin-modern v0.4.0/go.mod h1:BF68mZznJ9QHn+hic9ks2DaFl4sR5YhfM6xTYaP9vNw= +codeberg.org/go-fonts/latin-modern v0.5.0 h1:5vzaHjM+3uTRHhqQUuTZ/4FoVZkqXufyuKB9SdpLGp0= +codeberg.org/go-fonts/latin-modern v0.5.0/go.mod h1:p8kFovLhQWuvorvlEjhjCp/3NZ06u7h23LvuLwQFK84= codeberg.org/go-fonts/liberation v0.5.0 h1:SsKoMO1v1OZmzkG2DY+7ZkCL9U+rrWI09niOLfQ5Bo0= codeberg.org/go-fonts/liberation v0.5.0/go.mod h1:zS/2e1354/mJ4pGzIIaEtm/59VFCFnYC7YV6YdGl5GU= codeberg.org/go-latex/latex v0.2.0 h1:Ol/a6VHY06N+5gPfewswymoRb5ZcKDXWVaVegcx4hbI= @@ -67,8 +67,8 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= -gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= +gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= gonum.org/v1/tools v0.0.0-20200318103217-c168b003ce8c h1:cJWOvXtcaFSGXz2F4z2AMM0VV7edDDGrxb5GLQH7ayQ= gonum.org/v1/tools v0.0.0-20200318103217-c168b003ce8c/go.mod h1:fy6Otjqbk477ELp8IXTpw1cObQtLbRCBVonY+bTTfcM= honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= From 71cca218f08f9bd0bf9378d92dbdd78d34871be3 Mon Sep 17 00:00:00 2001 From: Sebastien Binet Date: Wed, 22 Apr 2026 09:51:59 +0200 Subject: [PATCH 4/5] all: update reference files for x/image and latin-modern Signed-off-by: Sebastien Binet --- vg/testdata/width_-1_golden.jpg | Bin 3430 -> 3429 bytes vg/testdata/width_0_golden.jpg | Bin 3430 -> 3429 bytes vg/testdata/width_1_golden.jpg | Bin 4210 -> 4208 bytes vg/vgimg/testdata/issue179_golden.jpg | Bin 1366 -> 1367 bytes vg/vgsvg/font_test.go | 2 +- vg/vgsvg/testdata/embed_fonts_golden.svg | 22 +++++++++++----------- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/vg/testdata/width_-1_golden.jpg b/vg/testdata/width_-1_golden.jpg index eb4a07fe8fac3f35290f1696fefe9b46eb2f4256..cf98c69b55f9448acddfd7a9b227f91bf974ff57 100644 GIT binary patch delta 2555 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 N%_Q$XkEL-s_7_0yzI^}y diff --git a/vg/testdata/width_0_golden.jpg b/vg/testdata/width_0_golden.jpg index eb4a07fe8fac3f35290f1696fefe9b46eb2f4256..cf98c69b55f9448acddfd7a9b227f91bf974ff57 100644 GIT binary patch delta 2555 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 N%_Q$XkEL-s_7_0yzI^}y diff --git a/vg/testdata/width_1_golden.jpg b/vg/testdata/width_1_golden.jpg index bac05ba6223fa2abcd75c0381d361450e67742c9..775cce3a6134dd46ba8a4e65aad800e11e1c6a13 100644 GIT binary patch delta 2414 zcmV-!36b{lAn+itJp+FT1cB^LW$E|O-*~3!;Y)=JWe`4nypW&2CqU{6{41RCHiVk@ z#Cu3Y?`wAkk1Y0=asB8e6Gw&~qml?b5J>Mp9)m?-cxzvmQxoa>lq+kk*pRn&>V8(w z-IhG{jj@n>at|W6=m4UMC;+00C;+IWxq>O;f=S~^rq7idI1GRI89PT)f!7r+a=Q2Y zkKPgg0JqQm6et6#qKYU22fek4%1LtyFzT%!1X4$RX*A*(u40l>rNX0va0mqP^&g#b zzAMml3wWCO{6C;vU*23SX6sae3M&wKcPdUWyFl(rjx$yKBmV#h{Cb|6G~F*ow$!K6 z-fOngAxOe}(R_cTFE}KUH*@kIdI0XIqKW`2Ipq*Q@|1T9GqyF{$LKrMl^pUkP&|nX z%*rw&jHqVz8;Bp76akB;-V4tZ-7tdU9kx*nPZ2_Xc{*mP$^QT)V%z?}bARag>gJzw zHP?!6nrj=2LM);IXK2Z9o=!%_VfocLKjf@if7lLh{U3iF09x@bgFX3!RMKQieR9MT zZ7Y4rRQ>2=$5e07;EqLF@b7P1T~*e%PK{!9ASbO~g_Wlx?cxkZ?g(QV+jlkw6+19P2B<>kNw=q6WdmCaPn9KWs~Owhy@D%Pbg- zbn2s;w^+J_O?l!ATSmFLiXXDeAy_78^1;voNbA8rod9i7TR;!OuOa8(ku2(eCAz^HuvoOL8Ly?m%{|jw9nd{Good0n}DC z$A$E(pA^~nk)SK7+C=dzsByg*V+=ow894OKXHTTgx+R={$$6^%rR22|0d*lbX%I=q zc==0b(yslK>Dum|kzL+8PO_|tHN!{_6cNJ{gFqX!QAGe0QAGe0QAGe0QAGe(yuP-u zjUMJ*f!ksL3p2I}!l>k&0&qJ6=~T;GOLGpow~&2>EZ;Kj8+MYdzjsUkrl|OV9xo91 zdr)oY2r5toRCV~&G@x&HuYde=H_uAkwh&WsNF{ta5;Y=rDKuC0}$bYo=)zZ8UX1u&1+BA7Dm(VMB*|7;Yh}Mbpz6`*FU1( z-p{Uo-&>1`Z*;_hCywe^l?arV4uGntU;snYf^bh^&`<EH^(VIOTA1J8mAeiT?l!*T*08@&5pk=mXy9 zqKW`0qKW`0qKW`0qKW{9>VLA@$v>4WqA|FnOSzBGcdTnq7wNb9UY)2~EyVEZG8pZD zf*>r!XE_I0^-Mrk^5sN5$~#chSRbqxg~7 zK#czY@!>OJhIzmefD2=QzzpM(0q8pJvk!;#iM2bJXO;*`?+}G70U&4QBe@l&T%W|5 zV_%2bn>2_OmOZ4N5APSHbAB%I1P4`ryEe0>wcUoHr^n{C^DD@YBt?ov(8g9m3C}oh zK|me;k*vY23*ROgqH8;+w3THGlIj5@V4glSVr>EqYe#35{>j^Ts3 zEf34(gN9NIXCRDZo}6fDlHY0`C%##=duvTX*IjSjO>)9lwHz#K7eb90$Uoju=cu3# z??u*N*6nAW2xf=Kxt7(^V7r6H#ar%@F_G(9HOcq}XrIBtPfe(it8u< gqKYU0qKYU0qKYU0qKYU0qKYU18CAv^L6aU3RAum}bpQYW delta 2414 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 diff --git a/vg/vgsvg/font_test.go b/vg/vgsvg/font_test.go index b419d34c..c127bd70 100644 --- a/vg/vgsvg/font_test.go +++ b/vg/vgsvg/font_test.go @@ -63,7 +63,7 @@ func TestSVGFontDescr(t *testing.T) { }, lmroman10regular.TTF, ), - want: "font-family:Latin Modern Roman;font-variant:none;font-weight:normal;font-style:normal", + want: "font-family:LMRoman10;font-variant:none;font-weight:normal;font-style:normal", }, // variants { diff --git a/vg/vgsvg/testdata/embed_fonts_golden.svg b/vg/vgsvg/testdata/embed_fonts_golden.svg index 77581491..da0b16a3 100644 --- a/vg/vgsvg/testdata/embed_fonts_golden.svg +++ b/vg/vgsvg/testdata/embed_fonts_golden.svg @@ -6,24 +6,24 @@ Scatter plot + style="font-family:LMRoman10;font-variant:none;font-weight:normal;font-style:italic;font-size:12px">Scatter plot x-Axis + style="font-family:LMRoman10;font-variant:none;font-weight:normal;font-style:italic;font-size:12px">x-Axis 0.0 + style="font-family:LMRoman10;font-variant:none;font-weight:normal;font-style:italic;font-size:10px">0.0 0.5 + style="font-family:LMRoman10;font-variant:none;font-weight:normal;font-style:italic;font-size:10px">0.5 1.0 + style="font-family:LMRoman10;font-variant:none;font-weight:normal;font-style:italic;font-size:10px">1.0 @@ -38,14 +38,14 @@ y-Axis + style="font-family:LMRoman10;font-variant:none;font-weight:normal;font-style:italic;font-size:12px">y-Axis 0.0 + style="font-family:LMRoman10;font-variant:none;font-weight:normal;font-style:italic;font-size:10px">0.0 0.5 + style="font-family:LMRoman10;font-variant:none;font-weight:normal;font-style:italic;font-size:10px">0.5 1.0 + style="font-family:LMRoman10;font-variant:none;font-weight:normal;font-style:italic;font-size:10px">1.0 From 2694df46f8bd2889fa62d5b167762bd4ea3bc919 Mon Sep 17 00:00:00 2001 From: Sebastien Binet Date: Wed, 22 Apr 2026 10:08:56 +0200 Subject: [PATCH 5/5] all: use cmpimg.EqualApprox for jpg jpg comparison is finicky, especially across architectures. use EqualApprox (with a delta=0.1) so tests pass on darwin. Signed-off-by: Sebastien Binet --- vg/vg_test.go | 6 +++++- vg/vgimg/vgimg_test.go | 10 +++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/vg/vg_test.go b/vg/vg_test.go index 916b3edc..27c0ed5f 100644 --- a/vg/vg_test.go +++ b/vg/vg_test.go @@ -19,6 +19,10 @@ import ( "gonum.org/v1/plot/vg" ) +const ( + cmpDelta = 0.1 +) + // TestLineWidth tests output against test images generated by // running tests with -tag good. func TestLineWidth(t *testing.T) { @@ -68,7 +72,7 @@ func TestLineWidth(t *testing.T) { t.Fatalf("failed to read test image [%s]: %v\n", name, err) } - ok, err := cmpimg.Equal(typ, buf.Bytes(), want) + ok, err := cmpimg.EqualApprox(typ, buf.Bytes(), want, cmpDelta) if err != nil { t.Fatalf("failed to run cmpimg test [%s]: %v\n", name, err) } diff --git a/vg/vgimg/vgimg_test.go b/vg/vgimg/vgimg_test.go index 3f9fa3d9..462b7d28 100644 --- a/vg/vgimg/vgimg_test.go +++ b/vg/vgimg/vgimg_test.go @@ -25,6 +25,10 @@ import ( "gonum.org/v1/plot/vg/vgimg" ) +const ( + delta = 0.1 +) + var cache = font.NewCache(liberation.Collection()) func TestIssue179(t *testing.T) { @@ -50,7 +54,7 @@ func TestIssue179(t *testing.T) { t.Fatal(err) } - ok, err := cmpimg.Equal("jpg", b.Bytes(), want) + ok, err := cmpimg.EqualApprox("jpg", b.Bytes(), want, delta) if err != nil { t.Fatal(err) } @@ -154,7 +158,7 @@ func TestIssue687(t *testing.T) { fname = "testdata/issue687.png" size = 500 ) - cmpimg.CheckPlot(func() { + cmpimg.CheckPlotApprox(func() { p := plot.New() p.Title.Text = "Issue 687" p.X.Label.Text = "X" @@ -175,5 +179,5 @@ func TestIssue687(t *testing.T) { t.Fatal(err) } - }, t, filepath.Base(fname)) + }, t, delta, filepath.Base(fname)) }