package utility

import (
	"fmt"
	"math/rand"
	"strconv"
	"testing"
)

func Test_(t *testing.T) {
	// t.Log(decimal.NewFromFloat(0))
	t.Log(strconv.FormatFloat(1.04, 'f', 1, 64))
	t.Log(strconv.FormatFloat(1.05, 'f', 1, 64))
	t.Log(strconv.FormatFloat(1.06, 'f', 1, 64))
	t.Log(strconv.FormatFloat(1.006, 'f', 2, 64))
	// t.Log(strconv.FormatFloat(`1.006`, 64))
}

// i := int64(32)
// s := strconv.FormatInt(i, 16)
// println(s)

// 对比下 Float64ToString 和 FloatCutStr 的效率
// go test -bench=_QE_ -benchmem
// -benchtime 默认为1秒  -benchmem 获得内存分配的统计数据
func Benchmark_QE_1(b *testing.B) {
	for i := 0; i < b.N; i++ {
		Float64ToString(getRandData(), 2)
	}
}

func Benchmark_QE_2(b *testing.B) {
	for i := 0; i < b.N; i++ {
		FloatCutStr(getRandData(), 2) // 已废弃
	}
}

func getRandData() float64 {
	return float64(rand.Intn(1000000)) / 1000
}
func TestTrimHtml(t *testing.T) {
	a := `sff` // `<script>alert('ab')</script>`
	x := TrimHtml(a)
	fmt.Print(x)
}

// Benchmark_QE_1-6         4902826               243.3 ns/op            31 B/op          2 allocs/op
// Benchmark_QE_2-6         1275004               940.6 ns/op           137 B/op         11 allocs/op
// 故此将优先使用 Float64ToString  并将已使用的 FloatCutStr 进行替换
