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(); } }
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); }
public static int test_4_vtype() { FooStruct s = new FooStruct(1, 2, 3); GC.Collect(1); return((int)s.o1 + (int)s.o2); }
static void Main(string[] args) { FooStruct f = new FooStruct(); f.Val = 2; FooClass f2 = (FooClass)f; Console.Read(); }
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); }
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); }
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); }
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); } }
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); }
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; }
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; }
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); }
private static bool ExceptionFilter( byte x, FooStruct item ) => true;
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); }
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); }
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)); }
public virtual void OutParameterMethod4(out FooStruct output) { output = new FooStruct(); }