56 lines
1.0 KiB
C#
Raw Permalink Normal View History

using System;
class Foo {
static int calls;
static bool False { get { ++calls; return true; } }
static void ping () { ++calls; }
static int test_while (int n)
{
int i = 0;
calls = 0;
while (!(False & false)) {
if (calls != ++i)
throw new Exception ();
if (calls == n)
return 0;
}
}
static int test_do_while (int n)
{
int i = 0;
calls = 0;
do {
if (calls != i++)
throw new Exception ();
if (calls == n)
return 0;
} while (!(False & false));
}
static int test_for (int n)
{
int i = 2;
calls = 0;
for (bool dummy = False; !(False & false); ++i) {
if (calls != i)
throw new Exception ();
if (calls == n)
return 0;
}
}
static void test_for_empty ()
{
calls = 0;
for (ping (); False & false; )
throw new Exception ();
if (calls != 2)
throw new Exception ();
}
public static void Main ()
{
test_while (100);
test_do_while (100);
test_for (100);
test_for_empty ();
}
}