Ticket #5766 (closed defect: fixed)
[with patch; positive review] improve coverage of structure/formal_sum.py
| Reported by: | was | Owned by: | somebody |
|---|---|---|---|
| Priority: | major | Milestone: | sage-4.0.1 |
| Component: | basic arithmetic | Keywords: | |
| Cc: | Work issues: | ||
| Report Upstream: | Reviewers: | John Cremona, Mike Hansen | |
| Authors: | William Stein, Alex Ghitza | Merged in: | 4.0.1.rc1 |
| Dependencies: | Stopgaps: |
Description
Attachments
Change History
comment:2 Changed 4 years ago by was
- Summary changed from improve coverage of structure/formal_sum.py to [with patch; needs review] improve coverage of structure/formal_sum.py
comment:3 Changed 4 years ago by ncalexan
- Summary changed from [with patch; needs review] improve coverage of structure/formal_sum.py to [with patch; with positive review] improve coverage of structure/formal_sum.py
There's an indirect doctest missing from nonzero and a typoed indirect doctest on len, but other than that this looks good.
comment:4 Changed 4 years ago by mabshoff
- Summary changed from [with patch; with positive review] improve coverage of structure/formal_sum.py to [with patch; needs work] improve coverage of structure/formal_sum.py
Mhh, ther seems to be a 32 vs. 64 bit issue here:
sage -t -long "devel/sage/sage/structure/formal_sum.py"
**********************************************************************
File "/scratch/mabshoff/sage-3.4.1.rc3/devel/sage/sage/structure/formal_sum.py", line 333:
sage: a
Expected:
2/3 - 3*4/5 + 7*2
Got:
7*2 + 2/3 - 3*4/5
**********************************************************************
File "/scratch/mabshoff/sage-3.4.1.rc3/devel/sage/sage/structure/formal_sum.py", line 335:
sage: a._repr_()
Expected:
'2/3 - 3*4/5 + 7*2'
Got:
'7*2 + 2/3 - 3*4/5'
**********************************************************************
Cheers,
Michael
comment:5 Changed 4 years ago by was
- Summary changed from [with patch; needs work] improve coverage of structure/formal_sum.py to [with patch; needs review] improve coverage of structure/formal_sum.py
comment:6 Changed 4 years ago by cremona
- Summary changed from [with patch; needs review] improve coverage of structure/formal_sum.py to [with patch; with review, needs work] improve coverage of structure/formal_sum.py
Sorry, but on my 32-bit laptop I get
**********************************************************************
File "/home/john/sage-3.4.2.alpha0/devel/sage-tests/sage/structure/formal_sum.py", line 333:
sage: a
Expected:
2/3 - 3*4/5 + 7*2 -- comparing Mod(2,3) and rationals ill-defined
Got:
7*2 + 2/3 - 3*4/5
**********************************************************************
File "/home/john/sage-3.4.2.alpha0/devel/sage-tests/sage/structure/formal_sum.py", line 336:
sage: a._repr_()
Expected:
'2/3 - 3*4/5 + 7*2'
Got:
'7*2 + 2/3 - 3*4/5'
**********************************************************************
Perhaps all formal sums should be sorted? As part of the reduce() method (which should then be called after creation)?
comment:7 Changed 4 years ago by was
- Summary changed from [with patch; with review, needs work] improve coverage of structure/formal_sum.py to [with patch; needs review] improve coverage of structure/formal_sum.py
Perhaps all formal sums should be sorted? As part of the reduce() method (which should then be called after creation)?
They are sorted. That's why the doctests failed for you -- because sort is not well defined as indicated in the comment.
comment:8 Changed 4 years ago by cremona
- Summary changed from [with patch; needs review] improve coverage of structure/formal_sum.py to [with patch; positive review] improve coverage of structure/formal_sum.py
OK with all three patches the tests pass. It's a pity we cannot make it deterministic but the only thing I could think of was sorting on the strong representations (of the base of each pair) and that would take too long I suppose.
comment:9 Changed 4 years ago by mabshoff
- Milestone changed from sage-4.0 to sage-3.4.2
With all three patch applied I am seeing the following doctest failure:
sage -t -long "devel/sage/sage/misc/latex.py"
**********************************************************************
File "/scratch/mabshoff/sage-3.4.2.rc0/devel/sage/sage/misc/latex.py", line 942:
sage: repr_lincomb([1,5,-3],[2,8/9,7])
Expected:
'2*1 + 8/9*5 + 7*-3'
Got:
'21 + \\frac{8}{9}5 + 7-3'
**********************************************************************
Since this seems to be the correct LaTeX representation I am fixing this failure.
Cheers,
Michael
comment:10 Changed 4 years ago by mabshoff
- Summary changed from [with patch; positive review] improve coverage of structure/formal_sum.py to [with patch; needs work] improve coverage of structure/formal_sum.py
- Milestone changed from sage-3.4.2 to sage-4.0
Actually, the above seems broken, i.e. notice the missing * - so 'needs work'.
Cheers,
Michaek
comment:11 Changed 4 years ago by AlexGhitza
- Summary changed from [with patch; needs work] improve coverage of structure/formal_sum.py to [with patch; needs review] improve coverage of structure/formal_sum.py
I have folded William's patches and rebased them against 4.0.alpha0.
I made an attempt to fix the latex-ing, see the patch.
Changed 4 years ago by AlexGhitza
-
attachment
trac_5766-rebased.patch
added
apply instead of the other patches
comment:12 Changed 4 years ago by mhansen
- Status changed from new to closed
- Resolution set to fixed
- Summary changed from [with patch; needs review] improve coverage of structure/formal_sum.py to [with patch; positive review] improve coverage of structure/formal_sum.py
Looks good to me.
Merged trac_5766-rebased.patch in 4.0.1.rc1.
comment:13 Changed 4 years ago by mhansen
- Reviewers set to John Cremona, Mike Hansen
- Merged in set to 4.0.1.rc1
- Authors set to William Stein, Alex Ghitza

BUGS FOUND:
sage: latex(FormalSum([(1,2), (5, 8/9), (-3, 7)])) 5\frac{8}{9}2 - 37