#11753: Fix step=0 in (x)srange
------------------------+---------------------------------------------------
Reporter: ppurka | Owner: jason, was
Type: defect | Status: new
Priority: minor | Milestone: sage-4.7.2
Component: graphics | Keywords: srange xsrange division_by_zero
Work_issues: | Upstream: N/A
Reviewer: | Author:
Merged: | Dependencies:
------------------------+---------------------------------------------------
Comment(by ppurka):
Replying to [comment:1 kcrisman]:
> A few comments:
> * Is this new behavior always desirable?
Having a step size of 1 should produce an empty list if the start and end
points are the same, or a single element if include_endpoint=True. This
patch doesn't change either of those conditions. In any other case, the
step will always be strictly non-zero and the if condition in this patch
will not be executed.
> * Might we want to catch this in plot, rather than 'fixing' misc?
It could be fixed in plot. I had a look at the plot function, and it seems
to be a generic function which passes on the arguments to other individual
plot functions (func.plot(), iirc). So, ''all'' those plot functions will
have to be fixed.
> * Are there any other places this might cause problems? (E.g., do all
doctests pass with this?)
I did do a doctest before submitting this bug report via
{{{
./sage -t devel/sage/sage/misc
}}}
and it passed all the tests.
The output (a rerun) is provided below:
{{{
..._10.04.1_lts-x86_64-Linux> ./sage -t -long devel/sage/sage/misc
sage -t -long "devel/sage/sage/misc/pager.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/typecheck.py"
[0.1 s]
sage -t -long "devel/sage/sage/misc/sh.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/sage_unittest.py"
[2.0 s]
sage -t -long "devel/sage/sage/misc/lazy_format.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/sage_timeit.py"
[2.5 s]
sage -t -long "devel/sage/sage/misc/edit_module.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/remote_file.py"
[1.8 s]
sage -t -long "devel/sage/sage/misc/misc_c.pyx"
[2.4 s]
sage -t -long "devel/sage/sage/misc/lazy_import_cache.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/darwin_utilities.pyx"
[1.8 s]
sage -t -long "devel/sage/sage/misc/benchmark.py"
[5.0 s]
sage -t -long "devel/sage/sage/misc/sage_ostools.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/bitset.pxi"
[1.9 s]
sage -t -long "devel/sage/sage/misc/mrange.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/test_class_pickling.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/bitset.pyx"
[2.2 s]
sage -t -long "devel/sage/sage/misc/getusage.py"
[2.4 s]
sage -t -long "devel/sage/sage/misc/functional.py"
[25.2 s]
sage -t -long "devel/sage/sage/misc/exceptions.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/hg.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/db.py"
[2.0 s]
sage -t -long "devel/sage/sage/misc/persist.py"
[2.0 s]
sage -t -long "devel/sage/sage/misc/randstate.pyx"
[34.0 s]
sage -t -long "devel/sage/sage/misc/nested_class_test.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/function_mangling.pyx"
[1.9 s]
sage -t -long "devel/sage/sage/misc/session.pyx"
[1.9 s]
sage -t -long "devel/sage/sage/misc/sage_itertools.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/func_persist.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/flatten.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/copying.py"
[0.1 s]
sage -t -long "devel/sage/sage/misc/sage_eval.py"
[2.8 s]
sage -t -long "devel/sage/sage/misc/__init__.py"
[0.1 s]
sage -t -long "devel/sage/sage/misc/defaults.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/random_testing.py"
[2.0 s]
sage -t -long "devel/sage/sage/misc/sagex_ds.pyx"
[2.1 s]
sage -t -long "devel/sage/sage/misc/misc.py"
[9.9 s]
sage -t -long "devel/sage/sage/misc/mathml.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/abstract_method.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/parser.pyx"
[2.0 s]
sage -t -long "devel/sage/sage/misc/prandom.py"
[3.4 s]
sage -t -long "devel/sage/sage/misc/file_to_worksheet.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/all.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/explain_pickle.py"
[2.2 s]
sage -t -long "devel/sage/sage/misc/preparser_ipython.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/sage_timeit_class.pyx"
[7.5 s]
sage -t -long "devel/sage/sage/misc/lazy_attribute.py"
[2.0 s]
sage -t -long "devel/sage/sage/misc/preparser.py"
[8.0 s]
sage -t -long "devel/sage/sage/misc/derivative.pyx"
[1.9 s]
sage -t -long "devel/sage/sage/misc/unknown.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/cython.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/multireplace.py"
[1.8 s]
sage -t -long "devel/sage/sage/misc/cython_c.pyx"
[1.9 s]
sage -t -long "devel/sage/sage/misc/profiler.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/constant_function.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/inline_fortran.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/attach.py"
[1.8 s]
sage -t -long "devel/sage/sage/misc/lazy_import.pyx"
[1.9 s]
sage -t -long "devel/sage/sage/misc/method_decorator.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/trace.py"
[3.7 s]
sage -t -long "devel/sage/sage/misc/map_threaded.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/bitset_pxd.pxi"
[0.1 s]
sage -t -long "devel/sage/sage/misc/interpreter.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/decorators.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/refcount.pyx"
[1.9 s]
sage -t -long "devel/sage/sage/misc/nested_class.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/latex.py"
[3.6 s]
sage -t -long "devel/sage/sage/misc/citation.pyx"
[4.5 s]
sage -t -long "devel/sage/sage/misc/html.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/python.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/displayhook.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/reset.pyx"
[4.0 s]
sage -t -long "devel/sage/sage/misc/sage_input.py"
[2.6 s]
sage -t -long "devel/sage/sage/misc/object_multiplexer.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/allocator.pyx"
[1.9 s]
sage -t -long "devel/sage/sage/misc/bug.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/package.py"
[2.0 s]
sage -t -long "devel/sage/sage/misc/test_cpickle_sage.py"
[0.1 s]
sage -t -long "devel/sage/sage/misc/proof.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/fpickle.pyx"
[1.9 s]
sage -t -long "devel/sage/sage/misc/sagedoc.py"
[47.1 s]
sage -t -long "devel/sage/sage/misc/cachefunc.py"
[4.6 s]
sage -t -long "devel/sage/sage/misc/classgraph.py"
[2.0 s]
sage -t -long "devel/sage/sage/misc/sageinspect.py"
[2.8 s]
sage -t -long "devel/sage/sage/misc/log.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/search.pyx"
[1.9 s]
sage -t -long "devel/sage/sage/misc/dist.py"
[2.1 s]
sage -t -long "devel/sage/sage/misc/classcall_metaclass.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/cache.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/banner.py"
[2.0 s]
sage -t -long "devel/sage/sage/misc/latex_macros.py"
[1.9 s]
sage -t -long "devel/sage/sage/misc/viewer.py"
[2.0 s]
sage -t -long "devel/sage/sage/misc/pickle_old.pyx"
[1.9 s]
----------------------------------------------------------------------
All tests passed!
Total time for all tests: 307.3 seconds
}}}
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11753#comment:2>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.