Exemplo n.º 1
0
        public void Operlaps()
        {
            var a1 = new int[10];

            {
                Assert.False(UnsafeUnmanaged.Overlaps(ref a1[0], 2, ref a1[2], 2));
                Assert.False(UnsafeUnmanaged.Overlaps(ref a1[0], 2, ref a1[2], 2, out var elemOffset2));
Exemplo n.º 2
0
        public void ByteOffsetVoidPtr()
        {
            if (Is64Bit)
            {
                Assert.Equal(IntPtr.Zero, UnsafeUnmanaged.ByteOffset(MakePtr(0xFFFFFFFFU), MakePtr(0xFFFFFFFFU)));
                Assert.Equal(new IntPtr(0x100000000L), UnsafeUnmanaged.ByteOffset(MakePtr(0xFFFFFFFFU), MakePtr(0x1FFFFFFFFL)));
            }

            Assert.Equal(IntPtr.Zero, UnsafeUnmanaged.ByteOffset(MakePtr(0xFFFFFFFU), MakePtr(0xFFFFFFFU)));
            Assert.Equal(new IntPtr(0x10000000), UnsafeUnmanaged.ByteOffset(MakePtr(0xFFFFFFF), MakePtr(0x1FFFFFFFU)));
        }
Exemplo n.º 3
0
        public void OffsetOf()
        {
            Foo f  = new Foo();
            Foo f2 = new Foo();

            Assert.Equal(0, UnsafeUnmanaged.OffsetOf(f, f.bar));
            Assert.Equal(4, UnsafeUnmanaged.OffsetOf(f, f.baz));
            Assert.Throws <ArgumentOutOfRangeException>(() => UnsafeUnmanaged.OffsetOf(f2, f.bar));
            Assert.Throws <ArgumentOutOfRangeException>(() => UnsafeUnmanaged.OffsetOf(f2, f.baz));
            Assert.Throws <ArgumentOutOfRangeException>(() => UnsafeUnmanaged.OffsetOf(f, f2.bar));
            Assert.Throws <ArgumentOutOfRangeException>(() => UnsafeUnmanaged.OffsetOf(f, f2.baz));
        }
 public void IsAddressLeq()
 {
     Assert.False(UnsafeUnmanaged.IsAddressLeq(ref int100[1], ref int100[0]));
     Assert.True(UnsafeUnmanaged.IsAddressLeq(ref int100[0], ref int100[0]));
     Assert.True(UnsafeUnmanaged.IsAddressLeq(ref int100[0], ref int100[1]));
 }
 public void ElementOffset()
 {
     Assert.Equal(10, UnsafeUnmanaged.ElementOffset(ref int100[10], ref int100[20]));
     Assert.Equal(-10, UnsafeUnmanaged.ElementOffset(ref int100[20], ref int100[10]));
 }
 public void ElementOffsetPtr()
 {
     Assert.Equal(0x10000, UnsafeUnmanaged.ElementOffset(MakePtr <double>(0xFFF0 * sizeof(double)), MakePtr <double>(0x1FFF0 * sizeof(double))));
     Assert.Equal(-0x10000, UnsafeUnmanaged.ElementOffset(MakePtr <double>(0x1FFF0 * sizeof(double)), MakePtr <double>(0xFFF0 * sizeof(double))));
 }
 public void ByteOffset()
 {
     Assert.Equal(new IntPtr(0x10010), UnsafeUnmanaged.ByteOffset(MakePtr <double>(0xFFE0), MakePtr <double>(0x1FFF0)));
     Assert.Equal(new IntPtr(-0x10000 + 16), UnsafeUnmanaged.ByteOffset(MakePtr <double>(0x1FFE0), MakePtr <double>(0xFFF0)));
 }
 public void IsAddressLeqReadOnly()
 {
     Assert.False(UnsafeUnmanaged.IsAddressLeqReadOnly(int100[1], int100[0]));
     Assert.True(UnsafeUnmanaged.IsAddressLeqReadOnly(int100[0], int100[0]));
     Assert.True(UnsafeUnmanaged.IsAddressLeqReadOnly(int100[0], int100[1]));
 }
 public void ElementOffsetReadOnly()
 {
     Assert.Equal(10, UnsafeUnmanaged.ElementOffsetReadOnly(int100[10], int100[20]));
     Assert.Equal(-10, UnsafeUnmanaged.ElementOffsetReadOnly(int100[20], int100[10]));
 }