public void TestEmptyScanner()
        {
            SafePacketWriter writer = new SafePacketWriter(0x10, false);

            SafePacketScanner scanner = new SafePacketScanner(writer.Packet);

            scanner.NextBytes();
        }
        public void TestDifferentTypeException()
        {
            SafePacketWriter writer = new SafePacketWriter(0x10, true);

            writer.Put(true).Put(false);

            SafePacketScanner scanner = new SafePacketScanner(writer.Packet);

            scanner.NextInt();
        }
        public void TestDouble()
        {
            SafePacketWriter writer = new SafePacketWriter(0x10, false);

            writer.Put(3e-10).Put(45.0);

            SafePacketScanner scanner = new SafePacketScanner(writer.Packet);

            Assert.AreEqual(3e-10, scanner.NextDouble());
            Assert.AreEqual(45.0, scanner.NextDouble());
        }
        public void TestChar()
        {
            SafePacketWriter writer = new SafePacketWriter(0x10, false);

            writer.Put('A').Put('0');

            SafePacketScanner scanner = new SafePacketScanner(writer.Packet);

            Assert.AreEqual('A', scanner.NextChar());
            Assert.AreEqual('0', scanner.NextChar());
        }
        public void TestBool()
        {
            SafePacketWriter writer = new SafePacketWriter(0x10, true);

            writer.Put(true).Put(false);

            SafePacketScanner scanner = new SafePacketScanner(writer.Packet);

            Assert.AreEqual(true, scanner.NextBool());
            Assert.AreEqual(false, scanner.NextBool());
        }
        public void TestByte()
        {
            SafePacketWriter writer = new SafePacketWriter(0x10, false);

            writer.Put((byte)0x12).Put((byte)0xcf);

            SafePacketScanner scanner = new SafePacketScanner(writer.Packet);

            Assert.AreEqual(0x12, scanner.NextByte());
            Assert.AreEqual(0xcf, scanner.NextByte());
        }
        public void TestIntAndString()
        {
            SafePacketWriter writer = new SafePacketWriter(0x10, false);

            writer.Put(123).Put("hello world! TestString");

            SafePacketScanner scanner = new SafePacketScanner(writer.Packet);

            Assert.AreEqual(123, scanner.NextInt());
            Assert.AreEqual("hello world! TestString", scanner.NextString());
        }
        public void TestStringException()
        {
            SafePacketWriter writer = new SafePacketWriter(0x10, false);

            writer.Put("hello world");

            SafePacketScanner scanner = new SafePacketScanner(writer.Packet);

            Assert.AreEqual("hello world", scanner.NextString());
            scanner.NextString();
        }
        public void TestInt()
        {
            SafePacketWriter writer = new SafePacketWriter(0x10, false);

            writer.Put(-230).Put(1234567890);

            SafePacketScanner scanner = new SafePacketScanner(writer.Packet);

            Assert.AreEqual(-230, scanner.NextInt());
            Assert.AreEqual(1234567890, scanner.NextInt());
        }
        public void TestFloat()
        {
            SafePacketWriter writer = new SafePacketWriter(0x10, false);

            writer.Put((float)3e-10);
            writer.Put((float)46.0);

            SafePacketScanner scanner = new SafePacketScanner(writer.Packet);

            Assert.AreEqual((float)3e-10, scanner.NextFloat());
            Assert.AreEqual((float)46.0, scanner.NextFloat());
        }
        public void TestBoolException()
        {
            SafePacketWriter writer = new SafePacketWriter(0x10, true);

            writer.Put(true);
            writer.Put(false);

            SafePacketScanner scanner = new SafePacketScanner(writer.Packet);

            scanner.NextBool();
            scanner.NextBool();
            scanner.NextBool();
        }
        public void TestBytesException()
        {
            SafePacketWriter writer = new SafePacketWriter(0x10, false);

            writer.Put(new byte[5] {
                0x12, 0x34, 0x56, 0x78, 0xaf
            });

            SafePacketScanner scanner = new SafePacketScanner(writer.Packet);

            Assert.IsTrue(Equality(new byte[5] {
                0x12, 0x34, 0x56, 0x78, 0xaf
            }, scanner.NextBytes()));
            scanner.NextBytes();
        }