package md5helper

import (
	"crypto/md5"
	"encoding/hex"
	"fmt"
	"testing"
)

func TestMD52(t *testing.T) {
	got := MD52("Qq123456")
	fmt.Println(got)
}

func TestMD5(t *testing.T) {
	got := []byte("Qq123456")
	s := md5.New()
	s.Write(got)
	fmt.Println(hex.EncodeToString(s.Sum(nil)))

	cc := md5.Sum(got)
	fmt.Println(hex.EncodeToString(cc[:]))

	fmt.Printf("%x\n", md5.Sum(got))

}

// go test -bench=_QE_ -benchmem -run=^$
func Benchmark_QE_1(b *testing.B) {
	for i := 0; i < b.N; i++ {
		input := `Qq123456`
		s := md5.New()
		s.Write([]byte(input))
		hex.EncodeToString(s.Sum(nil))
	}
}

func Benchmark_QE_2(b *testing.B) {
	for i := 0; i < b.N; i++ {
		input := `Qq123456`
		cc := md5.Sum([]byte(input))
		hex.EncodeToString(cc[:])
	}
}

func Benchmark_QE_3(b *testing.B) {
	for i := 0; i < b.N; i++ {
		input := `Qq123456`
		fmt.Sprintf("%x\n", md5.Sum([]byte(input)))
	}
}

// Benchmark_QE_1-6         6354160               189.8 ns/op            48 B/op          2 allocs/op
// Benchmark_QE_2-6         7352328               162.9 ns/op            32 B/op          1 allocs/op
// Benchmark_QE_3-6         3007480               396.9 ns/op            80 B/op          3 allocs/op
