New test.
authorMartin Baulig <martin@novell.com>
Wed, 29 Nov 2006 20:30:46 +0000 (20:30 -0000)
committerMartin Baulig <martin@novell.com>
Wed, 29 Nov 2006 20:30:46 +0000 (20:30 -0000)
svn path=/trunk/mcs/; revision=68689

1  2 
mcs/tests/test-anon-60.cs

index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8574c1ca3780e6e509b90a46e9079e487ab4f7af
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,77 @@@
++using System;
++
++public class X
++{
++      public delegate void TestDelegate ();
++
++      static long sum_i, sum_j, sum_k;
++      static ulong sum_p, sum_q;
++
++      public static int Test (int p)
++      {
++              TestDelegate d = null;
++              for (int i = 1; i <= 5; i++) {
++                      for (int j = i; j <= 8; j++) {
++                              int k = i;
++                              TestDelegate temp = delegate {
++                                      Console.WriteLine ("i = {0}, j = {1}, k = {2}, p = {3}",
++                                                         i, j, k, p);
++                                      sum_i += 1 << i;
++                                      sum_j += 1 << j;
++                                      sum_k += 1 << k;
++                                      sum_p += (ulong) (1 << p);
++                                      p += k;
++
++                                      ulong q = (ulong) (i * j);
++
++                                      d += delegate {
++                                              Console.WriteLine ("Nested i = {0}, j = {1}, " +
++                                                                 "k = {2}, p = {3}, q = {4}",
++                                                                 i, j, k, p, q);
++                                              sum_q += q;
++                                      };
++                              };
++                              temp ();
++                              d += temp;
++                      }
++              }
++              Console.WriteLine ("SUM i = {0}, j = {1}, k = {2}, p = {3}",
++                                 sum_i, sum_j, sum_k, sum_p);
++              Console.WriteLine ();
++              if (sum_i != 300)
++                      return 1;
++              if (sum_j != 2498)
++                      return 2;
++              if (sum_k != 300)
++                      return 3;
++              if (sum_p != 1825434804)
++                      return 4;
++              sum_i = sum_j = sum_k = 0;
++              sum_p = sum_q = 0;
++              d();
++              Console.WriteLine ("SUM i = {0}, j = {1}, k = {2}, p = {3}, q = {4}",
++                                 sum_i, sum_j, sum_k, sum_p, sum_q);
++              Console.WriteLine ();
++              if (sum_i != 1920)
++                      return 5;
++              if (sum_j != 15360)
++                      return 6;
++              if (sum_k != 300)
++                      return 7;
++              if (sum_p != 18446744073385831629)
++                      return 8;
++              if (sum_q != 455)
++                      return 9;
++              return 0;
++      }
++
++      public static int Main ()
++      {
++              int result = Test (5);
++              if (result != 0)
++                      Console.WriteLine ("ERROR: {0}", result);
++              else
++                      Console.WriteLine ("OK");
++              return result;
++      }
++}