Re: linq - how to test expression reducers

"Ayende Rahien" <[email protected]> Fri, 15 Aug 2008 17:26:20 +0300
Newsgroups gmane.comp.windows.dotnet.nhibernate.devel
Message-ID <[email protected]>
That is because the Equal doesn't know how to deal with them, you have to
write the equality yourself.

On Fri, Aug 15, 2008 at 5:20 PM, Chad Lee <[email protected]> wrote:

> I just ran this simple test:
>
> var expr1 = Expression.And(
>   Expression.Constant(true),
>   Expression.Constant(false));
>
> var expr2 = Expression.And(
>   Expression.Constant(true),
>   Expression.Constant(false));
>
> Assert.Equal(expr1, expr2);
>
> which fails....
>
> That just seems stupid to me.
>
>
> On Fri, Aug 15, 2008 at 9:08 AM, Ayende Rahien <[email protected]> wrote:
>
>> What about something like:
>> var reducedExpression = Reduce( () => true && x>1 && x<2));
>> AssertExpressionEq( reducedExpression,
>>    new BinaryExpression{ And, new (x>1), new (x<2));
>>
>> On Fri, Aug 15, 2008 at 4:54 PM, Tuna Toksöz <[email protected]> wrote:
>>
>>> Hello team,
>>> I am working on Expression reducers to simplify complex expressions.
>>> I made LogicalExpressionReducer which simply converts not(not(not(true)))
>>> to ConstantExpression(false) and (true & x.Name=="johndoe") to
>>> (x.Name=="john doe"), meaning that it just uses the truth table to reduce
>>> expressions.
>>>
>>> The problem with expressions is that they are trees! For simple ones, it
>>> is easy to check if I get the same result but complex ones are hard to deal
>>> with.
>>> I first thought that I can use .ToString() of expression which produces
>>> string representation of an expression, that is some thing like
>>> Assert.AreEqual("false",reducedExpression.ToString())
>>>
>>> But this simply sounds incorrect to me. I then thought about using
>>> visitors to check for equality, but not sure about that.
>>>
>>> 2nd one sounds the way to go, but are there any simpler way to test it?
>>>
>>> Producing
>>>
>>> --
>>> Tuna Toksöz
>>>
>>> Typos included to enhance the readers attention!
>>>
>>> -------------------------------------------------------------------------
>>> This SF.Net email is sponsored by the Moblin Your Move Developer's
>>> challenge
>>> Build the coolest Linux based applications with Moblin SDK & win great
>>> prizes
>>> Grand prize is a trip for two to an Open Source event anywhere in the
>>> world
>>> http://moblin-contest.org/redirect.php?banner_id=100&url=/
>>> _______________________________________________
>>> Nhibernate-development mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/nhibernate-development
>>>
>>>
>>
>> -------------------------------------------------------------------------
>> This SF.Net email is sponsored by the Moblin Your Move Developer's
>> challenge
>> Build the coolest Linux based applications with Moblin SDK & win great
>> prizes
>> Grand prize is a trip for two to an Open Source event anywhere in the
>> world
>> http://moblin-contest.org/redirect.php?banner_id=100&url=/
>> _______________________________________________
>> Nhibernate-development mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/nhibernate-development
>>
>>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge
> Build the coolest Linux based applications with Moblin SDK & win great
> prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Nhibernate-development mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/nhibernate-development
>
>

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/

_______________________________________________
Nhibernate-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nhibernate-development