public static void meth_11(int arg0, int arg1, int arg2, int arg3, FooStruct arg4)
 {
     if (arg0 != 1)
     {
         throw new Exception();
     }
     if (arg1 != 2)
     {
         throw new Exception();
     }
     if (arg2 != 3)
     {
         throw new Exception();
     }
     if (arg3 != 4)
     {
         throw new Exception();
     }
     if (arg4 != new FooStruct()
     {
         i = 1, j = 2
     })
     {
         throw new Exception();
     }
 }
Beispiel #2
0
	public static int test_4_vtype () {
		FooStruct s = new FooStruct (1, 2, 3);

		GC.Collect (1);

		return (int)s.o1 + (int)s.o2;
	}
        public void NullCheck_DefaultConstructorCustomStruct_AsExpectedWhenNull()
        {
            FooStruct value  = new FooStruct();
            var       actual = NullCheck(value);

            Assert.Equal(ExpectedWhenNotNull, actual);
        }
Beispiel #4
0
    public static int test_4_vtype()
    {
        FooStruct s = new FooStruct(1, 2, 3);

        GC.Collect(1);

        return((int)s.o1 + (int)s.o2);
    }
Beispiel #5
0
    static void Main(string[] args)
    {
        FooStruct f = new FooStruct();

        f.Val = 2;
        FooClass f2 = (FooClass)f;

        Console.Read();
    }
Beispiel #6
0
        public int interfaceを渡すジェネリック版()
        {
            var item = new FooStruct {
                Id = 0, Value = 0
            };
            var sum = 0;

            for (var count = 0; count < Size; count++)
            {
                sum += interfaceを受け取るジェネリック版(item);
            }
            return(sum);
        }
Beispiel #7
0
        public void Update_WhenXSetToNewValueObject_ChangesRowToThat()
        {
            // Act
            var newValue = new FooStruct()
            {
                X = 1
            };

            this.updateThis.Update("x", newValue);

            // Assert
            this.updateThis.Get <FooStruct>("x").Should().Be(newValue);
        }
Beispiel #8
0
        public void ShouldAllowValueTypeContexts()
        {
            // Arrange
            const decimal expected   = 6.908m;
            var           expression = new Expression("Foo * 3.14");
            var           sut        = expression.ToLambda <FooStruct, decimal>();
            var           context    = new FooStruct();

            // Act
            var actual = sut(context);

            // Assert
            Assert.Equal(expected, actual);
        }
Beispiel #9
0
    public static int test_0_ginst_vtype()
    {
        FooStruct <string> f = new FooStruct <string> {
            t = "A"
        };
        FooStruct <string> f2 = (FooStruct <string>) typeof(Tests).GetMethod("data_types_ginst_vtype").MakeGenericMethod(new Type [] { typeof(string) }).Invoke(null, new object [] { f });

        if (f2.t != "A")
        {
            return(1);
        }
        else
        {
            return(0);
        }
    }
Beispiel #10
0
    public unsafe static int test_0_ldelema_ptr()
    {
        int i;
        int len = 10;

        FooStruct *[] ptr_array = new FooStruct * [len];
        FooStruct     str       = new FooStruct(3);

        for (i = 0; i < len; i++)
        {
            WritePtr(&str, out ptr_array [i]);
        }

        for (i = 0; i < len; i++)
        {
            if (ptr_array [i]->i != 3)
            {
                return(i);
            }
        }

        return(0);
    }
