Example #1
0
        public void IO_BitStreamLogicTest()
        {
            var values = new KeyValuePair <uint, int>[] {
                new KeyValuePair <uint, int>(10, 7),
                new KeyValuePair <uint, int>(0xBEEFBEEF, 32),
                new KeyValuePair <uint, int>(12, 7),
                new KeyValuePair <uint, int>(0x13371337, 32),
                new KeyValuePair <uint, int>(123, 7),
                new KeyValuePair <uint, int>(0xDEADC0DE, 32),
                new KeyValuePair <uint, int>(0, 7),
                new KeyValuePair <uint, int>(111, 7),

                new KeyValuePair <uint, int>(1, 1),
                new KeyValuePair <uint, int>(2, 2),
                new KeyValuePair <uint, int>(7, 3),
                new KeyValuePair <uint, int>(14, 4),
                new KeyValuePair <uint, int>(21, 5),
                new KeyValuePair <uint, int>(42, 6),
                new KeyValuePair <uint, int>(14406, 15),
            };

            using (var ms = new MemoryStream())
            {
                using (var bs = new IO.BitStream(ms, FileAccess.Write))
                {
                    int expected_bit_position = 0;

                    bs.StreamMode = FileAccess.Write;
                    foreach (var kv in values)
                    {
                        bs.WriteWord(kv.Key, kv.Value);
                        expected_bit_position += kv.Value;
                        Assert.AreEqual(expected_bit_position, bs.BitPosition, "Value=" + kv.Key);
                    }
                }
                Text.Util.ByteArrayToStream(ms.ToArray(), System.Console.Out);
                System.Console.WriteLine();

                ms.Position = 0;
                using (var bs_old = new BKSystem.IO.BitStream(ms))
                {
                    foreach (var kv in values)
                    {
                        bs_old.Read(out uint word, 0, kv.Value);
                        Assert.AreEqual(kv.Key, word);
                    }
                }
            }

            using (var ms = new MemoryStream())
            {
                using (var bs_old = new BKSystem.IO.BitStream())
                {
                    foreach (var kv in values)
                    {
                        bs_old.Write(kv.Key, 0, kv.Value);
                    }
                    bs_old.WriteTo(ms);
                }
                Text.Util.ByteArrayToStream(ms.ToArray(), System.Console.Out);
                System.Console.WriteLine();

                ms.Position = 0;
                using (var bs = new IO.BitStream(ms, FileAccess.Read))
                {
                    bs.StreamMode = FileAccess.Read;
                    foreach (var kv in values)
                    {
                        bs.ReadWord(out uint word, kv.Value);
                        Assert.AreEqual(kv.Key, word);
                    }
                }
            }

            using (var ms = new MemoryStream())
            {
                using (var bs = new IO.BitStream(ms, FileAccess.Write))
                {
                    bs.StreamMode = FileAccess.Write;
                    bs.Write((int)1337, 15);
                    bs.Write(-21474836480L, 60);
                    bs.Write(-1, 30);
                    bs.Write(false);
                    bs.Write((int)0xDEDEAD, 27);
                }
                Text.Util.ByteArrayToStream(ms.ToArray(), System.Console.Out);
                System.Console.WriteLine();

                ms.Position = 0;
//				using (var bs_old = new BKSystem.IO.BitStream(ms))
                using (var bs_old = new IO.BitStream(ms, FileAccess.Read))
                {
                    bs_old.StreamMode = FileAccess.Read;

                    //bs_old.Read(out _int, 0, 15);
                    bs_old.Read(out int _int, 15);
                    Assert.AreEqual(1337, _int);

                    bs_old.Read(out long _long, 60, signExtend: true);
                    Assert.AreEqual(-21474836480L, _long);
                    //bs_old.Read(out _int, 0, 30);
                    bs_old.Read(out _int, 30, signExtend: true);
                    Assert.AreEqual(-1, _int);

                    bs_old.Read(out bool _bool);
                    Assert.AreEqual(false, _bool);

                    //bs_old.Read(out _int, 0, 27);
                    bs_old.Read(out _int, 27);
                    Assert.AreEqual((int)0xDEDEAD, _int);
                }
            }
        }
Example #2
0
 public void TransmitStream(BKSystem.IO.BitStream stream)
 {
     m_connectionInterface.TransmitFromClient(stream);
 }
Example #3
0
 public void TransmitFromClient(BKSystem.IO.BitStream data)
 {
     m_client.TransmitStream(data);
 }