mirror of
https://github.com/nbd-wtf/go-nostr.git
synced 2025-06-22 14:51:55 +02:00
abstract test suite.
This commit is contained in:
parent
e5e2279ca3
commit
d68a17d6e8
@ -8,24 +8,42 @@ import (
|
|||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestSmallNumber(t *testing.T) {
|
func TestWhatever(t *testing.T) {
|
||||||
|
runTestWith(t,
|
||||||
|
"small numbers",
|
||||||
|
20,
|
||||||
|
[][]int{{2, 15}}, [][]int{{0, 7}, {10, 20}},
|
||||||
|
[][]int{{0, 2}, {15, 20}}, [][]int{{7, 10}})
|
||||||
|
}
|
||||||
|
|
||||||
|
func runTestWith(t *testing.T,
|
||||||
|
name string,
|
||||||
|
totalEvents int,
|
||||||
|
n1Ranges [][]int, n2Ranges [][]int,
|
||||||
|
expectedN1NeedRanges [][]int, expectedN1HaveRanges [][]int,
|
||||||
|
) {
|
||||||
var err error
|
var err error
|
||||||
var q []byte
|
var q []byte
|
||||||
var n1 *Negentropy
|
var n1 *Negentropy
|
||||||
var n2 *Negentropy
|
var n2 *Negentropy
|
||||||
|
|
||||||
events := make([]*nostr.Event, 20)
|
events := make([]*nostr.Event, totalEvents)
|
||||||
for i := range events {
|
for i := range events {
|
||||||
evt := nostr.Event{Content: fmt.Sprintf("event %d", i+1)}
|
evt := nostr.Event{}
|
||||||
|
evt.Content = fmt.Sprintf("event %d", i+1)
|
||||||
|
evt.Kind = 1
|
||||||
evt.CreatedAt = nostr.Timestamp(i)
|
evt.CreatedAt = nostr.Timestamp(i)
|
||||||
evt.ID = evt.GetID()
|
evt.ID = evt.GetID()
|
||||||
events[i] = &evt
|
events[i] = &evt
|
||||||
|
fmt.Println("evt", i, evt.ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
n1, _ = NewNegentropy(NewVector(32), 1<<16, 32)
|
n1, _ = NewNegentropy(NewVector(32), 1<<16, 32)
|
||||||
for i := 2; i < 15; i++ {
|
for _, r := range n1Ranges {
|
||||||
n1.Insert(events[i])
|
for i := r[0]; i < r[1]; i++ {
|
||||||
|
n1.Insert(events[i])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
q, err = n1.Initiate()
|
q, err = n1.Initiate()
|
||||||
@ -39,11 +57,10 @@ func TestSmallNumber(t *testing.T) {
|
|||||||
|
|
||||||
{
|
{
|
||||||
n2, _ = NewNegentropy(NewVector(32), 1<<16, 32)
|
n2, _ = NewNegentropy(NewVector(32), 1<<16, 32)
|
||||||
for i := 0; i < 7; i++ {
|
for _, r := range n2Ranges {
|
||||||
n2.Insert(events[i])
|
for i := r[0]; i < r[1]; i++ {
|
||||||
}
|
n2.Insert(events[i])
|
||||||
for i := 10; i < 20; i++ {
|
}
|
||||||
n2.Insert(events[i])
|
|
||||||
}
|
}
|
||||||
|
|
||||||
q, _, _, err = n2.Reconcile(q)
|
q, _, _, err = n2.Reconcile(q)
|
||||||
@ -64,22 +81,26 @@ func TestSmallNumber(t *testing.T) {
|
|||||||
}
|
}
|
||||||
fmt.Println("[n1]:", q)
|
fmt.Println("[n1]:", q)
|
||||||
fmt.Println("")
|
fmt.Println("")
|
||||||
fmt.Println("have", have)
|
fmt.Println("<need>", need)
|
||||||
fmt.Println("need", need)
|
fmt.Println("<have>", have)
|
||||||
|
|
||||||
expectedNeed := make([]string, 0, 2+5)
|
expectedNeed := make([]string, 0, 100)
|
||||||
for i := 0; i < 2; i++ {
|
for _, r := range expectedN1NeedRanges {
|
||||||
expectedNeed = append(expectedNeed, events[i].ID)
|
for i := r[0]; i < r[1]; i++ {
|
||||||
}
|
expectedNeed = append(expectedNeed, events[i].ID)
|
||||||
for i := 15; i < 20; i++ {
|
}
|
||||||
expectedNeed = append(expectedNeed, events[i].ID)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
expectedHave := make([]string, 0, 3)
|
expectedHave := make([]string, 0, 100)
|
||||||
for i := 7; i < 10; i++ {
|
for _, r := range expectedN1HaveRanges {
|
||||||
expectedHave = append(expectedHave, events[i].ID)
|
for i := r[0]; i < r[1]; i++ {
|
||||||
|
expectedHave = append(expectedHave, events[i].ID)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fmt.Println("<e-need>", expectedNeed)
|
||||||
|
fmt.Println("<e-have>", expectedHave)
|
||||||
|
|
||||||
require.ElementsMatch(t, expectedNeed, need, "wrong need")
|
require.ElementsMatch(t, expectedNeed, need, "wrong need")
|
||||||
require.ElementsMatch(t, expectedHave, have, "wrong have")
|
require.ElementsMatch(t, expectedHave, have, "wrong have")
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user