github.com/jonasnick/go-ethereum@v0.7.12-0.20150216215225-22176f05d387/trie/encoding_test.go (about) 1 package trie 2 3 import ( 4 checker "gopkg.in/check.v1" 5 ) 6 7 type TrieEncodingSuite struct{} 8 9 var _ = checker.Suite(&TrieEncodingSuite{}) 10 11 func (s *TrieEncodingSuite) TestCompactEncode(c *checker.C) { 12 // even compact encode 13 test1 := []byte{1, 2, 3, 4, 5} 14 res1 := CompactEncode(test1) 15 c.Assert(res1, checker.Equals, "\x11\x23\x45") 16 17 // odd compact encode 18 test2 := []byte{0, 1, 2, 3, 4, 5} 19 res2 := CompactEncode(test2) 20 c.Assert(res2, checker.Equals, "\x00\x01\x23\x45") 21 22 //odd terminated compact encode 23 test3 := []byte{0, 15, 1, 12, 11, 8 /*term*/, 16} 24 res3 := CompactEncode(test3) 25 c.Assert(res3, checker.Equals, "\x20\x0f\x1c\xb8") 26 27 // even terminated compact encode 28 test4 := []byte{15, 1, 12, 11, 8 /*term*/, 16} 29 res4 := CompactEncode(test4) 30 c.Assert(res4, checker.Equals, "\x3f\x1c\xb8") 31 } 32 33 func (s *TrieEncodingSuite) TestCompactHexDecode(c *checker.C) { 34 exp := []byte{7, 6, 6, 5, 7, 2, 6, 2, 16} 35 res := CompactHexDecode("verb") 36 c.Assert(res, checker.DeepEquals, exp) 37 } 38 39 func (s *TrieEncodingSuite) TestCompactDecode(c *checker.C) { 40 // odd compact decode 41 exp := []byte{1, 2, 3, 4, 5} 42 res := CompactDecode("\x11\x23\x45") 43 c.Assert(res, checker.DeepEquals, exp) 44 45 // even compact decode 46 exp = []byte{0, 1, 2, 3, 4, 5} 47 res = CompactDecode("\x00\x01\x23\x45") 48 c.Assert(res, checker.DeepEquals, exp) 49 50 // even terminated compact decode 51 exp = []byte{0, 15, 1, 12, 11, 8 /*term*/, 16} 52 res = CompactDecode("\x20\x0f\x1c\xb8") 53 c.Assert(res, checker.DeepEquals, exp) 54 55 // even terminated compact decode 56 exp = []byte{15, 1, 12, 11, 8 /*term*/, 16} 57 res = CompactDecode("\x3f\x1c\xb8") 58 c.Assert(res, checker.DeepEquals, exp) 59 }