encoding_test.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package ethutil
  2. import (
  3. "fmt"
  4. "testing"
  5. )
  6. func TestCompactEncode(t *testing.T) {
  7. test1 := []int{1, 2, 3, 4, 5}
  8. if res := CompactEncode(test1); res != "\x11\x23\x45" {
  9. t.Error(fmt.Sprintf("even compact encode failed. Got: %q", res))
  10. }
  11. test2 := []int{0, 1, 2, 3, 4, 5}
  12. if res := CompactEncode(test2); res != "\x00\x01\x23\x45" {
  13. t.Error(fmt.Sprintf("odd compact encode failed. Got: %q", res))
  14. }
  15. test3 := []int{0, 15, 1, 12, 11, 8 /*term*/, 16}
  16. if res := CompactEncode(test3); res != "\x20\x0f\x1c\xb8" {
  17. t.Error(fmt.Sprintf("odd terminated compact encode failed. Got: %q", res))
  18. }
  19. test4 := []int{15, 1, 12, 11, 8 /*term*/, 16}
  20. if res := CompactEncode(test4); res != "\x3f\x1c\xb8" {
  21. t.Error(fmt.Sprintf("even terminated compact encode failed. Got: %q", res))
  22. }
  23. }
  24. func TestCompactHexDecode(t *testing.T) {
  25. exp := []int{7, 6, 6, 5, 7, 2, 6, 2, 16}
  26. res := CompactHexDecode("verb")
  27. if !CompareIntSlice(res, exp) {
  28. t.Error("Error compact hex decode. Expected", exp, "got", res)
  29. }
  30. }
  31. func TestCompactDecode(t *testing.T) {
  32. exp := []int{1, 2, 3, 4, 5}
  33. res := CompactDecode("\x11\x23\x45")
  34. if !CompareIntSlice(res, exp) {
  35. t.Error("odd compact decode. Expected", exp, "got", res)
  36. }
  37. exp = []int{0, 1, 2, 3, 4, 5}
  38. res = CompactDecode("\x00\x01\x23\x45")
  39. if !CompareIntSlice(res, exp) {
  40. t.Error("even compact decode. Expected", exp, "got", res)
  41. }
  42. exp = []int{0, 15, 1, 12, 11, 8 /*term*/, 16}
  43. res = CompactDecode("\x20\x0f\x1c\xb8")
  44. if !CompareIntSlice(res, exp) {
  45. t.Error("even terminated compact decode. Expected", exp, "got", res)
  46. }
  47. exp = []int{15, 1, 12, 11, 8 /*term*/, 16}
  48. res = CompactDecode("\x3f\x1c\xb8")
  49. if !CompareIntSlice(res, exp) {
  50. t.Error("even terminated compact decode. Expected", exp, "got", res)
  51. }
  52. }