#1827 closed defect (fixed)
[fixed, awaits confirmation] plot3d/transform.pyx test failure
Reported by: | gfurnish | Owned by: | failure |
---|---|---|---|
Priority: | critical | Milestone: | sage-2.10 |
Component: | doctest coverage | Keywords: | |
Cc: | Merged in: | ||
Authors: | Reviewers: | ||
Report Upstream: | Work issues: | ||
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description (last modified by )
Failure on make check
sage -t devel/sage-main/sage/plot/plot3d/transform.pyx [?1034h********************************************************************** File "transform.pyx", line 213: sage: m Expected: [ (x^2*z^2 - (cos(theta)*x^2 - cos(theta))*z^2)/z^2 (-sqrt(-z^2 - x^2 + 1)*(cos(theta)*x*abs(z) - x*abs(z)) - sin(theta)*z^2)/abs(z) (-cos(theta)*x*z^2*abs(z) + x*z^2*abs(z) + sin(theta)*z^2*sqrt(-z^2 - x^2 + 1))/(z*abs(z))] [ (sin(theta)*z^2*abs(z) - sqrt(-z^2 - x^2 + 1)*(cos(theta)*x*z^2 - x*z^2))/z^2 ((-(x^2 + cos(theta) - 1)*z^2 - x^4 + 2*x^2 - 1)*abs(z) - (-cos(theta)*x^2*z^2 - cos(theta)*x^4 + cos(theta)*x^2)*abs(z))/((x^2 - 1)*abs(z)) (-sqrt(-z^2 - x^2 + 1)*(cos(theta)*x^2*z^2*abs(z) + (-x^2 - cos(theta) + 1)*z^2*abs(z)) + sin(theta)*x*z^4 - z^2*(sin(theta)*x*z^2 + sin(theta)*x^3 - sin(theta)*x))/((x^2 - 1)*z*abs(z))] [ (-sin(theta)*z*sqrt(-z^2 - x^2 + 1)*abs(z) - cos(theta)*x*z^3 + x*z^3)/z^2 (-sqrt(-z^2 - x^2 + 1)*(cos(theta)*x^2*z*abs(z) + (-x^2 - cos(theta) + 1)*z*abs(z)) - (sin(theta)*x - sin(theta)*x^3)*z)/((x^2 - 1)*abs(z)) (((x^2 + cos(theta) - 1)*z^2 + cos(theta)*x^2 - cos(theta))*abs(z) - cos(theta)*x^2*z^2*abs(z))/((x^2 - 1)*abs(z))] Got: [ sage17*cos(theta)*sqrt(1 - x^2) + sage13*sage76 (sqrt(-z^2 - x^2 + 1)*(sage76*abs(z) - cos(theta)*x*z) - sin(theta)*z*abs(z))/z (sin(theta)*sqrt(-z^2 - x^2 + 1)*abs(z) + sage76*z*abs(z) - cos(theta)*x*z^2)/z] [ (sqrt(1 - x^2)*sqrt(-z^2 - x^2 + 1)*(sage17*cos(theta)*x*abs(z) + sage13*sage80*z) - sage17*sin(theta)*sqrt(1 - x^2)*z^2)/((x^2 - 1)*abs(z)) (-sqrt(1 - x^2)*((-cos(theta)*x^2*z^2 - cos(theta)*x^4 + cos(theta)*x^2)*abs(z) + cos(theta)*z^2*abs(z)) - ((sage80 - sage80*x^2)*z^2 - sage80*x^4 + 2*sage80*x^2 - sage80)*abs(z))/(sqrt(1 - x^2)*(x^2 - 1)*abs(z)) (-sqrt(-z^2 - x^2 + 1)*(sqrt(1 - x^2)*(cos(theta)*x^2*z^2*abs(z) - cos(theta)*z^2*abs(z)) + (sage80*x^2 - sage80)*z^2*abs(z)) - sqrt(1 - x^2)*(z^2*(sin(theta)*x*z^2 + sin(theta)*x^3 - sin(theta)*x) - sin(theta)*x*z^4))/(sqrt(1 - x^2)*(x^2 - 1)*z*abs(z))] [ (sqrt(1 - x^2)*(sage17*cos(theta)*x*z*abs(z) + sage13*sage80*z^2) + sage17*sin(theta)*sqrt(1 - x^2)*z*sqrt(-z^2 - x^2 + 1))/((x^2 - 1)*abs(z)) (-sqrt(-z^2 - x^2 + 1)*(sqrt(1 - x^2)*(cos(theta)*x^2*z*abs(z) - cos(theta)*z*abs(z)) + (sage80*x^2 - sage80)*z*abs(z)) - sqrt(1 - x^2)*(sin(theta)*x - sin(theta)*x^3)*z)/(sqrt(1 - x^2)*(x^2 - 1)*abs(z)) (sqrt(1 - x^2)*((cos(theta)*z^2 + cos(theta)*x^2 - cos(theta))*abs(z) - cos(theta)*x^2*z^2*abs(z)) + (sage80 - sage80*x^2)*z^2*abs(z))/(sqrt(1 - x^2)*(x^2 - 1)*abs(z))] **********************************************************************
System is 64 bit gentoo, gcc 4.2.2
Attachments (1)
Change History (7)
comment:1 Changed 14 years ago by
- Component changed from graphics to doctest
- Description modified (diff)
- Milestone changed from sage-2.10.1 to sage-2.10
- Owner changed from was to failure
- Priority changed from major to critical
Changed 14 years ago by
comment:2 Changed 14 years ago by
- Summary changed from plot3d/transform.pyx test failure to [fixed, awaits confirmation] plot3d/transform.pyx test failure
comment:3 Changed 14 years ago by
For _an_element_impl, it should return a very generic element. If it returns zero, then it may mess up the coercion model!
comment:4 Changed 14 years ago by
Hi Robert,
can you provide a doctest that exposes the issue you describe?
Cheers,
Michael
comment:5 Changed 14 years ago by
- Resolution set to fixed
- Status changed from new to closed
comment:6 Changed 14 years ago by
OK, I take this back.
It used to be that some multiplication code was written as
def _lmul_(self, other): if not other: return other ...
This would succeed when other was ANY type with bool(other) == False, and an_element was used to construct other
to pass in and try it out (in the action detection code) which would cause it to succeed and this "valid" action would get cached (resulting in a error or segfault when a non-zero other
was passed.
It now forces other to be an element of self.parent().base_ring(), which solves this problem.
this should completely fix the problem. But I've only tested it on one 32-bit linux system. it needs more testing