Beispiel #11
0
        public void TestEquals()
        {
            Assert.IsTrue(RuntimeHelpers.Equals(null, null));
            Assert.IsTrue(!RuntimeHelpers.Equals(new object(), null));
            Assert.IsTrue(!RuntimeHelpers.Equals(null, new object()));

            FooStruct f1 = new FooStruct();

            f1.i = 5;
            FooStruct f2 = new FooStruct();

            f2.i = 5;
            object o1 = f1;
            object o2 = o1;
            object o3 = f2;
            object o4 = "AAA";

            Assert.IsTrue(RuntimeHelpers.Equals(o1, o2));

            // This should do a bit-by-bit comparison for valuetypes
            Assert.IsTrue(RuntimeHelpers.Equals(o1, o3));
            Assert.IsTrue(!RuntimeHelpers.Equals(o1, o4));
        }
 public bool Equals(FooStruct fooStruct) =>
 Foo == fooStruct.Foo &&
 Bar == fooStruct.Bar &&
 Reserved1 == fooStruct.Reserved1;
	public static int test_0_arrays () {

		int sum;

		byte[] a1 = new byte [10];
		for (int i = 0; i < 10; ++i)
			a1 [i] = (byte)i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += a1 [i];
		if (sum != 45)
			return 1;

		sbyte[] a2 = new sbyte [10];
		for (int i = 0; i < 10; ++i)
			a2 [i] = (sbyte)i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += a2 [i];
		if (sum != 45)
			return 2;

		short[] a3 = new short [10];
		for (int i = 0; i < 10; ++i)
			a3 [i] = (short)i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += a3 [i];
		if (sum != 45)
			return 3;

		ushort[] a4 = new ushort [10];
		for (int i = 0; i < 10; ++i)
			a4 [i] = (ushort)i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += a4 [i];
		if (sum != 45)
			return 4;

		int[] a5 = new int [10];
		for (int i = 0; i < 10; ++i)
			a5 [i] = (int)i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += a5 [i];
		if (sum != 45)
			return 5;

		uint[] a6 = new uint [10];
		for (int i = 0; i < 10; ++i)
			a6 [i] = (uint)i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += (int)a6 [i];
		if (sum != 45)
			return 6;

		long[] a7 = new long [10];
		for (int i = 0; i < 10; ++i)
			a7 [i] = i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += (int)a7 [i];
		if (sum != 45)
			return 7;

		ulong[] a8 = new ulong [10];
		for (int i = 0; i < 10; ++i)
			a8 [i] = (ulong)i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += (int)a8 [i];
		if (sum != 45)
			return 8;

		float[] a9 = new float [10];
		for (int i = 0; i < 10; ++i)
			a9 [i] = (float)i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += (int)a9 [i];
		if (sum != 45)
			return 9;

		double[] a10 = new double [10];
		for (int i = 0; i < 10; ++i)
			a10 [i] = i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += (int)a10 [i];
		if (sum != 45)
			return 10;

		object[] a11 = new object [10];
		object o = new Object ();
		for (int i = 0; i < 10; ++i)
			a11 [i] = o;
		for (int i = 0; i < 10; ++i)
		   if (a11 [i] != o)
				 return 11;

		FooStruct[] a12 = new FooStruct [10];
		for (int i = 0; i < 10; ++i)
			a12 [i] = new FooStruct (i);
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += a12 [i].i;
		if (sum != 45)
			return 12;

		return 0;
	}
Beispiel #14
0
 public static FooStruct <T> data_types_ginst_vtype <T> (FooStruct <T> f)
 {
     return(f);
 }
	public static int test_0_multi_dimension_arrays () {
		int sum;

		byte[,] a1 = new byte [10, 10];
		for (int i = 0; i < 10; ++i)
			a1 [i, i] = (byte)i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += a1 [i, i];
		if (sum != 45)
			return 1;

		sbyte[,] a2 = new sbyte [10, 10];
		for (int i = 0; i < 10; ++i)
			a2 [i, i] = (sbyte)i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += a2 [i, i];
		if (sum != 45)
			return 2;

		short[,] a3 = new short [10, 10];
		for (int i = 0; i < 10; ++i)
			a3 [i, i] = (short)i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += a3 [i, i];
		if (sum != 45)
			return 3;

		ushort[,] a4 = new ushort [10, 10];
		for (int i = 0; i < 10; ++i)
			a4 [i, i] = (ushort)i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += a4 [i, i];
		if (sum != 45)
			return 4;

		int[,] a5 = new int [10, 10];
		for (int i = 0; i < 10; ++i)
			a5 [i, i] = (int)i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += a5 [i, i];
		if (sum != 45)
			return 5;

		uint[,] a6 = new uint [10, 10];
		for (int i = 0; i < 10; ++i)
			a6 [i, i] = (uint)i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += (int)a6 [i, i];
		if (sum != 45)
			return 6;

		long[,] a7 = new long [10, 10];
		for (int i = 0; i < 10; ++i)
			a7 [i, i] = i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += (int)a7 [i, i];
		if (sum != 45)
			return 7;

		ulong[,] a8 = new ulong [10, 10];
		for (int i = 0; i < 10; ++i)
			a8 [i, i] = (ulong)i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += (int)a8 [i, i];
		if (sum != 45)
			return 8;

		float[,] a9 = new float [10, 10];
		for (int i = 0; i < 10; ++i)
			a9 [i, i] = (float)i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += (int)a9 [i, i];
		if (sum != 45)
			return 9;

		double[,] a10 = new double [10, 10];
		for (int i = 0; i < 10; ++i)
			a10 [i, i] = i;
		sum = 0;
		for (int i = 0; i < 10; ++i)
			sum += (int)a10 [i, i];
		if (sum != 45)
			return 10;

		object[,] a11 = new object [10, 10];
		object o = new Object ();
		for (int i = 0; i < 10; ++i)
			a11 [i, i] = o;
		for (int i = 0; i < 10; ++i)
		   if (a11 [i, i] != o)
				 return 11;

		FooStruct[,] a12 = new FooStruct [10, 10];
		for (int i = 0; i < 10; ++i)
			for (int j = 0; j < 10; ++j) {
				/* This one calls Address */
				a12 [i, j] = new FooStruct (i + j);

				/* Test Set as well */
				FooStruct s = new FooStruct (i + j);
				a12 [i, j] = s;
			}
		sum = 0;
		for (int i = 0; i < 10; ++i)
			for (int j = 0; j < 10; ++j) {
				/* This one calls Address */
				sum += a12 [i, j].i;

				/* Test Get as well */
				FooStruct s = a12 [i, j];
				sum += s.i;
			}
		if (sum != 1800)
			return 12;

		return 0;
	}
