Пример #1
0
        public void TestWrite()
        {
            // Append() is alias as Write
            var storage = new MemoryStorage(4);

            storage.Append(Encoding.Default.GetBytes("hello world"), 0, 11);
            var data = new byte[16];

            Assert.AreEqual(11, storage.Read(data, 0, data.Length));
            Assert.AreEqual("hello world", Encoding.Default.GetString(Arr.Slice(data, 0, 11)));
        }
Пример #2
0
        public void TestBlockAutomaticExpansion()
        {
            var storage = new MemoryStorage(4, 2);

            storage.Append(Encoding.Default.GetBytes("12345678"), 0, 8);
            storage.Append(Encoding.Default.GetBytes("9"), 0, 1);

            var data = new byte[16];

            Assert.AreEqual(9, storage.Read(data, 0, data.Length));
            Assert.AreEqual("123456789", Encoding.Default.GetString(Arr.Slice(data, 0, 9)));
        }
Пример #3
0
        public void TestAppend()
        {
            var storage = new MemoryStorage(4);

            storage.Append(Encoding.Default.GetBytes("hello world"), 0, 11);
            storage.Append(Encoding.Default.GetBytes("1"), 0, 1);
            var data = new byte[16];

            Assert.AreEqual(12, storage.Read(data, 0, data.Length));
            Assert.AreEqual("hello world1", Encoding.Default.GetString(Arr.Slice(data, 0, 12)));

            storage.Append(Encoding.Default.GetBytes("2"), 0, 1);
            Assert.AreEqual(13, storage.Read(data, 0, data.Length));
            Assert.AreEqual("hello world12", Encoding.Default.GetString(Arr.Slice(data, 0, 13)));
        }
Пример #4
0
        public void TestJumpWrite()
        {
            var storage = new MemoryStorage(4, 2);

            storage.Append(Encoding.Default.GetBytes("1234"), 0, 4);
            storage.Write(Encoding.Default.GetBytes("5678"), 0, 4, 13);
            Assert.AreEqual(17, storage.Length);

            var data = new byte[]
            {
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
                17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32
            };

            Assert.AreEqual(17, storage.Read(data, 0, data.Length));
            Assert.AreEqual("1234\0\0\0\0\0\0\0\0\05678", Encoding.Default.GetString(Arr.Slice(data, 0, 17)));
        }