7 static int[] testValues
= {0, -1, 200, -200, 32, -32, 64, -128, 333, 5}
;
20 public static void Main ()
22 var tester
= new Program ();
24 foreach (int baseVal
in testValues
)
25 foreach (int amt
in testValues
)
26 tester
.ShiftTest (baseVal
, amt
);
29 public static void AreEqual
<A
, B
> (A a
, B b
)
34 "Shift Equality Assertion Failed: Had {0} and expected {1}", a
, b
));
37 public void ShiftTest (int shiftBase
, int shiftAmt
)
39 optBase
= dynBase
= normBase
= shiftBase
;
40 optAmt
= dynAmt
= normAmt
= shiftAmt
;
41 int immediate
= shiftBase
<< shiftAmt
;
43 AreEqual
<int?, int?> (dynBase
<< dynAmt
, immediate
);
44 AreEqual
<int?, int?> (dynBase
<< optAmt
, immediate
);
45 AreEqual
<int?, int?> (dynBase
<< normAmt
, immediate
);
47 AreEqual
<int?, int?> (optBase
<< dynAmt
, immediate
);
48 AreEqual
<int?, int?> (optBase
<< optAmt
, immediate
);
49 AreEqual
<int?, int?> (optBase
<< normAmt
, immediate
);
51 AreEqual
<int?, int?> (normBase
<< dynAmt
, immediate
);
52 AreEqual
<int?, int?> (normBase
<< optAmt
, immediate
);
53 AreEqual
<int?, int?> (normBase
<< normAmt
, immediate
);
55 uint uShiftBase
= (uint)shiftBase
;
56 uDynBase
= uShiftBase
;
58 AreEqual
<uint?, uint?> (uShiftBase
<< dynAmt
, uDynBase
<< dynAmt
);
59 AreEqual
<uint?, uint?> (uShiftBase
<< optAmt
, uDynBase
<< optAmt
);
60 AreEqual
<uint?, uint?> (uShiftBase
<< normAmt
, uDynBase
<< normAmt
);