mirror of
https://github.com/nbd-wtf/go-nostr.git
synced 2025-05-31 01:59:30 +02:00
CompareEvent/Ptr/Reverse utils.
This commit is contained in:
parent
fe3508881b
commit
d29025e958
41
utils.go
41
utils.go
@ -35,3 +35,44 @@ func CompareEvent(a, b Event) int {
|
||||
}
|
||||
return cmp.Compare(a.CreatedAt, b.CreatedAt)
|
||||
}
|
||||
|
||||
func CompareEventReverse(b, a Event) int {
|
||||
if a.CreatedAt == b.CreatedAt {
|
||||
return strings.Compare(a.ID, b.ID)
|
||||
}
|
||||
return cmp.Compare(a.CreatedAt, b.CreatedAt)
|
||||
}
|
||||
|
||||
func CompareEventPtr(a, b *Event) int {
|
||||
if a == nil {
|
||||
if b == nil {
|
||||
return 0
|
||||
} else {
|
||||
return -1
|
||||
}
|
||||
} else if b == nil {
|
||||
return 1
|
||||
}
|
||||
|
||||
if a.CreatedAt == b.CreatedAt {
|
||||
return strings.Compare(a.ID, b.ID)
|
||||
}
|
||||
return cmp.Compare(a.CreatedAt, b.CreatedAt)
|
||||
}
|
||||
|
||||
func CompareEventPtrReverse(b, a *Event) int {
|
||||
if a == nil {
|
||||
if b == nil {
|
||||
return 0
|
||||
} else {
|
||||
return -1
|
||||
}
|
||||
} else if b == nil {
|
||||
return 1
|
||||
}
|
||||
|
||||
if a.CreatedAt == b.CreatedAt {
|
||||
return strings.Compare(a.ID, b.ID)
|
||||
}
|
||||
return cmp.Compare(a.CreatedAt, b.CreatedAt)
|
||||
}
|
||||
|
@ -1,9 +1,11 @@
|
||||
package nostr
|
||||
|
||||
import (
|
||||
"slices"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestIsValidRelayURL(t *testing.T) {
|
||||
@ -24,3 +26,53 @@ func TestIsValidRelayURL(t *testing.T) {
|
||||
assert.Equal(t, test.want, got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestEventsCompare(t *testing.T) {
|
||||
list := []Event{
|
||||
{CreatedAt: 12},
|
||||
{CreatedAt: 8},
|
||||
{CreatedAt: 26},
|
||||
{CreatedAt: 1},
|
||||
}
|
||||
|
||||
slices.SortFunc(list, CompareEvent)
|
||||
require.Equal(t, []Event{
|
||||
{CreatedAt: 1},
|
||||
{CreatedAt: 8},
|
||||
{CreatedAt: 12},
|
||||
{CreatedAt: 26},
|
||||
}, list)
|
||||
|
||||
slices.SortFunc(list, CompareEventReverse)
|
||||
require.Equal(t, []Event{
|
||||
{CreatedAt: 26},
|
||||
{CreatedAt: 12},
|
||||
{CreatedAt: 8},
|
||||
{CreatedAt: 1},
|
||||
}, list)
|
||||
}
|
||||
|
||||
func TestEventsComparePtr(t *testing.T) {
|
||||
list := []*Event{
|
||||
{CreatedAt: 12},
|
||||
{CreatedAt: 8},
|
||||
{CreatedAt: 26},
|
||||
{CreatedAt: 1},
|
||||
}
|
||||
|
||||
slices.SortFunc(list, CompareEventPtr)
|
||||
require.Equal(t, []*Event{
|
||||
{CreatedAt: 1},
|
||||
{CreatedAt: 8},
|
||||
{CreatedAt: 12},
|
||||
{CreatedAt: 26},
|
||||
}, list)
|
||||
|
||||
slices.SortFunc(list, CompareEventPtrReverse)
|
||||
require.Equal(t, []*Event{
|
||||
{CreatedAt: 26},
|
||||
{CreatedAt: 12},
|
||||
{CreatedAt: 8},
|
||||
{CreatedAt: 1},
|
||||
}, list)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user