public static int Main() { bool pass = false; rand = new Random(); size = rand.Next(5, 10); Console.WriteLine(); Console.WriteLine("2D Array"); Console.WriteLine("Element manipulation of {0} by {0} matrices with different arithmatic operations", size); Console.WriteLine("Matrix is member of class, element stores random double"); Console.WriteLine("array set/get, ref/out param are used"); ima = new Arrayclass(size); double[][] refa2d = new double[size][]; Init2DMatrix(out ima.a2d, out refa2d); int m = 0; int n; while (m < size) { n = 0; while (n < size) { Process2DArray(ref ima.a2d); ProcessJagged2DArray(ref refa2d); n++; } m++; } for (int i = 0; i < size; i++) { pass = true; for (int j = 0; j < size; j++) { if (ima.a2d[i, j] != refa2d[i][j]) { if (!Double.IsNaN(ima.a2d[i, j]) || !Double.IsNaN(refa2d[i][j])) { Console.WriteLine("i={0}, j={1}, ima.a2d[i,j] {2}!=refa2d[i][j] {3}", i, j, ima.a2d[i, j], refa2d[i][j]); pass = false; } } } } if (pass) { try { ima.a2d[size, 0] = 5; pass = false; } catch (IndexOutOfRangeException) { } } Console.WriteLine(); Console.WriteLine("3D Array"); Console.WriteLine("Element manipulation of {0} by {1} by {2} matrices with different arithmatic operations", size, size + 5, size + 10); Console.WriteLine("Matrix is member of class, element stores random double"); double[][] refa3d = new double[size][]; for (int k = 0; k < refa3d.Length; k++) { refa3d[k] = new double[size]; } Init3DMatrix(ima.a3d, refa3d); m = 0; n = 0; while (m < size) { n = 0; while (n < size) { Process3DArray(ima.a3d); ProcessJagged3DArray(refa3d); n++; } m++; } for (int i = 0; i < size; i++) { pass = true; for (int j = 0; j < size; j++) { if (ima.a3d[i, j, size] != refa3d[i][j]) { if (!Double.IsNaN(ima.a3d[i, j, size]) || !Double.IsNaN(refa3d[i][j])) { Console.WriteLine("i={0}, j={1}, ima.a3d[i,j,size] {2}!=refa3d[i][j] {3}", i, j, ima.a3d[i, j, size], refa3d[i][j]); pass = false; } } } } if (pass) { try { ima.a3d[-1, 0, 0] = 5; pass = false; } catch (IndexOutOfRangeException) { } } Console.WriteLine(); if (pass) { Console.WriteLine("PASSED"); return(100); } else { Console.WriteLine("FAILED"); return(1); } }
public static int Main() { bool pass = false; rand = new Random(); size = rand.Next(5, 10); Console.WriteLine(); Console.WriteLine("2D Array"); Console.WriteLine("Element manipulation of {0} by {0} matrices with different arithmatic operations", size); Console.WriteLine("Matrix is member of class, element stores random double"); Console.WriteLine("array set/get, ref/out param are used"); ima = new Arrayclass(size); double[][] refa2d = new double[size][]; Init2DMatrix(out ima.a2d, out refa2d); int m = 0; int n; while (m < size) { n = 0; while (n < size) { Process2DArray(ref ima.a2d); ProcessJagged2DArray(ref refa2d); n++; } m++; } for (int i = 0; i < size; i++) { pass = true; for (int j = 0; j < size; j++) if (ima.a2d[i, j] != refa2d[i][j]) if (!Double.IsNaN(ima.a2d[i, j]) || !Double.IsNaN(refa2d[i][j])) { Console.WriteLine("i={0}, j={1}, ima.a2d[i,j] {2}!=refa2d[i][j] {3}", i, j, ima.a2d[i, j], refa2d[i][j]); pass = false; } } if (pass) { try { ima.a2d[size, 0] = 5; pass = false; } catch (IndexOutOfRangeException) { } } Console.WriteLine(); Console.WriteLine("3D Array"); Console.WriteLine("Element manipulation of {0} by {1} by {2} matrices with different arithmatic operations", size, size + 5, size + 10); Console.WriteLine("Matrix is member of class, element stores random double"); double[][] refa3d = new double[size][]; for (int k = 0; k < refa3d.Length; k++) refa3d[k] = new double[size]; Init3DMatrix(ima.a3d, refa3d); m = 0; n = 0; while (m < size) { n = 0; while (n < size) { Process3DArray(ima.a3d); ProcessJagged3DArray(refa3d); n++; } m++; } for (int i = 0; i < size; i++) { pass = true; for (int j = 0; j < size; j++) if (ima.a3d[i, j, size] != refa3d[i][j]) if (!Double.IsNaN(ima.a3d[i, j, size]) || !Double.IsNaN(refa3d[i][j])) { Console.WriteLine("i={0}, j={1}, ima.a3d[i,j,size] {2}!=refa3d[i][j] {3}", i, j, ima.a3d[i, j, size], refa3d[i][j]); pass = false; } } if (pass) { try { ima.a3d[-1, 0, 0] = 5; pass = false; } catch (IndexOutOfRangeException) { } } Console.WriteLine(); if (pass) { Console.WriteLine("PASSED"); return 100; } else { Console.WriteLine("FAILED"); return 1; } }
public static int TestEntryPoint() { bool pass = false; int seed = Environment.GetEnvironmentVariable("CORECLR_SEED") switch { string seedStr when seedStr.Equals("random", StringComparison.OrdinalIgnoreCase) => new Random().Next(), string seedStr when int.TryParse(seedStr, out int envSeed) => envSeed, _ => DefaultSeed }; rand = new Random(seed); size = rand.Next(5, 10); Console.WriteLine(); Console.WriteLine("2D Array"); Console.WriteLine("Random seed: {0}; set environment variable CORECLR_SEED to this value to reproduce", seed); Console.WriteLine("Element manipulation of {0} by {0} matrices with different arithmatic operations", size); Console.WriteLine("Matrix is member of class, element stores random double"); Console.WriteLine("array set/get, ref/out param are used"); ima = new Arrayclass(size); double[][] refa2d = new double[size][]; Init2DMatrix(out ima.a2d, out refa2d); int m = 0; int n; while (m < size) { n = 0; while (n < size) { Process2DArray(ref ima.a2d); ProcessJagged2DArray(ref refa2d); n++; } m++; } for (int i = 0; i < size; i++) { pass = true; for (int j = 0; j < size; j++) { if (ima.a2d[i, j] != refa2d[i][j]) { if (!Double.IsNaN(ima.a2d[i, j]) || !Double.IsNaN(refa2d[i][j])) { Console.WriteLine("i={0}, j={1}, ima.a2d[i,j] {2}!=refa2d[i][j] {3}", i, j, ima.a2d[i, j], refa2d[i][j]); pass = false; } } } } if (pass) { try { ima.a2d[size, 0] = 5; pass = false; } catch (IndexOutOfRangeException) { } } Console.WriteLine(); Console.WriteLine("3D Array"); Console.WriteLine("Element manipulation of {0} by {1} by {2} matrices with different arithmatic operations", size, size + 5, size + 10); Console.WriteLine("Matrix is member of class, element stores random double"); double[][] refa3d = new double[size][]; for (int k = 0; k < refa3d.Length; k++) { refa3d[k] = new double[size]; } Init3DMatrix(ima.a3d, refa3d); m = 0; n = 0; while (m < size) { n = 0; while (n < size) { Process3DArray(ima.a3d); ProcessJagged3DArray(refa3d); n++; } m++; } for (int i = 0; i < size; i++) { pass = true; for (int j = 0; j < size; j++) { if (ima.a3d[i, j, size] != refa3d[i][j]) { if (!Double.IsNaN(ima.a3d[i, j, size]) || !Double.IsNaN(refa3d[i][j])) { Console.WriteLine("i={0}, j={1}, ima.a3d[i,j,size] {2}!=refa3d[i][j] {3}", i, j, ima.a3d[i, j, size], refa3d[i][j]); pass = false; } } } } if (pass) { try { ima.a3d[-1, 0, 0] = 5; pass = false; } catch (IndexOutOfRangeException) { } } Console.WriteLine(); if (pass) { Console.WriteLine("PASSED"); return(100); } else { Console.WriteLine("FAILED"); return(1); } } }