github.com/keysonzzz/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgCompress/flate_test.go (about)

     1  package kmgCompress
     2  
     3  import (
     4  	"testing"
     5  
     6  	"fmt"
     7  	"github.com/bronze1man/kmg/kmgFile"
     8  	"github.com/bronze1man/kmg/kmgNet"
     9  	"github.com/bronze1man/kmg/kmgRand"
    10  	"github.com/bronze1man/kmg/kmgTest"
    11  	"time"
    12  )
    13  
    14  func TestFlate(ot *testing.T) {
    15  	fmt.Println("flate")
    16  	tsetCompressor(FlateMustCompress, FlateMustUnCompress)
    17  }
    18  
    19  func tsetCompressor(compressor func(inb []byte) (outb []byte), decompressor func(inb []byte) (outb []byte)) {
    20  	origin := []byte("123")
    21  	ob := compressor([]byte("123"))
    22  	output := decompressor(ob)
    23  	kmgTest.Equal(origin, output)
    24  
    25  	//for i:=1;i<20;i++ {
    26  	//	fmt.Println(kmgHex.UpperEncodeBytesToString(compressor(bytes.Repeat([]byte{'1'},i))))
    27  	//}
    28  	//for i:=1;i<100;i++ {
    29  	//	fmt.Println(kmgHex.UpperEncodeBytesToString(compressor(kmgRand.MustCryptoRandBytes(i))))
    30  	//}
    31  	for _, i := range []int{1, 10, 100, 1000, 1e4, 1e5} {
    32  		ob = compressor(kmgRand.MustCryptoRandBytes(i))
    33  		fmt.Println(i, len(ob), len(ob)-i)
    34  	}
    35  	for _, path := range []string{
    36  		"/Users/bronze1man/tmp/vanke.sql",
    37  		"/bin/kmg",
    38  	} {
    39  		c := kmgFile.MustReadFile(path)
    40  		t := time.Now()
    41  		ob = compressor(c)
    42  		dur := time.Since(t)
    43  		fmt.Println(path, kmgNet.SizeString(int64(len(c))), kmgNet.SizeString(int64(len(ob))),
    44  			float64(len(ob))/float64(len(c)), dur)
    45  	}
    46  
    47  	fmt.Println()
    48  }