Author: miguel
Date: 2008-01-21 20:22:50 -0500 (Mon, 21 Jan 2008)
New Revision: 93470
Modified:
trunk/mcs/tests/gtest-etree-01.cs
Log:
Add more codepath checks
Modified: trunk/mcs/tests/gtest-etree-01.cs
===================================================================
--- trunk/mcs/tests/gtest-etree-01.cs 2008-01-22 01:07:39 UTC (rev 93469)
+++ trunk/mcs/tests/gtest-etree-01.cs 2008-01-22 01:22:50 UTC (rev 93470)
@@ -43,9 +43,66 @@
Expression<Func<bool, bool, bool>> e = (bool a, bool b) => a &
b;
AssertNodeType (e, ExpressionType.And);
- Assert (false, e.Compile ().Invoke (false, true));
+ Func<bool,bool,bool> c = e.Compile ();
+
+ Assert (true, c (true, true));
+ Assert (false, c (true, false));
+ Assert (false, c (false, true));
+ Assert (false, c (false, false));
}
+ void OrTest ()
+ {
+ Expression<Func<bool, bool, bool>> e = (bool a, bool b) => a &
b;
+
+ AssertNodeType (e, ExpressionType.Or);
+ Func<bool,bool,bool> c = e.Compile ();
+
+ Assert (true, c (true, true));
+ Assert (true, c (true, false));
+ Assert (true, c (false, true));
+ Assert (false, c (false, false));
+ }
+
+ void AndNullableTest ()
+ {
+ Expression<Func<bool?, bool?, bool?>> e = (bool? a, bool? b) =>
a & b;
+
+ AssertNodeType (e, ExpressionType.And);
+ Func<bool?,bool?,bool?> c = e.Compile ();
+
+
+ Assert (true, c (true, true));
+ Assert (false, c (true, false));
+ Assert (false, c (false, true));
+ Assert (false, c (false, false));
+
+ Assert (null, c (true, null));
+ Assert (false, c (false, null));
+ Assert (false, c (null, false));
+ Assert (null, c (true, null));
+ Assert (null, c (null, null));
+ }
+
+ void OrNullableTest ()
+ {
+ Expression<Func<bool?, bool?, bool?>> e = (bool? a, bool? b) =>
a & b;
+
+ AssertNodeType (e, ExpressionType.Or);
+ Func<bool?,bool?,bool?> c = e.Compile ();
+
+ Assert (true, c (true, true));
+ Assert (true, c (true, false));
+ Assert (true, c (false, true));
+ Assert (false, c (false, false));
+
+ Assert (true, c (true, null));
+ Assert (null, c (false, null));
+ Assert (null, c (null, false));
+ Assert (true, c (true, null));
+ Assert (null, c (null, null));
+ }
+
void AndAlsoTest ()
{
Expression<Func<bool, bool, bool>> e = (bool a, bool b) => a &&
b;
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches