+using System;
+
public class TestJit {
+ public static int test_nan ()
+ {
+ double nan1 = Double.NaN;
+ double nan2 = Double.NaN;
+ double neg_inf1 = Double.NegativeInfinity;
+ double neg_inf2 = Double.NegativeInfinity;
+ double pos_inf1 = Double.PositiveInfinity;
+ double pos_inf2 = Double.PositiveInfinity;
+ int err = 1;
+
+ if (nan1 == nan2)
+ return err;
+ err++;
+
+ if (!nan1.Equals(nan2))
+ return err;
+
+ err++;
+ if (neg_inf1 != neg_inf2)
+ return err;
+
+ err++;
+ if (!neg_inf1.Equals(neg_inf2))
+ return err;
+
+ err++;
+ if (pos_inf1 != pos_inf2)
+ return err;
+
+ err++;
+ if (!pos_inf1.Equals(pos_inf2))
+ return err;
+
+ err++;
+ if (pos_inf1 == neg_inf1)
+ return err;
+
+ err++;
+ if (pos_inf1.Equals (neg_inf1))
+ return err;
+
+ err++;
+ if (pos_inf1 == nan1)
+ return err;
+
+ return 0;
+ }
+
public static double test_call (double a, double b) {
return a+b;
}
public static int test_alu ()
{
double a = 9, b = 6;
+ int err = 1;
if ((a + b) != 15)
- return 1;
+ return err;
+ err++;
if ((a - b) != 3)
- return 1;
+ return err;
+ err++;
if ((a * b) != 54)
- return 1;
+ return err;
+ err++;
if ((a / 4) != 2.25)
- return 1;
-
- //if ((a % 4) != 1)
- // return 1;
+ return err;
+
+ err++;
+ if ((a % 4) != 1)
+ return err;
+ err++;
if (-a != -9)
- return 1;
+ return err;
return 0;
}
public static int test_branch ()
{
double a = 0.5, b = 0.5, t;
+ int err = 1;
if (a == b) t = 1; else t = 0;
- if (t != 1) return 1;
+ if (t != 1) return err;
+ err++;
if (a != b) t = 0; else t = 1;
- if (t != 1) return 1;
+ if (t != 1) return err;
+ err++;
if (a >= b) t = 1; else t = 0;
- if (t != 1) return 1;
+ if (t != 1) return err;
+ err++;
if (a > b) t = 0; else t = 1;
- if (t != 1) return 1;
+ if (t != 1) return err;
+ err++;
if (a <= b) t = 1; else t = 0;
- if (t != 1) return 1;
+ if (t != 1) return err;
+ err++;
if (a < b) t = 0; else t = 1;
- if (t != 1) return 1;
+ if (t != 1) return err;
- if (a > 1.0) return 1;
+ err++;
+ if (a > 1.0) return err;
- if (a < 0.1) return 1;
+ err++;
+ if (a < 0.1) return err;
return 0;
}
return num;
num++;
+ if (test_nan () != 0)
+ return num;
+ num++;
+
+
return 0;
}
}