public static int Main()
{
TailTests t = new TailTests();
int foo = 0;
Point p = new Point();
double d = 0.0;
try
{
foo = t.ManyArgs(100, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
t.Test(foo == 100, "ManyArgs");
foo = 0;
foo = TailTests.ManyArgsStatic(100, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
t.Test(foo == 100, "ManyArgsStatic");
foo = 0;
foo = t.Sum(0, 10000000);
t.Test(foo == 10000000, "SumBlowStack");
foo = 0;
foo = TailTests.SumStatic(0, 10000000);
t.Test(foo == 10000000, "SumStaticBlowStack");
p.x = 1;
p.y = 2;
foo = t.StructFacSum(4, p);
t.Test(foo == 40 && p.x == 1 && p.y == 2, "StructShallowReg");
d = t.DoubleFacRec(5, 1);
t.Test(d == 120.0, "DoubleFacRec");
foo = t.fUneven(1, 2, 3);
t.Test(foo == 16, "Uneven");
p.x = 1;
p.y = 2;
foo = t.StructFacSumDeep(100000, p);
t.Test(foo == 200003 && p.x == 1 && p.y == 2, "StructRegDeep");
p.x = 1;
p.y = 2;
foo = 0;
foo = TailTests.StructFacSumDeepStatic(100000, p);
t.Test(foo == 200003 && p.x == 1 && p.y == 2, "StructRegDeepStatic");
p.x = 1;
p.y = 2;
foo = 0;
foo = t.StructFacSumDeepStack(100000, 0, 0.0, 0.9, p, 1);
t.Test(foo == 200003 && p.x == 1 && p.y == 2, "StructStackDeep");
p.x = 1;
p.y = 2;
foo = 0;
foo = TailTests.StructFacSumDeepStackStatic(100000, 0, 0.0, 0.9, p, 1);
t.Test(foo == 200003 && p.x == 1 && p.y == 2, "StructStackDeepStatic");
p.x = p.y = 0;
p = t.StructReturnVal(100000, 0);
t.Test(p.x == 100000 && p.y == 200000, "StructReturnDeep");
p.x = p.y = 0;
p = TailTests.StructReturnValStatic(100000, 0);
t.Test(p.x == 100000 && p.y == 200000, "StructReturnDeepStatic");
s_testInt = 0;
t.NoArgs();
t.Test(s_testInt == 400000, "NoArgs");
s_testInt = 0;
TailTests.NoArgsStatic();
t.Test(s_testInt == 400000, "NoArgsStatic");
p.x = 1;
p.y = 2;
s_testInt = 100000;
t.SameStacksString("foo", p);
t.Test(s_testInt == 0, "SameStacks");
}
catch (Exception e)
{
Console.WriteLine("Caught Unexpected Exception");
Console.WriteLine(e.ToString());
return(1);
}
return(t.m_failed);
}