70 lines
1.3 KiB
Go
70 lines
1.3 KiB
Go
package element
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestIdRefs(t *testing.T) {
|
|
|
|
idRefs := IdRefs{}
|
|
|
|
idRefs.Add(1)
|
|
if idRefs.Refs[0] != 1 {
|
|
t.Fatal(idRefs)
|
|
}
|
|
|
|
idRefs.Add(10)
|
|
if idRefs.Refs[0] != 1 || idRefs.Refs[1] != 10 {
|
|
t.Fatal(idRefs)
|
|
}
|
|
|
|
// insert twice
|
|
idRefs.Add(10)
|
|
if idRefs.Refs[0] != 1 || idRefs.Refs[1] != 10 || len(idRefs.Refs) != 2 {
|
|
t.Fatal(idRefs)
|
|
}
|
|
|
|
// insert before
|
|
idRefs.Add(0)
|
|
if idRefs.Refs[0] != 0 || idRefs.Refs[1] != 1 || idRefs.Refs[2] != 10 {
|
|
t.Fatal(idRefs)
|
|
}
|
|
|
|
// insert after
|
|
idRefs.Add(12)
|
|
if idRefs.Refs[0] != 0 || idRefs.Refs[1] != 1 || idRefs.Refs[2] != 10 || idRefs.Refs[3] != 12 {
|
|
t.Fatal(idRefs)
|
|
}
|
|
|
|
// insert between
|
|
idRefs.Add(11)
|
|
if idRefs.Refs[0] != 0 || idRefs.Refs[1] != 1 || idRefs.Refs[2] != 10 || idRefs.Refs[3] != 11 || idRefs.Refs[4] != 12 {
|
|
t.Fatal(idRefs)
|
|
}
|
|
|
|
// delete between
|
|
idRefs.Delete(11)
|
|
if idRefs.Refs[0] != 0 || idRefs.Refs[1] != 1 || idRefs.Refs[2] != 10 || idRefs.Refs[3] != 12 {
|
|
t.Fatal(idRefs)
|
|
}
|
|
|
|
// delete end
|
|
idRefs.Delete(12)
|
|
if idRefs.Refs[0] != 0 || idRefs.Refs[1] != 1 || idRefs.Refs[2] != 10 {
|
|
t.Fatal(idRefs)
|
|
}
|
|
|
|
// delete begin
|
|
idRefs.Delete(0)
|
|
if idRefs.Refs[0] != 1 || idRefs.Refs[1] != 10 {
|
|
t.Fatal(idRefs)
|
|
}
|
|
|
|
// delete missing
|
|
idRefs.Delete(99)
|
|
if idRefs.Refs[0] != 1 || idRefs.Refs[1] != 10 || len(idRefs.Refs) != 2 {
|
|
t.Fatal(idRefs)
|
|
}
|
|
|
|
}
|