feat: hit on primitives
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user