Esempio n. 1
0
        public void Union()
        {
            var source = 0x_1234_5678;
            var bs     = BitConverter.GetBytes(source);

            var result = StructExtension.TryParse <UnionStruct>(bs, out var s);

            result.Should().BeTrue();

            s.data32.Should().Be(source);

            var short0 = (short)(source & 0xffff);
            var short1 = (short)((source >> 16) & 0xffff);

            s.data16_0.Should().Be(short0);
            s.data16_1.Should().Be(short1);

            var byte0 = (byte)(source & 0xff);
            var byte1 = (byte)((source >> 8) & 0xff);
            var byte2 = (byte)((source >> 16) & 0xff);
            var byte3 = (byte)((source >> 24) & 0xff);

            s.data8_0.Should().Be(byte0);
            s.data8_1.Should().Be(byte1);
            s.data8_2.Should().Be(byte2);
            s.data8_3.Should().Be(byte3);

            s.data8_0.Should().Be(bs[0]);
            s.data8_1.Should().Be(bs[1]);
            s.data8_2.Should().Be(bs[2]);
            s.data8_3.Should().Be(bs[3]);
        }
Esempio n. 2
0
        public void CheckSize()
        {
            var source = 0x_1234_5678;
            var bs     = BitConverter.GetBytes(source);

            // byte array is just
            var result0 = StructExtension.TryParse <SingleFieldStruct>(bs, out var struct0);

            result0.Should().BeTrue();
            struct0.data.Should().Be(source);

            // byte array is short
            var shortBytes = BitConverter.GetBytes((short)123);

            shortBytes.Should().HaveCount(sizeof(short));
            var result1 = StructExtension.TryParse <SingleFieldStruct>(shortBytes, out var _);

            result1.Should().BeFalse();

            // byte array is long
            var longBytes = BitConverter.GetBytes(123L);

            longBytes.Should().HaveCount(sizeof(long));
            var result2 = StructExtension.TryParse <SingleFieldStruct>(longBytes, out var _);

            result2.Should().BeFalse();
        }
Esempio n. 3
0
        public void Simple()
        {
            var source = 0x_1234_5678;
            var bs     = BitConverter.GetBytes(source);

            var result0 = StructExtension.TryParse <SingleFieldStruct>(bs, out var struct0);

            result0.Should().BeTrue();
            struct0.data.Should().Be(source);
        }
        public void Equal()
        {
            var value       = 0x_1234_5678;
            var sourceBytes = BitConverter.GetBytes(value);

            var myStruct     = new MyStruct(value);
            var convertBytes = StructExtension.GetBytes(myStruct);

            convertBytes.Should().NotBeEmpty().And.Equal(sourceBytes);
        }
Esempio n. 5
0
 public void GetBytesByUnsafe()
 {
     var bs = StructExtension.GetBytesByUnsafe(_myStruct);
 }
Esempio n. 6
0
 public void GetBytesBySpanCast()
 {
     var bs = StructExtension.GetBytesBySpanCast(_myStruct);
 }
Esempio n. 7
0
 public void GetBytesByGCHandle()
 {
     var bs = StructExtension.GetBytesByGCHandle(_myStruct);
 }
Esempio n. 8
0
 public void GetBytesByMarshal()
 {
     var bs = StructExtension.GetBytesByMarshal(_myStruct);
 }
 public void ParseByUnsafeAs()
 {
     var s = StructExtension.ParseByUnsafeAs <MyStruct>(_sourceBytes);
 }
 public void ParseBySpanCast()
 {
     var s = StructExtension.ParseBySpanCast <MyStruct>(_sourceBytes);
 }
 public void ParseByGCHandle()
 {
     var s = StructExtension.ParseByGCHandle <MyStruct>(_sourceBytes);
 }
 public void ParseByMarshal()
 {
     var s = StructExtension.ParseByMarshal <MyStruct>(_sourceBytes);
 }