summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore29
-rw-r--r--tpl/compare/compare.go7
-rw-r--r--tpl/compare/compare_test.go2
3 files changed, 7 insertions, 31 deletions
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index b2aeb9142..000000000
--- a/.gitignore
+++ /dev/null
@@ -1,29 +0,0 @@
-/hugo
-docs/public*
-/.idea
-.vscode/*
-hugo.exe
-*.test
-*.prof
-nohup.out
-cover.out
-*.swp
-*.swo
-.DS_Store
-*~
-vendor/*/
-*.bench
-*.debug
-coverage*.out
-
-dock.sh
-
-GoBuilds
-dist
-
-hugolib/hugo_stats.json
-resources/sunset.jpg
-
-vendor
-
-.hugo_build.lock
diff --git a/tpl/compare/compare.go b/tpl/compare/compare.go
index 47f77cc99..2ef5aacfe 100644
--- a/tpl/compare/compare.go
+++ b/tpl/compare/compare.go
@@ -16,6 +16,7 @@ package compare
import (
"fmt"
+ "math"
"reflect"
"strconv"
"time"
@@ -273,7 +274,8 @@ func (ns *Namespace) compareGetWithCollator(collator *langs.Collator, a any, b a
case reflect.String:
var err error
left, err = strconv.ParseFloat(av.String(), 64)
- if err != nil {
+ // Check if float is a special floating value and cast value as string.
+ if math.IsInf(left, 0) || math.IsNaN(left) || err != nil {
str := av.String()
leftStr = &str
}
@@ -300,7 +302,8 @@ func (ns *Namespace) compareGetWithCollator(collator *langs.Collator, a any, b a
case reflect.String:
var err error
right, err = strconv.ParseFloat(bv.String(), 64)
- if err != nil {
+ // Check if float is a special floating value and cast value as string.
+ if math.IsInf(right, 0) || math.IsNaN(right) || err != nil {
str := bv.String()
rightStr = &str
}
diff --git a/tpl/compare/compare_test.go b/tpl/compare/compare_test.go
index ce2016b38..4c50f5f0f 100644
--- a/tpl/compare/compare_test.go
+++ b/tpl/compare/compare_test.go
@@ -217,6 +217,8 @@ func doTestCompare(t *testing.T, tp tstCompareType, funcUnderTest func(a, b any)
{"a", "a", 0},
{"a", "b", -1},
{"b", "a", 1},
+ {"infinity", "infinity", 0},
+ {"nan", "nan", 0},
{tstEqerType1("a"), tstEqerType1("a"), 0},
{tstEqerType1("a"), tstEqerType2("a"), 0},
{tstEqerType2("a"), tstEqerType1("a"), 0},