You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.4 KiB

  1. package util
  2. import (
  3. "reflect"
  4. "testing"
  5. )
  6. // go test github.com/chrislusf/seaweedfs/weed/util -run '^(TestAll)$' -v
  7. func TestAll(t *testing.T) {
  8. for i := 0; i <= 0xff; i += 7 {
  9. assertU16(t, uint16(i))
  10. }
  11. for i := 0; i <= 0xffff; i += 211 {
  12. assertU32(t, uint32(i))
  13. }
  14. for i := 0; i <= 0xffffffff; i += 1000000007 {
  15. assertU64(t, uint64(i))
  16. }
  17. }
  18. func assertU16(t *testing.T, i uint16) {
  19. var buf1, buf2 [2]byte
  20. Uint16toBytesOld(buf1[:], i)
  21. Uint16toBytes(buf2[:], i)
  22. if !reflect.DeepEqual(buf1, buf2) {
  23. t.Errorf("i: %d, buf1: %v, buf2: %v\n", i, buf1, buf2)
  24. }
  25. v1 := BytesToUint16Old(buf1[:])
  26. v2 := BytesToUint16(buf2[:])
  27. if v1 != v2 {
  28. t.Errorf("buf1: %v, v1: %d, buf2: %v, v2: %d\n", buf1, v1, buf2, v2)
  29. }
  30. }
  31. func assertU32(t *testing.T, i uint32) {
  32. var buf1, buf2 [4]byte
  33. Uint32toBytesOld(buf1[:], i)
  34. Uint32toBytes(buf2[:], i)
  35. if !reflect.DeepEqual(buf1, buf2) {
  36. t.Errorf("i: %d, buf1: %v, buf2: %v\n", i, buf1, buf2)
  37. }
  38. v1 := BytesToUint32Old(buf1[:])
  39. v2 := BytesToUint32(buf2[:])
  40. if v1 != v2 {
  41. t.Errorf("buf1: %v, v1: %d, buf2: %v, v2: %d\n", buf1, v1, buf2, v2)
  42. }
  43. }
  44. func assertU64(t *testing.T, i uint64) {
  45. var buf1, buf2 [8]byte
  46. Uint64toBytesOld(buf1[:], i)
  47. Uint64toBytes(buf2[:], i)
  48. if !reflect.DeepEqual(buf1, buf2) {
  49. t.Errorf("i: %d, buf1: %v, buf2: %v\n", i, buf1, buf2)
  50. }
  51. v1 := BytesToUint64Old(buf1[:])
  52. v2 := BytesToUint64(buf2[:])
  53. if v1 != v2 {
  54. t.Errorf("buf1: %v, v1: %d, buf2: %v, v2: %d\n", buf1, v1, buf2, v2)
  55. }
  56. }