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 }