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.7 KiB

  1. package kademlia
  2. import (
  3. "encoding/hex"
  4. "encoding/json"
  5. "testing"
  6. "github.com/stretchr/testify/assert"
  7. )
  8. func TestNewID(t *testing.T) {
  9. // get some IDs
  10. // for i := 0; i < 10; i++ {
  11. // id, err := NewID()
  12. // assert.Nil(t, err)
  13. // fmt.Println(id)
  14. // }
  15. idA, err := IDFromString("0fd85ddddf15aeec2d5d8b01b013dbca030a18d7")
  16. assert.Nil(t, err)
  17. assert.Equal(t, "0fd85ddddf15aeec2d5d8b01b013dbca030a18d7", idA.String())
  18. }
  19. func TestIDMarshalers(t *testing.T) {
  20. id, err := IDFromString("0fd85ddddf15aeec2d5d8b01b013dbca030a18d7")
  21. assert.Nil(t, err)
  22. idStr, err := json.Marshal(id)
  23. assert.Nil(t, err)
  24. assert.Equal(t, "\"0fd85ddddf15aeec2d5d8b01b013dbca030a18d7\"", string(idStr))
  25. var idParsed ID
  26. err = json.Unmarshal(idStr, &idParsed)
  27. assert.Nil(t, err)
  28. assert.Equal(t, id, idParsed)
  29. var idParsed2 ID
  30. err = json.Unmarshal([]byte("\"0fd85ddddf15aeec2d5d8b01b013dbca030a18d7\""), &idParsed2)
  31. assert.Nil(t, err)
  32. assert.Equal(t, id, idParsed2)
  33. }
  34. func TestIDCmp(t *testing.T) {
  35. idA, err := IDFromString("0fd85ddddf15aeec2d5d8b01b013dbca030a18d7")
  36. assert.Nil(t, err)
  37. idB, err := IDFromString("c48d8b53dbefb609ed4e94d386dd5b22efcb2c5b")
  38. assert.Nil(t, err)
  39. assert.True(t, !idA.Cmp(idB))
  40. }
  41. func TestIDDistance(t *testing.T) {
  42. idA, err := IDFromString("0fd85ddddf15aeec2d5d8b01b013dbca030a18d7")
  43. assert.Nil(t, err)
  44. idB, err := IDFromString("c48d8b53dbefb609ed4e94d386dd5b22efcb2c5b")
  45. assert.Nil(t, err)
  46. assert.Equal(t, "cb55d68e04fa18e5c0131fd236ce80e8ecc1348c", idA.Distance(idB).String())
  47. }
  48. func TestHashData(t *testing.T) {
  49. h := HashData([]byte("test data"))
  50. assert.Equal(t, "916f0027a575074ce72a331777c3478d6513f786", hex.EncodeToString(h[:]))
  51. }