File: orderedmap_test.go

package info (click to toggle)
golang-github-anacrolix-missinggo 2.1.0-7
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 872 kB
  • sloc: makefile: 4
file content (39 lines) | stat: -rw-r--r-- 788 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package orderedmap

import (
	"testing"

	"github.com/anacrolix/missinggo/iter"
	"github.com/stretchr/testify/assert"
)

func slice(om OrderedMap) (ret []interface{}) {
	om.Iter(func(i interface{}) bool {
		ret = append(ret, om.Get(i))
		return true
	})
	return
}

func TestSimple(t *testing.T) {
	om := New(func(l, r interface{}) bool {
		return l.(int) < r.(int)
	})
	om.Set(3, 1)
	om.Set(2, 2)
	om.Set(1, 3)
	assert.EqualValues(t, []interface{}{3, 2, 1}, slice(om))
	om.Set(3, 2)
	om.Unset(2)
	assert.EqualValues(t, []interface{}{3, 2}, slice(om))
	om.Set(-1, 4)
	assert.EqualValues(t, []interface{}{4, 3, 2}, slice(om))
}

func TestIterEmpty(t *testing.T) {
	om := New(nil)
	it := iter.NewIterator(om)
	assert.Panics(t, func() { it.Value() })
	assert.False(t, it.Next())
	it.Stop()
}