public void StructRoundTrip_OneSegment()
        {
            var buffer = java.nio.ByteBuffer.wrap(new byte[1024 * 8]);

            var segment = new SegmentBuilder(buffer, new BuilderArena(BuilderArena.SUGGESTED_FIRST_SEGMENT_WORDS, BuilderArena.SUGGESTED_ALLOCATION_STRATEGY));
            var builder = WireHelpers.initStructPointer(new BareStructBuilder(), 0, segment, new StructSize(2, 4));

            setupStruct(builder);
            checkStruct(builder);
        }
        public void SimpleRawDataStruct()
        {
            byte[] data = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef };

            var buffer = java.nio.ByteBuffer.wrap(data);

            var arena = new ReaderArena(new java.nio.ByteBuffer[] { buffer }, 0x7fffffffffffffffL);

            var reader = WireHelpers.readStructPointer(new BareStructReader(), arena.tryGetSegment(0), 0, null, 0, 0x7fffffff);

            Assert.AreEqual(reader._getUlongField(0), 0xefcdab8967452301L);
            Assert.AreEqual(reader._getLongField(1), 0L);

            Assert.AreEqual(reader._getUintField(0), 0x67452301);
            Assert.AreEqual(reader._getUintField(1), 0xefcdab89);
            Assert.AreEqual(reader._getUintField(2), 0);
            Assert.AreEqual(reader._getUshortField(0), 0x2301);
            Assert.AreEqual(reader._getUshortField(1), 0x6745);
            Assert.AreEqual(reader._getUshortField(2), 0xab89);
            Assert.AreEqual(reader._getUshortField(3), 0xefcd);
            Assert.AreEqual(reader._getUshortField(4), 0);

            // TODO masking

            Assert.AreEqual(reader._getBoolField(0), true);
            Assert.AreEqual(reader._getBoolField(1), false);
            Assert.AreEqual(reader._getBoolField(2), false);

            Assert.AreEqual(reader._getBoolField(3), false);
            Assert.AreEqual(reader._getBoolField(4), false);
            Assert.AreEqual(reader._getBoolField(5), false);
            Assert.AreEqual(reader._getBoolField(6), false);
            Assert.AreEqual(reader._getBoolField(7), false);

            Assert.AreEqual(reader._getBoolField(8), true);
            Assert.AreEqual(reader._getBoolField(9), true);
            Assert.AreEqual(reader._getBoolField(10), false);
            Assert.AreEqual(reader._getBoolField(11), false);
            Assert.AreEqual(reader._getBoolField(12), false);
            Assert.AreEqual(reader._getBoolField(13), true);
            Assert.AreEqual(reader._getBoolField(14), false);
            Assert.AreEqual(reader._getBoolField(15), false);

            Assert.AreEqual(reader._getBoolField(63), true);
            Assert.AreEqual(reader._getBoolField(64), false);

            // TODO masking
        }