tpl/cast: Improve float

Make it support the new upstream rational number type in Exif.

See #12718
This commit is contained in:
Bjørn Erik Pedersen 2024-08-06 21:16:07 +02:00
parent c07e94fa6d
commit 10891f305e
3 changed files with 8 additions and 2 deletions

2
go.mod
View file

@ -63,7 +63,7 @@ require (
github.com/rogpeppe/go-internal v1.12.0 github.com/rogpeppe/go-internal v1.12.0
github.com/sanity-io/litter v1.5.5 github.com/sanity-io/litter v1.5.5
github.com/spf13/afero v1.11.0 github.com/spf13/afero v1.11.0
github.com/spf13/cast v1.6.0 github.com/spf13/cast v1.7.0
github.com/spf13/cobra v1.8.1 github.com/spf13/cobra v1.8.1
github.com/spf13/fsync v0.10.1 github.com/spf13/fsync v0.10.1
github.com/spf13/pflag v1.0.5 github.com/spf13/pflag v1.0.5

2
go.sum
View file

@ -431,6 +431,8 @@ github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY=
github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0=
github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w=
github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
github.com/spf13/fsync v0.10.1 h1:JRnB7G72b+gIBaBcpn5ibJSd7ww1iEahXSX2B8G6dSE= github.com/spf13/fsync v0.10.1 h1:JRnB7G72b+gIBaBcpn5ibJSd7ww1iEahXSX2B8G6dSE=

View file

@ -17,7 +17,9 @@ import (
"html/template" "html/template"
"testing" "testing"
"github.com/bep/imagemeta"
qt "github.com/frankban/quicktest" qt "github.com/frankban/quicktest"
"github.com/gohugoio/hugo/htesting/hqt"
) )
func TestToInt(t *testing.T) { func TestToInt(t *testing.T) {
@ -85,6 +87,7 @@ func TestToFloat(t *testing.T) {
t.Parallel() t.Parallel()
c := qt.New(t) c := qt.New(t)
ns := New() ns := New()
oneThird, _ := imagemeta.NewRat[uint32](1, 3)
for i, test := range []struct { for i, test := range []struct {
v any v any
@ -101,6 +104,7 @@ func TestToFloat(t *testing.T) {
{"0", 0.0}, {"0", 0.0},
{float64(2.12), 2.12}, {float64(2.12), 2.12},
{int64(123), 123.0}, {int64(123), 123.0},
{oneThird, 0.3333333333333333},
{2, 2.0}, {2, 2.0},
{t, false}, {t, false},
} { } {
@ -114,6 +118,6 @@ func TestToFloat(t *testing.T) {
} }
c.Assert(err, qt.IsNil, errMsg) c.Assert(err, qt.IsNil, errMsg)
c.Assert(result, qt.Equals, test.expect, errMsg) c.Assert(result, hqt.IsSameFloat64, test.expect, errMsg)
} }
} }