Author: jbevain
Date: 2008-01-22 04:18:16 -0500 (Tue, 22 Jan 2008)
New Revision: 93488
Modified:
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Coalesce.cs
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Equal.cs
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Lambda.cs
Log:
complete tests
Modified:
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Coalesce.cs
===================================================================
---
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Coalesce.cs
2008-01-22 09:12:52 UTC (rev 93487)
+++
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Coalesce.cs
2008-01-22 09:18:16 UTC (rev 93488)
@@ -48,7 +48,7 @@
[ExpectedException (typeof (InvalidOperationException))]
public void NonNullLeftParameter ()
{
- // This throws because they are both doubles, which are
never
+ // This throws because they are both doubles, which are
never
Expression.Coalesce (Expression.Constant (1.0),
Expression.Constant (2.0));
}
@@ -68,9 +68,11 @@
ParameterExpression pa = Expression.Parameter (typeof
(int?), "a");
ParameterExpression pb = Expression.Parameter (typeof
(int?), "b");
BinaryExpression c = Expression.Coalesce (pa, pb);
-
+ Assert.AreEqual ("(a ?? b)", c.ToString ());
+
Expression<Func<int?, int?, int?>> e =
Expression.Lambda<Func<int?,int?,int?>>(
c, new ParameterExpression [] { pa, pb });
+ Assert.AreEqual ("(a, b) => (a ?? b)", e.ToString ());
Func<int?,int?,int?> comp = e.Compile ();
Modified:
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Equal.cs
===================================================================
---
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Equal.cs
2008-01-22 09:12:52 UTC (rev 93487)
+++
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Equal.cs
2008-01-22 09:18:16 UTC (rev 93488)
@@ -60,7 +60,7 @@
public struct D {
}
-
+
[Test]
[ExpectedException (typeof (InvalidOperationException))]
public void NoOperatorClass ()
@@ -72,9 +72,10 @@
public void Numeric ()
{
BinaryExpression expr = Expression.Equal
(Expression.Constant (1), Expression.Constant (2));
- Assert.AreEqual (ExpressionType.Equal, expr.NodeType,
"Equal#01");
- Assert.AreEqual (typeof (bool), expr.Type, "Equal#02");
- Assert.IsNull (expr.Method, "Equal#03");
+ Assert.AreEqual (ExpressionType.Equal, expr.NodeType);
+ Assert.AreEqual (typeof (bool), expr.Type);
+ Assert.IsNull (expr.Method);
+ Assert.AreEqual ("(1 = 2)", expr.ToString ());
}
[Test]
@@ -86,11 +87,12 @@
BinaryExpression expr = Expression.Equal
(Expression.Constant (a, typeof(int?)),
Expression.Constant (b, typeof(int?)),
false, null);
- Assert.AreEqual (ExpressionType.Equal, expr.NodeType,
"Add#05");
- Assert.AreEqual (typeof (bool), expr.Type, "Equal#06");
- Assert.AreEqual (true, expr.IsLifted, "Equal#07");
- Assert.AreEqual (false, expr.IsLiftedToNull,
"Equal#07");
- Assert.IsNull (expr.Method, "Equal#08");
+ Assert.AreEqual (ExpressionType.Equal, expr.NodeType);
+ Assert.AreEqual (typeof (bool), expr.Type);
+ Assert.AreEqual (true, expr.IsLifted);
+ Assert.AreEqual (false, expr.IsLiftedToNull);
+ Assert.IsNull (expr.Method);
+ Assert.AreEqual ("(1 = 2)", expr.ToString ());
}
[Test]
@@ -102,11 +104,12 @@
BinaryExpression expr = Expression.Equal
(Expression.Constant (a, typeof(int?)),
Expression.Constant (b, typeof(int?)),
true, null);
- Assert.AreEqual (ExpressionType.Equal, expr.NodeType,
"Equal#01");
- Assert.AreEqual (typeof (bool?), expr.Type, "Equal#02");
- Assert.AreEqual (true, expr.IsLifted, "Equal#03");
- Assert.AreEqual (true, expr.IsLiftedToNull, "Equal#04");
- Assert.IsNull (expr.Method, "Equal#04");
+ Assert.AreEqual (ExpressionType.Equal, expr.NodeType);
+ Assert.AreEqual (typeof (bool?), expr.Type);
+ Assert.AreEqual (true, expr.IsLifted);
+ Assert.AreEqual (true, expr.IsLiftedToNull);
+ Assert.IsNull (expr.Method);
+ Assert.AreEqual ("(1 = 2)", expr.ToString ());
}
[Test]
@@ -119,7 +122,7 @@
BinaryExpression expr = Expression.Equal
(Expression.Constant (a, typeof (int?)),
Expression.Constant (b, typeof (int)));
}
-
+
[Test]
public void UserDefinedClass ()
{
@@ -128,10 +131,12 @@
MethodInfo mi = typeof (OpClass).GetMethod
("op_Equality");
BinaryExpression expr = Expression.Equal
(Expression.Constant (new OpClass ()), Expression.Constant (new OpClass ()));
- Assert.AreEqual (ExpressionType.Equal, expr.NodeType,
"Add#09");
- Assert.AreEqual (typeof (bool), expr.Type, "Add#10");
- Assert.AreEqual (mi, expr.Method, "Add#11");
- Assert.AreEqual ("op_Equality", expr.Method.Name,
"Add#12");
+ Assert.AreEqual (ExpressionType.Equal, expr.NodeType);
+ Assert.AreEqual (typeof (bool), expr.Type);
+ Assert.AreEqual (mi, expr.Method);
+ Assert.AreEqual ("op_Equality", expr.Method.Name);
+
+ Assert.AreEqual
("(value(MonoTests.System.Linq.Expressions.OpClass) =
value(MonoTests.System.Linq.Expressions.OpClass))", expr.ToString ());
}
//
@@ -141,8 +146,8 @@
[Test]
public void UserDefinedEqual ()
{
-
+
}
-
+
}
}
Modified:
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Lambda.cs
===================================================================
---
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Lambda.cs
2008-01-22 09:12:52 UTC (rev 93487)
+++
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Lambda.cs
2008-01-22 09:18:16 UTC (rev 93488)
@@ -81,7 +81,7 @@
public void InvalidArgType ()
{
// invalid argument type
-
+
ParameterExpression p = Expression.Parameter (typeof
(string), "AAA");
Expression.Lambda (typeof (delegate_object_int),
Expression.Constant ("foo"), new ParameterExpression [1] {p});
}
@@ -91,11 +91,11 @@
public void InvalidArgType2 ()
{
// invalid argument type
-
+
ParameterExpression p = Expression.Parameter (typeof
(string), "AAA");
Expression.Lambda (typeof (delegate_object_object),
Expression.Constant ("foo"), new ParameterExpression [1] {p});
}
-
+
[Test]
public void Assignability ()
{
@@ -104,7 +104,9 @@
// allowed delegate has string, delegate has base class
(object)
ParameterExpression p = Expression.Parameter (typeof
(object), "ParObject");
- Expression.Lambda (typeof (delegate_object_string),
Expression.Constant (""), new ParameterExpression [1] {p});
+ var l = Expression.Lambda (typeof
(delegate_object_string), Expression.Constant (""), new ParameterExpression [1]
{p});
+
+ Assert.AreEqual ("ParObject => \"\"", l.ToString ());
}
[Test]
@@ -129,15 +131,21 @@
Expression<Func<int,int,int>> l =
Expression.Lambda<Func<int,int,int>>(
Expression.Add (a, b), new ParameterExpression
[] { a, b });
+
+ Assert.AreEqual ("(a, b) => (a + b)", l.ToString ());
+
Func<int,int,int> xx = l.Compile ();
int res = xx (10, 20);
Assert.AreEqual (res, 30);
}
-
+
[Test]
public void Compile ()
{
Expression<Func<int>> l = Expression.Lambda<Func<int>>
(Expression.Constant (1), new ParameterExpression [0]);
+
+ Assert.AreEqual ("() => 1", l.ToString ());
+
Func<int> fi = l.Compile ();
fi ();
}
@@ -149,8 +157,8 @@
ParameterExpression p1 =
Expression.Parameter(typeof(int?), "va");
ParameterExpression p2 =
Expression.Parameter(typeof(int?), "vb");
Expression add = Expression.Add(p1, p2);
-
+
// This should throw, since the add.Type is "int?" and
the return
// type we have here is int.
Expression<Func<int?, int?, int>> efu =
Expression.Lambda<Func<int?,int?,int>> (add, p1, p2);
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches