mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-22 21:42:50 +02:00
tpl/math: Add log function
It might be very useful for building tag clouds.
This commit is contained in:
committed by
Bjørn Erik Pedersen
parent
41805dca9e
commit
34c566773a
@@ -15,6 +15,7 @@ package math
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
@@ -142,6 +143,42 @@ func TestDoArithmetic(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestLog(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
ns := New()
|
||||
|
||||
for i, test := range []struct {
|
||||
a interface{}
|
||||
expect interface{}
|
||||
}{
|
||||
{1, float64(0)},
|
||||
{3, float64(1.0986)},
|
||||
{0, float64(math.Inf(-1))},
|
||||
{1.0, float64(0)},
|
||||
{3.1, float64(1.1314)},
|
||||
{"abc", false},
|
||||
} {
|
||||
errMsg := fmt.Sprintf("[%d] %v", i, test)
|
||||
|
||||
result, err := ns.Log(test.a)
|
||||
|
||||
if b, ok := test.expect.(bool); ok && !b {
|
||||
require.Error(t, err, errMsg)
|
||||
continue
|
||||
}
|
||||
|
||||
// we compare only 4 digits behind point if its a real float
|
||||
// otherwise we usually get different float values on the last positions
|
||||
if result != math.Inf(-1) {
|
||||
result = float64(int(result*10000)) / 10000
|
||||
}
|
||||
|
||||
require.NoError(t, err, errMsg)
|
||||
assert.Equal(t, test.expect, result, errMsg)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMod(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
|
Reference in New Issue
Block a user