godot-start/gdTest/GdProtocolTest.gd

105 lines
2.8 KiB
GDScript

extends Node2D
const ProtocolManager = preload("res://gdProtocol/ProtocolManager.gd")
const ByteBuffer = preload("res://gdProtocol/buffer/ByteBuffer.gd")
const FileUtils = preload("res://zfoo/util/FileUtils.gd")
func _ready():
var buffer = ByteBuffer.new()
buffer.writeBool(true)
buffer.writeBool(false)
assert(true == buffer.readBool())
assert(false == buffer.readBool())
buffer.writeByte(-128)
buffer.writeByte(99)
buffer.writeByte(127)
assert(-128 == buffer.readByte())
assert(99 == buffer.readByte())
assert(127 == buffer.readByte())
buffer.writeShort(-32768)
buffer.writeShort(0)
buffer.writeShort(32767)
assert(-32768 == buffer.readShort())
assert(0 == buffer.readShort())
assert(32767 == buffer.readShort())
buffer.writeInt(-2147483648)
buffer.writeInt(-999999)
buffer.writeInt(0)
buffer.writeInt(999999)
buffer.writeInt(2147483647)
assert(-2147483648 == buffer.readInt())
assert(-999999 == buffer.readInt())
assert(0 == buffer.readInt())
assert(999999 == buffer.readInt())
assert(2147483647 == buffer.readInt())
var maxLong = int("9223372036854775807")
var minLong = int("-9223372036854775808")
buffer.writeLong(maxLong)
buffer.writeLong(9999999999999999)
buffer.writeLong(99999999)
buffer.writeLong(0)
buffer.writeLong(-99999999)
buffer.writeLong(-9999999999999999)
buffer.writeLong(minLong)
assert(maxLong == buffer.readLong())
assert(9999999999999999 == buffer.readLong())
assert(99999999 == buffer.readLong())
assert(0 == buffer.readLong())
assert(-99999999 == buffer.readLong())
assert(-9999999999999999 == buffer.readLong())
assert(minLong == buffer.readLong())
buffer.writeFloat(-1234.5678)
buffer.writeFloat(0)
buffer.writeFloat(1234.5678)
assert(abs(-1234.5678 - buffer.readFloat()) < 0.001)
assert(0 == buffer.readFloat())
assert(abs(1234.5678 - buffer.readFloat()) < 0.001)
buffer.writeDouble(-1234.5678)
buffer.writeDouble(0)
buffer.writeDouble(1234.5678)
assert(abs(-1234.5678 - buffer.readDouble()) < 0.001)
assert(0 == buffer.readDouble())
assert(abs(1234.5678 - buffer.readDouble()) < 0.001)
var strValue = "你好 hello world"
buffer.writeString(strValue)
assert(strValue == buffer.readString())
buffer.writeChar(strValue)
assert(strValue[0] == buffer.readChar())
buffer.writeChar("")
assert(ByteBuffer.EMPTY == buffer.readChar())
test()
func test():
ProtocolManager.initProtocol()
var buffer = ByteBuffer.new()
var poolByteArray = FileUtils.readFileToByteArray("user://ComplexObject.bytes")
buffer.writePoolByteArray(poolByteArray)
var packet = ProtocolManager.read(buffer)
print(packet)
packet.myCompatible = 0
var newByteBuffer = ByteBuffer.new()
ProtocolManager.write(newByteBuffer, packet);
print(newByteBuffer.getWriteOffset())
var newPacket = ProtocolManager.read(newByteBuffer);
print(newPacket)