56 lines
1.2 KiB
Go
56 lines
1.2 KiB
Go
|
package humanize
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"regexp"
|
||
|
"strconv"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestFtoa(t *testing.T) {
|
||
|
testList{
|
||
|
{"200", Ftoa(200), "200"},
|
||
|
{"2", Ftoa(2), "2"},
|
||
|
{"2.2", Ftoa(2.2), "2.2"},
|
||
|
{"2.02", Ftoa(2.02), "2.02"},
|
||
|
{"200.02", Ftoa(200.02), "200.02"},
|
||
|
}.validate(t)
|
||
|
}
|
||
|
|
||
|
func BenchmarkFtoaRegexTrailing(b *testing.B) {
|
||
|
trailingZerosRegex := regexp.MustCompile(`\.?0+$`)
|
||
|
|
||
|
b.ResetTimer()
|
||
|
for i := 0; i < b.N; i++ {
|
||
|
trailingZerosRegex.ReplaceAllString("2.00000", "")
|
||
|
trailingZerosRegex.ReplaceAllString("2.0000", "")
|
||
|
trailingZerosRegex.ReplaceAllString("2.000", "")
|
||
|
trailingZerosRegex.ReplaceAllString("2.00", "")
|
||
|
trailingZerosRegex.ReplaceAllString("2.0", "")
|
||
|
trailingZerosRegex.ReplaceAllString("2", "")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func BenchmarkFtoaFunc(b *testing.B) {
|
||
|
for i := 0; i < b.N; i++ {
|
||
|
stripTrailingZeros("2.00000")
|
||
|
stripTrailingZeros("2.0000")
|
||
|
stripTrailingZeros("2.000")
|
||
|
stripTrailingZeros("2.00")
|
||
|
stripTrailingZeros("2.0")
|
||
|
stripTrailingZeros("2")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func BenchmarkFmtF(b *testing.B) {
|
||
|
for i := 0; i < b.N; i++ {
|
||
|
_ = fmt.Sprintf("%f", 2.03584)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func BenchmarkStrconvF(b *testing.B) {
|
||
|
for i := 0; i < b.N; i++ {
|
||
|
strconv.FormatFloat(2.03584, 'f', 6, 64)
|
||
|
}
|
||
|
}
|