Beispiel #16
0
		public void TestEquals ()
		{
			Assert.IsTrue (RuntimeHelpers.Equals (null, null));
			Assert.IsTrue (!RuntimeHelpers.Equals (new object (), null));
			Assert.IsTrue (!RuntimeHelpers.Equals (null, new object ()));

			FooStruct f1 = new FooStruct ();
			f1.i = 5;
			FooStruct f2 = new FooStruct ();
			f2.i = 5;
			object o1 = f1;
			object o2 = o1;
			object o3 = f2;
			object o4 = "AAA";
			Assert.IsTrue (RuntimeHelpers.Equals (o1, o2));

			// This should do a bit-by-bit comparison for valuetypes
			Assert.IsTrue (RuntimeHelpers.Equals (o1, o3));
			Assert.IsTrue (!RuntimeHelpers.Equals (o1, o4));
		}
 public void RefParameterMethod4(ref FooStruct reference)
 {
     Assert.IsNotNull(reference);
     reference = new FooStruct();
 }
 void IParameterTestClass.OutParameterMethod4(out FooStruct output)
 {
     output = new FooStruct();
 }
        public void StructToStruct_CanCast()
        {
            var foo = new FooStruct { fieldA = "FooStruct.FieldA", fieldB = "FooStruct.FieldB" };

            var bar = VeryUnsafeCast<FooStruct, BarStruct>.Cast(foo);
            Assert.Equal(bar.fieldC, foo.fieldA);
            Assert.Equal(bar.fieldD, foo.fieldB);
        }
Beispiel #20
0
 private static bool ExceptionFilter( byte x, FooStruct item ) => true;
Beispiel #21
0
    public static int test_0_arrays()
    {
        int sum;

        byte[] a1 = new byte [10];
        for (int i = 0; i < 10; ++i)
        {
            a1 [i] = (byte)i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += a1 [i];
        }
        if (sum != 45)
        {
            return(1);
        }

        sbyte[] a2 = new sbyte [10];
        for (int i = 0; i < 10; ++i)
        {
            a2 [i] = (sbyte)i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += a2 [i];
        }
        if (sum != 45)
        {
            return(2);
        }

        short[] a3 = new short [10];
        for (int i = 0; i < 10; ++i)
        {
            a3 [i] = (short)i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += a3 [i];
        }
        if (sum != 45)
        {
            return(3);
        }

        ushort[] a4 = new ushort [10];
        for (int i = 0; i < 10; ++i)
        {
            a4 [i] = (ushort)i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += a4 [i];
        }
        if (sum != 45)
        {
            return(4);
        }

        int[] a5 = new int [10];
        for (int i = 0; i < 10; ++i)
        {
            a5 [i] = (int)i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += a5 [i];
        }
        if (sum != 45)
        {
            return(5);
        }

        uint[] a6 = new uint [10];
        for (int i = 0; i < 10; ++i)
        {
            a6 [i] = (uint)i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += (int)a6 [i];
        }
        if (sum != 45)
        {
            return(6);
        }

        long[] a7 = new long [10];
        for (int i = 0; i < 10; ++i)
        {
            a7 [i] = i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += (int)a7 [i];
        }
        if (sum != 45)
        {
            return(7);
        }

        ulong[] a8 = new ulong [10];
        for (int i = 0; i < 10; ++i)
        {
            a8 [i] = (ulong)i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += (int)a8 [i];
        }
        if (sum != 45)
        {
            return(8);
        }

        float[] a9 = new float [10];
        for (int i = 0; i < 10; ++i)
        {
            a9 [i] = (float)i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += (int)a9 [i];
        }
        if (sum != 45)
        {
            return(9);
        }

        double[] a10 = new double [10];
        for (int i = 0; i < 10; ++i)
        {
            a10 [i] = i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += (int)a10 [i];
        }
        if (sum != 45)
        {
            return(10);
        }

        object[] a11 = new object [10];
        object   o   = new Object();

        for (int i = 0; i < 10; ++i)
        {
            a11 [i] = o;
        }
        for (int i = 0; i < 10; ++i)
        {
            if (a11 [i] != o)
            {
                return(11);
            }
        }

        FooStruct[] a12 = new FooStruct [10];
        for (int i = 0; i < 10; ++i)
        {
            a12 [i] = new FooStruct(i);
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += a12 [i].i;
        }
        if (sum != 45)
        {
            return(12);
        }

        return(0);
    }
