38 lines
636 B
Go
38 lines
636 B
Go
package world
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestWorldPrimitiveID_ReusesFreedIDs(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
w := NewWorld(10, 10)
|
|
|
|
id1, err := w.AddPoint(1, 1)
|
|
require.NoError(t, err)
|
|
|
|
id2, err := w.AddPoint(2, 2)
|
|
require.NoError(t, err)
|
|
|
|
require.NotEqual(t, id1, id2)
|
|
|
|
require.NoError(t, w.Remove(id1))
|
|
|
|
id3, err := w.AddPoint(3, 3)
|
|
require.NoError(t, err)
|
|
|
|
// LIFO free-list: id1 should be reused.
|
|
require.Equal(t, id1, id3)
|
|
}
|
|
|
|
func TestWorldRemove_UnknownID(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
w := NewWorld(10, 10)
|
|
err := w.Remove(12345)
|
|
require.ErrorIs(t, err, errNoSuchObject)
|
|
}
|