kiselev / aic-praise

Automatically exported from code.google.com/p/aic-praise
0 stars 0 forks source link

Review testConvexRewriterOnMessageBoundsBasicInnerUnconditional and testConvexRewriterOnMessageBoundsBasicInnerConditional #32

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
The clean up of syntax trees and expressions has made apparently a problem with 
comparing expected and actual Rational numbers in unit tests.

These tests involve, among others, a Rational-valued symbol with value 6/7, 
which is output as 0.857142857. However, writing 6/7 as a decimal results in a 
periodic decimal expansion, so this Rational does not equal an expected value 
written down as 0.857142857. In fact, it will not equal *any* finite decimal 
description.

I am not quite sure how this used to work, but I left the old methods around 
for reproduction. It seems that it should not have worked though, and if it 
did, it was by some other covering problem.

It seems that one way of solving the problem is to introduce notation for 
specifying Rational-valued symbols by using fractions. Simply writing a 
fraction is not enough because it will be taken as a function application of / 
and still not compare as equal to a Rational symbol. This is aic-expresso issue 
#44.

Meanwhile, for these tests to work, one can modify it so that the result is not 
a periodic decimal expansion. I was going to do that when I saw comments inside 
the test predicting that indeed it would not do so. So a problem going on seems 
to be why this is not happening, and that is what this issue is about.

Original issue reported on code.google.com by rodrigob...@gmail.com on 23 Apr 2014 at 1:39