Beispiel #22
0
    public static int test_0_multi_dimension_arrays()
    {
        int sum;

        byte[,] a1 = new byte [10, 10];
        for (int i = 0; i < 10; ++i)
        {
            a1 [i, i] = (byte)i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += a1 [i, i];
        }
        if (sum != 45)
        {
            return(1);
        }

        sbyte[,] a2 = new sbyte [10, 10];
        for (int i = 0; i < 10; ++i)
        {
            a2 [i, i] = (sbyte)i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += a2 [i, i];
        }
        if (sum != 45)
        {
            return(2);
        }

        short[,] a3 = new short [10, 10];
        for (int i = 0; i < 10; ++i)
        {
            a3 [i, i] = (short)i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += a3 [i, i];
        }
        if (sum != 45)
        {
            return(3);
        }

        ushort[,] a4 = new ushort [10, 10];
        for (int i = 0; i < 10; ++i)
        {
            a4 [i, i] = (ushort)i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += a4 [i, i];
        }
        if (sum != 45)
        {
            return(4);
        }

        int[,] a5 = new int [10, 10];
        for (int i = 0; i < 10; ++i)
        {
            a5 [i, i] = (int)i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += a5 [i, i];
        }
        if (sum != 45)
        {
            return(5);
        }

        uint[,] a6 = new uint [10, 10];
        for (int i = 0; i < 10; ++i)
        {
            a6 [i, i] = (uint)i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += (int)a6 [i, i];
        }
        if (sum != 45)
        {
            return(6);
        }

        long[,] a7 = new long [10, 10];
        for (int i = 0; i < 10; ++i)
        {
            a7 [i, i] = i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += (int)a7 [i, i];
        }
        if (sum != 45)
        {
            return(7);
        }

        ulong[,] a8 = new ulong [10, 10];
        for (int i = 0; i < 10; ++i)
        {
            a8 [i, i] = (ulong)i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += (int)a8 [i, i];
        }
        if (sum != 45)
        {
            return(8);
        }

        float[,] a9 = new float [10, 10];
        for (int i = 0; i < 10; ++i)
        {
            a9 [i, i] = (float)i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += (int)a9 [i, i];
        }
        if (sum != 45)
        {
            return(9);
        }

        double[,] a10 = new double [10, 10];
        for (int i = 0; i < 10; ++i)
        {
            a10 [i, i] = i;
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            sum += (int)a10 [i, i];
        }
        if (sum != 45)
        {
            return(10);
        }

        object[,] a11 = new object [10, 10];
        object o = new Object();

        for (int i = 0; i < 10; ++i)
        {
            a11 [i, i] = o;
        }
        for (int i = 0; i < 10; ++i)
        {
            if (a11 [i, i] != o)
            {
                return(11);
            }
        }

        FooStruct[,] a12 = new FooStruct [10, 10];
        for (int i = 0; i < 10; ++i)
        {
            for (int j = 0; j < 10; ++j)
            {
                /* This one calls Address */
                a12 [i, j] = new FooStruct(i + j);

                /* Test Set as well */
                FooStruct s = new FooStruct(i + j);
                a12 [i, j] = s;
            }
        }
        sum = 0;
        for (int i = 0; i < 10; ++i)
        {
            for (int j = 0; j < 10; ++j)
            {
                /* This one calls Address */
                sum += a12 [i, j].i;

                /* Test Get as well */
                FooStruct s = a12 [i, j];
                sum += s.i;
            }
        }
        if (sum != 1800)
        {
            return(12);
        }

        /* Null check */
        object[,] a13 = null;
        try {
            a13 [0, 0] = new Object();
            return(13);
        } catch (NullReferenceException) {
        }

        return(0);
    }
Beispiel #23
0
 public Type virt2(FooStruct s, FooStruct s2)
 {
     return(typeof(FooStruct));
 }
        public void StructToClass_CannotCast_Should_Throw_InvalidCastException()
        {
            // TODO: check that source and target are of same kind (value type / class) and throw exception there?
            //
            // Structs and classes have different layout in memory.
            // So a naive cast will likely blow up. We don't allow this and throw.
            var foo = new FooStruct { fieldA = "FooStruct.FieldA", fieldB = "FooStruct.FieldB" };

            Assert.Throws<InvalidCastException>(() => VeryUnsafeCast<FooStruct, BarClass>.Cast(foo));
        }
Beispiel #25
0
 public virtual void OutParameterMethod4(out FooStruct output)
 {
     output = new FooStruct();
 }