byte b = (byte)a;
if (b != 2)
return 5;
+ sbyte sb = (sbyte)a;
+ if (sb != 2)
+ return 6;
return 0;
}
long b = (long)d;
if (b != 1000)
return 0;
+ a = -1;
+ d = (double)a;
+ b = (long)d;
+ if (b != -1)
+ return 1;
+ return 4;
+ }
+
+ static int test_4_single_long_cast () {
+ long a = 1000;
+ float d = (float)a;
+ long b = (long)d;
+ if (b != 1000)
+ return 0;
+ a = -1;
+ d = (float)a;
+ b = (long)d;
+ if (b != -1)
+ return 1;
return 4;
}
+ public static int test_0_rounding () {
+ long ticks = 631502475130080000L;
+ long ticksperday = 864000000000L;
+
+ double days = (double) ticks / ticksperday;
+
+ if ((int)days != 730905)
+ return 1;
+
+ return 0;
+ }
+
/* FIXME: This only works on little-endian machines */
/*
static unsafe int test_2_negative_zero () {
return result;
}
+ static int test_0_float_precision () {
+ float f1 = 3.40282346638528859E+38f;
+ float f2 = 3.40282346638528859E+38f;
+ float PositiveInfinity = 1.0f / 0.0f;
+ float f = f1 + f2;
+
+ return f == PositiveInfinity ? 0 : 1;
+ }
}