package net.kennux.cubicworld.test; import junit.framework.TestCase; import net.kennux.cubicworld.plugins.baseplugin.BasePlugin; import net.kennux.cubicworld.serialization.BitReader; import net.kennux.cubicworld.serialization.BitWriter; import net.kennux.cubicworld.voxel.VoxelData; import net.kennux.cubicworld.voxel.VoxelEngine; import org.junit.Test; import com.badlogic.gdx.math.Vector3; public class BitReaderWriterTest extends TestCase { /** * Tests reading / writing all data types */ @Test public void testReadWrite() { // Init the writer BitWriter writer = new BitWriter(); // Write all data types writer.writeBool(true); writer.writeBool(false); writer.writeByte((byte) 123); writer.writeBytes(new byte[] { 12, 34, 56 }); writer.writeChar('a'); writer.writeChar('z'); writer.writeFloat(2.556f); writer.writeInt(1337); writer.writeShort((short) 1337); writer.writeString("KennuX is KinG"); writer.writeVector3(new Vector3(10, 13, 37)); writer.writeVoxelData(VoxelData.construct((short) BasePlugin.voxelBedrockId)); // Create reader BitReader reader = new BitReader(writer.getPacket()); // Test for expected results assertTrue(reader.readBoolean()); assertFalse(reader.readBoolean()); assertEquals((byte) 123, reader.readByte()); byte[] data = reader.readBytes(); assertEquals((byte) 12, data[0]); assertEquals((byte) 34, data[1]); assertEquals((byte) 56, data[2]); assertEquals('a', reader.readChar()); assertEquals('z', reader.readChar()); assertEquals(2.556f, reader.readFloat()); assertEquals(1337, reader.readInt()); assertEquals((short) 1337, reader.readShort()); assertEquals("KennuX is KinG", reader.readString()); assertEquals(new Vector3(10, 13, 37), reader.readVector3()); assertEquals(VoxelEngine.getVoxelType(BasePlugin.voxelBedrockId), reader.readVoxelData().voxelType); } }