github.com/angenalZZZ/gofunc@v0.0.0-20210507121333-48ff1be3917b/f/cimap_test.go (about)

     1  package f_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/angenalZZZ/gofunc/data/random"
     7  	"github.com/angenalZZZ/gofunc/f"
     8  )
     9  
    10  func TestCiMap_JSON(t *testing.T) {
    11  	m := f.NewCiMap()
    12  	m.MSet(map[uint64]interface{}{
    13  		1: 1,
    14  		2: 2,
    15  		3: 3,
    16  	})
    17  	s, _ := m.JSON()
    18  	t.Logf("%s\n", s)
    19  
    20  	m2, err2 := f.NewCiMapFromJSON(s)
    21  	if err2 != nil {
    22  		t.Fatal(err2)
    23  	}
    24  	s2, _ := m2.JSON()
    25  	t.Logf("%s\n", s2)
    26  }
    27  
    28  // go test -v -cpu=4 -benchtime=15s -benchmem -bench=^BenchmarkCiMap_Set$ -test.run ^none$ ./f
    29  // go test -c -o %TEMP%\t01.exe ./f && %TEMP%\t01.exe -test.v -test.bench ^BenchmarkCiMap_Set$ -test.run ^none$
    30  func BenchmarkCiMap_Set(b *testing.B) {
    31  	b.StopTimer()
    32  	m := f.NewCiMap()
    33  	k := random.Int64()
    34  	v := random.AlphaNumber(1024) // every time 1kB data request: cpu=4 5500k/qps 0.1ms/op
    35  	b.StartTimer()
    36  	for i := 0; i < b.N; i++ {
    37  		m.Set(k, v)
    38  	}
    39  }