Files
go-mc/nbt/dynbt/encode_test.go
patyhank 185020e31c
Some checks failed
CodeQL / Analyze (go) (push) Has been cancelled
Go / Test (1.22) (push) Has been cancelled
Go / Test (^1.22) (push) Has been cancelled
Squashed below commits
nbt chat message

fixes some bug

chunk temp

relocate module

items id
2025-08-27 20:29:40 +08:00

94 lines
2.2 KiB
Go

package dynbt
import (
"bytes"
"math/rand"
"reflect"
"testing"
"git.konjactw.dev/falloutBot/go-mc/nbt"
)
func TestValue_new(t *testing.T) {
if val := NewBoolean(true); val.Boolean() != true {
t.Error("encode bool error")
}
if val := NewBoolean(false); val.Boolean() != false {
t.Error("encode bool error")
}
if val := NewByte(127); val.Byte() != 127 {
t.Error("encode byte error")
}
if val := NewShort(32767); val.Short() != 32767 {
t.Error("encode short error")
}
if val := NewInt(2147483647); val.Int() != 2147483647 {
t.Error("encode int error")
}
if val := NewLong(9223372036854775807); val.Long() != 9223372036854775807 {
t.Error("encode long error")
}
if val := NewString("HELLO WORLD THIS IS A TEST STRING ÅÄÖ!"); val.String() != "HELLO WORLD THIS IS A TEST STRING ÅÄÖ!" {
t.Error("encode string error")
}
if val := NewFloat(0.49823147); val.Float() != 0.49823147 {
t.Error("encode float error")
}
if val := NewDouble(0.4931287132182315); val.Double() != 0.4931287132182315 {
t.Error("encode double error")
}
byteArray := make([]byte, 1000)
for n := range byteArray {
byteArray[n] = byte((n*n*255 + n*7) % 100)
}
if val := NewByteArray(byteArray); !bytes.Equal(byteArray, val.ByteArray()) {
t.Error("encode byteArray error")
}
intArray := make([]int32, 250)
for n := range intArray {
intArray[n] = rand.Int31()
}
if val := NewIntArray(intArray); !reflect.DeepEqual(intArray, val.IntArray()) {
t.Error("encode intArray error")
}
longArray := make([]int64, 125)
for n := range longArray {
longArray[n] = rand.Int63()
}
if val := NewLongArray(longArray); !reflect.DeepEqual(longArray, val.LongArray()) {
t.Error("encode longArray error")
}
val := NewCompound()
val.Set("a", NewString("tnze"))
if val.Get("a").String() != "tnze" || val.Compound().Len() != 1 {
t.Error("encode compound error")
}
}
func TestValue_bigTest(t *testing.T) {
data, err := nbt.Marshal(nbt.StringifiedMessage(bigTestSNBT))
if err != nil {
t.Fatal(err)
}
var val Value
err = nbt.Unmarshal(data, &val)
if err != nil {
t.Fatal(err)
}
var data2 []byte
data2, err = nbt.Marshal(&val)
if err != nil {
t.Fatal(err)
}
if !bytes.Equal(data, data2) {
t.Fail()
}
}