package kademlia
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestNewID(t *testing.T) {
|
|
// get some IDs
|
|
// for i := 0; i < 10; i++ {
|
|
// id, err := NewID()
|
|
// assert.Nil(t, err)
|
|
// fmt.Println(id)
|
|
// }
|
|
|
|
idA, err := IDFromString("0fd85ddddf15aeec2d5d8b01b013dbca030a18d7")
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, "0fd85ddddf15aeec2d5d8b01b013dbca030a18d7", idA.String())
|
|
}
|
|
|
|
func TestIDMarshalers(t *testing.T) {
|
|
id, err := IDFromString("0fd85ddddf15aeec2d5d8b01b013dbca030a18d7")
|
|
assert.Nil(t, err)
|
|
|
|
idStr, err := json.Marshal(id)
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, "\"0fd85ddddf15aeec2d5d8b01b013dbca030a18d7\"", string(idStr))
|
|
fmt.Println("idStr", string(idStr))
|
|
|
|
var idParsed ID
|
|
err = json.Unmarshal(idStr, &idParsed)
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, id, idParsed)
|
|
|
|
var idParsed2 ID
|
|
err = json.Unmarshal([]byte("\"0fd85ddddf15aeec2d5d8b01b013dbca030a18d7\""), &idParsed2)
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, id, idParsed2)
|
|
}
|
|
|
|
func TestIDCmp(t *testing.T) {
|
|
idA, err := IDFromString("0fd85ddddf15aeec2d5d8b01b013dbca030a18d7")
|
|
assert.Nil(t, err)
|
|
idB, err := IDFromString("c48d8b53dbefb609ed4e94d386dd5b22efcb2c5b")
|
|
assert.Nil(t, err)
|
|
assert.True(t, !idA.Cmp(idB))
|
|
}
|
|
|
|
func TestIDDistance(t *testing.T) {
|
|
idA, err := IDFromString("0fd85ddddf15aeec2d5d8b01b013dbca030a18d7")
|
|
assert.Nil(t, err)
|
|
idB, err := IDFromString("c48d8b53dbefb609ed4e94d386dd5b22efcb2c5b")
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, "cb55d68e04fa18e5c0131fd236ce80e8ecc1348c", idA.Distance(idB).String())
|
|
}
|