From 1f65d4ba657ef107355b1dc30e77f7449e6fb17e Mon Sep 17 00:00:00 2001 From: Giacomo Pope Date: Sun, 18 Feb 2024 18:59:36 +0000 Subject: [PATCH 01/16] Replace all :trac: with :issue: --- src/sage/algebras/clifford_algebra.py | 10 +- .../algebras/clifford_algebra_element.pyx | 2 +- src/sage/algebras/cluster_algebra.py | 8 +- src/sage/algebras/commutative_dga.py | 10 +- .../finite_dimensional_algebra_element.pyx | 4 +- src/sage/algebras/free_algebra.py | 12 +- src/sage/algebras/free_algebra_element.py | 2 +- .../fast_parallel_fusion_ring_braid_repn.pyx | 2 +- .../algebras/fusion_rings/poly_tup_engine.pyx | 4 +- src/sage/algebras/group_algebra.py | 2 +- src/sage/algebras/hall_algebra.py | 2 +- .../free_algebra_element_letterplace.pyx | 2 +- .../letterplace/free_algebra_letterplace.pyx | 2 +- .../letterplace/letterplace_ideal.pyx | 4 +- .../lie_algebras/classical_lie_algebra.py | 6 +- .../algebras/lie_algebras/free_lie_algebra.py | 2 +- src/sage/algebras/lie_algebras/heisenberg.py | 2 +- .../lie_algebras/nilpotent_lie_algebra.py | 2 +- .../lie_algebras/poincare_birkhoff_witt.py | 6 +- src/sage/algebras/lie_algebras/quotient.py | 2 +- .../lie_algebras/structure_coefficients.py | 2 +- src/sage/algebras/lie_algebras/subalgebra.py | 4 +- src/sage/algebras/quantum_groups/q_numbers.py | 2 +- .../algebras/quatalg/quaternion_algebra.py | 18 +- .../quatalg/quaternion_algebra_element.pyx | 4 +- .../algebras/steenrod/steenrod_algebra.py | 2 +- .../steenrod/steenrod_algebra_mult.py | 4 +- src/sage/algebras/yokonuma_hecke_algebra.py | 2 +- src/sage/all.py | 4 +- src/sage/all__sagemath_repl.py | 2 +- src/sage/arith/functions.pyx | 8 +- src/sage/arith/long.pxd | 2 +- src/sage/arith/misc.py | 44 +-- src/sage/arith/multi_modular.pyx | 4 +- src/sage/arith/rational_reconstruction.pyx | 2 +- src/sage/arith/srange.pyx | 6 +- src/sage/calculus/calculus.py | 72 ++--- src/sage/calculus/desolvers.py | 22 +- src/sage/calculus/functional.py | 2 +- src/sage/calculus/integration.pyx | 10 +- src/sage/calculus/interpolation.pyx | 6 +- src/sage/calculus/test_sympy.py | 2 +- src/sage/calculus/tests.py | 2 +- src/sage/calculus/var.pyx | 2 +- src/sage/categories/action.pyx | 12 +- src/sage/categories/additive_magmas.py | 2 +- src/sage/categories/algebra_functor.py | 8 +- src/sage/categories/algebras.py | 4 +- src/sage/categories/associative_algebras.py | 2 +- src/sage/categories/bimodules.py | 2 +- src/sage/categories/category.py | 32 +- src/sage/categories/category_types.py | 6 +- src/sage/categories/category_with_axiom.py | 12 +- src/sage/categories/coalgebras.py | 2 +- .../covariant_functorial_construction.py | 4 +- src/sage/categories/coxeter_groups.py | 10 +- src/sage/categories/crystals.py | 6 +- src/sage/categories/enumerated_sets.py | 4 +- src/sage/categories/facade_sets.py | 2 +- src/sage/categories/fields.py | 16 +- .../finite_complex_reflection_groups.py | 2 +- src/sage/categories/finite_coxeter_groups.py | 2 +- .../finite_dimensional_algebras_with_basis.py | 2 +- ...ite_dimensional_lie_algebras_with_basis.py | 6 +- .../finite_dimensional_modules_with_basis.py | 2 +- src/sage/categories/finite_enumerated_sets.py | 4 +- .../categories/finite_permutation_groups.py | 2 +- src/sage/categories/functor.pyx | 10 +- src/sage/categories/group_algebras.py | 8 +- src/sage/categories/groups.py | 4 +- src/sage/categories/hecke_modules.py | 4 +- .../categories/highest_weight_crystals.py | 4 +- src/sage/categories/homset.py | 12 +- src/sage/categories/homsets.py | 2 +- src/sage/categories/lie_algebras.py | 2 +- src/sage/categories/loop_crystals.py | 10 +- src/sage/categories/magmas.py | 2 +- src/sage/categories/magmatic_algebras.py | 2 +- src/sage/categories/map.pyx | 14 +- src/sage/categories/modules.py | 6 +- src/sage/categories/modules_with_basis.py | 8 +- src/sage/categories/monoids.py | 2 +- src/sage/categories/morphism.pyx | 6 +- src/sage/categories/posets.py | 2 +- src/sage/categories/primer.py | 8 +- .../categories/principal_ideal_domains.py | 2 +- src/sage/categories/pushout.py | 18 +- src/sage/categories/quotient_fields.py | 12 +- src/sage/categories/rings.py | 8 +- src/sage/categories/sets_cat.py | 4 +- src/sage/categories/super_algebras.py | 2 +- .../unique_factorization_domains.py | 2 +- src/sage/categories/unital_algebras.py | 10 +- src/sage/categories/vector_spaces.py | 2 +- src/sage/categories/weyl_groups.py | 2 +- src/sage/coding/abstract_code.py | 6 +- src/sage/coding/channel.py | 2 +- src/sage/coding/code_bounds.py | 2 +- src/sage/coding/delsarte_bounds.py | 2 +- src/sage/coding/encoder.py | 2 +- src/sage/coding/grs_code.py | 12 +- src/sage/coding/guruswami_sudan/gs_decoder.py | 2 +- src/sage/coding/linear_code.py | 20 +- src/sage/coding/linear_code_no_metric.py | 6 +- src/sage/combinat/abstract_tree.py | 4 +- src/sage/combinat/affine_permutation.py | 2 +- src/sage/combinat/alternating_sign_matrix.py | 2 +- src/sage/combinat/binary_tree.py | 6 +- src/sage/combinat/cartesian_product.py | 6 +- .../cluster_algebra_quiver/cluster_seed.py | 4 +- .../cluster_algebra_quiver/mutation_type.py | 2 +- .../combinat/cluster_algebra_quiver/quiver.py | 2 +- .../quiver_mutation_type.py | 2 +- src/sage/combinat/colored_permutations.py | 2 +- src/sage/combinat/combinat.py | 12 +- src/sage/combinat/crystals/alcove_path.py | 8 +- src/sage/combinat/crystals/kac_modules.py | 2 +- .../combinat/crystals/kirillov_reshetikhin.py | 6 +- src/sage/combinat/crystals/littelmann_path.py | 2 +- src/sage/combinat/crystals/multisegments.py | 2 +- src/sage/combinat/crystals/subcrystal.py | 4 +- src/sage/combinat/crystals/tensor_product.py | 4 +- .../crystals/tensor_product_element.pyx | 10 +- src/sage/combinat/crystals/virtual_crystal.py | 2 +- .../combinat/cyclic_sieving_phenomenon.py | 2 +- src/sage/combinat/degree_sequences.pyx | 6 +- src/sage/combinat/derangements.py | 2 +- src/sage/combinat/designs/bibd.py | 4 +- src/sage/combinat/designs/block_design.py | 4 +- .../combinat/designs/difference_family.py | 4 +- .../combinat/designs/incidence_structures.py | 4 +- src/sage/combinat/diagram_algebras.py | 4 +- src/sage/combinat/dyck_word.py | 2 +- src/sage/combinat/e_one_star.py | 8 +- src/sage/combinat/finite_state_machine.py | 54 ++-- .../finite_state_machine_generators.py | 4 +- src/sage/combinat/free_module.py | 16 +- src/sage/combinat/gelfand_tsetlin_patterns.py | 8 +- src/sage/combinat/growth.py | 4 +- src/sage/combinat/integer_lists/invlex.pyx | 12 +- src/sage/combinat/integer_lists/lists.py | 2 +- src/sage/combinat/integer_vector.py | 6 +- src/sage/combinat/integer_vector_weighted.py | 2 +- src/sage/combinat/matrices/dancing_links.pyx | 10 +- src/sage/combinat/matrices/hadamard_matrix.py | 2 +- src/sage/combinat/necklace.py | 2 +- src/sage/combinat/parking_functions.py | 4 +- src/sage/combinat/partition.py | 42 +-- src/sage/combinat/partition_algebra.py | 2 +- src/sage/combinat/partition_tuple.py | 12 +- src/sage/combinat/permutation.py | 18 +- src/sage/combinat/posets/cartesian_product.py | 12 +- src/sage/combinat/posets/elements.py | 2 +- src/sage/combinat/posets/hasse_diagram.py | 10 +- src/sage/combinat/posets/lattices.py | 6 +- src/sage/combinat/posets/poset_examples.py | 4 +- src/sage/combinat/posets/posets.py | 24 +- src/sage/combinat/q_analogues.py | 20 +- src/sage/combinat/ranker.py | 2 +- src/sage/combinat/recognizable_series.py | 2 +- src/sage/combinat/regular_sequence.py | 6 +- .../rigged_configurations/bij_type_B.py | 2 +- .../rigged_configurations/kleber_tree.py | 4 +- .../rigged_configurations/rc_crystal.py | 2 +- .../rigged_configurations/rc_infinity.py | 2 +- .../rigged_configuration_element.py | 4 +- .../rigged_configurations.py | 4 +- .../combinat/root_system/cartan_matrix.py | 2 +- src/sage/combinat/root_system/cartan_type.py | 6 +- .../combinat/root_system/coxeter_matrix.py | 4 +- .../combinat/root_system/dynkin_diagram.py | 8 +- src/sage/combinat/root_system/plot.py | 2 +- .../root_system/reflection_group_complex.py | 2 +- .../root_system/reflection_group_element.pyx | 4 +- .../root_system/root_lattice_realizations.py | 4 +- src/sage/combinat/root_system/type_dual.py | 2 +- .../combinat/root_system/type_reducible.py | 2 +- src/sage/combinat/root_system/type_relabel.py | 8 +- .../weight_lattice_realizations.py | 2 +- src/sage/combinat/root_system/weyl_group.py | 2 +- src/sage/combinat/rsk.py | 2 +- src/sage/combinat/schubert_polynomial.py | 8 +- src/sage/combinat/set_partition.py | 4 +- src/sage/combinat/set_partition_ordered.py | 4 +- src/sage/combinat/sf/classical.py | 6 +- src/sage/combinat/sf/dual.py | 2 +- src/sage/combinat/sf/new_kschur.py | 2 +- src/sage/combinat/sf/sfa.py | 4 +- src/sage/combinat/shuffle.py | 2 +- src/sage/combinat/skew_partition.py | 6 +- src/sage/combinat/skew_tableau.py | 4 +- src/sage/combinat/subset.py | 4 +- src/sage/combinat/subword.py | 2 +- src/sage/combinat/symmetric_group_algebra.py | 6 +- .../symmetric_group_representations.py | 2 +- src/sage/combinat/tableau.py | 38 +-- src/sage/combinat/tableau_tuple.py | 30 +- src/sage/combinat/tiling.py | 2 +- src/sage/combinat/words/abstract_word.py | 2 +- src/sage/combinat/words/finite_word.py | 12 +- src/sage/combinat/words/lyndon_word.py | 4 +- src/sage/combinat/words/morphic.py | 4 +- src/sage/combinat/words/morphism.py | 22 +- src/sage/combinat/words/shuffle_product.py | 4 +- src/sage/combinat/words/word_char.pyx | 10 +- src/sage/combinat/words/word_generators.py | 6 +- .../combinat/words/word_infinite_datatypes.py | 2 +- src/sage/combinat/words/words.py | 8 +- src/sage/cpython/_py2_random.py | 2 +- src/sage/cpython/dict_del_by_value.pyx | 6 +- src/sage/cpython/getattr.pyx | 6 +- src/sage/cpython/string.pyx | 2 +- src/sage/crypto/block_cipher/present.py | 2 +- src/sage/crypto/mq/sr.py | 4 +- src/sage/crypto/sbox.pyx | 4 +- src/sage/data_structures/bitset.pyx | 2 +- src/sage/data_structures/bitset_base.pxd | 4 +- .../bounded_integer_sequences.pyx | 12 +- src/sage/databases/cremona.py | 8 +- src/sage/databases/findstat.py | 2 +- src/sage/databases/oeis.py | 12 +- src/sage/databases/sql_db.py | 2 +- src/sage/doctest/control.py | 6 +- src/sage/doctest/external.py | 2 +- src/sage/doctest/forker.py | 2 +- src/sage/doctest/parsing.py | 16 +- src/sage/doctest/reporting.py | 2 +- src/sage/doctest/test.py | 8 +- .../arithmetic_dynamics/projective_ds.py | 8 +- src/sage/env.py | 2 +- src/sage/ext/fast_callable.pyx | 2 +- src/sage/ext/memory.pyx | 8 +- src/sage/functions/bessel.py | 20 +- src/sage/functions/error.py | 16 +- src/sage/functions/exp_integral.py | 8 +- src/sage/functions/gamma.py | 22 +- src/sage/functions/generalized.py | 6 +- src/sage/functions/hyperbolic.py | 6 +- src/sage/functions/hypergeometric.py | 2 +- src/sage/functions/log.py | 28 +- src/sage/functions/orthogonal_polys.py | 10 +- src/sage/functions/other.py | 38 +-- src/sage/functions/piecewise.py | 8 +- src/sage/functions/prime_pi.pyx | 4 +- src/sage/functions/special.py | 18 +- src/sage/functions/transcendental.py | 8 +- src/sage/functions/trig.py | 20 +- src/sage/functions/wigner.py | 4 +- src/sage/game_theory/normal_form_game.py | 2 +- src/sage/geometry/cone.py | 18 +- src/sage/geometry/fan.py | 12 +- src/sage/geometry/fan_isomorphism.py | 2 +- src/sage/geometry/fan_morphism.py | 8 +- .../hyperbolic_space/hyperbolic_geodesic.py | 6 +- .../hyperplane_arrangement/arrangement.py | 4 +- .../hyperplane_arrangement/hyperplane.py | 4 +- src/sage/geometry/integral_points.pxi | 6 +- src/sage/geometry/lattice_polytope.py | 6 +- src/sage/geometry/polyhedron/backend_cdd.py | 8 +- .../geometry/polyhedron/backend_cdd_rdf.py | 10 +- src/sage/geometry/polyhedron/backend_field.py | 4 +- .../geometry/polyhedron/backend_normaliz.py | 20 +- src/sage/geometry/polyhedron/backend_ppl.py | 4 +- src/sage/geometry/polyhedron/base.py | 6 +- src/sage/geometry/polyhedron/base0.py | 6 +- src/sage/geometry/polyhedron/base1.py | 12 +- src/sage/geometry/polyhedron/base2.py | 2 +- src/sage/geometry/polyhedron/base3.py | 12 +- src/sage/geometry/polyhedron/base4.py | 10 +- src/sage/geometry/polyhedron/base5.py | 28 +- src/sage/geometry/polyhedron/base6.py | 16 +- src/sage/geometry/polyhedron/base7.py | 2 +- src/sage/geometry/polyhedron/base_QQ.py | 2 +- src/sage/geometry/polyhedron/base_ZZ.py | 4 +- .../geometry/polyhedron/base_number_field.py | 2 +- .../combinatorial_polyhedron/base.pyx | 16 +- src/sage/geometry/polyhedron/constructor.py | 14 +- src/sage/geometry/polyhedron/face.py | 4 +- src/sage/geometry/polyhedron/library.py | 2 +- src/sage/geometry/polyhedron/parent.py | 6 +- src/sage/geometry/polyhedron/plot.py | 6 +- .../polyhedron/ppl_lattice_polytope.py | 2 +- .../geometry/polyhedron/representation.py | 10 +- src/sage/geometry/toric_lattice.py | 2 +- src/sage/graphs/all.py | 2 +- src/sage/graphs/base/c_graph.pyx | 28 +- src/sage/graphs/base/static_dense_graph.pyx | 2 +- .../graphs/base/static_sparse_backend.pyx | 12 +- src/sage/graphs/bipartite_graph.py | 10 +- src/sage/graphs/bliss.pyx | 6 +- src/sage/graphs/chrompoly.pyx | 4 +- src/sage/graphs/cliquer.pyx | 4 +- src/sage/graphs/connectivity.pyx | 24 +- src/sage/graphs/digraph.py | 32 +- src/sage/graphs/digraph_generators.py | 4 +- src/sage/graphs/distances_all_pairs.pyx | 4 +- src/sage/graphs/domination.py | 4 +- src/sage/graphs/edge_connectivity.pyx | 2 +- src/sage/graphs/generators/basic.py | 4 +- src/sage/graphs/generators/degree_sequence.py | 2 +- src/sage/graphs/generators/families.py | 2 +- src/sage/graphs/generators/random.py | 4 +- src/sage/graphs/generators/world_map.py | 2 +- src/sage/graphs/generic_graph.py | 172 +++++----- src/sage/graphs/generic_graph_pyx.pyx | 12 +- src/sage/graphs/graph.py | 62 ++-- src/sage/graphs/graph_coloring.pyx | 22 +- .../graphs/graph_decompositions/cutwidth.pyx | 2 +- .../graph_decompositions/graph_products.pyx | 4 +- .../tree_decomposition.pyx | 10 +- src/sage/graphs/graph_generators.py | 6 +- src/sage/graphs/graph_input.py | 8 +- src/sage/graphs/graph_latex.py | 6 +- src/sage/graphs/graph_plot.py | 14 +- src/sage/graphs/graph_plot_js.py | 4 +- src/sage/graphs/line_graph.pyx | 6 +- src/sage/graphs/matchpoly.pyx | 2 +- src/sage/graphs/path_enumeration.pyx | 8 +- src/sage/graphs/pq_trees.py | 2 +- src/sage/graphs/schnyder.py | 2 +- src/sage/graphs/spanning_tree.pyx | 2 +- src/sage/graphs/strongly_regular_db.pyx | 6 +- src/sage/graphs/trees.pyx | 2 +- src/sage/graphs/tutte_polynomial.py | 2 +- src/sage/graphs/views.pyx | 2 +- src/sage/groups/abelian_gps/abelian_group.py | 12 +- .../groups/abelian_gps/abelian_group_gap.py | 2 +- .../additive_abelian_group.py | 4 +- .../additive_abelian_wrapper.py | 2 +- src/sage/groups/affine_gps/group_element.py | 2 +- src/sage/groups/artin.py | 2 +- src/sage/groups/braid.py | 8 +- src/sage/groups/cubic_braid.py | 2 +- src/sage/groups/fqf_orthogonal.py | 2 +- src/sage/groups/free_group.py | 6 +- src/sage/groups/generic.py | 6 +- src/sage/groups/group.pyx | 2 +- src/sage/groups/libgap_mixin.py | 6 +- src/sage/groups/libgap_morphism.py | 12 +- src/sage/groups/libgap_wrapper.pyx | 6 +- src/sage/groups/matrix_gps/coxeter_group.py | 2 +- .../groups/matrix_gps/finitely_generated.py | 4 +- .../matrix_gps/finitely_generated_gap.py | 2 +- src/sage/groups/matrix_gps/linear.py | 4 +- src/sage/groups/matrix_gps/linear_gap.py | 2 +- src/sage/groups/matrix_gps/matrix_group.py | 4 +- .../groups/matrix_gps/matrix_group_gap.py | 6 +- src/sage/groups/matrix_gps/named_group.py | 2 +- src/sage/groups/matrix_gps/orthogonal.py | 6 +- src/sage/groups/matrix_gps/orthogonal_gap.py | 2 +- src/sage/groups/matrix_gps/symplectic.py | 2 +- src/sage/groups/matrix_gps/symplectic_gap.py | 2 +- src/sage/groups/matrix_gps/unitary.py | 2 +- src/sage/groups/matrix_gps/unitary_gap.py | 2 +- src/sage/groups/old.pyx | 2 +- src/sage/groups/perm_gps/cubegroup.py | 2 +- .../perm_gps/partn_ref/data_structures.pyx | 2 +- src/sage/groups/perm_gps/permgroup.py | 24 +- .../groups/perm_gps/permgroup_element.pyx | 12 +- .../groups/perm_gps/permgroup_morphism.py | 2 +- src/sage/groups/perm_gps/permgroup_named.py | 6 +- .../semimonomial_transformation.pyx | 2 +- src/sage/homology/chain_complex.py | 8 +- src/sage/homology/chain_complex_morphism.py | 6 +- src/sage/homology/tests.py | 4 +- src/sage/interacts/algebra.py | 2 +- src/sage/interacts/statistics.py | 2 +- src/sage/interacts/test_jupyter.rst | 2 +- src/sage/interfaces/chomp.py | 16 +- src/sage/interfaces/ecm.py | 2 +- src/sage/interfaces/expect.py | 8 +- src/sage/interfaces/fricas.py | 32 +- src/sage/interfaces/frobby.py | 2 +- src/sage/interfaces/gap.py | 10 +- src/sage/interfaces/gap3.py | 8 +- src/sage/interfaces/genus2reduction.py | 4 +- src/sage/interfaces/giac.py | 6 +- src/sage/interfaces/gp.py | 2 +- src/sage/interfaces/interface.py | 10 +- src/sage/interfaces/macaulay2.py | 14 +- src/sage/interfaces/magma.py | 8 +- src/sage/interfaces/mathematica.py | 14 +- src/sage/interfaces/mathics.py | 10 +- src/sage/interfaces/maxima.py | 8 +- src/sage/interfaces/maxima_abstract.py | 4 +- src/sage/interfaces/maxima_lib.py | 38 +-- src/sage/interfaces/mwrank.py | 2 +- src/sage/interfaces/octave.py | 2 +- src/sage/interfaces/polymake.py | 2 +- src/sage/interfaces/psage.py | 4 +- src/sage/interfaces/qepcad.py | 2 +- src/sage/interfaces/r.py | 4 +- src/sage/interfaces/sage0.py | 2 +- src/sage/interfaces/sagespawn.pyx | 4 +- src/sage/interfaces/singular.py | 12 +- src/sage/interfaces/sympy.py | 6 +- src/sage/interfaces/tests.py | 2 +- src/sage/interfaces/tides.py | 4 +- src/sage/knots/knotinfo.py | 4 +- src/sage/knots/link.py | 20 +- src/sage/lfunctions/dokchitser.py | 8 +- src/sage/lfunctions/pari.py | 6 +- src/sage/libs/coxeter3/coxeter_group.py | 2 +- src/sage/libs/eclib/constructor.py | 2 +- src/sage/libs/eclib/homspace.pyx | 2 +- src/sage/libs/eclib/interface.py | 6 +- src/sage/libs/eclib/newforms.pyx | 6 +- src/sage/libs/flint/flint_sage.pyx | 2 +- src/sage/libs/flint/nmod_poly_linkage.pxi | 2 +- src/sage/libs/gap/element.pyx | 12 +- src/sage/libs/gap/libgap.pyx | 2 +- src/sage/libs/gap/test.py | 2 +- src/sage/libs/giac/giac.pyx | 4 +- src/sage/libs/glpk/error.pyx | 2 +- src/sage/libs/gmp/pylong.pyx | 4 +- .../libs/linkages/padics/unram_shared.pxi | 8 +- src/sage/libs/mpmath/ext_impl.pyx | 2 +- src/sage/libs/mpmath/ext_main.pyx | 2 +- src/sage/libs/mpmath/utils.pyx | 4 +- src/sage/libs/ntl/error.pyx | 4 +- src/sage/libs/ntl/ntl_ZZ_pEX_linkage.pxi | 2 +- src/sage/libs/pari/convert_flint.pyx | 2 +- src/sage/libs/pari/convert_gmp.pyx | 6 +- .../libs/pari/convert_sage_complex_double.pyx | 2 +- src/sage/libs/pari/tests.py | 8 +- src/sage/libs/singular/function.pyx | 4 +- src/sage/libs/singular/groebner_strategy.pyx | 2 +- src/sage/libs/singular/polynomial.pyx | 4 +- src/sage/libs/singular/ring.pyx | 2 +- src/sage/libs/singular/singular.pyx | 2 +- src/sage/libs/singular/standard_options.py | 2 +- src/sage/logic/boolformula.py | 2 +- src/sage/logic/logic.py | 4 +- src/sage/manifolds/chart.py | 6 +- src/sage/manifolds/continuous_map.py | 2 +- .../manifolds/differentiable/diff_form.py | 4 +- .../differentiable/diff_form_module.py | 2 +- src/sage/manifolds/differentiable/diff_map.py | 2 +- .../differentiable/examples/real_line.py | 2 +- .../differentiable/integrated_curve.py | 2 +- .../manifolds/differentiable/mixed_form.py | 2 +- .../differentiable/multivectorfield.py | 2 +- .../manifolds/differentiable/tensorfield.py | 2 +- .../differentiable/vectorfield_module.py | 2 +- .../manifolds/differentiable/vectorframe.py | 2 +- src/sage/manifolds/manifold_homset.py | 2 +- src/sage/manifolds/scalarfield.py | 2 +- src/sage/manifolds/subset.py | 2 +- src/sage/manifolds/utilities.py | 4 +- src/sage/matrix/action.pyx | 8 +- src/sage/matrix/args.pyx | 4 +- src/sage/matrix/compute_J_ideal.py | 2 +- src/sage/matrix/constructor.pyx | 10 +- src/sage/matrix/matrix0.pyx | 26 +- src/sage/matrix/matrix1.pyx | 24 +- src/sage/matrix/matrix2.pyx | 120 +++---- src/sage/matrix/matrix_cdv.pyx | 2 +- src/sage/matrix/matrix_cyclo_dense.pyx | 10 +- src/sage/matrix/matrix_dense.pyx | 2 +- src/sage/matrix/matrix_double_dense.pyx | 18 +- src/sage/matrix/matrix_generic_dense.pyx | 2 +- src/sage/matrix/matrix_generic_sparse.pyx | 2 +- src/sage/matrix/matrix_gf2e_dense.pyx | 8 +- src/sage/matrix/matrix_gfpn_dense.pyx | 12 +- src/sage/matrix/matrix_integer_dense.pyx | 32 +- .../matrix/matrix_integer_dense_saturation.py | 2 +- src/sage/matrix/matrix_integer_sparse.pyx | 6 +- src/sage/matrix/matrix_mod2_dense.pyx | 12 +- .../matrix/matrix_modn_dense_template.pxi | 2 +- src/sage/matrix/matrix_modn_sparse.pyx | 2 +- src/sage/matrix/matrix_mpolynomial_dense.pyx | 2 +- src/sage/matrix/matrix_numpy_dense.pyx | 2 +- src/sage/matrix/matrix_polynomial_dense.pyx | 2 +- src/sage/matrix/matrix_rational_dense.pyx | 10 +- src/sage/matrix/matrix_rational_sparse.pyx | 2 +- src/sage/matrix/matrix_space.py | 36 +-- src/sage/matrix/matrix_sparse.pyx | 8 +- src/sage/matrix/matrix_symbolic_dense.pyx | 18 +- src/sage/matrix/matrix_symbolic_sparse.pyx | 18 +- src/sage/matrix/misc.pyx | 2 +- src/sage/matrix/misc_flint.pyx | 2 +- src/sage/matrix/special.py | 2 +- src/sage/matrix/strassen.pyx | 2 +- src/sage/matroids/basis_exchange_matroid.pyx | 6 +- src/sage/matroids/database_matroids.py | 2 +- src/sage/matroids/graphic_matroid.py | 2 +- src/sage/matroids/linear_matroid.pyx | 10 +- src/sage/matroids/matroid.pyx | 2 +- src/sage/matroids/set_system.pyx | 2 +- src/sage/misc/binary_tree.pyx | 2 +- src/sage/misc/bindable_class.py | 2 +- src/sage/misc/c3.pyx | 10 +- src/sage/misc/c3_controlled.pyx | 2 +- src/sage/misc/cachefunc.pyx | 68 ++-- src/sage/misc/call.py | 2 +- src/sage/misc/callable_dict.pyx | 4 +- src/sage/misc/cython.py | 12 +- src/sage/misc/decorators.py | 10 +- src/sage/misc/dev_tools.py | 8 +- src/sage/misc/dist.py | 2 +- src/sage/misc/edit_module.py | 2 +- src/sage/misc/fast_methods.pyx | 2 +- src/sage/misc/functional.py | 38 +-- src/sage/misc/inherit_comparison.pyx | 2 +- src/sage/misc/latex.py | 14 +- src/sage/misc/latex_standalone.py | 2 +- src/sage/misc/lazy_attribute.pyx | 4 +- src/sage/misc/lazy_import.pyx | 2 +- src/sage/misc/lazy_string.pyx | 2 +- src/sage/misc/misc.py | 4 +- src/sage/misc/misc_c.pyx | 2 +- src/sage/misc/mrange.py | 16 +- src/sage/misc/nested_class.pyx | 4 +- src/sage/misc/package.py | 2 +- src/sage/misc/parser.pyx | 2 +- src/sage/misc/persist.pyx | 10 +- src/sage/misc/randstate.pyx | 2 +- src/sage/misc/repr.py | 2 +- src/sage/misc/reset.pyx | 2 +- src/sage/misc/sage_unittest.py | 2 +- src/sage/misc/sagedoc.py | 16 +- src/sage/misc/sageinspect.py | 56 ++-- src/sage/misc/superseded.py | 12 +- src/sage/misc/table.py | 2 +- src/sage/misc/temporary_file.py | 6 +- src/sage/misc/trace.py | 2 +- src/sage/misc/weak_dict.pyx | 16 +- src/sage/modular/abvar/abvar.py | 10 +- src/sage/modular/abvar/homspace.py | 6 +- .../modular/arithgroup/arithgroup_element.pyx | 4 +- .../modular/arithgroup/arithgroup_generic.py | 2 +- src/sage/modular/arithgroup/congroup_gamma.py | 2 +- .../modular/arithgroup/congroup_gamma1.py | 2 +- .../modular/arithgroup/congroup_gammaH.py | 2 +- src/sage/modular/arithgroup/congroup_sl2z.py | 2 +- src/sage/modular/arithgroup/farey_symbol.pyx | 4 +- .../modular/btquotients/pautomorphicform.py | 2 +- src/sage/modular/cusps.py | 6 +- src/sage/modular/dims.py | 4 +- src/sage/modular/dirichlet.py | 32 +- src/sage/modular/etaproducts.py | 2 +- src/sage/modular/hecke/ambient_module.py | 4 +- src/sage/modular/hecke/element.py | 2 +- src/sage/modular/hecke/homspace.py | 2 +- src/sage/modular/hecke/module.py | 2 +- src/sage/modular/hecke/submodule.py | 2 +- src/sage/modular/hypergeometric_misc.pyx | 2 +- src/sage/modular/hypergeometric_motive.py | 12 +- src/sage/modular/local_comp/type_space.py | 2 +- src/sage/modular/modform/ambient.py | 4 +- src/sage/modular/modform/ambient_R.py | 2 +- src/sage/modular/modform/ambient_g1.py | 2 +- src/sage/modular/modform/constructor.py | 10 +- .../modular/modform/cuspidal_submodule.py | 2 +- src/sage/modular/modform/eis_series.py | 6 +- src/sage/modular/modform/element.py | 18 +- src/sage/modular/modform/find_generators.py | 2 +- src/sage/modular/modform/half_integral.py | 2 +- .../modular/modform/hecke_operator_on_qexp.py | 6 +- src/sage/modular/modform/numerical.py | 2 +- src/sage/modular/modform/ring.py | 2 +- src/sage/modular/modform/space.py | 10 +- src/sage/modular/modform/tests.py | 2 +- src/sage/modular/modform/vm_basis.py | 2 +- src/sage/modular/modsym/ambient.py | 4 +- src/sage/modular/modsym/boundary.py | 8 +- src/sage/modular/modsym/modsym.py | 6 +- src/sage/modular/modsym/p1list.pyx | 4 +- src/sage/modular/modsym/space.py | 2 +- src/sage/modular/multiple_zeta.py | 2 +- src/sage/modular/pollack_stevens/modsym.py | 2 +- src/sage/modular/quasimodform/element.py | 4 +- src/sage/modular/quatalg/brandt.py | 2 +- src/sage/modular/ssmod/ssmod.py | 2 +- src/sage/modules/fg_pid/fgp_module.py | 12 +- src/sage/modules/free_module.py | 46 +-- src/sage/modules/free_module_element.pyx | 38 +-- src/sage/modules/free_module_homspace.py | 8 +- src/sage/modules/free_module_integer.py | 4 +- src/sage/modules/free_module_morphism.py | 2 +- src/sage/modules/free_quadratic_module.py | 8 +- ...free_quadratic_module_integer_symmetric.py | 2 +- src/sage/modules/matrix_morphism.py | 4 +- src/sage/modules/misc.py | 2 +- src/sage/modules/module.pyx | 4 +- src/sage/modules/quotient_module.py | 2 +- src/sage/modules/torsion_quadratic_module.py | 2 +- src/sage/modules/vector_mod2_dense.pyx | 4 +- src/sage/modules/vector_modn_dense.pyx | 2 +- src/sage/modules/vector_rational_dense.pyx | 2 +- src/sage/modules/vector_symbolic_dense.py | 2 +- src/sage/modules/vector_symbolic_sparse.py | 2 +- .../modules/with_basis/indexed_element.pyx | 12 +- src/sage/modules/with_basis/morphism.py | 12 +- src/sage/modules/with_basis/subquotient.py | 2 +- src/sage/monoids/automatic_semigroup.py | 2 +- src/sage/monoids/free_monoid.py | 2 +- src/sage/monoids/free_monoid_element.py | 2 +- .../numerical/backends/cvxopt_backend.pyx | 2 +- .../numerical/backends/generic_backend.pyx | 8 +- src/sage/numerical/backends/glpk_backend.pyx | 14 +- src/sage/numerical/backends/ppl_backend.pyx | 2 +- src/sage/numerical/backends/scip_backend.pyx | 8 +- src/sage/numerical/linear_functions.pyx | 6 +- src/sage/numerical/mip.pyx | 18 +- src/sage/numerical/optimize.py | 14 +- src/sage/parallel/decorate.py | 2 +- src/sage/parallel/map_reduce.py | 2 +- src/sage/plot/animate.py | 8 +- src/sage/plot/arrow.py | 6 +- src/sage/plot/bezier_path.py | 4 +- src/sage/plot/colors.py | 2 +- src/sage/plot/contour_plot.py | 16 +- src/sage/plot/density_plot.py | 4 +- src/sage/plot/disk.py | 2 +- src/sage/plot/graphics.py | 36 +-- src/sage/plot/line.py | 2 +- src/sage/plot/matrix_plot.py | 4 +- src/sage/plot/misc.py | 2 +- src/sage/plot/plot.py | 34 +- src/sage/plot/plot3d/base.pyx | 6 +- src/sage/plot/plot3d/implicit_plot3d.py | 2 +- src/sage/plot/plot3d/index_face_set.pyx | 4 +- src/sage/plot/plot3d/list_plot3d.py | 2 +- src/sage/plot/plot3d/parametric_plot3d.py | 4 +- src/sage/plot/plot3d/parametric_surface.pyx | 4 +- src/sage/plot/plot3d/platonic.py | 4 +- src/sage/plot/plot3d/plot3d.py | 2 +- src/sage/plot/plot3d/plot_field3d.py | 2 +- src/sage/plot/plot3d/shapes2.py | 8 +- src/sage/plot/plot3d/tachyon.py | 6 +- src/sage/plot/plot_field.py | 6 +- src/sage/plot/point.py | 6 +- .../probability/probability_distribution.pyx | 14 +- src/sage/quadratic_forms/binary_qf.py | 14 +- src/sage/quadratic_forms/genera/genus.py | 4 +- src/sage/quadratic_forms/qfsolve.py | 4 +- src/sage/quadratic_forms/quadratic_form.py | 2 +- .../quadratic_form__equivalence_testing.py | 2 +- src/sage/quivers/algebra.py | 4 +- src/sage/quivers/morphism.py | 2 +- src/sage/quivers/paths.pyx | 2 +- src/sage/repl/display/fancy_repr.py | 2 +- src/sage/repl/display/pretty_print.py | 2 +- src/sage/repl/inputhook.py | 2 +- src/sage/repl/interpreter.py | 16 +- src/sage/repl/ipython_extension.py | 2 +- src/sage/repl/ipython_kernel/install.py | 2 +- src/sage/repl/ipython_kernel/kernel.py | 2 +- src/sage/repl/ipython_tests.py | 4 +- src/sage/repl/preparse.py | 36 +-- src/sage/repl/user_globals.py | 2 +- .../rings/algebraic_closure_finite_field.py | 4 +- .../asymptotic_expansion_generators.py | 8 +- src/sage/rings/asymptotic/asymptotic_ring.py | 32 +- ...otics_multivariate_generating_functions.py | 8 +- src/sage/rings/asymptotic/growth_group.py | 4 +- .../asymptotic/growth_group_cartesian.py | 2 +- src/sage/rings/asymptotic/term_monoid.py | 2 +- src/sage/rings/bernmm.pyx | 2 +- src/sage/rings/complex_arb.pyx | 8 +- src/sage/rings/complex_double.pyx | 6 +- src/sage/rings/complex_interval.pyx | 8 +- src/sage/rings/complex_interval_field.py | 6 +- src/sage/rings/complex_mpfr.pyx | 18 +- src/sage/rings/continued_fraction.py | 16 +- src/sage/rings/continued_fraction_gosper.py | 2 +- src/sage/rings/factorint.pyx | 2 +- src/sage/rings/factorint_pari.pyx | 2 +- src/sage/rings/fast_arith.pyx | 2 +- src/sage/rings/finite_rings/element_base.pyx | 6 +- .../rings/finite_rings/element_givaro.pyx | 6 +- .../rings/finite_rings/element_ntl_gf2e.pyx | 14 +- .../rings/finite_rings/element_pari_ffelt.pyx | 12 +- .../rings/finite_rings/finite_field_base.pyx | 20 +- .../finite_rings/finite_field_constructor.py | 16 +- .../finite_rings/finite_field_prime_modn.py | 2 +- src/sage/rings/finite_rings/homset.py | 4 +- src/sage/rings/finite_rings/integer_mod.pyx | 32 +- .../rings/finite_rings/integer_mod_ring.py | 16 +- src/sage/rings/finite_rings/residue_field.pyx | 16 +- src/sage/rings/fraction_field.py | 28 +- src/sage/rings/fraction_field_FpT.pyx | 6 +- src/sage/rings/fraction_field_element.pyx | 12 +- src/sage/rings/function_field/constructor.py | 2 +- src/sage/rings/function_field/element.pyx | 4 +- .../rings/function_field/function_field.py | 4 +- .../function_field/function_field_polymod.py | 6 +- .../function_field/function_field_rational.py | 2 +- .../rings/function_field/order_polymod.py | 2 +- src/sage/rings/function_field/valuation.py | 2 +- src/sage/rings/ideal.py | 8 +- src/sage/rings/infinity.py | 12 +- src/sage/rings/integer.pyx | 58 ++-- src/sage/rings/integer_ring.pyx | 6 +- src/sage/rings/invariants/invariant_theory.py | 6 +- src/sage/rings/invariants/reconstruction.py | 2 +- src/sage/rings/laurent_series_ring.py | 14 +- .../rings/laurent_series_ring_element.pyx | 22 +- src/sage/rings/lazy_series.py | 6 +- src/sage/rings/lazy_series_ring.py | 6 +- src/sage/rings/localization.py | 10 +- src/sage/rings/morphism.pyx | 14 +- src/sage/rings/multi_power_series_ring.py | 4 +- .../rings/multi_power_series_ring_element.py | 8 +- src/sage/rings/noncommutative_ideals.pyx | 2 +- src/sage/rings/number_field/bdd_height.py | 2 +- src/sage/rings/number_field/galois_group.py | 10 +- src/sage/rings/number_field/homset.py | 10 +- src/sage/rings/number_field/number_field.py | 136 ++++---- .../number_field/number_field_element.pyx | 48 +-- .../number_field_element_quadratic.pyx | 26 +- .../rings/number_field/number_field_ideal.py | 32 +- .../number_field/number_field_ideal_rel.py | 6 +- .../number_field/number_field_morphisms.pyx | 6 +- .../rings/number_field/number_field_rel.py | 18 +- src/sage/rings/number_field/order.py | 10 +- .../small_primes_of_degree_one.py | 4 +- .../rings/number_field/splitting_field.py | 4 +- .../rings/number_field/totallyreal_data.pyx | 2 +- .../rings/number_field/totallyreal_rel.py | 4 +- src/sage/rings/number_field/unit_group.py | 4 +- src/sage/rings/padics/CA_template.pxi | 8 +- src/sage/rings/padics/CR_template.pxi | 4 +- src/sage/rings/padics/FM_template.pxi | 2 +- src/sage/rings/padics/FP_template.pxi | 4 +- src/sage/rings/padics/factory.py | 6 +- src/sage/rings/padics/generic_nodes.py | 4 +- src/sage/rings/padics/local_generic.py | 2 +- .../rings/padics/local_generic_element.pyx | 8 +- .../rings/padics/padic_ZZ_pX_CA_element.pyx | 10 +- .../rings/padics/padic_ZZ_pX_CR_element.pyx | 14 +- .../rings/padics/padic_ZZ_pX_FM_element.pyx | 10 +- src/sage/rings/padics/padic_ZZ_pX_element.pyx | 6 +- src/sage/rings/padics/padic_base_leaves.py | 4 +- .../rings/padics/padic_extension_generic.py | 2 +- .../rings/padics/padic_extension_leaves.py | 2 +- .../rings/padics/padic_fixed_mod_element.pyx | 2 +- src/sage/rings/padics/padic_generic.py | 4 +- .../rings/padics/padic_generic_element.pyx | 20 +- .../rings/padics/padic_lattice_element.py | 4 +- src/sage/rings/padics/padic_printing.pyx | 2 +- .../rings/padics/padic_template_element.pxi | 2 +- src/sage/rings/padics/padic_valuation.py | 4 +- src/sage/rings/padics/qadic_flint_CA.pyx | 2 +- src/sage/rings/padics/qadic_flint_CR.pyx | 4 +- src/sage/rings/padics/qadic_flint_FP.pyx | 4 +- src/sage/rings/polynomial/complex_roots.py | 2 +- src/sage/rings/polynomial/cyclotomic.pyx | 2 +- src/sage/rings/polynomial/flatten.py | 2 +- src/sage/rings/polynomial/groebner_fan.py | 2 +- src/sage/rings/polynomial/hilbert.pyx | 4 +- .../polynomial/infinite_polynomial_element.py | 8 +- .../polynomial/infinite_polynomial_ring.py | 10 +- .../rings/polynomial/laurent_polynomial.pyx | 16 +- .../polynomial/laurent_polynomial_mpair.pyx | 30 +- .../polynomial/laurent_polynomial_ring.py | 10 +- .../laurent_polynomial_ring_base.py | 10 +- .../rings/polynomial/multi_polynomial.pyx | 12 +- .../polynomial/multi_polynomial_element.py | 38 +-- .../polynomial/multi_polynomial_ideal.py | 80 ++--- .../multi_polynomial_libsingular.pyx | 72 ++--- .../rings/polynomial/multi_polynomial_ring.py | 8 +- .../polynomial/multi_polynomial_ring_base.pyx | 6 +- .../polynomial/multi_polynomial_sequence.py | 24 +- .../rings/polynomial/ore_function_element.py | 2 +- .../rings/polynomial/ore_function_field.py | 2 +- .../polynomial/ore_polynomial_element.pyx | 2 +- .../rings/polynomial/ore_polynomial_ring.py | 2 +- .../polynomial/padics/polynomial_padic.py | 8 +- .../polynomial_padic_capped_relative_dense.py | 8 +- .../padics/polynomial_padic_flat.py | 2 +- src/sage/rings/polynomial/pbori/pbori.pyx | 42 +-- src/sage/rings/polynomial/plural.pyx | 14 +- src/sage/rings/polynomial/polydict.pyx | 14 +- .../polynomial/polynomial_element_generic.py | 16 +- src/sage/rings/polynomial/polynomial_gf2x.pyx | 2 +- .../polynomial_integer_dense_flint.pyx | 18 +- .../polynomial_integer_dense_ntl.pyx | 4 +- .../polynomial/polynomial_modn_dense_ntl.pyx | 6 +- .../polynomial/polynomial_quotient_ring.py | 20 +- .../polynomial_quotient_ring_element.py | 8 +- .../polynomial/polynomial_rational_flint.pyx | 20 +- .../polynomial/polynomial_real_mpfr_dense.pyx | 12 +- src/sage/rings/polynomial/polynomial_ring.py | 50 +-- .../polynomial/polynomial_ring_constructor.py | 8 +- .../polynomial_singular_interface.py | 4 +- .../rings/polynomial/polynomial_template.pxi | 4 +- .../polynomial/polynomial_zmod_flint.pyx | 6 +- .../rings/polynomial/polynomial_zz_pex.pyx | 10 +- src/sage/rings/polynomial/real_roots.pyx | 4 +- src/sage/rings/polynomial/term_order.py | 12 +- .../polynomial/weil/weil_polynomials.pyx | 6 +- src/sage/rings/power_series_pari.pyx | 4 +- src/sage/rings/power_series_poly.pyx | 12 +- src/sage/rings/power_series_ring.py | 16 +- src/sage/rings/power_series_ring_element.pyx | 12 +- src/sage/rings/puiseux_series_ring.py | 2 +- src/sage/rings/qqbar.py | 44 +-- src/sage/rings/qqbar_decorators.py | 2 +- src/sage/rings/quotient_ring.py | 20 +- src/sage/rings/quotient_ring_element.py | 14 +- src/sage/rings/rational.pyx | 26 +- src/sage/rings/rational_field.py | 4 +- src/sage/rings/real_arb.pyx | 4 +- src/sage/rings/real_double.pyx | 6 +- src/sage/rings/real_double_element_gsl.pyx | 2 +- src/sage/rings/real_lazy.pyx | 4 +- src/sage/rings/real_mpfi.pyx | 12 +- src/sage/rings/real_mpfr.pyx | 18 +- src/sage/rings/ring.pyx | 20 +- src/sage/rings/ring_extension.pyx | 2 +- src/sage/rings/sum_of_squares.pyx | 2 +- src/sage/rings/tate_algebra.py | 2 +- src/sage/rings/tate_algebra_ideal.pyx | 4 +- src/sage/rings/tests.py | 2 +- src/sage/rings/universal_cyclotomic_field.py | 40 +-- .../rings/valuation/augmented_valuation.py | 4 +- .../rings/valuation/inductive_valuation.py | 4 +- src/sage/rings/valuation/valuation_space.py | 2 +- src/sage/sat/boolean_polynomials.py | 6 +- src/sage/sat/solvers/dimacs.py | 2 +- src/sage/sat/solvers/satsolver.pyx | 2 +- src/sage/schemes/affine/affine_morphism.py | 2 +- src/sage/schemes/affine/affine_space.py | 2 +- src/sage/schemes/affine/affine_subscheme.py | 2 +- src/sage/schemes/curves/projective_curve.py | 2 +- src/sage/schemes/curves/zariski_vankampen.py | 2 +- .../cyclic_covers/cycliccover_finite_field.py | 2 +- src/sage/schemes/elliptic_curves/BSD.py | 2 +- .../schemes/elliptic_curves/cardinality.py | 2 +- .../schemes/elliptic_curves/constructor.py | 20 +- src/sage/schemes/elliptic_curves/ell_field.py | 10 +- .../elliptic_curves/ell_finite_field.py | 16 +- .../schemes/elliptic_curves/ell_generic.py | 28 +- .../schemes/elliptic_curves/ell_local_data.py | 10 +- .../elliptic_curves/ell_modular_symbols.py | 6 +- .../elliptic_curves/ell_number_field.py | 48 +-- .../elliptic_curves/ell_padic_field.py | 2 +- src/sage/schemes/elliptic_curves/ell_point.py | 48 +-- .../elliptic_curves/ell_rational_field.py | 44 +-- .../schemes/elliptic_curves/ell_torsion.py | 2 +- src/sage/schemes/elliptic_curves/ell_wp.py | 2 +- .../schemes/elliptic_curves/formal_group.py | 2 +- src/sage/schemes/elliptic_curves/gal_reps.py | 6 +- .../elliptic_curves/gal_reps_number_field.py | 8 +- src/sage/schemes/elliptic_curves/gp_simon.py | 4 +- src/sage/schemes/elliptic_curves/heegner.py | 4 +- src/sage/schemes/elliptic_curves/height.py | 4 +- .../schemes/elliptic_curves/hom_frobenius.py | 4 +- .../schemes/elliptic_curves/hom_scalar.py | 2 +- .../schemes/elliptic_curves/hom_velusqrt.py | 2 +- .../schemes/elliptic_curves/isogeny_class.py | 2 +- .../elliptic_curves/isogeny_small_degree.py | 10 +- .../schemes/elliptic_curves/kodaira_symbol.py | 2 +- src/sage/schemes/elliptic_curves/kraus.py | 4 +- .../schemes/elliptic_curves/lseries_ell.py | 2 +- .../schemes/elliptic_curves/mod_sym_num.pyx | 4 +- .../schemes/elliptic_curves/padic_lseries.py | 8 +- src/sage/schemes/elliptic_curves/padics.py | 8 +- .../schemes/elliptic_curves/period_lattice.py | 16 +- .../schemes/elliptic_curves/saturation.py | 2 +- src/sage/schemes/elliptic_curves/sha_tate.py | 10 +- .../elliptic_curves/weierstrass_morphism.py | 10 +- src/sage/schemes/generic/algebraic_scheme.py | 8 +- src/sage/schemes/generic/divisor.py | 2 +- src/sage/schemes/generic/morphism.py | 8 +- src/sage/schemes/generic/point.py | 2 +- src/sage/schemes/generic/scheme.py | 12 +- src/sage/schemes/generic/spec.py | 2 +- .../hyperelliptic_curves/constructor.py | 2 +- .../hyperelliptic_finite_field.py | 18 +- .../hyperelliptic_generic.py | 2 +- .../hyperelliptic_padic_field.py | 2 +- .../hyperelliptic_curves/jacobian_morphism.py | 2 +- .../schemes/hyperelliptic_curves/mestre.py | 4 +- src/sage/schemes/plane_conics/con_field.py | 4 +- .../con_rational_function_field.py | 2 +- .../schemes/projective/projective_homset.py | 4 +- .../schemes/projective/projective_morphism.py | 6 +- .../schemes/projective/projective_point.py | 6 +- src/sage/schemes/toric/divisor.py | 4 +- src/sage/schemes/toric/fano_variety.py | 2 +- src/sage/schemes/toric/morphism.py | 2 +- src/sage/schemes/toric/toric_subscheme.py | 4 +- src/sage/schemes/toric/variety.py | 8 +- src/sage/sets/disjoint_set.pyx | 2 +- .../sets/disjoint_union_enumerated_sets.py | 2 +- src/sage/sets/family.pyx | 12 +- src/sage/sets/finite_enumerated_set.py | 6 +- src/sage/sets/integer_range.py | 2 +- src/sage/sets/real_set.py | 2 +- src/sage/sets/recursively_enumerated_set.pyx | 10 +- src/sage/sets/set.py | 8 +- src/sage/sets/set_from_iterator.py | 2 +- src/sage/sets/totally_ordered_finite_set.py | 2 +- src/sage/stats/basic_stats.py | 2 +- src/sage/stats/hmm/chmm.pyx | 2 +- src/sage/stats/hmm/hmm.pyx | 2 +- src/sage/structure/category_object.pyx | 6 +- src/sage/structure/coerce.pyx | 18 +- src/sage/structure/coerce_actions.pyx | 38 +-- src/sage/structure/coerce_dict.pyx | 12 +- src/sage/structure/coerce_maps.pyx | 4 +- src/sage/structure/dynamic_class.py | 6 +- src/sage/structure/element.pyx | 28 +- src/sage/structure/element_wrapper.pyx | 8 +- src/sage/structure/factorization_integer.py | 2 +- src/sage/structure/factory.pyx | 6 +- src/sage/structure/formal_sum.py | 2 +- src/sage/structure/global_options.py | 2 +- src/sage/structure/parent.pyx | 50 +-- src/sage/structure/sage_object.pyx | 4 +- src/sage/structure/sequence.py | 2 +- src/sage/structure/unique_representation.py | 4 +- src/sage/symbolic/assumptions.py | 8 +- src/sage/symbolic/callable.py | 4 +- src/sage/symbolic/comparison_impl.pxi | 10 +- src/sage/symbolic/constants.py | 2 +- src/sage/symbolic/constants_c_impl.pxi | 4 +- src/sage/symbolic/expression.pyx | 298 +++++++++--------- .../expression_conversion_algebraic.py | 6 +- .../symbolic/expression_conversion_sympy.py | 6 +- src/sage/symbolic/expression_conversions.py | 16 +- src/sage/symbolic/function.pyx | 12 +- src/sage/symbolic/function_factory.py | 2 +- src/sage/symbolic/integration/external.py | 20 +- src/sage/symbolic/integration/integral.py | 68 ++-- src/sage/symbolic/operators.py | 2 +- src/sage/symbolic/pynac.pxi | 2 +- src/sage/symbolic/pynac_impl.pxi | 14 +- src/sage/symbolic/random_tests.py | 2 +- src/sage/symbolic/relation.py | 32 +- src/sage/symbolic/ring.pyx | 22 +- src/sage/symbolic/series_impl.pxi | 8 +- src/sage/symbolic/tests.py | 2 +- src/sage/symbolic/units.py | 2 +- src/sage/tensor/modules/all.py | 2 +- src/sage/tensor/modules/comp.py | 6 +- .../tensor/modules/finite_rank_free_module.py | 4 +- .../tensor/modules/free_module_alt_form.py | 2 +- src/sage/tensor/modules/free_module_basis.py | 4 +- src/sage/tensor/modules/free_module_tensor.py | 2 +- src/sage/tests/book_stein_ent.py | 2 +- .../sol/graphique_doctest.py | 2 +- src/sage/tests/cmdline.py | 6 +- src/sage/tests/cython.pyx | 2 +- src/sage/tests/lazy_imports.py | 2 +- src/sage/tests/numpy.py | 2 +- src/sage/tests/parigp.py | 8 +- src/sage/tests/startup.py | 6 +- src/sage/tests/sympy.py | 2 +- src/sage/topology/cubical_complex.py | 2 +- src/sage/topology/simplicial_complex.py | 30 +- .../topology/simplicial_complex_examples.py | 2 +- src/sage/typeset/character_art.py | 8 +- src/sage/typeset/character_art_factory.py | 10 +- 957 files changed, 3968 insertions(+), 3968 deletions(-) diff --git a/src/sage/algebras/clifford_algebra.py b/src/sage/algebras/clifford_algebra.py index 64ba03acf87..7aeddbed2b2 100644 --- a/src/sage/algebras/clifford_algebra.py +++ b/src/sage/algebras/clifford_algebra.py @@ -987,7 +987,7 @@ def lift_module_morphism(self, m, names=None): TESTS: Check that the resulting morphism knows it is for - finite-dimensional algebras (:trac:`25339`):: + finite-dimensional algebras (:issue:`25339`):: sage: Q = QuadraticForm(ZZ, 3, [1,2,3,4,5,6]) sage: Cl. = CliffordAlgebra(Q) @@ -1071,7 +1071,7 @@ def lift_isometry(self, m, names=None): TESTS: Check that the resulting morphism knows it is for - finite-dimensional algebras (:trac:`25339`):: + finite-dimensional algebras (:issue:`25339`):: sage: Q = QuadraticForm(ZZ, 3, [1,2,3,4,5,6]) sage: Cl. = CliffordAlgebra(Q) @@ -1553,7 +1553,7 @@ def lift_morphism(self, phi, names=None): TESTS: Check that the resulting morphism knows it is for - finite-dimensional algebras (:trac:`25339`):: + finite-dimensional algebras (:issue:`25339`):: sage: E = ExteriorAlgebra(ZZ, 'e', 3) sage: T = jordan_block(0, 2).block_sum(jordan_block(0, 1)) @@ -1772,7 +1772,7 @@ def interior_product_on_basis(self, a, b): sage: E.interior_product_on_basis(k[7], k[5]) -y - Check :trac:`34694`:: + Check :issue:`34694`:: sage: # needs sage.symbolic sage: E = ExteriorAlgebra(SR,'e',3) @@ -2042,7 +2042,7 @@ def __init__(self, E, s_coeff): sage: TestSuite(par).run(skip="_test_pickling") Check that it knows it is a finite-dimensional algebra - morphism (:trac:`25339`):; + morphism (:issue:`25339`):; sage: par.category_for() Category of finite dimensional algebras with basis over Rational Field diff --git a/src/sage/algebras/clifford_algebra_element.pyx b/src/sage/algebras/clifford_algebra_element.pyx index 2e6ad0a8547..5719f8f9f5c 100644 --- a/src/sage/algebras/clifford_algebra_element.pyx +++ b/src/sage/algebras/clifford_algebra_element.pyx @@ -90,7 +90,7 @@ cdef class CliffordAlgebraElement(IndexedFreeModuleElement): sage: 0*x 0 - :trac:`34707`:: + :issue:`34707`:: sage: Q = QuadraticForm(QQ, 2, [0,5,0]) sage: C. = CliffordAlgebra(Q) diff --git a/src/sage/algebras/cluster_algebra.py b/src/sage/algebras/cluster_algebra.py index 28c229edc09..17bc36b1661 100644 --- a/src/sage/algebras/cluster_algebra.py +++ b/src/sage/algebras/cluster_algebra.py @@ -1182,7 +1182,7 @@ def _mutated_F(self, k, old_g_vector): sage: S._mutated_F(0, (1, 0)) u0 + 1 - Check that :trac:`28176` is fixed:: + Check that :issue:`28176` is fixed:: sage: A = ClusterAlgebra(matrix([[0,2],[-2,0]])) sage: S = A.initial_seed() @@ -1280,7 +1280,7 @@ def __classcall__(self, data, **kwargs): A Cluster Algebra with cluster variables x0, x1 and no coefficients over Integer Ring - Check that :trac:`28176` is fixed:: + Check that :issue:`28176` is fixed:: sage: A1 = ClusterAlgebra(['A',2]) sage: A2 = ClusterAlgebra(['A',2], cluster_variable_prefix='x') @@ -1503,7 +1503,7 @@ def _coerce_map_from_(self, other): sage: S.cluster_variable(seq2[-1]) == g(A3.cluster_variable((1, -2, 2))) True - Check that :trac:`23654` is fixed:: + Check that :issue:`23654` is fixed:: sage: A = ClusterAlgebra(['A',2]) sage: AA = ClusterAlgebra(['A',3]) @@ -2443,7 +2443,7 @@ def mutate_initial(self, direction, **kwargs): sage: A.mutate_initial([0,1]*10, mutating_F=False) A Cluster Algebra with cluster variables x20, x21 and no coefficients over Integer Ring - Check that :trac:`28176` is fixed:: + Check that :issue:`28176` is fixed:: sage: A = ClusterAlgebra( matrix(5,[0,1,-1,1,-1]), cluster_variable_names=['p13'], coefficient_names=['p12','p23','p34','p41']); A A Cluster Algebra with cluster variable p13 and coefficients p12, p23, p34, p41 over Integer Ring diff --git a/src/sage/algebras/commutative_dga.py b/src/sage/algebras/commutative_dga.py index a65581f8db1..c537c3e64a8 100644 --- a/src/sage/algebras/commutative_dga.py +++ b/src/sage/algebras/commutative_dga.py @@ -179,7 +179,7 @@ def __classcall__(cls, A, im_gens): sage: d1 is d2 True - Check that :trac:`34818` is solved:: + Check that :issue:`34818` is solved:: sage: A. = GradedCommutativeAlgebra(QQ,degrees=(2,2,3,3)) sage: A = A.quotient(A.ideal([a*u,b*u,x*u])) @@ -638,7 +638,7 @@ def differential_matrix_multigraded(self, n, total=False): Rename this to ``differential_matrix`` once inheritance, overriding, and cached methods work together better. See - :trac:`17201`. + :issue:`17201`. INPUT: @@ -954,7 +954,7 @@ def __classcall__(cls, base, names=None, degrees=None, R=None, I=None, category= sage: A1 is A2 True - Testing the single generator case (:trac:`25276`):: + Testing the single generator case (:issue:`25276`):: sage: A3. = GradedCommutativeAlgebra(QQ) sage: z**2 == 0 @@ -2338,7 +2338,7 @@ def cohomology(self, n): TESTS: - Check that the issue discovered in :trac:`28155` is solved:: + Check that the issue discovered in :issue:`28155` is solved:: sage: A. = GradedCommutativeAlgebra(QQ) sage: B = A.cdg_algebra({e5:e1*e2+e3*e4}) @@ -3111,7 +3111,7 @@ def cohomology_class(self): sage: b.cohomology_class().parent() Free module generated by {} over Rational Field - Check that the issue detected in :trac:`28155` is solved:: + Check that the issue detected in :issue:`28155` is solved:: sage: A. = GradedCommutativeAlgebra(QQ) sage: B = A.cdg_algebra({e5: e1*e2+e3*e4}) diff --git a/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pyx b/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pyx index d58e1ac8647..9b085f6fd8a 100644 --- a/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pyx +++ b/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pyx @@ -222,7 +222,7 @@ cdef class FiniteDimensionalAlgebraElement(AlgebraElement): sage: B(5).vector() (5, 0, 5) """ - # By :trac:`23707`, ``self._vector`` now is a single row matrix, + # By :issue:`23707`, ``self._vector`` now is a single row matrix, # not a vector, which results in a speed-up. # For backwards compatibility, this method still returns a vector. return self._vector[0] @@ -384,7 +384,7 @@ cdef class FiniteDimensionalAlgebraElement(AlgebraElement): sage: B(1) != 0 True - By :trac:`23707`, an ordering is defined on finite-dimensional algebras, corresponding + By :issue:`23707`, an ordering is defined on finite-dimensional algebras, corresponding to the ordering of the defining vectors; this may be handy if the vector space basis of the algebra corresponds to the standard monomials of the relation ideal, when the algebra is considered as a quotient of a path algebra. :: diff --git a/src/sage/algebras/free_algebra.py b/src/sage/algebras/free_algebra.py index 2ec097d8a82..66d0a425c31 100644 --- a/src/sage/algebras/free_algebra.py +++ b/src/sage/algebras/free_algebra.py @@ -27,7 +27,7 @@ Free Algebra on 3 generators (x, y, z) over Integer Ring The above free algebra is based on a generic implementation. By -:trac:`7797`, there is a different implementation +:issue:`7797`, there is a different implementation :class:`~sage.algebras.letterplace.free_algebra_letterplace.FreeAlgebra_letterplace` based on Singular's letterplace rings. It is currently restricted to weighted homogeneous elements and is therefore not the default. But the @@ -53,7 +53,7 @@ True Positive integral degree weights for the letterplace implementation -was introduced in :trac:`7797`:: +was introduced in :issue:`7797`:: sage: # needs sage.libs.singular sage: F. = FreeAlgebra(QQ, implementation='letterplace', degrees=[2,1,3]) @@ -213,7 +213,7 @@ class FreeAlgebraFactory(UniqueFactory): True sage: TestSuite(F).run() - By :trac:`7797`, we provide a different implementation of free + By :issue:`7797`, we provide a different implementation of free algebras, based on Singular's "letterplace rings". Our letterplace wrapper allows for choosing positive integral degree weights for the generators of the free algebra. However, only (weighted) homogeneous @@ -449,7 +449,7 @@ class FreeAlgebra_generic(CombinatorialFreeModule, Algebra): sage: F == FreeAlgebra(QQ,3,'y') False - Note that since :trac:`7797` there is a different + Note that since :issue:`7797` there is a different implementation of free algebras. Two corresponding free algebras in different implementations are not equal, but there is a coercion. @@ -613,7 +613,7 @@ def _element_constructor_(self, x): sage: F.1 + (z+1)*L.2 b + (z+1)*c - Check that :trac:`15169` is fixed:: + Check that :issue:`15169` is fixed:: sage: A. = FreeAlgebra(CC) sage: A(2) @@ -1068,7 +1068,7 @@ def lie_polynomial(self, w): sage: F.lie_polynomial('') 1 - We check that :trac:`22251` is fixed:: + We check that :issue:`22251` is fixed:: sage: F.lie_polynomial(x*y*z) x*y*z - x*z*y - y*z*x + z*y*x diff --git a/src/sage/algebras/free_algebra_element.py b/src/sage/algebras/free_algebra_element.py index b2e0df0e15b..9fe2dcfb554 100644 --- a/src/sage/algebras/free_algebra_element.py +++ b/src/sage/algebras/free_algebra_element.py @@ -92,7 +92,7 @@ def _repr_(self): sage: repr(-x+3*y*z) # indirect doctest '-x + 3*y*z' - Github issue :trac:`11068` enables the use of local variable names:: + Github issue :issue:`11068` enables the use of local variable names:: sage: from sage.structure.parent_gens import localvars sage: with localvars(A, ['a','b','c']): diff --git a/src/sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pyx b/src/sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pyx index 9ba832c5124..bd809acd5cf 100644 --- a/src/sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pyx +++ b/src/sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pyx @@ -311,7 +311,7 @@ cpdef _unflatten_entries(fusion_ring, list entries) noexcept: coefficients representation. Used to circumvent pickling issue introduced by PARI settigs - in :trac:`30537`. + in :issue:`30537`. EXAMPLES:: diff --git a/src/sage/algebras/fusion_rings/poly_tup_engine.pyx b/src/sage/algebras/fusion_rings/poly_tup_engine.pyx index 5c3f54df9a6..27f4ff1eb71 100644 --- a/src/sage/algebras/fusion_rings/poly_tup_engine.pyx +++ b/src/sage/algebras/fusion_rings/poly_tup_engine.pyx @@ -80,7 +80,7 @@ cdef inline tuple _flatten_coeffs(tuple eq_tup) noexcept: coefficients. This is used to avoid pickling cyclotomic coefficient objects, which fails - with new PARI settings introduced in :trac:`30537`. + with new PARI settings introduced in :issue:`30537`. """ cdef list flat = [] cdef NumberFieldElement_absolute cyc_coeff @@ -94,7 +94,7 @@ cpdef tuple _unflatten_coeffs(field, tuple eq_tup) noexcept: coefficients representation. Used to circumvent pickling issue introduced by PARI settigs - in :trac:`30537`. + in :issue:`30537`. EXAMPLES:: diff --git a/src/sage/algebras/group_algebra.py b/src/sage/algebras/group_algebra.py index eaffe7538b7..5d9f56cd6d1 100644 --- a/src/sage/algebras/group_algebra.py +++ b/src/sage/algebras/group_algebra.py @@ -185,7 +185,7 @@ def _coerce_map_from_(self, S): sage: [a, b] = kH.gens() sage: x = kH(a) + kH(b) + kH.one(); print(x) () + (5,6,7)(12,14,18) + (1,2)(3,4) - sage: x*x #checks :trac:34292 + sage: x*x #checks :issue:34292 (5,7,6)(12,18,14) As expected, there is no coercion when restricting the diff --git a/src/sage/algebras/hall_algebra.py b/src/sage/algebras/hall_algebra.py index 83442eabc94..aef0df7ce5a 100644 --- a/src/sage/algebras/hall_algebra.py +++ b/src/sage/algebras/hall_algebra.py @@ -194,7 +194,7 @@ class HallAlgebra(CombinatorialFreeModule): The coefficients are actually Laurent polynomials in general, so we don't have to work over the fraction field of `\ZZ[q]`. This didn't work before - :trac:`15345`:: + :issue:`15345`:: sage: R. = LaurentPolynomialRing(ZZ) sage: H = HallAlgebra(R, q) diff --git a/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx b/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx index 8e48f0530d9..8a95262410e 100644 --- a/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx +++ b/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx @@ -3,7 +3,7 @@ Weighted homogeneous elements of free algebras, in letterplace implementation AUTHOR: -- Simon King (2011-03-23): Github issue :trac:`7797` +- Simon King (2011-03-23): Github issue :issue:`7797` """ diff --git a/src/sage/algebras/letterplace/free_algebra_letterplace.pyx b/src/sage/algebras/letterplace/free_algebra_letterplace.pyx index ddf3e5c2f09..844a50137a7 100644 --- a/src/sage/algebras/letterplace/free_algebra_letterplace.pyx +++ b/src/sage/algebras/letterplace/free_algebra_letterplace.pyx @@ -12,7 +12,7 @@ Free associative unital algebras, implemented via Singular's letterplace rings AUTHOR: -- Simon King (2011-03-21): :trac:`7797` +- Simon King (2011-03-21): :issue:`7797` With this implementation, Groebner bases out to a degree bound and normal forms can be computed for twosided weighted homogeneous ideals diff --git a/src/sage/algebras/letterplace/letterplace_ideal.pyx b/src/sage/algebras/letterplace/letterplace_ideal.pyx index 747ba2ca6e0..eeebf4422a4 100644 --- a/src/sage/algebras/letterplace/letterplace_ideal.pyx +++ b/src/sage/algebras/letterplace/letterplace_ideal.pyx @@ -29,7 +29,7 @@ forms and can test containment in the ideal:: AUTHOR: -- Simon King (2011-03-22): See :trac:`7797`. +- Simon King (2011-03-22): See :issue:`7797`. """ # **************************************************************************** # Copyright (C) 2011 Simon King @@ -310,7 +310,7 @@ class LetterplaceIdeal(Ideal_nc): degbound = max_deg # The following is a workaround for calling Singular's new Letterplace - # API (see :trac:`25993`). We construct a temporary polynomial ring L + # API (see :issue:`25993`). We construct a temporary polynomial ring L # with letterplace attributes set as required by the API. As L has # duplicate variable names, we need to handle this ring carefully; in # particular, we cannot coerce to and from L, so we use homomorphisms diff --git a/src/sage/algebras/lie_algebras/classical_lie_algebra.py b/src/sage/algebras/lie_algebras/classical_lie_algebra.py index 11900983313..4466cf6e46e 100644 --- a/src/sage/algebras/lie_algebras/classical_lie_algebra.py +++ b/src/sage/algebras/lie_algebras/classical_lie_algebra.py @@ -132,13 +132,13 @@ def __init__(self, R, ct, e, f, h, sparse=True): TESTS: - Check that :trac:`23266` is fixed:: + Check that :issue:`23266` is fixed:: sage: sl2 = lie_algebras.sl(QQ, 2, 'matrix') sage: isinstance(sl2.indices(), FiniteEnumeratedSet) True - Check that elements are hashable (see :trac:`28961`):: + Check that elements are hashable (see :issue:`28961`):: sage: sl2 = lie_algebras.sl(QQ, 2, 'matrix') sage: e,f,h = list(sl2.basis()) @@ -432,7 +432,7 @@ def __init__(self, R, n): TESTS: - Check that :trac:`23266` is fixed:: + Check that :issue:`23266` is fixed:: sage: gl2 = lie_algebras.gl(QQ, 2) sage: isinstance(gl2.basis().keys(), FiniteEnumeratedSet) diff --git a/src/sage/algebras/lie_algebras/free_lie_algebra.py b/src/sage/algebras/lie_algebras/free_lie_algebra.py index a0186ea7ab5..3d36e870b98 100644 --- a/src/sage/algebras/lie_algebras/free_lie_algebra.py +++ b/src/sage/algebras/lie_algebras/free_lie_algebra.py @@ -670,7 +670,7 @@ class Lyndon(FreeLieBasis_abstract): TESTS: - We check that :trac:`27069` is fixed:: + We check that :issue:`27069` is fixed:: sage: Lzxy = LieAlgebra(QQ, ['z','x','y']).Lyndon() sage: z,x,y = Lzxy.gens(); z,x,y diff --git a/src/sage/algebras/lie_algebras/heisenberg.py b/src/sage/algebras/lie_algebras/heisenberg.py index 6fbf9e72675..269965b91fd 100644 --- a/src/sage/algebras/lie_algebras/heisenberg.py +++ b/src/sage/algebras/lie_algebras/heisenberg.py @@ -397,7 +397,7 @@ def __init__(self, R, n): sage: L = lie_algebras.Heisenberg(QQ, 2) sage: TestSuite(L).run() - sage: L = lie_algebras.Heisenberg(QQ, 0) # not tested -- :trac:`18224` + sage: L = lie_algebras.Heisenberg(QQ, 0) # not tested -- :issue:`18224` sage: TestSuite(L).run() """ HeisenbergAlgebra_fd.__init__(self, n) diff --git a/src/sage/algebras/lie_algebras/nilpotent_lie_algebra.py b/src/sage/algebras/lie_algebras/nilpotent_lie_algebra.py index 13b368ad889..354f08b0404 100644 --- a/src/sage/algebras/lie_algebras/nilpotent_lie_algebra.py +++ b/src/sage/algebras/lie_algebras/nilpotent_lie_algebra.py @@ -309,7 +309,7 @@ class FreeNilpotentLieAlgebra(NilpotentLieAlgebra_dense): [3, 6, 14] Verify that a free nilpotent Lie algebra of step `>2` with `>10` - generators can be created, see :trac:`27018` (see also :trac:`27069`):: + generators can be created, see :issue:`27018` (see also :issue:`27069`):: sage: L = LieAlgebra(QQ, 11, step=3) sage: L.dimension() == 11 + (11^2-11)/2 + (11^3-11)/3 diff --git a/src/sage/algebras/lie_algebras/poincare_birkhoff_witt.py b/src/sage/algebras/lie_algebras/poincare_birkhoff_witt.py index 38334bfe1f8..723a4e04179 100644 --- a/src/sage/algebras/lie_algebras/poincare_birkhoff_witt.py +++ b/src/sage/algebras/lie_algebras/poincare_birkhoff_witt.py @@ -163,7 +163,7 @@ def _basis_key(self, x): + PBW[alphacheck[1]]^2 - 2*PBW[alphacheck[1]] - Check that :trac:`23266` is fixed:: + Check that :issue:`23266` is fixed:: sage: sl2 = lie_algebras.sl(QQ, 2, 'matrix') sage: sl2.indices() @@ -305,7 +305,7 @@ def _coerce_map_from_(self, R): TESTS: - Check that we can take the preimage (:trac:`23375`):: + Check that we can take the preimage (:issue:`23375`):: sage: L = lie_algebras.cross_product(QQ) sage: pbw = L.pbw_basis() @@ -444,7 +444,7 @@ def product_on_basis(self, lhs, rhs): TESTS: - Check that :trac:`23268` is fixed:: + Check that :issue:`23268` is fixed:: sage: MS = MatrixSpace(QQ, 2,2) sage: gl = LieAlgebra(associative=MS) diff --git a/src/sage/algebras/lie_algebras/quotient.py b/src/sage/algebras/lie_algebras/quotient.py index 4fe0571543c..e744cfbd252 100644 --- a/src/sage/algebras/lie_algebras/quotient.py +++ b/src/sage/algebras/lie_algebras/quotient.py @@ -154,7 +154,7 @@ class LieQuotient_finite_dimensional_with_basis(LieAlgebraWithStructureCoefficie True Verify a quotient construction when the basis ordering and indices ordering - are different, see :trac:`26352`:: + are different, see :issue:`26352`:: sage: L. = LieAlgebra(QQ, abelian=True) sage: I2 = L.ideal([a+b, a+c], order=sorted) diff --git a/src/sage/algebras/lie_algebras/structure_coefficients.py b/src/sage/algebras/lie_algebras/structure_coefficients.py index ed200875e32..6c3eedd0a21 100644 --- a/src/sage/algebras/lie_algebras/structure_coefficients.py +++ b/src/sage/algebras/lie_algebras/structure_coefficients.py @@ -255,7 +255,7 @@ def structure_coefficients(self, include_zeros=False): TESTS: - Check that :trac:`23373` is fixed:: + Check that :issue:`23373` is fixed:: sage: L = lie_algebras.sl(QQ, 2) sage: sorted(L.structure_coefficients(True), key=str) diff --git a/src/sage/algebras/lie_algebras/subalgebra.py b/src/sage/algebras/lie_algebras/subalgebra.py index 7dc6e8ef37e..441b55a9fad 100644 --- a/src/sage/algebras/lie_algebras/subalgebra.py +++ b/src/sage/algebras/lie_algebras/subalgebra.py @@ -224,7 +224,7 @@ def __init__(self, ambient, gens, ideal, order=None, category=None): sage: I = L.ideal(X) sage: TestSuite(I).run() - Check that :trac:`34006` is fixed:: + Check that :issue:`34006` is fixed:: sage: S.gens()[0].parent() is S True @@ -960,7 +960,7 @@ def adjoint_matrix(self, sparse=False): TESTS: - Check that :trac:`34006` is fixed:: + Check that :issue:`34006` is fixed:: sage: MS = MatrixSpace(QQ, 2) sage: m = MS([[0, -1], [1, 0]]) diff --git a/src/sage/algebras/quantum_groups/q_numbers.py b/src/sage/algebras/quantum_groups/q_numbers.py index f564b96b293..243846bf13c 100644 --- a/src/sage/algebras/quantum_groups/q_numbers.py +++ b/src/sage/algebras/quantum_groups/q_numbers.py @@ -118,7 +118,7 @@ def q_factorial(n, q=None): (p^6 + 2*p^4 + 2*p^2 + 1)/p^3 The `q`-analog of `n!` is only defined for `n` a nonnegative - integer (:trac:`11411`):: + integer (:issue:`11411`):: sage: q_factorial(-2) Traceback (most recent call last): diff --git a/src/sage/algebras/quatalg/quaternion_algebra.py b/src/sage/algebras/quatalg/quaternion_algebra.py index e48e2f83775..a1eb1a2c8d3 100644 --- a/src/sage/algebras/quatalg/quaternion_algebra.py +++ b/src/sage/algebras/quatalg/quaternion_algebra.py @@ -141,7 +141,7 @@ class QuaternionAlgebraFactory(UniqueFactory): ``QuaternionAlgebra(a, b)`` constructor, as may all pairs of nonzero elements of a domain not of characteristic 2. - The following tests address the issues raised in :trac:`10601`:: + The following tests address the issues raised in :issue:`10601`:: sage: QuaternionAlgebra(1r,1) Quaternion Algebra (1, 1) with base ring Rational Field @@ -216,7 +216,7 @@ class QuaternionAlgebraFactory(UniqueFactory): TESTS: - Verify that bug found when working on :trac:`12006` involving coercing + Verify that bug found when working on :issue:`12006` involving coercing invariants into the base field is fixed:: sage: Q = QuaternionAlgebra(-1,-1); Q @@ -1511,7 +1511,7 @@ def _element_constructor_(self, x): TESTS: - Test for :trac:`32364`:: + Test for :issue:`32364`:: sage: 1/5 in O False @@ -1597,7 +1597,7 @@ def __eq__(self, R): sage: Q. = QuaternionAlgebra(-1,-19) Orders can be equal even if they are defined by different - bases (see :trac:`32245`):: + bases (see :issue:`32245`):: sage: Q.quaternion_order([1,-i,k,j+i*7]) == Q.quaternion_order([1,i,j,k]) True @@ -2292,7 +2292,7 @@ def __init__(self, Q, basis, left_order=None, right_order=None, check=True): sage: QuaternionAlgebra(-11,-1).maximal_order().unit_ideal().gens() (1/2 + 1/2*i, 1/2*j - 1/2*k, i, -k) - Check that :trac:`31582` is fixed:: + Check that :issue:`31582` is fixed:: sage: BrandtModule(23).right_ideals()[0].parent() Monoid of ideals of Quaternion Algebra (-1, -23) with base ring Rational Field @@ -2344,12 +2344,12 @@ def scale(self, alpha, left=False): TESTS: - Scaling by `1` should not change anything (see :trac:`32245`):: + Scaling by `1` should not change anything (see :issue:`32245`):: sage: I.scale(1) == I True - Check that :trac:`32726` is fixed:: + Check that :issue:`32726` is fixed:: sage: Q. = QuaternionAlgebra(-1,-19) sage: I = Q.ideal([1,i,j,k]) @@ -2578,7 +2578,7 @@ def _richcmp_(self, right, op): False Ideals can be equal even if they are defined by different - bases (see :trac:`32245`):: + bases (see :issue:`32245`):: sage: I == I.scale(-1) True @@ -2997,7 +2997,7 @@ def free_module(self): sage: X[0].free_module() / I.free_module() Finitely generated module V/W over Integer Ring with invariants (4, 4) - This shows that the issue at :trac:`6760` is fixed:: + This shows that the issue at :issue:`6760` is fixed:: sage: R. = QuaternionAlgebra(-1, -13) sage: I = R.ideal([2+i, 3*i, 5*j, j+k]); I diff --git a/src/sage/algebras/quatalg/quaternion_algebra_element.pyx b/src/sage/algebras/quatalg/quaternion_algebra_element.pyx index bebe00e26e5..f6fa8ef3b35 100644 --- a/src/sage/algebras/quatalg/quaternion_algebra_element.pyx +++ b/src/sage/algebras/quatalg/quaternion_algebra_element.pyx @@ -14,7 +14,7 @@ quaternion algebras and quaternion algebras over number fields. TESTS: -Check that :trac:`20829` is fixed:: +Check that :issue:`20829` is fixed:: sage: D. = QuaternionAlgebra(QQ,-1,-3) sage: hash(i) @@ -1827,7 +1827,7 @@ cdef class QuaternionAlgebraElement_number_field(QuaternionAlgebraElement_abstra sage: z._add_(w) 2*a + (2*a + 4/3)*k - Check that the fix in :trac:`17099` is correct:: + Check that the fix in :issue:`17099` is correct:: sage: x = polygen(QQ, 'x') sage: K = NumberField(x**3 + x - 1, 'a') diff --git a/src/sage/algebras/steenrod/steenrod_algebra.py b/src/sage/algebras/steenrod/steenrod_algebra.py index efe22f7b551..ae37091ed57 100644 --- a/src/sage/algebras/steenrod/steenrod_algebra.py +++ b/src/sage/algebras/steenrod/steenrod_algebra.py @@ -726,7 +726,7 @@ def _has_nontrivial_profile(self): sage: SteenrodAlgebra(generic=True, profile=[[3,2,1], []])._has_nontrivial_profile() True - Check that a bug in :trac:`11832` has been fixed:: + Check that a bug in :issue:`11832` has been fixed:: sage: P3 = SteenrodAlgebra(p=3, profile=(lambda n: Infinity, lambda n: 1)) sage: P3._has_nontrivial_profile() diff --git a/src/sage/algebras/steenrod/steenrod_algebra_mult.py b/src/sage/algebras/steenrod/steenrod_algebra_mult.py index e2d48f616b7..5672755f3fa 100644 --- a/src/sage/algebras/steenrod/steenrod_algebra_mult.py +++ b/src/sage/algebras/steenrod/steenrod_algebra_mult.py @@ -423,7 +423,7 @@ def milnor_multiplication_odd(m1,m2,p): sage: (a+b)*c == a*c + b*c True - Test that the bug reported in :trac:`7212` has been fixed:: + Test that the bug reported in :issue:`7212` has been fixed:: sage: A.P(36,6)*A.P(27,9,81) 2 P(13,21,83) + P(14,24,82) + P(17,20,83) + P(25,18,83) + P(26,21,82) + P(36,15,80,1) + P(49,12,83) + 2 P(50,15,82) + 2 P(53,11,83) + 2 P(63,15,81) @@ -887,7 +887,7 @@ def make_mono_admissible(mono, p=2, generic=None): sage: make_mono_admissible((0, 2, 0, 1, 0), p=7) {(0, 3, 0): 3} - Test the fix from :trac:`13796`:: + Test the fix from :issue:`13796`:: sage: SteenrodAlgebra(p=2, basis='adem').Q(2) * (Sq(6) * Sq(2)) # indirect doctest Sq^10 Sq^4 Sq^1 + Sq^10 Sq^5 + Sq^12 Sq^3 + Sq^13 Sq^2 diff --git a/src/sage/algebras/yokonuma_hecke_algebra.py b/src/sage/algebras/yokonuma_hecke_algebra.py index 779beb95ffe..747169d7abb 100644 --- a/src/sage/algebras/yokonuma_hecke_algebra.py +++ b/src/sage/algebras/yokonuma_hecke_algebra.py @@ -474,7 +474,7 @@ def __invert__(self): TESTS: - Check that :trac:`26424` is fixed:: + Check that :issue:`26424` is fixed:: sage: Y = algebras.YokonumaHecke(3, 3) sage: t = 3 * prod(Y.t()) diff --git a/src/sage/all.py b/src/sage/all.py index b54610c819d..b1f35e3a738 100644 --- a/src/sage/all.py +++ b/src/sage/all.py @@ -4,7 +4,7 @@ TESTS: -This is to test :trac:`10570`. If the number of stackframes at startup +This is to test :issue:`10570`. If the number of stackframes at startup changes due to a patch you made, please check that this was an intended effect of your patch. @@ -39,7 +39,7 @@ sage: interacts -Check that :trac:`34506` is resolved:: +Check that :issue:`34506` is resolved:: sage: x = int('1'*4301) """ diff --git a/src/sage/all__sagemath_repl.py b/src/sage/all__sagemath_repl.py index c31b206bcb8..d77919bc8bd 100644 --- a/src/sage/all__sagemath_repl.py +++ b/src/sage/all__sagemath_repl.py @@ -21,7 +21,7 @@ # scipy 1.18 introduced reprecation warnings on a number of things they are moving to # numpy, e.g. DeprecationWarning: scipy.array is deprecated # and will be removed in SciPy 2.0.0, use numpy.array instead -# This affects networkx 2.2 up and including 2.4 (cf. :trac:29766) +# This affects networkx 2.2 up and including 2.4 (cf. :issue:29766) warnings.filterwarnings('ignore', category=DeprecationWarning, module='(scipy|networkx)') diff --git a/src/sage/arith/functions.pyx b/src/sage/arith/functions.pyx index 040a11ff0d6..5bf17e813b4 100644 --- a/src/sage/arith/functions.pyx +++ b/src/sage/arith/functions.pyx @@ -55,7 +55,7 @@ def lcm(a, b=None): TESTS: - The following tests against a bug that was fixed in :trac:`10771`:: + The following tests against a bug that was fixed in :issue:`10771`:: sage: lcm(4/1,2) 4 @@ -70,7 +70,7 @@ def lcm(a, b=None): sage: parent(lcm([1/p,q])) Fraction Field of Univariate Polynomial Ring in x over Rational Field - Make sure we try `\QQ` and not merely `\ZZ` (:trac:`13014`):: + Make sure we try `\QQ` and not merely `\ZZ` (:issue:`13014`):: sage: bool(lcm(2/5, 3/7) == lcm(SR(2/5), SR(3/7))) # needs sage.symbolic True @@ -95,14 +95,14 @@ def lcm(a, b=None): ... TypeError: unable to find lcm of x and y - Check rational and integers (:trac:`17852`):: + Check rational and integers (:issue:`17852`):: sage: lcm(1/2, 4) 4 sage: lcm(4, 1/2) 4 - Check that we do not mutate the list (:trac:`22630`):: + Check that we do not mutate the list (:issue:`22630`):: sage: L = [int(1), int(2)] sage: lcm(L) diff --git a/src/sage/arith/long.pxd b/src/sage/arith/long.pxd index ce6a70bc215..76c7d7f015d 100644 --- a/src/sage/arith/long.pxd +++ b/src/sage/arith/long.pxd @@ -53,7 +53,7 @@ cdef inline long pyobject_to_long(x) except? LONG_MIN: OverflowError: exponent must be at most 2147483647 # 32-bit OverflowError: exponent must be at most 9223372036854775807 # 64-bit - See :trac:`22319`:: + See :issue:`22319`:: sage: a^pari(10) 10000000000 diff --git a/src/sage/arith/misc.py b/src/sage/arith/misc.py index 8fd46542236..eef9d79e121 100644 --- a/src/sage/arith/misc.py +++ b/src/sage/arith/misc.py @@ -527,7 +527,7 @@ def is_prime(n) -> bool: TESTS: - Make sure the warning from :trac:`25046` works as intended:: + Make sure the warning from :issue:`25046` works as intended:: sage: is_prime(7/1) doctest:warning @@ -543,7 +543,7 @@ def is_prime(n) -> bool: False However, number fields redefine ``.is_prime()`` in an incompatible fashion - (cf. :trac:`32340`) and we should not warn:: + (cf. :issue:`32340`) and we should not warn:: sage: x = polygen(ZZ, 'x') sage: K. = NumberField(x^2 + 1) # needs sage.rings.number_field @@ -863,7 +863,7 @@ def prime_powers(start, stop=None): TESTS: - Check that output are always Sage integers (:trac:`922`):: + Check that output are always Sage integers (:issue:`922`):: sage: v = prime_powers(10) # needs sage.libs.pari sage: type(v[0]) # needs sage.libs.pari @@ -886,7 +886,7 @@ def prime_powers(start, stop=None): ... TypeError: unable to convert 'bar' to an integer - Check that long input are accepted (:trac:`17852`):: + Check that long input are accepted (:issue:`17852`):: sage: prime_powers(6l) # needs sage.libs.pari [2, 3, 4, 5] @@ -1766,7 +1766,7 @@ def gcd(a, b=None, **kwargs): Note that to take the gcd of `n` elements for `n \not= 2` you must put the elements into a list by enclosing them in ``[..]``. Before - :trac:`4988` the following wrongly returned 3 since the third parameter + :issue:`4988` the following wrongly returned 3 since the third parameter was just ignored:: sage: gcd(3, 6, 2) @@ -1793,7 +1793,7 @@ def gcd(a, b=None, **kwargs): TESTS: The following shows that indeed coercion takes place before computing - the gcd. This behaviour was introduced in :trac:`10771`:: + the gcd. This behaviour was introduced in :issue:`10771`:: sage: R. = QQ[] sage: S. = ZZ[] @@ -1804,7 +1804,7 @@ def gcd(a, b=None, **kwargs): sage: parent(gcd([1/p, q])) Fraction Field of Univariate Polynomial Ring in x over Rational Field - Make sure we try QQ and not merely ZZ (:trac:`13014`):: + Make sure we try QQ and not merely ZZ (:issue:`13014`):: sage: bool(gcd(2/5, 3/7) == gcd(SR(2/5), SR(3/7))) # needs sage.symbolic True @@ -2035,7 +2035,7 @@ def xgcd(a, b): TESTS: - We check that :trac:`3330` has been fixed:: + We check that :issue:`3330` has been fixed:: sage: # needs sage.rings.number_field sage: R. = NumberField(x^2 - 3, 'g').extension(x^2 - 7, 'h')[] @@ -3293,7 +3293,7 @@ def carmichael_lambda(n): ... ValueError: Input n must be a positive integer. - Bug reported in :trac:`8283`:: + Bug reported in :issue:`8283`:: sage: from sage.arith.misc import carmichael_lambda sage: type(carmichael_lambda(16)) @@ -3729,11 +3729,11 @@ def binomial(x, m, **kwds): TESTS: We test that certain binomials are very fast (this should be - instant) -- see :trac:`3309`:: + instant) -- see :issue:`3309`:: sage: a = binomial(RR(1140000.78), 23310000) - We test conversion of arguments to Integers -- see :trac:`6870`:: + We test conversion of arguments to Integers -- see :issue:`6870`:: sage: binomial(1/2, 1/1) # needs sage.libs.pari 1/2 @@ -3744,8 +3744,8 @@ def binomial(x, m, **kwds): sage: binomial(3/2, SR(1/1)) # needs sage.symbolic 3/2 - Some floating point cases -- see :trac:`7562`, :trac:`9633`, and - :trac:`12448`:: + Some floating point cases -- see :issue:`7562`, :issue:`9633`, and + :issue:`12448`:: sage: binomial(1., 3) 0.000000000000000 @@ -3803,7 +3803,7 @@ def binomial(x, m, **kwds): sage: binomial(Qp(3)(-1/2),4) # p-adic number with valuation >= 0 1 + 3 + 2*3^2 + 3^3 + 2*3^4 + 3^6 + 3^7 + 3^8 + 3^11 + 2*3^14 + 2*3^16 + 2*3^17 + 2*3^19 + O(3^20) - Check that :trac:`35811` is fixed:: + Check that :issue:`35811` is fixed:: sage: binomial(Qp(3)(1/3),4) # p-adic number with negative valuation 2*3^-5 + 2*3^-4 + 3^-3 + 2*3^-2 + 2*3^-1 + 2 + 2*3 + 2*3^2 + 2*3^3 + 2*3^4 + 2*3^5 + @@ -4381,7 +4381,7 @@ def primitive_root(n, check=True): 3 We test that various numbers without primitive roots give - an error - see :trac:`10836`:: + an error - see :issue:`10836`:: sage: # needs sage.libs.pari sage: primitive_root(15) @@ -5134,18 +5134,18 @@ def falling_factorial(x, a): TESTS: - Check that :trac:`14858` is fixed:: + Check that :issue:`14858` is fixed:: sage: falling_factorial(-4, SR(2)) # needs sage.symbolic 20 - Check that :trac:`16770` is fixed:: + Check that :issue:`16770` is fixed:: sage: d = var('d') # needs sage.symbolic sage: parent(falling_factorial(d, 0)) # needs sage.symbolic Symbolic Ring - Check that :trac:`20075` is fixed:: + Check that :issue:`20075` is fixed:: sage: bool(falling_factorial(int(4), int(2)) == falling_factorial(4,2)) True @@ -5224,20 +5224,20 @@ def rising_factorial(x, a): TESTS: - Check that :trac:`14858` is fixed:: + Check that :issue:`14858` is fixed:: sage: bool(rising_factorial(-4, 2) == # needs sage.symbolic ....: rising_factorial(-4, SR(2)) == ....: rising_factorial(SR(-4), SR(2))) True - Check that :trac:`16770` is fixed:: + Check that :issue:`16770` is fixed:: sage: d = var('d') # needs sage.symbolic sage: parent(rising_factorial(d, 0)) # needs sage.symbolic Symbolic Ring - Check that :trac:`20075` is fixed:: + Check that :issue:`20075` is fixed:: sage: bool(rising_factorial(int(4), int(2)) == rising_factorial(4,2)) True @@ -6106,7 +6106,7 @@ def squarefree_divisors(x): TESTS: Check that the first divisor (i.e. `1`) is a Sage integer (see - :trac:`17852`):: + :issue:`17852`):: sage: a = next(squarefree_divisors(14)) sage: a diff --git a/src/sage/arith/multi_modular.pyx b/src/sage/arith/multi_modular.pyx index 44a6059c6f1..1c81d755cbe 100644 --- a/src/sage/arith/multi_modular.pyx +++ b/src/sage/arith/multi_modular.pyx @@ -328,7 +328,7 @@ cdef class MultiModularBasis_base(): TESTS: - Verify that :trac:`11358` is fixed:: + Verify that :issue:`11358` is fixed:: sage: set_random_seed(0); m = sage.arith.multi_modular.MultiModularBasis_base(0) sage: m._extend_moduli_to_height(prod(prime_range(50))) @@ -339,7 +339,7 @@ cdef class MultiModularBasis_base(): ... RuntimeError: there are not enough primes in the interval [2, 100] to complete this multimodular computation - Another check (which fails horribly before :trac:`11358` is fixed):: + Another check (which fails horribly before :issue:`11358` is fixed):: sage: set_random_seed(0); m = sage.arith.multi_modular.MultiModularBasis_base(0); m._extend_moduli_to_height(10**10000) sage: len(set(m)) == len(m) diff --git a/src/sage/arith/rational_reconstruction.pyx b/src/sage/arith/rational_reconstruction.pyx index 4a669f977cb..bd07977411a 100644 --- a/src/sage/arith/rational_reconstruction.pyx +++ b/src/sage/arith/rational_reconstruction.pyx @@ -9,7 +9,7 @@ AUTHORS: - ??? (2006 or before) - Jeroen Demeyer (2014-10-20): move this function from ``gmp.pxi``, - simplify and fix some bugs, see :trac:`17180` + simplify and fix some bugs, see :issue:`17180` """ # **************************************************************************** # Copyright (C) 2006 ??? diff --git a/src/sage/arith/srange.pyx b/src/sage/arith/srange.pyx index 132cf93d085..d4815ae60b7 100644 --- a/src/sage/arith/srange.pyx +++ b/src/sage/arith/srange.pyx @@ -96,7 +96,7 @@ def xsrange(start, end=None, step=1, universe=None, *, coerce=True, bint include TESTS: - Ranges can be very large, see :trac:`20094`:: + Ranges can be very large, see :issue:`20094`:: sage: it = xsrange(10^30, 10^100) sage: for i in range(5): @@ -289,14 +289,14 @@ def srange(*args, **kwds): TESTS: - These are doctests from :trac:`6409`:: + These are doctests from :issue:`6409`:: sage: srange(1,QQ(0),include_endpoint=True) [] sage: srange(1,QQ(0),-1,include_endpoint=True) [1, 0] - Test :trac:`11753`:: + Test :issue:`11753`:: sage: srange(1,1,0) Traceback (most recent call last): diff --git a/src/sage/calculus/calculus.py b/src/sage/calculus/calculus.py index 8d62ade24c8..5bf4c0eec49 100644 --- a/src/sage/calculus/calculus.py +++ b/src/sage/calculus/calculus.py @@ -13,7 +13,7 @@ - Golam Mortuza Hossain (2009-06-22): _laplace_latex(), _inverse_laplace_latex() -- Tom Coates (2010-06-11): fixed :trac:`9217` +- Tom Coates (2010-06-11): fixed :issue:`9217` EXAMPLES: @@ -137,7 +137,7 @@ [ 1/2*(e^(2*sqrt(x)) - 1)*e^(x - sqrt(x))/x^(3/2) 1/2*(e^(2*sqrt(x)) + 1)*e^(x - sqrt(x))] Complex exponentiation works, but may require a patched version of -maxima (:trac:`32898`) for now:: +maxima (:issue:`32898`) for now:: sage: M = i*matrix([[pi]]) sage: e^M # not tested, requires patched maxima @@ -351,48 +351,48 @@ the interactive interpreter. Check to see that the problem with the variables method mentioned -in :trac:`3779` is actually fixed:: +in :issue:`3779` is actually fixed:: sage: f = function('F')(x) sage: diff(f*SR(1),x) diff(F(x), x) -Doubly ensure that :trac:`7479` is working:: +Doubly ensure that :issue:`7479` is working:: sage: f(x)=x sage: integrate(f,x,0,1) 1/2 Check that the problem with Taylor expansions of the gamma function -(:trac:`9217`) is fixed:: +(:issue:`9217`) is fixed:: sage: taylor(gamma(1/3+x),x,0,3) -1/432*((72*euler_gamma^3 + 36*euler_gamma^2*(sqrt(3)*pi + 9*log(3)) + ... sage: [f[0].n() for f in _.coefficients()] # numerical coefficients to make comparison easier; Maple 12 gives same answer [2.6789385347..., -8.3905259853..., 26.662447494..., -80.683148377...] -Ensure that :trac:`8582` is fixed:: +Ensure that :issue:`8582` is fixed:: sage: k = var("k") sage: sum(1/(1+k^2), k, -oo, oo) -1/2*I*psi(I + 1) + 1/2*I*psi(-I + 1) - 1/2*I*psi(I) + 1/2*I*psi(-I) -Ensure that :trac:`8624` is fixed:: +Ensure that :issue:`8624` is fixed:: sage: integrate(abs(cos(x)) * sin(x), x, pi/2, pi) 1/2 sage: integrate(sqrt(cos(x)^2 + sin(x)^2), x, 0, 2*pi) 2*pi -Ensure that :trac:`25626` is fixed. As the form of the answer is dependent of -the giac version, we simplify it (see :trac:`34037`). :: +Ensure that :issue:`25626` is fixed. As the form of the answer is dependent of +the giac version, we simplify it (see :issue:`34037`). :: sage: t = SR.var('t') sage: integrate(exp(t)/(t + 1)^2, t, algorithm="giac").full_simplify() ((t + 1)*Ei(t + 1) - e^(t + 1))/(t*e + e) Check if maxima has redundant variables defined after initialization, -see :trac:`9538`:: +see :issue:`9538`:: sage: maxima = sage.interfaces.maxima.maxima sage: maxima('f1') @@ -400,7 +400,7 @@ sage: sage.calculus.calculus.maxima('f1') f1 -To check that :trac:`14821` is fixed:: +To check that :issue:`14821` is fixed:: sage: H = exp(-1.0 * x) sage: H.integral(x, 0, 1) @@ -410,7 +410,7 @@ sage: result 4.62770039817000e-9 -To check that :trac:`27092` is fixed:: +To check that :issue:`27092` is fixed:: sage: n = var('n') sage: sum(binomial(1, n), n, 0, oo) @@ -577,7 +577,7 @@ def symbolic_sum(expression, v, a, b, algorithm='maxima', hold=False): pi/tanh(pi) SymPy and Maxima 5.39.0 can do the following (see - :trac:`22005`):: + :issue:`22005`):: sage: sum(1/((2*n+1)^2-4)^2, n, 0, Infinity, algorithm='sympy') 1/64*pi^2 @@ -604,7 +604,7 @@ def symbolic_sum(expression, v, a, b, algorithm='maxima', hold=False): TESTS: - :trac:`10564` is fixed:: + :issue:`10564` is fixed:: sage: sum (n^3 * x^n, n, 0, infinity) (x^3 + 4*x^2 + x)/(x^4 - 4*x^3 + 6*x^2 - 4*x + 1) @@ -876,7 +876,7 @@ def symbolic_product(expression, v, a, b, algorithm='maxima', hold=False): TESTS: - Verify that :trac:`30520` is fixed:: + Verify that :issue:`30520` is fixed:: sage: symbolic_product(-x^2,x,1,n) (-1)^n*factorial(n)^2 @@ -1337,7 +1337,7 @@ def limit(ex, dir=None, taylor=False, algorithm='maxima', **argv): ... ValueError: Unknown algorithm: nugget - We check that :trac:`3718` is fixed, so that + We check that :issue:`3718` is fixed, so that Maxima gives correct limits for the floor function:: sage: limit(floor(x), x=0, dir='-') @@ -1348,7 +1348,7 @@ def limit(ex, dir=None, taylor=False, algorithm='maxima', **argv): ...nd Maxima gives the right answer here, too, showing - that :trac:`4142` is fixed:: + that :issue:`4142` is fixed:: sage: f = sqrt(1 - x^2) sage: g = diff(f, x); g @@ -1365,7 +1365,7 @@ def limit(ex, dir=None, taylor=False, algorithm='maxima', **argv): sage: limit(1/x, x=0, dir='-') -Infinity - Check that :trac:`8942` is fixed:: + Check that :issue:`8942` is fixed:: sage: f(x) = (cos(pi/4 - x) - tan(x)) / (1 - sin(pi/4 + x)) sage: limit(f(x), x=pi/4, dir='minus') @@ -1375,12 +1375,12 @@ def limit(ex, dir=None, taylor=False, algorithm='maxima', **argv): sage: limit(f(x), x=pi/4) Infinity - Check that :trac:`12708` is fixed:: + Check that :issue:`12708` is fixed:: sage: limit(tanh(x), x=0) 0 - Check that :trac:`15386` is fixed:: + Check that :issue:`15386` is fixed:: sage: n = var('n') sage: assume(n>0) @@ -1388,12 +1388,12 @@ def limit(ex, dir=None, taylor=False, algorithm='maxima', **argv): sage: limit(sequence, n=infinity) 0 - Check if :trac:`23048` is fixed:: + Check if :issue:`23048` is fixed:: sage: (1/(x-3)).limit(x=3, dir='below') -Infinity - From :trac:`14677`:: + From :issue:`14677`:: sage: f = (x^x - sin(x)^sin(x)) / (x^3*log(x)) sage: limit(f, x=0, algorithm='fricas') # optional - fricas @@ -1402,14 +1402,14 @@ def limit(ex, dir=None, taylor=False, algorithm='maxima', **argv): sage: limit(f, x=0, dir='right', algorithm='fricas') # optional - fricas 1/6 - From :trac:`26497`:: + From :issue:`26497`:: sage: mu, y, sigma = var("mu, y, sigma") sage: f = 1/2*sqrt(2)*e^(-1/2*(mu - log(y))^2/sigma^2)/(sqrt(pi)*sigma*y) sage: limit(f, y=0, algorithm='fricas') # optional - fricas 0 - From :trac:`26060`:: + From :issue:`26060`:: sage: limit(x / (x + 2^x + cos(x)), x=-infinity) 1 @@ -1701,7 +1701,7 @@ def laplace(ex, t, s, algorithm='maxima'): 5*(s*cos(4)*e^(-2*s) - 3*e^(-2*s)*sin(4))/(s^2 + 9) Check unevaluated expression from Giac (it is locale-dependent, see - :trac:`22833`):: + :issue:`22833`):: sage: var('n') n @@ -1721,7 +1721,7 @@ def laplace(ex, t, s, algorithm='maxima'): sage: laplace(t^n, t, s, algorithm='maxima') s^(-n - 1)*gamma(n + 1) - Check that :trac:`24212` is fixed:: + Check that :issue:`24212` is fixed:: sage: F, a, cond = laplace(cos(t^2), t, s, algorithm='sympy') sage: a, cond @@ -1996,7 +1996,7 @@ def at(ex, *args, **kwds): s^2*laplace(f(t), t, s) - s*f(0) - D[0](f)(0) We can also accept a non-keyword list of expression substitutions, - like Maxima does (:trac:`12796`):: + like Maxima does (:issue:`12796`):: sage: from sage.calculus.calculus import at sage: f = function('f') @@ -2213,7 +2213,7 @@ def _is_function(v): sage: _is_function(sin) True - Check that :trac:`31756` is fixed:: + Check that :issue:`31756` is fixed:: sage: from sage.symbolic.expression import symbol_table sage: _is_function(symbol_table['mathematica'][('Gamma', 1)]) @@ -2259,12 +2259,12 @@ def symbolic_expression_from_maxima_string(x, equals_sub=False, maxima=maxima): TESTS: - :trac:`8459` fixed:: + :issue:`8459` fixed:: sage: maxima('3*li[2](u)+8*li[33](exp(u))').sage() 3*dilog(u) + 8*polylog(33, e^u) - Check if :trac:`8345` is fixed:: + Check if :issue:`8345` is fixed:: sage: assume(x,'complex') sage: t = x.conjugate() @@ -2273,7 +2273,7 @@ def symbolic_expression_from_maxima_string(x, equals_sub=False, maxima=maxima): sage: latex(t._maxima_()._sage_()) \overline{x} - Check that we can understand maxima's not-equals (:trac:`8969`):: + Check that we can understand maxima's not-equals (:issue:`8969`):: sage: from sage.calculus.calculus import symbolic_expression_from_maxima_string as sefms sage: sefms("x!=3") == (factorial(x) == 3) @@ -2285,20 +2285,20 @@ def symbolic_expression_from_maxima_string(x, equals_sub=False, maxima=maxima): sage: solve([2*x==3, x != 5], x) [[x == (3/2)... - Make sure that we don't accidentally pick up variables in the maxima namespace (:trac:`8734`):: + Make sure that we don't accidentally pick up variables in the maxima namespace (:issue:`8734`):: sage: sage.calculus.calculus.maxima('my_new_var : 2') 2 sage: var('my_new_var').full_simplify() my_new_var - ODE solution constants are treated differently (:trac:`16007`):: + ODE solution constants are treated differently (:issue:`16007`):: sage: from sage.calculus.calculus import symbolic_expression_from_maxima_string as sefms sage: sefms('%k1*x + %k2*y + %c') _K1*x + _K2*y + _C - Check that some hypothetical variables don't end up as special constants (:trac:`6882`):: + Check that some hypothetical variables don't end up as special constants (:issue:`6882`):: sage: from sage.calculus.calculus import symbolic_expression_from_maxima_string as sefms sage: sefms('%i')^2 @@ -2582,14 +2582,14 @@ def symbolic_expression_from_string(s, syms=None, accept_sequence=False, *, pars TESTS: - Check that the precision is preserved (:trac:`28814`):: + Check that the precision is preserved (:issue:`28814`):: sage: symbolic_expression_from_string(str(RealField(100)(1/3))) 0.3333333333333333333333333333 sage: symbolic_expression_from_string(str(RealField(100)(10^-500/3))) 3.333333333333333333333333333e-501 - The Giac interface uses a different parser (:trac:`30133`):: + The Giac interface uses a different parser (:issue:`30133`):: sage: from sage.calculus.calculus import SR_parser_giac sage: symbolic_expression_from_string(repr(giac(SR.var('e'))), parser=SR_parser_giac) diff --git a/src/sage/calculus/desolvers.py b/src/sage/calculus/desolvers.py index afe63ccb954..1a4692f3499 100644 --- a/src/sage/calculus/desolvers.py +++ b/src/sage/calculus/desolvers.py @@ -491,7 +491,7 @@ def desolve(de, dvar, ics=None, ivar=None, show_method=False, contrib_ode=False, TESTS: - :trac:`9961` fixed (allow assumptions on the dependent variable in desolve):: + :issue:`9961` fixed (allow assumptions on the dependent variable in desolve):: sage: y=function('y')(x); assume(x>0); assume(y>0) sage: sage.calculus.calculus.maxima('domain:real') # needed since Maxima 5.26.0 to get the answer as below @@ -499,7 +499,7 @@ def desolve(de, dvar, ics=None, ivar=None, show_method=False, contrib_ode=False, sage: desolve(x*diff(y,x)-x*sqrt(y^2+x^2)-y == 0, y, contrib_ode=True) [x - arcsinh(y(x)/x) == _C] - :trac:`10682` updated Maxima to 5.26, and it started to show a different + :issue:`10682` updated Maxima to 5.26, and it started to show a different solution in the complex domain for the ODE above:: sage: forget() @@ -510,7 +510,7 @@ def desolve(de, dvar, ics=None, ivar=None, show_method=False, contrib_ode=False, sage: desolve(x*diff(y,x)-x*sqrt(y^2+x^2)-y == 0, y, contrib_ode=True) [x - arcsinh(y(x)^2/(x*sqrt(y(x)^2))) - arcsinh(y(x)/x) + 1/2*log(4*(x^2 + 2*y(x)^2 + 2*sqrt(x^2*y(x)^2 + y(x)^4))/x^2) == _C] - :trac:`6479` fixed:: + :issue:`6479` fixed:: sage: x = var('x') sage: y = function('y')(x) @@ -522,7 +522,7 @@ def desolve(de, dvar, ics=None, ivar=None, show_method=False, contrib_ode=False, sage: desolve( diff(y,x,x) == 0, y, [0,1,1]) x + 1 - :trac:`9835` fixed:: + :issue:`9835` fixed:: sage: x = var('x') sage: y = function('y')(x) @@ -531,13 +531,13 @@ def desolve(de, dvar, ics=None, ivar=None, show_method=False, contrib_ode=False, ... NotImplementedError: Unable to use initial condition for this equation (freeofx). - :trac:`8931` fixed:: + :issue:`8931` fixed:: sage: x=var('x'); f=function('f')(x); k=var('k'); assume(k>0) sage: desolve(diff(f,x,2)/f==k,f,ivar=x) _K1*e^(sqrt(k)*x) + _K2*e^(-sqrt(k)*x) - :trac:`15775` fixed:: + :issue:`15775` fixed:: sage: forget() sage: y = function('y')(x) @@ -721,7 +721,7 @@ def desolve_laplace(de, dvar, ics=None, ivar=None): TESTS: - Check that :trac:`4839` is fixed:: + Check that :issue:`4839` is fixed:: sage: t = var('t') sage: x = function('x')(t) @@ -845,7 +845,7 @@ def desolve_system(des, vars, ics=None, ivar=None, algorithm="maxima"): TESTS: - Check that :trac:`9823` is fixed:: + Check that :issue:`9823` is fixed:: sage: t = var('t') sage: x = function('x')(t) @@ -853,7 +853,7 @@ def desolve_system(des, vars, ics=None, ivar=None, algorithm="maxima"): sage: desolve_system([de1], [x]) -t + x(0) - Check that :trac:`16568` is fixed:: + Check that :issue:`16568` is fixed:: sage: t = var('t') sage: x = function('x')(t) @@ -879,7 +879,7 @@ def desolve_system(des, vars, ics=None, ivar=None, algorithm="maxima"): Now type ``show(P1)``, ``show(P2)`` to view these plots. - Check that :trac:`9824` is fixed:: + Check that :issue:`9824` is fixed:: sage: t = var('t') sage: epsilon = var('epsilon') @@ -895,7 +895,7 @@ def desolve_system(des, vars, ics=None, ivar=None, algorithm="maxima"): ValueError: Initial conditions aren't complete: number of vars is different from number of dependent variables. Got ics = [1, 1], vars = [x1(t), x2(t)] - Check that :trac:`9825` is fixed:: + Check that :issue:`9825` is fixed:: sage: t = var('t') sage: x1, x2=function("x1, x2") diff --git a/src/sage/calculus/functional.py b/src/sage/calculus/functional.py index 03ea8bbd294..109de21a5d9 100644 --- a/src/sage/calculus/functional.py +++ b/src/sage/calculus/functional.py @@ -243,7 +243,7 @@ def integral(f, *args, **kwds): 0 sage: restore('x,y') # restore the symbolic variables x and y - Sage is now (:trac:`27958`) able to compute the following integral:: + Sage is now (:issue:`27958`) able to compute the following integral:: sage: integral(exp(-x^2)*log(x), x) # long time 1/2*sqrt(pi)*erf(x)*log(x) - x*hypergeometric((1/2, 1/2), (3/2, 3/2), -x^2) diff --git a/src/sage/calculus/integration.pyx b/src/sage/calculus/integration.pyx index 621241436ae..f0cd3a9f1ca 100644 --- a/src/sage/calculus/integration.pyx +++ b/src/sage/calculus/integration.pyx @@ -10,7 +10,7 @@ AUTHORS: - Robert Bradshaw (2008-08): fast float integration -- Jeroen Demeyer (2011-11-23): :trac:`12047`: return 0 when the +- Jeroen Demeyer (2011-11-23): :issue:`12047`: return 0 when the integration interval is a point; reformat documentation and add to the reference manual. """ @@ -195,7 +195,7 @@ def numerical_integral(func, a, b=None, If the interval of integration is a point, then the result is always zero (this makes sense within the Lebesgue theory of - integration), see :trac:`12047`:: + integration), see :issue:`12047`:: sage: numerical_integral(log, 0, 0) (0.0, 0.0) @@ -225,7 +225,7 @@ def numerical_integral(func, a, b=None, TESTS: Make sure that constant Expressions, not merely uncallable arguments, - can be integrated (:trac:`10088`), at least if we can coerce them + can be integrated (:issue:`10088`), at least if we can coerce them to float:: sage: f, g = x, x-1 @@ -238,7 +238,7 @@ def numerical_integral(func, a, b=None, ... TypeError: unable to simplify to float approximation - Check for :trac:`15496`:: + Check for :issue:`15496`:: sage: f = x^2/exp(-1/(x^2+1))/(x^2+1) sage: D = integrate(f,(x,-infinity,infinity),hold=True) @@ -248,7 +248,7 @@ def numerical_integral(func, a, b=None, ValueError: integral does not converge at -infinity Symbolic functions can be integrated as conveniently as symbolic - expressions, as in :trac:`15219`:: + expressions, as in :issue:`15219`:: sage: h(x) = x sage: numerical_integral(h,0,1)[0] # abs tol 1e-8 diff --git a/src/sage/calculus/interpolation.pyx b/src/sage/calculus/interpolation.pyx index 59f9fcc8e7a..a12f372d139 100644 --- a/src/sage/calculus/interpolation.pyx +++ b/src/sage/calculus/interpolation.pyx @@ -163,7 +163,7 @@ cdef class Spline: sage: S [(1, 1), (4, 5)] - The spline is recomputed when points are deleted (:trac:`13519`):: + The spline is recomputed when points are deleted (:issue:`13519`):: sage: S = spline([(1,1), (2,3), (4,5), (5, 5)]); S [(1, 1), (2, 3), (4, 5), (5, 5)] @@ -185,7 +185,7 @@ cdef class Spline: sage: S = spline([(1,1), (2,3), (4,5)]); S.append((5,7)); S [(1, 1), (2, 3), (4, 5), (5, 7)] - The spline is recomputed when points are appended (:trac:`13519`):: + The spline is recomputed when points are appended (:issue:`13519`):: sage: S = spline([(1,1), (2,3), (4,5)]); S [(1, 1), (2, 3), (4, 5)] @@ -209,7 +209,7 @@ cdef class Spline: sage: S = spline([(1,1), (2,3), (4,5)]); S.list() [(1, 1), (2, 3), (4, 5)] - This is a copy of the list, not a reference (:trac:`13530`):: + This is a copy of the list, not a reference (:issue:`13530`):: sage: S = spline([(1,1), (2,3), (4,5)]) sage: L = S.list(); L diff --git a/src/sage/calculus/test_sympy.py b/src/sage/calculus/test_sympy.py index 0c360f8acab..20736fcf6a6 100644 --- a/src/sage/calculus/test_sympy.py +++ b/src/sage/calculus/test_sympy.py @@ -188,7 +188,7 @@ TESTS: -This was fixed in Sympy, see :trac:`14437`:: +This was fixed in Sympy, see :issue:`14437`:: sage: # needs sympy sage: from sympy import Function, Symbol, rsolve diff --git a/src/sage/calculus/tests.py b/src/sage/calculus/tests.py index 904ee7d17cf..ac76b5e4f70 100644 --- a/src/sage/calculus/tests.py +++ b/src/sage/calculus/tests.py @@ -139,7 +139,7 @@ sqrt(pi)/sqrt(c) sage: forget() -Other examples that now (:trac:`27958`) work:: +Other examples that now (:issue:`27958`) work:: sage: integrate(log(x)*exp(-x^2), x) # long time 1/2*sqrt(pi)*erf(x)*log(x) - x*hypergeometric((1/2, 1/2), (3/2, 3/2), -x^2) diff --git a/src/sage/calculus/var.pyx b/src/sage/calculus/var.pyx index 84f7a16a91f..12958b0970a 100644 --- a/src/sage/calculus/var.pyx +++ b/src/sage/calculus/var.pyx @@ -342,7 +342,7 @@ def function(s, **kwds): TESTS: - Make sure that :trac:`15860` is fixed and whitespaces are removed:: + Make sure that :issue:`15860` is fixed and whitespaces are removed:: sage: function('A, B') (A, B) diff --git a/src/sage/categories/action.pyx b/src/sage/categories/action.pyx index 0e54ceffa27..6c6ea072053 100644 --- a/src/sage/categories/action.pyx +++ b/src/sage/categories/action.pyx @@ -9,7 +9,7 @@ A group action `G \times S \rightarrow S` is a functor from `G` to Sets. .. WARNING:: An :class:`Action` object only keeps a weak reference to the underlying set - which is acted upon. This decision was made in :trac:`715` in order to + which is acted upon. This decision was made in :issue:`715` in order to allow garbage collection within the coercion framework (this is where actions are mainly used) and avoid memory leaks. @@ -112,7 +112,7 @@ cdef class Action(Functor): TESTS: - Check that this action can be pickled (:trac:`29031`):: + Check that this action can be pickled (:issue:`29031`):: sage: P = QQ['x'] sage: R = (ZZ['x'])['y'] @@ -282,7 +282,7 @@ cdef class Action(Functor): sage: A.left_domain() is R True - By :trac:`715`, there is only a weak reference to the underlying set. + By :issue:`715`, there is only a weak reference to the underlying set. Hence, the underlying set may be garbage collected, even when the action is still alive. This may result in a runtime error, as follows:: @@ -398,7 +398,7 @@ cdef class InverseAction(Action): TESTS: - Check that this action can be pickled (:trac:`29031`):: + Check that this action can be pickled (:issue:`29031`):: sage: # needs sage.modules sage: V = QQ^3 @@ -432,7 +432,7 @@ cdef class PrecomposedAction(Action): EXAMPLES: - We demonstrate that an example discussed on :trac:`14711` did not become a + We demonstrate that an example discussed on :issue:`14711` did not become a problem:: sage: # needs sage.modular @@ -485,7 +485,7 @@ cdef class PrecomposedAction(Action): TESTS: - Check that this action can be pickled (:trac:`29031`):: + Check that this action can be pickled (:issue:`29031`):: sage: # needs sage.modular sage: E = ModularSymbols(11).2 diff --git a/src/sage/categories/additive_magmas.py b/src/sage/categories/additive_magmas.py index 6ecdfb70884..cfd518fa32b 100644 --- a/src/sage/categories/additive_magmas.py +++ b/src/sage/categories/additive_magmas.py @@ -817,7 +817,7 @@ def _sub_(left, right): TESTS: - Check that :trac:`18275` is fixed:: + Check that :issue:`18275` is fixed:: sage: C = GF(5).cartesian_product(GF(5)) sage: C.one() - C.one() diff --git a/src/sage/categories/algebra_functor.py b/src/sage/categories/algebra_functor.py index bfa1740f018..051374fa43c 100644 --- a/src/sage/categories/algebra_functor.py +++ b/src/sage/categories/algebra_functor.py @@ -46,7 +46,7 @@ Algebra of Dihedral group of order 6 as a permutation group over Rational Field -Since :trac:`18700`, both constructions are strictly equivalent:: +Since :issue:`18700`, both constructions are strictly equivalent:: sage: GroupAlgebra(G, R) is G.algebra(R) True @@ -440,13 +440,13 @@ - David Loeffler (2008-08-24): initial version - Martin Raum (2009-08): update to use new coercion model -- see - :trac:`6670`. + :issue:`6670`. - John Palmieri (2011-07): more updates to coercion, categories, etc., group algebras constructed using CombinatorialFreeModule -- see - :trac:`6670`. + :issue:`6670`. - Nicolas M. Thiéry (2010-2017), Travis Scrimshaw (2017): generalization to a covariant functorial construction for - monoid algebras, and beyond -- see e.g. :trac:`18700`. + monoid algebras, and beyond -- see e.g. :issue:`18700`. """ # **************************************************************************** # Copyright (C) 2010-2017 Nicolas M. Thiéry diff --git a/src/sage/categories/algebras.py b/src/sage/categories/algebras.py index 5f7dcaff05b..cf975ab2549 100644 --- a/src/sage/categories/algebras.py +++ b/src/sage/categories/algebras.py @@ -39,7 +39,7 @@ class Algebras(CategoryWithAxiom_over_base_ring): :class:`.magmatic_algebras.MagmaticAlgebras` for consistency with e.g. :wikipedia:`Algebras` which assumes neither associativity nor the existence of a unit (see - :trac:`15043`). + :issue:`15043`). .. TODO:: Should `R` be a commutative ring? @@ -264,7 +264,7 @@ def extra_super_categories(self): .. WARNING:: This is only correct in certain cases (finite dimension, ...). - See :trac:`15647`. + See :issue:`15647`. """ from sage.categories.coalgebras import Coalgebras return [Coalgebras(self.base_category().base_ring())] diff --git a/src/sage/categories/associative_algebras.py b/src/sage/categories/associative_algebras.py index c54da6eb27b..268c9054e97 100644 --- a/src/sage/categories/associative_algebras.py +++ b/src/sage/categories/associative_algebras.py @@ -22,7 +22,7 @@ class AssociativeAlgebras(CategoryWithAxiom_over_base_ring): .. WARNING:: - Until :trac:`15043` is implemented, :class:`Algebras` is the + Until :issue:`15043` is implemented, :class:`Algebras` is the category of associative unital algebras; thus, unlike the name suggests, :class:`AssociativeAlgebras` is not a subcategory of :class:`Algebras` but of diff --git a/src/sage/categories/bimodules.py b/src/sage/categories/bimodules.py index 492a1bf9ebf..4e92f890cd0 100644 --- a/src/sage/categories/bimodules.py +++ b/src/sage/categories/bimodules.py @@ -60,7 +60,7 @@ def _make_named_class_key(self, name): r""" Return what the element/parent/... classes depend on. - Since :trac:`11935`, the element and parent classes of a + Since :issue:`11935`, the element and parent classes of a bimodule only depend on the categories of the left and right base ring. diff --git a/src/sage/categories/category.py b/src/sage/categories/category.py index aa99f9841db..84ba7163bd8 100644 --- a/src/sage/categories/category.py +++ b/src/sage/categories/category.py @@ -242,7 +242,7 @@ class inheritance from ``C.parent_class``. ....: def fD(self): ....: return "D" - Categories should always have unique representation; by :trac:`12215`, + Categories should always have unique representation; by :issue:`12215`, this means that it will be kept in cache, but only if there is still some strong reference to it. @@ -426,7 +426,7 @@ def __classcall__(cls, *args, **options): """ Input mangling for unique representation. - Let ``C = Cs(...)`` be a category. Since :trac:`12895`, the + Let ``C = Cs(...)`` be a category. Since :issue:`12895`, the class of ``C`` is a dynamic subclass ``Cs_with_category`` of ``Cs`` in order for ``C`` to inherit code from the ``SubcategoryMethods`` nested classes of its super categories. @@ -669,7 +669,7 @@ def _subcategory_hook_(self, category): This test is incomplete for categories in :class:`CategoryWithParameters`, as introduced by - :trac:`11935`. This method is therefore overwritten by + :issue:`11935`. This method is therefore overwritten by :meth:`~sage.categories.category.CategoryWithParameters._subcategory_hook_`. EXAMPLES:: @@ -821,7 +821,7 @@ def super_categories(self): .. NOTE:: - Since :trac:`10963`, the order of the categories in the + Since :issue:`10963`, the order of the categories in the result is irrelevant. For details, see :ref:`category-primer-category-order`. @@ -837,7 +837,7 @@ def _all_super_categories(self): r""" All the super categories of this category, including this category. - Since :trac:`11943`, the order of super categories is + Since :issue:`11943`, the order of super categories is determined by Python's method resolution order C3 algorithm. .. SEEALSO:: :meth:`all_super_categories` @@ -872,7 +872,7 @@ def _all_super_categories_proper(self): r""" All the proper super categories of this category. - Since :trac:`11943`, the order of super categories is + Since :issue:`11943`, the order of super categories is determined by Python's method resolution order C3 algorithm. .. SEEALSO:: :meth:`all_super_categories` @@ -933,7 +933,7 @@ def all_super_categories(self, proper=False): - ``proper`` -- a boolean (default: ``False``); whether to exclude this category. - Since :trac:`11943`, the order of super categories is + Since :issue:`11943`, the order of super categories is determined by Python's method resolution order C3 algorithm. .. note:: @@ -1183,7 +1183,7 @@ def additional_structure(self): False The support for modeling full subcategories has been - introduced in :trac:`16340`. + introduced in :issue:`16340`. """ return self @@ -1377,7 +1377,7 @@ def _test_category_graph(self, **options): .. note:: - By :trac:`11943`, the list of categories returned by + By :issue:`11943`, the list of categories returned by :meth:`all_super_categories` is supposed to match with the method resolution order of the parent and element classes. This method checks this. @@ -1600,7 +1600,7 @@ def subcategory_class(self): .. SEEALSO:: - - :trac:`12895` + - :issue:`12895` - :meth:`parent_class` - :meth:`element_class` - :meth:`_make_named_class` @@ -1652,7 +1652,7 @@ def parent_class(self): sage: type(C) - By :trac:`11935`, some categories share their parent + By :issue:`11935`, some categories share their parent classes. For example, the parent class of an algebra only depends on the category of the base ring. A typical example is the category of algebras over a finite field versus algebras @@ -1697,7 +1697,7 @@ def element_class(self): sage: type(C) - By :trac:`11935`, some categories share their element + By :issue:`11935`, some categories share their element classes. For example, the element class of an algebra only depends on the category of the base. A typical example is the category of algebras over a field versus algebras over a @@ -2630,7 +2630,7 @@ def category_graph(categories=None): For readability, the names of the category are shortened. - .. TODO:: Further remove the base ring (see also :trac:`15801`). + .. TODO:: Further remove the base ring (see also :issue:`15801`). EXAMPLES:: @@ -2677,7 +2677,7 @@ class CategoryWithParameters(Category): depend only on the super categories of ``C``. For example, the vector space operations are provided if and only if ``K`` is a field, since ``VectorSpaces(K)`` is a super category of ``C`` only - in that case. In such cases, and as an optimization (see :trac:`11935`), + in that case. In such cases, and as an optimization (see :issue:`11935`), we want to use the same parent and element class for all fields. This is the purpose of this abstract class. @@ -2913,7 +2913,7 @@ class JoinCategory(CategoryWithParameters): Category of commutative additive monoids, ..., Category of additive magmas, Category of sets, Category of sets with partial maps, Category of objects] - By :trac:`11935`, join categories and categories over base rings + By :issue:`11935`, join categories and categories over base rings inherit from :class:`CategoryWithParameters`. This allows for sharing parent and element classes between similar categories. For example, since group algebras belong to a join category and since @@ -2964,7 +2964,7 @@ def _make_named_class_key(self, name): r""" Return what the element/parent/... classes depend on. - Since :trac:`11935`, the element/parent classes of a join + Since :issue:`11935`, the element/parent classes of a join category over base only depend on the element/parent class of its super categories. diff --git a/src/sage/categories/category_types.py b/src/sage/categories/category_types.py index 7357dc5e8e4..d80f5aa7bac 100644 --- a/src/sage/categories/category_types.py +++ b/src/sage/categories/category_types.py @@ -151,7 +151,7 @@ class Category_over_base(CategoryWithParameters): - ``base`` -- a category `C` or an object of such a category Assumption: the classes for the parents, elements, morphisms, of - ``self`` should only depend on `C`. See :trac:`11935` for details. + ``self`` should only depend on `C`. See :issue:`11935` for details. EXAMPLES:: @@ -213,7 +213,7 @@ def _make_named_class_key(self, name): r""" Return what the element/parent/... classes depend on. - Since :trac:`11935`, the element and parent classes of a + Since :issue:`11935`, the element and parent classes of a category over base only depend on the category of the base (or the base itself if it is a category). @@ -451,7 +451,7 @@ def _subcategory_hook_(self, C): ....: VectorSpaces(GF(3)).parent_class) True - Check that :trac:`16618` is fixed: this `_subcategory_hook_` + Check that :issue:`16618` is fixed: this `_subcategory_hook_` method is only valid for :class:`Category_over_base_ring`, not :class:`Category_over_base`:: diff --git a/src/sage/categories/category_with_axiom.py b/src/sage/categories/category_with_axiom.py index 20668629649..005e86d7b87 100644 --- a/src/sage/categories/category_with_axiom.py +++ b/src/sage/categories/category_with_axiom.py @@ -179,7 +179,7 @@ class ``Semigroups.Infinite`` inheriting from :class:`CategoryWithAxiom`. In principle, due to a limitation of :class:`~sage.misc.lazy_import.LazyImport` with nested classes (see - :trac:`15648`), one should pass the option ``as_name`` to + :issue:`15648`), one should pass the option ``as_name`` to :class:`~sage.misc.lazy_import.LazyImport`:: Finite = LazyImport('sage.categories.finite_groups', 'FiniteGroups', @@ -309,7 +309,7 @@ class from the base category class:: error is raised), it saves on some redundant information, and it is only used for the simple shorthands like ``FiniteGroups()`` for ``Groups().Finite()``. Finally, most if not all of these - shorthands are likely to eventually disappear (see :trac:`15741` + shorthands are likely to eventually disappear (see :issue:`15741` and the :ref:`related discussion in the primer `). @@ -748,7 +748,7 @@ def _(): return LazyImport('sage.categories.rngs', 'Rngs', at_startup=True) The infrastructure would then be in charge of building the appropriate arborescence under the hood. Or rely on some database (see discussion -on :trac:`10963`, in particular at the end of comment 332). +on :issue:`10963`, in particular at the end of comment 332). Axioms defined upon other axioms ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -930,7 +930,7 @@ def _(): return LazyImport('sage.categories.rngs', 'Rngs', at_startup=True) the future, with quite a few occurrences already implemented in upcoming issues. For the time being though there is a single occurrence of this idiom outside of the tests. So this would be an - easy thing to refactor after :trac:`10963` if a better idiom is + easy thing to refactor after :issue:`10963` if a better idiom is found. Larger synthetic examples @@ -1372,7 +1372,7 @@ class ``Sets.Finite``), or in a separate file (typically in a class A.CartesianProducts() & B.CartesianProducts() = (A&B).CartesianProducts() - - Once full subcategories are implemented (see :trac:`10668`), + - Once full subcategories are implemented (see :issue:`10668`), make the relevant categories with axioms be such. This can be done systematically for, e.g., the axioms ``Associative`` or ``Commutative``, but not for the axiom ``Unital``: a semigroup @@ -1756,7 +1756,7 @@ def base_category_class_and_axiom(cls): In the following example, we could possibly retrieve ``Sets`` from the class name. However this cannot be implemented - robustly until :trac:`9107` is fixed. Anyway this feature + robustly until :issue:`9107` is fixed. Anyway this feature has not been needed so far:: sage: Sets.Infinite diff --git a/src/sage/categories/coalgebras.py b/src/sage/categories/coalgebras.py index b69fdf29784..07b18882d49 100644 --- a/src/sage/categories/coalgebras.py +++ b/src/sage/categories/coalgebras.py @@ -224,7 +224,7 @@ def extra_super_categories(self): .. WARNING:: This is only correct in certain cases (finite dimension, ...). - See :trac:`15647`. + See :issue:`15647`. """ from sage.categories.algebras import Algebras return [Algebras(self.base_category().base_ring())] diff --git a/src/sage/categories/covariant_functorial_construction.py b/src/sage/categories/covariant_functorial_construction.py index ce4909a7b63..c38fe295dbf 100644 --- a/src/sage/categories/covariant_functorial_construction.py +++ b/src/sage/categories/covariant_functorial_construction.py @@ -269,7 +269,7 @@ def _base_category_class(cls): got <...GradedAlgebrasWithBasis'> We note that because ``Algebras.WithBasis`` is not lazily imported - on startup (see :trac:`22955`), the test fails at a different + on startup (see :issue:`22955`), the test fails at a different point in the code. However, if this import becomes lazy again, then the following error will be generated and can replace the above:: @@ -345,7 +345,7 @@ def __classget__(cls, base_category, base_category_class): sage: Sets.Subquotients._base_category_class (,) - It also forces the resolution of lazy imports (see :trac:`15648`):: + It also forces the resolution of lazy imports (see :issue:`15648`):: sage: type(Algebras.__dict__["Graded"]) diff --git a/src/sage/categories/coxeter_groups.py b/src/sage/categories/coxeter_groups.py index 3fbd0956068..0f18f4f5ccd 100644 --- a/src/sage/categories/coxeter_groups.py +++ b/src/sage/categories/coxeter_groups.py @@ -501,7 +501,7 @@ def weak_order_ideal(self, predicate, side="right", category=None): TESTS: We iterate over each level (i.e., breadth-first-search in the - search forest), see :trac:`19926`:: + search forest), see :issue:`19926`:: sage: W = CoxeterGroup(['A',2]) # needs sage.groups sage.rings.number_field sage: [x.length() for x in W] # needs sage.groups sage.rings.number_field @@ -1121,7 +1121,7 @@ def bruhat_graph(self, x=None, y=None, edge_labels=False): Digraph on 10 vertices Check that the graph has the correct number of edges - (see :trac:`17744`):: + (see :issue:`17744`):: sage: len(G.edges(sort=False)) # needs sage.combinat sage.graphs sage.groups 16 @@ -2138,7 +2138,7 @@ def absolute_le(self, other): TESTS: - Check that this is independent of the implementation of the group, see :trac:`34799`:: + Check that this is independent of the implementation of the group, see :issue:`34799`:: sage: # needs sage.combinat sage.groups sage: W1 = WeylGroup(['A', 2]) @@ -2364,7 +2364,7 @@ def binary_factorizations(self, predicate=ConstantFunction(True)): sage: w0.binary_factorizations().category() # needs sage.combinat sage.groups Category of finite enumerated sets - Check that this is independent of the implementation of the group, see :trac:`34799`:: + Check that this is independent of the implementation of the group, see :issue:`34799`:: sage: # needs sage.combinat sage.groups sage: W1 = WeylGroup(['A', 3]) @@ -2511,7 +2511,7 @@ def bruhat_lower_covers_reflections(self): TESTS: - Check bug discovered in :trac:`32669` is fixed:: + Check bug discovered in :issue:`32669` is fixed:: sage: W = CoxeterGroup(['A', 3], implementation='permutation') # needs sage.combinat sage.groups sage: W.w0.bruhat_lower_covers_reflections() # needs sage.combinat sage.groups diff --git a/src/sage/categories/crystals.py b/src/sage/categories/crystals.py index c2a9b8de655..5bf8f46d201 100644 --- a/src/sage/categories/crystals.py +++ b/src/sage/categories/crystals.py @@ -482,7 +482,7 @@ def subcrystal(self, index_set=None, generators=None, max_depth=float("inf"), TESTS: - Check that :trac:`23942` is fixed:: + Check that :issue:`23942` is fixed:: sage: B = crystals.infinity.Tableaux(['A',2]) sage: S = B.subcrystal(max_depth=3, category=HighestWeightCrystals()) @@ -877,7 +877,7 @@ def digraph(self, subset=None, index_set=None): TESTS: - We check that infinite crystals raise an error (:trac:`21986`):: + We check that infinite crystals raise an error (:issue:`21986`):: sage: B = crystals.infinity.Tableaux(['A',2]) sage: B.digraph() @@ -1744,7 +1744,7 @@ def subcrystal(self, index_set=None, max_depth=float("inf"), direction="both", TESTS: - Check that :trac:`23942` is fixed:: + Check that :issue:`23942` is fixed:: sage: K = crystals.KirillovReshetikhin(['A',2,1], 1,1) sage: cat = HighestWeightCrystals().Finite() diff --git a/src/sage/categories/enumerated_sets.py b/src/sage/categories/enumerated_sets.py index 7375043487e..08150e61360 100644 --- a/src/sage/categories/enumerated_sets.py +++ b/src/sage/categories/enumerated_sets.py @@ -605,7 +605,7 @@ def _list_from_iterator(self): TESTS: Trying to list an infinite vector space raises an error - instead of running forever (see :trac:`10470`):: + instead of running forever (see :issue:`10470`):: sage: (QQ^2).list() # indirect test # needs sage.modules Traceback (most recent call last): @@ -615,7 +615,7 @@ def _list_from_iterator(self): Here we test that for an object that does not know whether it is finite or not. Calling ``x.list()`` simply tries to create the list (but here it fails, since the object is not - iterable). This was fixed :trac:`11350` :: + iterable). This was fixed :issue:`11350` :: sage: R. = QQ[] sage: Q = R.quotient(t^2-t+1) diff --git a/src/sage/categories/facade_sets.py b/src/sage/categories/facade_sets.py index 7bf2ac2f067..3f7fcf98abb 100644 --- a/src/sage/categories/facade_sets.py +++ b/src/sage/categories/facade_sets.py @@ -118,7 +118,7 @@ def facade_for(self): sage: S.facade_for() (Integer Ring,) - Check that :trac:`13801` is corrected:: + Check that :issue:`13801` is corrected:: sage: class A(Parent): ....: def __init__(self): diff --git a/src/sage/categories/fields.py b/src/sage/categories/fields.py index 82769322ab9..7407632a93f 100644 --- a/src/sage/categories/fields.py +++ b/src/sage/categories/fields.py @@ -91,10 +91,10 @@ def __contains__(self, x): sage: GR in Fields() # needs sage.libs.gap True - The following tests against a memory leak fixed in :trac:`13370`. In order + The following tests against a memory leak fixed in :issue:`13370`. In order to prevent non-deterministic deallocation of fields that have been created in other doctests, we introduced a strong reference to all previously created - uncollected objects in :trac:`19244`. :: + uncollected objects in :issue:`19244`. :: sage: import gc sage: _ = gc.collect() @@ -269,7 +269,7 @@ def _gcd_univariate_polynomial(self, a, b): sage: f.gcd(g) 1.00000000000000 - Check :trac:`23012`:: + Check :issue:`23012`:: sage: # needs sage.libs.pari sage: R. = QQ[] @@ -357,7 +357,7 @@ def _xgcd_univariate_polynomial(self, a, b): x^2 + 2 We check that the behavior of xgcd with zero elements is - compatible with gcd (:trac:`17671`):: + compatible with gcd (:issue:`17671`):: sage: # needs sage.rings.number_field sage: R. = QQbar[] @@ -637,8 +637,8 @@ def gcd(self,other): AUTHOR: - - Simon King (2011-02) -- :trac:`10771` - - Vincent Delecroix (2015) -- :trac:`17671` + - Simon King (2011-02) -- :issue:`10771` + - Vincent Delecroix (2015) -- :issue:`17671` """ P = self.parent() try: @@ -691,8 +691,8 @@ def lcm(self, other): AUTHOR: - - Simon King (2011-02) -- :trac:`10771` - - Vincent Delecroix (2015) -- :trac:`17671` + - Simon King (2011-02) -- :issue:`10771` + - Vincent Delecroix (2015) -- :issue:`17671` """ P = self.parent() try: diff --git a/src/sage/categories/finite_complex_reflection_groups.py b/src/sage/categories/finite_complex_reflection_groups.py index b1e89676728..2fdc9912f89 100644 --- a/src/sage/categories/finite_complex_reflection_groups.py +++ b/src/sage/categories/finite_complex_reflection_groups.py @@ -118,7 +118,7 @@ def WellGenerated(self): The category of well generated finite complex reflection groups is currently implemented as an - axiom. See discussion on :trac:`11187`. This may be a + axiom. See discussion on :issue:`11187`. This may be a bit of overkill. Still it's nice to have a full subcategory. diff --git a/src/sage/categories/finite_coxeter_groups.py b/src/sage/categories/finite_coxeter_groups.py index bd016ad2b69..afc4ca43a40 100644 --- a/src/sage/categories/finite_coxeter_groups.py +++ b/src/sage/categories/finite_coxeter_groups.py @@ -66,7 +66,7 @@ class ParentMethods: is preferable to that of :class:`FiniteGroups`. The same holds for ``__iter__``, although a breadth first search would be more natural; at least this maintains backward compatibility after - :trac:`13589`. + :issue:`13589`. TESTS:: diff --git a/src/sage/categories/finite_dimensional_algebras_with_basis.py b/src/sage/categories/finite_dimensional_algebras_with_basis.py index 0858078f41b..e1df9318ec3 100644 --- a/src/sage/categories/finite_dimensional_algebras_with_basis.py +++ b/src/sage/categories/finite_dimensional_algebras_with_basis.py @@ -818,7 +818,7 @@ def peirce_summand(self, ei, ej): TESTS: We check each idempotent belong to its own Peirce summand - (see :trac:`24687`):: + (see :issue:`24687`):: sage: # needs sage.groups sage: from sage.monoids.hecke_monoid import HeckeMonoid diff --git a/src/sage/categories/finite_dimensional_lie_algebras_with_basis.py b/src/sage/categories/finite_dimensional_lie_algebras_with_basis.py index ee3c14948aa..e6ed304aa7b 100644 --- a/src/sage/categories/finite_dimensional_lie_algebras_with_basis.py +++ b/src/sage/categories/finite_dimensional_lie_algebras_with_basis.py @@ -59,7 +59,7 @@ class FiniteDimensionalLieAlgebrasWithBasis(CategoryWithAxiom_over_base_ring): .. TODO:: Many of these tests should use non-abelian Lie algebras and need to - be added after :trac:`16820`. + be added after :issue:`16820`. """ _base_category_class_and_axiom = (LieAlgebras.FiniteDimensional, "WithBasis") @@ -222,7 +222,7 @@ def _basis_key(self, x): - 4*PBW[-alpha[1]]*PBW[alpha[1]] + PBW[alphacheck[1]]^2 - 2*PBW[alphacheck[1]] - Check that :trac:`23266` is fixed:: + Check that :issue:`23266` is fixed:: sage: # needs sage.groups sage.modules sage: sl2 = lie_algebras.sl(QQ, 2, 'matrix') @@ -1985,7 +1985,7 @@ def to_vector(self, order=None, sparse=False): TESTS: Check that the error raised agrees with the one - from ``monomial_coefficients()`` (see :trac:`25007`):: + from ``monomial_coefficients()`` (see :issue:`25007`):: sage: # needs sage.combinat sage.modules sage: L = lie_algebras.sp(QQ, 4, representation='matrix') diff --git a/src/sage/categories/finite_dimensional_modules_with_basis.py b/src/sage/categories/finite_dimensional_modules_with_basis.py index a4d012f89b7..ab22cd355d5 100644 --- a/src/sage/categories/finite_dimensional_modules_with_basis.py +++ b/src/sage/categories/finite_dimensional_modules_with_basis.py @@ -649,7 +649,7 @@ def matrix(self, base_ring=None, side="left"): TESTS: - Check that :trac:`23216` is fixed:: + Check that :issue:`23216` is fixed:: sage: # needs sage.modules sage: X = CombinatorialFreeModule(QQ, []) diff --git a/src/sage/categories/finite_enumerated_sets.py b/src/sage/categories/finite_enumerated_sets.py index 6c4fba4c1a6..38958d8d024 100644 --- a/src/sage/categories/finite_enumerated_sets.py +++ b/src/sage/categories/finite_enumerated_sets.py @@ -128,7 +128,7 @@ def _cardinality_from_iterator(self, *ignored_args, **ignored_kwds): We ignore additional inputs since during doctests classes which override ``cardinality()`` call up to the category rather than - their own ``cardinality()`` method (see :trac:`13688`):: + their own ``cardinality()`` method (see :issue:`13688`):: sage: C = FiniteEnumeratedSets().example() sage: C._cardinality_from_iterator(algorithm='testing') @@ -181,7 +181,7 @@ def _cardinality_from_list(self, *ignored_args, **ignored_kwds): We ignore additional inputs since during doctests classes which override ``cardinality()`` call up to the category rather than - their own ``cardinality()`` method (see :trac:`13688`):: + their own ``cardinality()`` method (see :issue:`13688`):: sage: C = FiniteEnumeratedSets().example() sage: C._cardinality_from_list(algorithm='testing') diff --git a/src/sage/categories/finite_permutation_groups.py b/src/sage/categories/finite_permutation_groups.py index f14c66a96c9..a8c008ac170 100644 --- a/src/sage/categories/finite_permutation_groups.py +++ b/src/sage/categories/finite_permutation_groups.py @@ -180,7 +180,7 @@ def cycle_index(self, parent=None): p[1, 1, 1, 1, 1] + 10*p[2, 1, 1, 1] + 15*p[2, 2, 1] + 20*p[3, 1, 1] + 20*p[3, 2] + 30*p[4, 1] + 24*p[5] Permutation groups with arbitrary domains are supported - (see :trac:`22765`):: + (see :issue:`22765`):: sage: G = PermutationGroup([['b','c','a']], domain=['a','b','c']) sage: G.cycle_index() diff --git a/src/sage/categories/functor.pyx b/src/sage/categories/functor.pyx index e8cf2e5538f..889de1d7e7d 100644 --- a/src/sage/categories/functor.pyx +++ b/src/sage/categories/functor.pyx @@ -42,7 +42,7 @@ def _Functor_unpickle(Cl, D, domain, codomain): AUTHOR: - - Simon King (2010-12): :trac:`10460` + - Simon King (2010-12): :issue:`10460` EXAMPLES:: @@ -203,7 +203,7 @@ cdef class Functor(SageObject): AUTHOR: - - Simon King (2010-12): :trac:`10460` + - Simon King (2010-12): :issue:`10460` TESTS:: @@ -314,7 +314,7 @@ cdef class Functor(SageObject): Functor from Category of rings to Category of fields A functor can be renamed if its type is a Python class - (see :trac:`16156`):: + (see :issue:`16156`):: sage: I = IdentityFunctor(Rings()); I The identity functor on Category of rings @@ -364,7 +364,7 @@ cdef class Functor(SageObject): The last example shows that it is tested whether the result of applying the functor lies in the functor's codomain. Note that the matrix functor used to be defined similar to this example, - which was fixed in :trac:`8807`:: + which was fixed in :issue:`8807`:: sage: class IllFunctor(Functor): ....: def __init__(self, m, n): @@ -512,7 +512,7 @@ class ForgetfulFunctor_generic(Functor): sage: F1 = ForgetfulFunctor(FiniteFields(), Fields()) This is to test against a bug occurring in a previous version - (see :trac:`8800`):: + (see :issue:`8800`):: sage: F1 == QQ #indirect doctest False diff --git a/src/sage/categories/group_algebras.py b/src/sage/categories/group_algebras.py index 89ad3f56d79..c5cceb53633 100644 --- a/src/sage/categories/group_algebras.py +++ b/src/sage/categories/group_algebras.py @@ -9,13 +9,13 @@ - David Loeffler (2008-08-24): initial version - Martin Raum (2009-08): update to use new coercion model -- see - :trac:`6670`. + :issue:`6670`. - John Palmieri (2011-07): more updates to coercion, categories, etc., group algebras constructed using CombinatorialFreeModule -- see - :trac:`6670`. + :issue:`6670`. - Nicolas M. Thiéry (2010-2017), Travis Scrimshaw (2017): generalization to a covariant functorial construction for - monoid algebras, and beyond -- see e.g. :trac:`18700`. + monoid algebras, and beyond -- see e.g. :issue:`18700`. """ #***************************************************************************** @@ -409,7 +409,7 @@ def central_form(self): 4*B[()] + 3*B[(1,2)] + 2*B[(1,2)(3,4)] + 2*B[(1,2,3)] + B[(1,2,3,4)] The following test fails due to a bug involving combinatorial free modules and - the coercion system (see :trac:`28544`):: + the coercion system (see :issue:`28544`):: sage: # needs sage.groups sage.modules sage: G = PermutationGroup([[(1,2,3),(4,5)], [(3,4)]]) diff --git a/src/sage/categories/groups.py b/src/sage/categories/groups.py index 445ba111c09..3b3a5344267 100644 --- a/src/sage/categories/groups.py +++ b/src/sage/categories/groups.py @@ -424,7 +424,7 @@ class provides even greater flexibility, including changing Arrange an ordering of elements into cosets of a normal subgroup close to size `\sqrt{n}`. Then the quotient group structure is often apparent in the table. See - comments on :trac:`7555`. + comments on :issue:`7555`. AUTHOR: @@ -589,7 +589,7 @@ def group_generators(self): ((), (), (1,2)), ((), (), (2,3))) - We check the other portion of :trac:`16718` is fixed:: + We check the other portion of :issue:`16718` is fixed:: sage: len(C.j_classes()) # needs sage.groups 1 diff --git a/src/sage/categories/hecke_modules.py b/src/sage/categories/hecke_modules.py index 8a8da4f64ef..6a575fd17d6 100644 --- a/src/sage/categories/hecke_modules.py +++ b/src/sage/categories/hecke_modules.py @@ -139,7 +139,7 @@ def _Hom_(self, Y, category): Fixing :meth:`_test_zero` (``__call__`` should accept a function as input) and :meth:`_test_elements*` (modular form morphisms elements should inherit from categories) is - :trac:`12879`. + :issue:`12879`. TESTS:: @@ -170,7 +170,7 @@ def extra_super_categories(self): TESTS: Check that Hom sets of Hecke modules are in the correct - category (see :trac:`17359`):: + category (see :issue:`17359`):: sage: HeckeModules(ZZ).Homsets().super_categories() [Category of modules over Integer Ring, Category of homsets] diff --git a/src/sage/categories/highest_weight_crystals.py b/src/sage/categories/highest_weight_crystals.py index baf50566cc0..32cbf77c87a 100644 --- a/src/sage/categories/highest_weight_crystals.py +++ b/src/sage/categories/highest_weight_crystals.py @@ -430,7 +430,7 @@ def _Hom_(self, Y, category=None, **options): TESTS: Check that we fallback first to trying a crystal homset - (:trac:`19458`):: + (:issue:`19458`):: sage: Binf = crystals.infinity.Tableaux(['A',2]) sage: Bi = crystals.elementary.Elementary(Binf.cartan_type(), 1) @@ -764,7 +764,7 @@ def highest_weight_vectors_iterator(self): ... NotImplementedError: not implemented for infinite crystals - Check that :trac:`30493` is fixed:: + Check that :issue:`30493` is fixed:: sage: CW = CartanType("G", 2) sage: C = crystals.Letters(CW) diff --git a/src/sage/categories/homset.py b/src/sage/categories/homset.py index 9925ecf45b0..deb489a9042 100644 --- a/src/sage/categories/homset.py +++ b/src/sage/categories/homset.py @@ -130,7 +130,7 @@ def Hom(X, Y, category=None, check=True): to Ambient free module of rank 1 over the principal ideal domain Integer Ring in Category of commutative additive groups - Here, we test against a memory leak that has been fixed at :trac:`11521` by + Here, we test against a memory leak that has been fixed at :issue:`11521` by using a weak cache:: sage: # needs sage.libs.pari @@ -216,7 +216,7 @@ def Hom(X, Y, category=None, check=True): found in the cache will have a (co)domain that is equal to, but not identical with, the given (co)domain. - By :trac:`9138`, we abandon the uniqueness of homsets, if the + By :issue:`9138`, we abandon the uniqueness of homsets, if the domain or codomain break uniqueness:: sage: from sage.rings.polynomial.multi_polynomial_ring import MPolynomialRing_polydict_domain @@ -258,7 +258,7 @@ def Hom(X, Y, category=None, check=True): sage: H1 == H2, H1 is H2 (False, False) - Since :trac:`11900`, the meet of the categories of the given arguments is + Since :issue:`11900`, the meet of the categories of the given arguments is used to determine the default category of the homset. This can also be a join category, as in the following example:: @@ -316,7 +316,7 @@ def Hom(X, Y, category=None, check=True): Those checks are done with the natural idiom ``X in category``, and not ``X.category().is_subcategory(category)`` as it used to be - before :trac:`16275` (see :trac:`15801` for a real use case):: + before :issue:`16275` (see :issue:`15801` for a real use case):: sage: # needs sage.graphs sage: class PermissiveCategory(Category): @@ -702,7 +702,7 @@ def __reduce__(self): Beside speed considerations, this is the main rationale for disabling checks upon unpickling. - .. SEEALSO:: :trac:`14793`, :trac:`16275` + .. SEEALSO:: :issue:`14793`, :issue:`16275` EXAMPLES:: @@ -865,7 +865,7 @@ def _element_constructor_(self, x, check=None, **options): sage: f(1), f(2), f(3) (2/3, 2/3, 2/3) - By :trac:`14711`, conversion and coerce maps should be copied + By :issue:`14711`, conversion and coerce maps should be copied before using them outside of the coercion system:: sage: H = Hom(ZZ,QQ['t'], CommutativeAdditiveGroups()) diff --git a/src/sage/categories/homsets.py b/src/sage/categories/homsets.py index 6a24e546eb7..b915dbb12fe 100644 --- a/src/sage/categories/homsets.py +++ b/src/sage/categories/homsets.py @@ -237,7 +237,7 @@ class Homsets(Category_singleton): or equivalently that we only implement locally small categories. See :wikipedia:`Category_(mathematics)`. - :trac:`17364`: every homset category shall be a subcategory of the + :issue:`17364`: every homset category shall be a subcategory of the category of all homsets:: sage: Schemes().Homsets().is_subcategory(Homsets()) diff --git a/src/sage/categories/lie_algebras.py b/src/sage/categories/lie_algebras.py index 4226c4dba61..81596a7786c 100644 --- a/src/sage/categories/lie_algebras.py +++ b/src/sage/categories/lie_algebras.py @@ -77,7 +77,7 @@ class LieAlgebras(Category_over_base_ring): .. TODO:: Many of these tests should use Lie algebras that are not the minimal - example and need to be added after :trac:`16820` (and :trac:`16823`). + example and need to be added after :issue:`16820` (and :issue:`16823`). """ @cached_method def super_categories(self): diff --git a/src/sage/categories/loop_crystals.py b/src/sage/categories/loop_crystals.py index ad49bd42892..ad5f913cabc 100644 --- a/src/sage/categories/loop_crystals.py +++ b/src/sage/categories/loop_crystals.py @@ -269,7 +269,7 @@ def maximal_vector(self): TESTS: - Check that :trac:`23028` is fixed:: + Check that :issue:`23028` is fixed:: sage: ct = CartanType(['A',8,2]).dual() sage: K = crystals.KirillovReshetikhin(ct, 4, 1) @@ -528,7 +528,7 @@ def is_perfect(self, ell=None): TESTS: Check that this works correctly for `B^{n,s}` - of type `A_{2n}^{(2)\dagger}` (:trac:`24364`):: + of type `A_{2n}^{(2)\dagger}` (:issue:`24364`):: sage: K = crystals.KirillovReshetikhin(CartanType(['A',6,2]).dual(), 3, 1) sage: K.is_perfect() @@ -612,7 +612,7 @@ def level(self): TESTS: Check that this works correctly for `B^{n,s}` - of type `A_{2n}^{(2)\dagger}` (:trac:`24364`):: + of type `A_{2n}^{(2)\dagger}` (:issue:`24364`):: sage: ct = CartanType(['A',6,2]).dual() sage: K1 = crystals.KirillovReshetikhin(ct, 3,1) @@ -1088,7 +1088,7 @@ def e_string_to_ground_state(self): TESTS: - Check that :trac:`22882` is fixed:: + Check that :issue:`22882` is fixed:: sage: K = crystals.KirillovReshetikhin(CartanType(['A',6,2]).dual(), 1,1) sage: T = tensor([K,K,K]) @@ -1183,7 +1183,7 @@ def __init__(self, B, Bp, normalization=0): TESTS: - Check that :trac:`23014` is fixed:: + Check that :issue:`23014` is fixed:: sage: La = RootSystem(['G',2,1]).weight_space().fundamental_weights() sage: K = crystals.ProjectedLevelZeroLSPaths(La[1]) diff --git a/src/sage/categories/magmas.py b/src/sage/categories/magmas.py index b0d95ff6c3b..247603d3d31 100644 --- a/src/sage/categories/magmas.py +++ b/src/sage/categories/magmas.py @@ -323,7 +323,7 @@ def JTrivial(self): This axiom is in fact only meaningful for :class:`semigroups `. This stub definition is - here as a workaround for :trac:`20515`, in order to define + here as a workaround for :issue:`20515`, in order to define the `J`-trivial axiom as the intersection of the `L` and `R`-trivial axioms. diff --git a/src/sage/categories/magmatic_algebras.py b/src/sage/categories/magmatic_algebras.py index 9d37608569d..f0537c104d6 100644 --- a/src/sage/categories/magmatic_algebras.py +++ b/src/sage/categories/magmatic_algebras.py @@ -32,7 +32,7 @@ class MagmaticAlgebras(Category_over_base_ring): :class:`MagmaticAlgebras` will eventually replace the current :class:`Algebras` for consistency with e.g. :wikipedia:`Algebras` which assumes neither associativity - nor the existence of a unit (see :trac:`15043`). + nor the existence of a unit (see :issue:`15043`). EXAMPLES:: diff --git a/src/sage/categories/map.pyx b/src/sage/categories/map.pyx index a931ceaa6cb..29613f16285 100644 --- a/src/sage/categories/map.pyx +++ b/src/sage/categories/map.pyx @@ -6,10 +6,10 @@ AUTHORS: - Robert Bradshaw: initial implementation - Sebastien Besnier (2014-05-5): :class:`FormalCompositeMap` contains - a list of Map instead of only two Map. See :trac:`16291`. + a list of Map instead of only two Map. See :issue:`16291`. - Sebastian Oehms (2019-01-19): :meth:`section` added to :class:`FormalCompositeMap`. - See :trac:`27081`. + See :issue:`27081`. """ # **************************************************************************** # Copyright (C) 2008 Robert Bradshaw @@ -264,7 +264,7 @@ cdef class Map(Element): sage: Q = QuadraticField(-5) # needs sage.rings.number_field sage: phi = CDF._internal_convert_map_from(Q) # needs sage.rings.number_field - By :trac:`14711`, maps used in the coercion and conversion system + By :issue:`14711`, maps used in the coercion and conversion system use *weak* references to domain and codomain, in contrast to other maps:: @@ -332,7 +332,7 @@ cdef class Map(Element): sage: Q = QuadraticField(-5) # needs sage.rings.number_field sage: phi = CDF._internal_convert_map_from(Q) # needs sage.rings.number_field - By :trac:`14711`, maps used in the coercion and conversion system + By :issue:`14711`, maps used in the coercion and conversion system use *weak* references to domain and codomain, in contrast to other maps:: @@ -718,7 +718,7 @@ cdef class Map(Element): We test that the map can be applied to something that converts (but not coerces) into the domain and can *not* be dealt with - by :meth:`pushforward` (see :trac:`10496`):: + by :meth:`pushforward` (see :issue:`10496`):: sage: D = {(0, 2): -1, (0, 0): -1, (1, 1): 7, (2, 0): 1/3} sage: phi(D) @@ -736,7 +736,7 @@ cdef class Map(Element): but a `pushforward` method is not properly implemented We test that the default call method really works as described - above (that was fixed in :trac:`10496`):: + above (that was fixed in :issue:`10496`):: sage: class FOO(Map): ....: def _call_(self, x): @@ -1920,7 +1920,7 @@ cdef class FormalCompositeMap(Map): TESTS: - Check that :trac:`23205` has been resolved:: + Check that :issue:`23205` has been resolved:: sage: f = QQ.hom(QQbar) * ZZ.hom(QQ) # needs sage.rings.number_field sage: f.is_injective() # needs sage.rings.number_field diff --git a/src/sage/categories/modules.py b/src/sage/categories/modules.py index 6927e3d4936..c5b1aa2afb5 100644 --- a/src/sage/categories/modules.py +++ b/src/sage/categories/modules.py @@ -112,7 +112,7 @@ class Modules(Category_module): - Implement a ``FreeModules(R)`` category, when so prompted by a concrete use case: e.g. modeling a free module with several bases (using :meth:`Sets.SubcategoryMethods.Realizations`) - or with an atlas of local maps (see e.g. :trac:`15916`). + or with an atlas of local maps (see e.g. :issue:`15916`). """ @staticmethod @@ -286,7 +286,7 @@ def DualObjects(self): - Typically, the category of graded modules should define a separate ``graded_dual`` construction (see - :trac:`15647`). For now the two constructions are + :issue:`15647`). For now the two constructions are not distinguished which is an oversimplified model. .. SEEALSO:: @@ -876,7 +876,7 @@ def __init_extra__(self): sage: C.base_ring() Integer Ring - Check that :trac:`29225` is fixed:: + Check that :issue:`29225` is fixed:: sage: M = cartesian_product((ZZ^2, ZZ^3)); M # needs sage.modules The Cartesian product of diff --git a/src/sage/categories/modules_with_basis.py b/src/sage/categories/modules_with_basis.py index df7a04edc1f..dfd159ac8ec 100644 --- a/src/sage/categories/modules_with_basis.py +++ b/src/sage/categories/modules_with_basis.py @@ -5,7 +5,7 @@ - Nicolas M. Thiery (2008-2014): initial revision, axiomatization - Jason Bandlow and Florent Hivert (2010): Triangular Morphisms -- Christian Stump (2010): :trac:`9648` module_morphism's to a wider class +- Christian Stump (2010): :issue:`9648` module_morphism's to a wider class of codomains """ #***************************************************************************** @@ -124,7 +124,7 @@ class ModulesWithBasis(CategoryWithAxiom_over_base_ring): .. NOTE:: This category currently requires an implementation of an - element method ``support``. Once :trac:`18066` is merged, an + element method ``support``. Once :issue:`18066` is merged, an implementation of an ``items`` method will be required. TESTS:: @@ -489,7 +489,7 @@ def module_morphism(self, on_basis=None, matrix=None, function=None, sage: (phi^-1)(y[30]) -B[1] + B[2] + B[3] + B[5] - B[6] - B[10] - B[15] + B[30] - Since :trac:`8678`, one can also define a triangular + Since :issue:`8678`, one can also define a triangular morphism from a function:: sage: # needs sage.modules @@ -1356,7 +1356,7 @@ def random_element(self, n=2): TESTS: - Ensure that the two issues reported in :trac:`28327` are + Ensure that the two issues reported in :issue:`28327` are fixed; that we don't rely unnecessarily on being able to coerce the base ring's zero into the algebra, and that we can find a random element in a trivial module:: diff --git a/src/sage/categories/monoids.py b/src/sage/categories/monoids.py index 28474bd17b6..dc8e67101d9 100644 --- a/src/sage/categories/monoids.py +++ b/src/sage/categories/monoids.py @@ -66,7 +66,7 @@ class Monoids(CategoryWithAxiom): sage: x^0, x^1, x^2, x^3, x^4, x^5 ('', 'aa', 'aaaa', 'aaaaaa', 'aaaaaaaa', 'aaaaaaaaaa') - Check for :trac:`31212`:: + Check for :issue:`31212`:: sage: R = IntegerModRing(15) sage: R.submonoid([R.one()]).list() # needs sage.combinat diff --git a/src/sage/categories/morphism.pyx b/src/sage/categories/morphism.pyx index 8579ca89786..e36c32b34bc 100644 --- a/src/sage/categories/morphism.pyx +++ b/src/sage/categories/morphism.pyx @@ -365,14 +365,14 @@ cdef class Morphism(Map): NotImplementedError: unable to compare morphisms of type <... 'sage.categories.morphism.IdentityMorphism'> and <... 'sage.categories.morphism.SetMorphism'> with domain Partitions of the integer 5 - We check that :trac:`28617` is fixed:: + We check that :issue:`28617` is fixed:: sage: FF = GF(2^20) # needs sage.rings.finite_rings sage: f = FF.frobenius_endomorphism() # needs sage.rings.finite_rings sage: f == FF.frobenius_endomorphism() # needs sage.rings.finite_rings True - and that :trac:`29632` is fixed:: + and that :issue:`29632` is fixed:: sage: R. = QuadraticField(-1)[] # needs sage.rings.number_field sage: f = R.hom(R.gens(), R) # needs sage.rings.number_field @@ -516,7 +516,7 @@ cdef class IdentityMorphism(Morphism): sage: E.identity().is_identity() # needs sage.combinat True - Check that :trac:`15478` is fixed:: + Check that :issue:`15478` is fixed:: sage: # needs sage.rings.finite_rings sage: K. = GF(4) diff --git a/src/sage/categories/posets.py b/src/sage/categories/posets.py index 98d1be6049d..cd08f65ad45 100644 --- a/src/sage/categories/posets.py +++ b/src/sage/categories/posets.py @@ -68,7 +68,7 @@ class Posets(Category): True At this point, this has to be implemented by hand. Once - :trac:`10130` will be resolved, this will be automatically + :issue:`10130` will be resolved, this will be automatically provided by this category:: sage: # not implemented diff --git a/src/sage/categories/primer.py b/src/sage/categories/primer.py index 178477bce7a..c7339b712e3 100644 --- a/src/sage/categories/primer.py +++ b/src/sage/categories/primer.py @@ -723,7 +723,7 @@ class SubcategoryMethods: of *subcategory* and is subject to change. Indeed, the forgetful functor from the category of groups to the category of sets is not an inclusion of categories, as it is not injective: a given set - may admit more than one group structure. See :trac:`16183` for + may admit more than one group structure. See :issue:`16183` for more details. The name *supercategory* is also used with a different meaning in certain areas of mathematics. @@ -1348,7 +1348,7 @@ class naming and introspection. Sage currently works around the whole range of related categories, typically with the help of introspection to discover which axioms are available, and without having to import new Python modules. This feature will be used in -:trac:`15741` to unclutter the global name space from, for example, +:issue:`15741` to unclutter the global name space from, for example, the many variants of the category of algebras like:: sage: FiniteDimensionalAlgebrasWithBasis(QQ) @@ -1648,13 +1648,13 @@ class will automatically become methods of the objects (or the method ``foo`` in this category. See the method ``some_elements`` in the code of the category :class:`FiniteCoxeterGroups` for an example. -Since :trac:`11943`, ``C.all_super_categories()`` is computed by the +Since :issue:`11943`, ``C.all_super_categories()`` is computed by the so-called ``C3`` algorithm used by Python to compute Method Resolution Order of new-style classes. Thus the order in ``C.all_super_categories()``, ``C.parent_class.mro()`` and ``C.element_class.mro()`` are guaranteed to be consistent. -Since :trac:`13589`, the ``C3`` algorithm is put under control of some +Since :issue:`13589`, the ``C3`` algorithm is put under control of some total order on categories. This order is not necessarily meaningful, but it guarantees that ``C3`` always finds a consistent Method Resolution Order. For background, see diff --git a/src/sage/categories/principal_ideal_domains.py b/src/sage/categories/principal_ideal_domains.py index 7d9ee8c1e32..f020cfb383d 100644 --- a/src/sage/categories/principal_ideal_domains.py +++ b/src/sage/categories/principal_ideal_domains.py @@ -63,7 +63,7 @@ def _test_gcd_vs_xgcd(self, **options): r""" Check that gcd and xgcd are compatible if implemented. - This test will prevent things like :trac:`17671` to happen again. + This test will prevent things like :issue:`17671` to happen again. TESTS:: diff --git a/src/sage/categories/pushout.py b/src/sage/categories/pushout.py index 55cd22d87dd..e8eee82998d 100644 --- a/src/sage/categories/pushout.py +++ b/src/sage/categories/pushout.py @@ -821,7 +821,7 @@ class PolynomialFunctor(ConstructionFunctor): sage: P(f)((x+y) * P(R).0) (-x + y)*t - By :trac:`9944`, the construction functor distinguishes sparse and + By :issue:`9944`, the construction functor distinguishes sparse and dense polynomial rings. Before, the following example failed:: sage: R. = PolynomialRing(GF(5), sparse=True) @@ -1644,7 +1644,7 @@ def _apply_functor(self, R): TESTS: - The following is a test against a bug discussed at :trac:`8800`:: + The following is a test against a bug discussed at :issue:`8800`:: sage: F = MatrixSpace(ZZ, 2, 3).construction()[0] # needs sage.modules sage: F(RR) # indirect doctest # needs sage.modules @@ -2736,7 +2736,7 @@ def merge(self, other): TESTS: - We check that :trac:`12353` has been resolved:: + We check that :issue:`12353` has been resolved:: sage: RIF(1) > RR(1) # needs sage.rings.real_interval_field Traceback (most recent call last): @@ -2846,8 +2846,8 @@ def commutes(self, other): sage: (C*F)(ZZ['x']) is (F*C)(ZZ['x']) True - The following was fixed in :trac:`15329` (it used to result - in an infinite recursion. In :trac:`23218` the construction + The following was fixed in :issue:`15329` (it used to result + in an infinite recursion. In :issue:`23218` the construction of `p`-adic fields changed, so there is no longer an Ambiguous base extension error raised):: @@ -2970,7 +2970,7 @@ def _apply_functor(self, R): Note that the ``quo()`` method of a field used to return the integer zero. That strange behaviour was removed in github - issue :trac:`9138`. It now returns a trivial quotient ring + issue :issue:`9138`. It now returns a trivial quotient ring when applied to a field:: sage: F = ZZ.quo([5]*ZZ).construction()[0] @@ -3070,7 +3070,7 @@ def merge(self, other): Univariate Quotient Polynomial Ring in xbar over Rational Field with modulus x^4 + 2*x^2 + 1 - The following was fixed in :trac:`8800`:: + The following was fixed in :issue:`8800`:: sage: pushout(GF(5), Integers(5)) # needs sage.libs.pari Finite Field of size 5 @@ -3310,7 +3310,7 @@ def __init__(self, polys, names, embeddings=None, structures=None, Maximal Order generated by zeta8 in Cyclotomic Field of order 8 and degree 4 The data stored in this construction includes structural - morphisms of number fields (see :trac:`20826`):: + morphisms of number fields (see :issue:`20826`):: sage: # needs sage.rings.number_field sage: R. = ZZ[] @@ -3380,7 +3380,7 @@ def _apply_functor(self, R): Univariate Quotient Polynomial Ring in a over Real Field with 53 bits of precision with modulus a^3 + a^2 + 1.00000000000000 - Check that :trac:`13538` is fixed:: + Check that :issue:`13538` is fixed:: sage: # needs sage.rings.padics sage: from sage.categories.pushout import AlgebraicExtensionFunctor diff --git a/src/sage/categories/quotient_fields.py b/src/sage/categories/quotient_fields.py index c49e66682d6..e33a48d4ceb 100644 --- a/src/sage/categories/quotient_fields.py +++ b/src/sage/categories/quotient_fields.py @@ -68,7 +68,7 @@ def gcd(self, other): AUTHOR: - - Simon King (2011-02): See :trac:`10771` + - Simon King (2011-02): See :issue:`10771` EXAMPLES:: @@ -162,7 +162,7 @@ def lcm(self, other): AUTHOR: - - Simon King (2011-02): See :trac:`10771` + - Simon King (2011-02): See :issue:`10771` EXAMPLES:: @@ -221,7 +221,7 @@ def lcm(self, other): 0 Check that it is possible to take lcm of a rational and an integer - (:trac:`17852`):: + (:issue:`17852`):: sage: (1/2).lcm(2) 2 @@ -355,7 +355,7 @@ def factor(self, *args, **kwds): sage: f.factor() # needs sage.libs.pari (x - 3)^-1 * x * (x^2 + 1) - Here is an example to show that :trac:`7868` has been resolved:: + Here is an example to show that :issue:`7868` has been resolved:: sage: R. = GF(2)[] sage: f = x*y/(x+y) @@ -481,7 +481,7 @@ def partial_fraction_decomposition(self, decompose_powers=True): sage: whole + sum(parts) == q # needs sage.libs.pari True - And also over finite fields (see :trac:`6052`, :trac:`9945`):: + And also over finite fields (see :issue:`6052`, :issue:`9945`):: sage: R. = GF(2)[] sage: q = (x+1)/(x^3+x+1) @@ -533,7 +533,7 @@ def partial_fraction_decomposition(self, decompose_powers=True): sage: (1/x+1/x^3).partial_fraction_decomposition() # needs sage.libs.pari (0, [1/x, 1/x^3]) - This was fixed in :trac:`16240`:: + This was fixed in :issue:`16240`:: sage: # needs sage.libs.pari sage: R. = QQ['x'] diff --git a/src/sage/categories/rings.py b/src/sage/categories/rings.py index a162fdb0def..9b952bbe02b 100644 --- a/src/sage/categories/rings.py +++ b/src/sage/categories/rings.py @@ -49,7 +49,7 @@ class Rings(CategoryWithAxiom): .. TODO:: - (see :trac:`sage_trac/wiki/CategoriesRoadMap`) + (see :issue:`sage_trac/wiki/CategoriesRoadMap`) - Make Rings() into a subcategory or alias of Algebras(ZZ); @@ -431,7 +431,7 @@ def _mul_(self, x, switch_sides=False): parents that belong to the category of rings also inherits from the base class of rings. Therefore, we implemented a ``__mul__`` method for parents, that - calls a ``_mul_`` method implemented here. See :trac:`7797`. + calls a ``_mul_`` method implemented here. See :issue:`7797`. INPUT: @@ -536,7 +536,7 @@ def ideal_monoid(self): The code is copied from the base class of rings. This is since there are rings that do not inherit from that class, such as matrix algebras. See - :trac:`7797`. + :issue:`7797`. EXAMPLES:: @@ -615,7 +615,7 @@ def ideal(self, *args, **kwds): :class:`~sage.rings.ring.Ring`. This is because there are rings that do not inherit from that class, such as matrix algebras. - See :trac:`7797`. + See :issue:`7797`. INPUT: diff --git a/src/sage/categories/sets_cat.py b/src/sage/categories/sets_cat.py index df0e3abee86..0a523f00903 100644 --- a/src/sage/categories/sets_cat.py +++ b/src/sage/categories/sets_cat.py @@ -942,7 +942,7 @@ def Facade(self): TESTS: Check that multiple categories initialisation - works (:trac:`13801`):: + works (:issue:`13801`):: sage: class A(Parent): ....: def __init__(self): @@ -2674,7 +2674,7 @@ def construction(self): True This also works for structures such as monoid algebras (see - :trac:`27937`):: + :issue:`27937`):: sage: A = FreeAbelianMonoid('x,y').algebra(QQ) # needs sage.groups sage.modules sage: F, arg = A.construction(); F, arg # needs sage.groups sage.modules diff --git a/src/sage/categories/super_algebras.py b/src/sage/categories/super_algebras.py index d63b2cc6da5..329ebebe420 100644 --- a/src/sage/categories/super_algebras.py +++ b/src/sage/categories/super_algebras.py @@ -87,7 +87,7 @@ def tensor(*parents, **kwargs): sage: A.rename(None) This also works when the other elements do not have - a signed tensor product (:trac:`31266`):: + a signed tensor product (:issue:`31266`):: sage: # needs sage.combinat sage.modules sage: a = SteenrodAlgebra(3).an_element() diff --git a/src/sage/categories/unique_factorization_domains.py b/src/sage/categories/unique_factorization_domains.py index 851bfe80175..3f5467b0a16 100644 --- a/src/sage/categories/unique_factorization_domains.py +++ b/src/sage/categories/unique_factorization_domains.py @@ -160,7 +160,7 @@ def _gcd_univariate_polynomial(self, f, g): sage: (-x^2 - 4*x - 5)^(3-2+1) * p == quo*q + rem True - Check that :trac:`23620` has been resolved:: + Check that :issue:`23620` has been resolved:: sage: # needs sage.rings.padics sage: R. = ZpFM(2)[] diff --git a/src/sage/categories/unital_algebras.py b/src/sage/categories/unital_algebras.py index ee141189143..0f4fa24600d 100644 --- a/src/sage/categories/unital_algebras.py +++ b/src/sage/categories/unital_algebras.py @@ -30,7 +30,7 @@ class UnitalAlgebras(CategoryWithAxiom_over_base_ring): .. WARNING:: - Until :trac:`15043` is implemented, :class:`Algebras` is the + Until :issue:`15043` is implemented, :class:`Algebras` is the category of associative unital algebras; thus, unlike the name suggests, :class:`UnitalAlgebras` is not a subcategory of :class:`Algebras` but of @@ -93,7 +93,7 @@ def __init_extra__(self): TESTS: - Ensure that :trac:`28328` is fixed and that non-associative + Ensure that :issue:`28328` is fixed and that non-associative algebras are supported:: sage: # needs sage.modules @@ -134,7 +134,7 @@ def _coerce_map_from_(self, other): TESTS: - Check that :trac:`19225` is solved:: + Check that :issue:`19225` is solved:: sage: A = cartesian_product((QQ['z'],)); A The Cartesian product of (Univariate Polynomial Ring in z over Rational Field,) @@ -172,7 +172,7 @@ def _coerce_map_from_base_ring(self): From: Rational Field To: The Cartesian product of (Univariate Polynomial Ring in z over Rational Field,) - Check that :trac:`29312` is fixed:: + Check that :issue:`29312` is fixed:: sage: F. = FreeAlgebra(QQ, implementation='letterplace') # needs sage.combinat sage.modules sage: F._coerce_map_from_base_ring() # needs sage.combinat sage.modules @@ -298,7 +298,7 @@ def one_from_one_basis(self): TESTS: - Try to check that :trac:`5843` Heisenbug is fixed:: + Try to check that :issue:`5843` Heisenbug is fixed:: sage: # needs sage.combinat sage.modules sage: A = AlgebrasWithBasis(QQ).example() diff --git a/src/sage/categories/vector_spaces.py b/src/sage/categories/vector_spaces.py index 9497c143862..570fe58254b 100644 --- a/src/sage/categories/vector_spaces.py +++ b/src/sage/categories/vector_spaces.py @@ -99,7 +99,7 @@ def _call_(self, x): TESTS: - Check whether :trac:`30174` is fixed:: + Check whether :issue:`30174` is fixed:: sage: Q3 = FiniteRankFreeModule(QQ, 3) # needs sage.modules sage: Modules(QQ)(Q3) is Q3 # needs sage.modules diff --git a/src/sage/categories/weyl_groups.py b/src/sage/categories/weyl_groups.py index b28cf132f19..9d5d6f28daa 100644 --- a/src/sage/categories/weyl_groups.py +++ b/src/sage/categories/weyl_groups.py @@ -554,7 +554,7 @@ def stanley_symmetric_function(self): + 2*m[3, 3, 1, 1] + m[3, 3, 2] + 3*m[4, 1, 1, 1, 1] + 2*m[4, 2, 1, 1] + m[4, 2, 2] + m[4, 3, 1] - One more example (:trac:`14095`):: + One more example (:issue:`14095`):: sage: G = SymmetricGroup(4) sage: w = G.from_reduced_word([3,2,3,1]) diff --git a/src/sage/coding/abstract_code.py b/src/sage/coding/abstract_code.py index 7e58422d727..0b2031a74f2 100644 --- a/src/sage/coding/abstract_code.py +++ b/src/sage/coding/abstract_code.py @@ -282,7 +282,7 @@ def __init__(self, length, default_encoder_name=None, ValueError: length must be a Python int or a Sage Integer If the length of the code is not a non-zero positive integer - (See :trac:`21326`), it will raise an exception:: + (See :issue:`21326`), it will raise an exception:: sage: C = MyCodeFamily(0) Traceback (most recent call last): @@ -1098,14 +1098,14 @@ def random_element(self, *args, **kwds): TESTS: - Test that the codeword returned is immutable (see :trac:`16469`):: + Test that the codeword returned is immutable (see :issue:`16469`):: sage: c = C.random_element() sage: c.is_immutable() True Test that codeword returned has the same parent as any non-random codeword - (see :trac:`19653`):: + (see :issue:`19653`):: sage: C = codes.random_linear_code(GF(16, 'a'), 10, 4) sage: c1 = C.random_element() diff --git a/src/sage/coding/channel.py b/src/sage/coding/channel.py index 160afef9bd1..353c540575c 100644 --- a/src/sage/coding/channel.py +++ b/src/sage/coding/channel.py @@ -409,7 +409,7 @@ def transmit_unsafe(self, message): sage: Chan.transmit_unsafe(msg) (4, 8, 4, 16, 23, 53) - This checks that :trac:`19863` is fixed:: + This checks that :issue:`19863` is fixed:: sage: V = VectorSpace(GF(2), 1000) sage: Chan = channels.StaticErrorRateChannel(V, 367) diff --git a/src/sage/coding/code_bounds.py b/src/sage/coding/code_bounds.py index 566add655a3..7b80eec172a 100644 --- a/src/sage/coding/code_bounds.py +++ b/src/sage/coding/code_bounds.py @@ -266,7 +266,7 @@ def codesize_upper_bound(n, d, q, algorithm=None): TESTS: - Make sure :trac:`22961` is fixed:: + Make sure :issue:`22961` is fixed:: sage: codes.bounds.codesize_upper_bound(19,10,2) 20 diff --git a/src/sage/coding/delsarte_bounds.py b/src/sage/coding/delsarte_bounds.py index e25c0a4faf4..0f8fa305a08 100644 --- a/src/sage/coding/delsarte_bounds.py +++ b/src/sage/coding/delsarte_bounds.py @@ -74,7 +74,7 @@ def krawtchouk(n, q, l, x, check=True): TESTS: - Check that the bug reported on :trac:`19561` is fixed:: + Check that the bug reported on :issue:`19561` is fixed:: sage: codes.bounds.krawtchouk(3,2,3,3) -1 diff --git a/src/sage/coding/encoder.py b/src/sage/coding/encoder.py index b2245e6d653..f603f337008 100644 --- a/src/sage/coding/encoder.py +++ b/src/sage/coding/encoder.py @@ -241,7 +241,7 @@ def unencode(self, c, nocheck=False): ... EncodingError: Given word is not in the code - Note that since :trac:`21326`, codes cannot be of length zero:: + Note that since :issue:`21326`, codes cannot be of length zero:: sage: G = Matrix(GF(17), []) sage: C = LinearCode(G) diff --git a/src/sage/coding/grs_code.py b/src/sage/coding/grs_code.py index 56487aa6da1..7a39d548c44 100644 --- a/src/sage/coding/grs_code.py +++ b/src/sage/coding/grs_code.py @@ -127,7 +127,7 @@ class GeneralizedReedSolomonCode(AbstractLinearCode): TESTS: - Test that the bug in :trac:`30045` is fixed:: + Test that the bug in :issue:`30045` is fixed:: sage: F = GF(5) sage: C = codes.GeneralizedReedSolomonCode(F.list()[:5], 2) @@ -993,7 +993,7 @@ def encode(self, p): TESTS: - The bug described in :trac:`20744` is now fixed:: + The bug described in :issue:`20744` is now fixed:: sage: F = GF(11) sage: Fm. = F[] @@ -1305,7 +1305,7 @@ def decode_to_message(self, r): ... ValueError: The word to decode has to be in the ambient space of the code - The bug detailed in :trac:`20340` has been fixed:: + The bug detailed in :issue:`20340` has been fixed:: sage: C = codes.GeneralizedReedSolomonCode(GF(59).list()[:40], 12) sage: c = C.random_element() @@ -1367,7 +1367,7 @@ def decode_to_code(self, r): ... ValueError: The word to decode has to be in the ambient space of the code - The bug detailed in :trac:`20340` has been fixed:: + The bug detailed in :issue:`20340` has been fixed:: sage: C = codes.GeneralizedReedSolomonCode(GF(59).list()[:40], 12) sage: c = C.random_element() @@ -1690,7 +1690,7 @@ def decode_to_message(self, r): ... ValueError: The word to decode has to be in the ambient space of the code - The bug detailed in :trac:`20340` has been fixed:: + The bug detailed in :issue:`20340` has been fixed:: sage: C = codes.GeneralizedReedSolomonCode(GF(59).list()[:40], 12) sage: c = C.random_element() @@ -1753,7 +1753,7 @@ def decode_to_code(self, r): ... ValueError: The word to decode has to be in the ambient space of the code - The bug detailed in :trac:`20340` has been fixed:: + The bug detailed in :issue:`20340` has been fixed:: sage: C = codes.GeneralizedReedSolomonCode(GF(59).list()[:40], 12) sage: c = C.random_element() diff --git a/src/sage/coding/guruswami_sudan/gs_decoder.py b/src/sage/coding/guruswami_sudan/gs_decoder.py index bf4c78d71e4..d992a881c04 100644 --- a/src/sage/coding/guruswami_sudan/gs_decoder.py +++ b/src/sage/coding/guruswami_sudan/gs_decoder.py @@ -827,7 +827,7 @@ def decode_to_code(self, r): TESTS: - Check that :trac:`21347` is fixed:: + Check that :issue:`21347` is fixed:: sage: C = codes.GeneralizedReedSolomonCode(GF(13).list()[:10], 3) sage: D = GSD(C, tau=4) diff --git a/src/sage/coding/linear_code.py b/src/sage/coding/linear_code.py index 885fd02fa95..1a0f037ddad 100644 --- a/src/sage/coding/linear_code.py +++ b/src/sage/coding/linear_code.py @@ -176,10 +176,10 @@ class should inherit from this class. Also ``AbstractLinearCode`` should never - Kwankyu Lee (2010-01): added methods generator_matrix_systematic, information_set, and magma interface for linear codes. -- Niles Johnson (2010-08): :trac:`3893`: ``random_element()`` should pass on +- Niles Johnson (2010-08): :issue:`3893`: ``random_element()`` should pass on ``*args`` and ``**kwds``. -- Thomas Feulner (2012-11): :trac:`13723`: deprecation of ``hamming_weight()`` +- Thomas Feulner (2012-11): :issue:`13723`: deprecation of ``hamming_weight()`` - Thomas Feulner (2013-10): added methods to compute a canonical representative and the automorphism group @@ -784,7 +784,7 @@ def canonical_representative(self, equivalence="semilinear"): TESTS: Check that interrupting this does not segfault - (see :trac:`21651`):: + (see :issue:`21651`):: sage: C = LinearCode(random_matrix(GF(47), 25, 35)) sage: alarm(0.5); C.canonical_representative() @@ -1448,7 +1448,7 @@ def _minimum_weight_codeword(self, algorithm=None): TESTS: - We check that :trac:`18480` is fixed:: + We check that :issue:`18480` is fixed:: sage: codes.HammingCode(GF(2), 2).minimum_distance() 3 @@ -2255,7 +2255,7 @@ class LinearCode(AbstractLinearCode): [7, 4] linear code over GF(5) Providing a code as the parameter in order to "forget" its structure (see - :trac:`20198`):: + :issue:`20198`):: sage: C = codes.GeneralizedReedSolomonCode(GF(23).list(), 12) sage: LinearCode(C) @@ -2272,7 +2272,7 @@ class LinearCode(AbstractLinearCode): AUTHORS: - David Joyner (11-2005) - - Charles Prior (03-2016): :trac:`20198`, LinearCode from a code + - Charles Prior (03-2016): :issue:`20198`, LinearCode from a code """ def __init__(self, generator, d=None): r""" @@ -2299,7 +2299,7 @@ def __init__(self, generator, d=None): sage: TestSuite(C).run() Check that it works even with input matrix with non full rank (see - :trac:`17452`):: + :issue:`17452`):: sage: K. = GF(4) sage: G = matrix([[a, a + 1, 1, a + 1, 1, 0, 0], @@ -2326,7 +2326,7 @@ def __init__(self, generator, d=None): sage: C = LinearCode(VS); C [3, 1] linear code over GF(2) - Forbid the zero vector space (see :trac:`17452` and :trac:`6486`):: + Forbid the zero vector space (see :issue:`17452` and :issue:`6486`):: sage: G = matrix(GF(2), [[0,0,0]]) sage: C = LinearCode(G) @@ -2666,7 +2666,7 @@ def __init__(self, code, maximum_error_weight=None): ValueError: maximum_error_weight has to be less than code's length minus its dimension The Syndrome Decoder of a Hamming code should have types - ``minimum-distance`` and ``always-succeed`` (see :trac:`20898`):: + ``minimum-distance`` and ``always-succeed`` (see :issue:`20898`):: sage: C = codes.HammingCode(GF(5), 3) sage: D = C.decoder("Syndrome") @@ -2782,7 +2782,7 @@ def _build_lookup_table(self): TESTS: - Check that :trac:`24114` is fixed:: + Check that :issue:`24114` is fixed:: sage: R. = PolynomialRing(GF(3)) sage: f = x^2 + x + 2 diff --git a/src/sage/coding/linear_code_no_metric.py b/src/sage/coding/linear_code_no_metric.py index 2a422a2d19d..95963d8a2a1 100644 --- a/src/sage/coding/linear_code_no_metric.py +++ b/src/sage/coding/linear_code_no_metric.py @@ -313,7 +313,7 @@ def dimension(self): TESTS: - Check that :trac:`21156` is fixed:: + Check that :issue:`21156` is fixed:: sage: from sage.coding.linear_code import AbstractLinearCode sage: from sage.coding.encoder import Encoder @@ -796,7 +796,7 @@ def __getitem__(self, i): 0 and 'q^k -1' (=624), inclusive, where 'q' is the size of the base field and 'k' is the dimension of the code. - Check that codewords are immutable. See :trac:`16338`:: + Check that codewords are immutable. See :issue:`16338`:: sage: C[0].is_immutable() True @@ -846,7 +846,7 @@ def __hash__(self): If ``C1`` and ``C2`` are two codes which only differ by the coefficients of their generator matrices, their hashes are - different (we check that the bug found in :trac:`18813` is + different (we check that the bug found in :issue:`18813` is fixed):: sage: G = Matrix(GF(2), [[1,1,1,0,0,0,0],[1,0,0,1,1,0,0],[0,1,0,1,0,1,0],[1,1,0,1,0,0,1]]) diff --git a/src/sage/combinat/abstract_tree.py b/src/sage/combinat/abstract_tree.py index e25c0606769..126185b4eb4 100644 --- a/src/sage/combinat/abstract_tree.py +++ b/src/sage/combinat/abstract_tree.py @@ -814,7 +814,7 @@ def node_number_at_depth(self, depth): TESTS: - Check that the empty tree has no nodes (:trac:`29134`):: + Check that the empty tree has no nodes (:issue:`29134`):: sage: T = BinaryTree() sage: T @@ -2061,7 +2061,7 @@ def __init__(self, parent, children, label=None, check=True): None[None[], None[None[], None[]], None[]] We test that inheriting from `LabelledOrderedTree` allows construction from a - `LabelledOrderedTree` (:trac:`16314`):: + `LabelledOrderedTree` (:issue:`16314`):: sage: LBTS = LabelledOrderedTrees() sage: class Foo(LabelledOrderedTree): diff --git a/src/sage/combinat/affine_permutation.py b/src/sage/combinat/affine_permutation.py index d0ce08e3e83..193d1f1c966 100644 --- a/src/sage/combinat/affine_permutation.py +++ b/src/sage/combinat/affine_permutation.py @@ -66,7 +66,7 @@ def __init__(self, parent, lst, check=True): TESTS: - Check that :trac:`26436` is fixed:: + Check that :issue:`26436` is fixed:: sage: A = AffinePermutationGroup(['A',3,1]) sage: p = A([-3/1,2/1,3/1,8/1]) diff --git a/src/sage/combinat/alternating_sign_matrix.py b/src/sage/combinat/alternating_sign_matrix.py index e2122a3bdc4..d327d84ae1d 100644 --- a/src/sage/combinat/alternating_sign_matrix.py +++ b/src/sage/combinat/alternating_sign_matrix.py @@ -106,7 +106,7 @@ def __classcall_private__(cls, asm, check=True): TESTS: - Check that :trac:`22032` is fixed:: + Check that :issue:`22032` is fixed:: sage: AlternatingSignMatrix([]) [] diff --git a/src/sage/combinat/binary_tree.py b/src/sage/combinat/binary_tree.py index f6e128221b4..33bcd26ea6a 100644 --- a/src/sage/combinat/binary_tree.py +++ b/src/sage/combinat/binary_tree.py @@ -166,9 +166,9 @@ def __init__(self, parent, children=None, check=True): `\QQ` (or any number field) has a ``list()`` method that returns itself as a `\QQ`-vector represented as a list. - Before :trac:`23961`, this would cause an infinite recursion + Before :issue:`23961`, this would cause an infinite recursion because `\QQ` elements give a list of length 1. For more - details, see :trac:`23961`. We test that constructing + details, see :issue:`23961`. We test that constructing binary trees from elements from `\QQ` terminates with an appropriate error:: @@ -4697,7 +4697,7 @@ class LabelledBinaryTree(AbstractLabelledClonableTree, BinaryTree): sage: t1 == t1c False - We check for :trac:`16314`:: + We check for :issue:`16314`:: sage: t1 = LBT([ LBT([LBT([], label=2), ....: LBT([], label=5)], label=6), diff --git a/src/sage/combinat/cartesian_product.py b/src/sage/combinat/cartesian_product.py index 832c5f1075d..c5a16d3f8ee 100644 --- a/src/sage/combinat/cartesian_product.py +++ b/src/sage/combinat/cartesian_product.py @@ -29,7 +29,7 @@ class CartesianProduct_iters(EnumeratedSetFromIterator): r""" Cartesian product of finite sets. - This class will soon be deprecated (see :trac:`18411` and :trac:`19195`). + This class will soon be deprecated (see :issue:`18411` and :issue:`19195`). One should instead use the functorial construction :class:`cartesian_product `. The main differences in behavior are: @@ -86,7 +86,7 @@ def __init__(self, *iters): True sage: TestSuite(cp).run(skip='_test_an_element') - Check that :trac:`24558` is fixed:: + Check that :issue:`24558` is fixed:: sage: from sage.combinat.cartesian_product import CartesianProduct_iters sage: from sage.sets.set_from_iterator import EnumeratedSetFromIterator @@ -298,7 +298,7 @@ def unrank(self, x): sage: C[238792368] [238, 792, 368] - Check for :trac:`15919`:: + Check for :issue:`15919`:: sage: FF = IntegerModRing(29) sage: C = CartesianProduct_iters(FF, FF, FF) diff --git a/src/sage/combinat/cluster_algebra_quiver/cluster_seed.py b/src/sage/combinat/cluster_algebra_quiver/cluster_seed.py index 58fa26437fa..afd59229d80 100644 --- a/src/sage/combinat/cluster_algebra_quiver/cluster_seed.py +++ b/src/sage/combinat/cluster_algebra_quiver/cluster_seed.py @@ -3495,7 +3495,7 @@ def mutation_class_iter(self, depth=infinity, show_depth=False, sage: mutation_class[0] (A seed for a cluster algebra of rank 2 of type ['A', 2], []) - Check that :trac:`14638` is fixed:: + Check that :issue:`14638` is fixed:: sage: S = ClusterSeed(['E',6]) sage: MC = S.mutation_class(depth=7); len(MC) # long time @@ -4228,7 +4228,7 @@ def greedy(self, a1, a2, algorithm='by_recursion'): TESTS: - We check that :trac:`23688` has been resolved:: + We check that :issue:`23688` has been resolved:: sage: S = ClusterSeed(Matrix([[0,1],[-4,0]])); S A seed for a cluster algebra of rank 2 diff --git a/src/sage/combinat/cluster_algebra_quiver/mutation_type.py b/src/sage/combinat/cluster_algebra_quiver/mutation_type.py index e49bc3d25e1..5a7f8b30516 100644 --- a/src/sage/combinat/cluster_algebra_quiver/mutation_type.py +++ b/src/sage/combinat/cluster_algebra_quiver/mutation_type.py @@ -66,7 +66,7 @@ def is_mutation_finite(M, nr_of_checks=None): sage: is_mutation_finite(M) # random (False, [9, 6, 9, 8, 9, 4, 0, 4, 5, 2, 1, 0, 1, 0, 7, 1, 9, 2, 5, 7, 8, 6, 3, 0, 2, 5, 4, 2, 6, 9, 2, 7, 3, 5, 3, 7, 9, 5, 9, 0, 2, 7, 9, 2, 4, 2, 1, 6, 9, 4, 3, 5, 0, 8, 2, 9, 5, 3, 7, 0, 1, 8, 3, 7, 2, 7, 3, 4, 8, 0, 4, 9, 5, 2, 8, 4, 8, 1, 7, 8, 9, 1, 5, 0, 8, 7, 4, 8, 9, 8, 0, 7, 4, 7, 1, 2, 8, 6, 1, 3, 9, 3, 9, 1, 3, 2, 4, 9, 5, 1, 2, 9, 4, 8, 5, 3, 4, 6, 8, 9, 2, 5, 9, 4, 6, 2, 1, 4, 9, 6, 0, 9, 8, 0, 4, 7, 9, 2, 1, 6]) - Check that :trac:`19495` is fixed:: + Check that :issue:`19495` is fixed:: sage: dg = DiGraph(); dg.add_vertex(0); S = ClusterSeed(dg); S # needs sage.modules A seed for a cluster algebra of rank 1 diff --git a/src/sage/combinat/cluster_algebra_quiver/quiver.py b/src/sage/combinat/cluster_algebra_quiver/quiver.py index 4e7e91ae8a3..00766612a25 100644 --- a/src/sage/combinat/cluster_algebra_quiver/quiver.py +++ b/src/sage/combinat/cluster_algebra_quiver/quiver.py @@ -747,7 +747,7 @@ def qmu_save(self, filename=None): sage: with tempfile.NamedTemporaryFile(suffix=".qmu") as f: # needs sage.plot sage.symbolic ....: Q.qmu_save(f.name) - Make sure we can save quivers with `m != n` frozen variables, see :trac:`14851`:: + Make sure we can save quivers with `m != n` frozen variables, see :issue:`14851`:: sage: S = ClusterSeed(['A',3]) sage: T1 = S.principal_extension() diff --git a/src/sage/combinat/cluster_algebra_quiver/quiver_mutation_type.py b/src/sage/combinat/cluster_algebra_quiver/quiver_mutation_type.py index 2e36b619716..0250cc6cd98 100644 --- a/src/sage/combinat/cluster_algebra_quiver/quiver_mutation_type.py +++ b/src/sage/combinat/cluster_algebra_quiver/quiver_mutation_type.py @@ -1732,7 +1732,7 @@ def class_size(self): Warning: This method uses a formula which has not been proved correct. 504 - Check that :trac:`14048` is fixed:: + Check that :issue:`14048` is fixed:: sage: mut_type = QuiverMutationType( ['F',4,(2, 1)] ) sage: mut_type.class_size() diff --git a/src/sage/combinat/colored_permutations.py b/src/sage/combinat/colored_permutations.py index 6a9e5598381..44950aada12 100644 --- a/src/sage/combinat/colored_permutations.py +++ b/src/sage/combinat/colored_permutations.py @@ -1578,7 +1578,7 @@ def long_element(self, index_set=None): TESTS: - Check that this is the element of maximal length (:trac:`25200`):: + Check that this is the element of maximal length (:issue:`25200`):: sage: S = SignedPermutations(4) sage: S.long_element().length() == max(x.length() for x in S) diff --git a/src/sage/combinat/combinat.py b/src/sage/combinat/combinat.py index e87a44ad662..bd5e7102d66 100644 --- a/src/sage/combinat/combinat.py +++ b/src/sage/combinat/combinat.py @@ -378,7 +378,7 @@ def bell_number(n, algorithm='flint', **options) -> Integer: - Robert Gerbicz - Jeroen Demeyer: improved implementation of Dobinski formula with - more accurate error estimates (:trac:`17157`) + more accurate error estimates (:issue:`17157`) REFERENCES: @@ -1175,7 +1175,7 @@ def __init__(self, l, copy=True): TESTS: - Test indirectly that we copy the input (see :trac:`18184`):: + Test indirectly that we copy the input (see :issue:`18184`):: sage: # needs sage.combinat sage: L = IntegerListsLex(element_class=Partition) @@ -1263,7 +1263,7 @@ def __lt__(self, other): sage: c < c False - Check that :trac:`14065` is fixed:: + Check that :issue:`14065` is fixed:: sage: from sage.structure.element import Element sage: class Foo(CombinatorialObject, Element): pass @@ -1401,7 +1401,7 @@ def __bool__(self) -> bool: sage: not c True - Check that :trac:`14065` is fixed:: + Check that :issue:`14065` is fixed:: sage: from sage.structure.element import Element sage: class Foo(CombinatorialObject, Element): pass @@ -2423,7 +2423,7 @@ def unrank(self, x): class Permutations_CC(CombinatorialClass): """ A testing class for :class:`CombinatorialClass` since :class:`Permutations` - no longer inherits from :class:`CombinatorialClass` in :trac:`14772`. + no longer inherits from :class:`CombinatorialClass` in :issue:`14772`. """ def __init__(self, n): @@ -2950,7 +2950,7 @@ def bell_polynomial(n: Integer, k: Integer): TESTS: - Check that :trac:`18338` is fixed:: + Check that :issue:`18338` is fixed:: sage: bell_polynomial(0,0).parent() # needs sage.combinat Multivariate Polynomial Ring in x over Integer Ring diff --git a/src/sage/combinat/crystals/alcove_path.py b/src/sage/combinat/crystals/alcove_path.py index 2ae58703362..2bec96841a2 100644 --- a/src/sage/combinat/crystals/alcove_path.py +++ b/src/sage/combinat/crystals/alcove_path.py @@ -175,7 +175,7 @@ class CrystalOfAlcovePaths(UniqueRepresentation, Parent): sage: C([1,3]).is_admissible() #check if a valid vertex False - Alcove path crystals now works in affine type (:trac:`14143`):: + Alcove path crystals now works in affine type (:issue:`14143`):: sage: C = crystals.AlcovePaths(['A',2,1],[1,0,0]) ; C Highest weight crystal of alcove paths of type ['A', 2, 1] and weight Lambda[0] @@ -295,7 +295,7 @@ def __init__(self, starting_weight, highest_weight_crystal): sage: C = crystals.AlcovePaths(['A',2,1],[1,0],False) sage: TestSuite(C).run(skip="_test_stembridge_local_axioms") #long time - Check that :trac:`20292` is fixed:: + Check that :issue:`20292` is fixed:: sage: A = crystals.AlcovePaths(['A',2], [1,0]) sage: A.category() @@ -656,7 +656,7 @@ def weight(self): TESTS: - Check that crystal morphisms work (:trac:`19481`):: + Check that crystal morphisms work (:issue:`19481`):: sage: C1 = crystals.AlcovePaths(['A',2],[1,0]) sage: C2 = crystals.AlcovePaths(['A',2],[2,0]) @@ -665,7 +665,7 @@ def weight(self): [(), ((alpha[1], 0),), ((alpha[1], 0), (alpha[1] + alpha[2], 0))] Check that all weights are of level 0 in the KR crystal setting - (:trac:`20292`):: + (:issue:`20292`):: sage: A = crystals.AlcovePaths(['A',2,1], [1,0], highest_weight_crystal=False) sage: all(x.weight().level() == 0 for x in A) diff --git a/src/sage/combinat/crystals/kac_modules.py b/src/sage/combinat/crystals/kac_modules.py index 79d753ac9ae..23ed28b90c2 100644 --- a/src/sage/combinat/crystals/kac_modules.py +++ b/src/sage/combinat/crystals/kac_modules.py @@ -795,7 +795,7 @@ def to_dual_tableau(elt): TESTS: - Check that :trac:`23935` is fixed:: + Check that :issue:`23935` is fixed:: sage: from sage.combinat.crystals.kac_modules import to_dual_tableau sage: T = crystals.Tableaux(['A',2], shape=[]) diff --git a/src/sage/combinat/crystals/kirillov_reshetikhin.py b/src/sage/combinat/crystals/kirillov_reshetikhin.py index 0856d337fb6..1e58c8ead35 100644 --- a/src/sage/combinat/crystals/kirillov_reshetikhin.py +++ b/src/sage/combinat/crystals/kirillov_reshetikhin.py @@ -1602,7 +1602,7 @@ def module_generator(self): TESTS: - Check that :trac:`23028` is fixed:: + Check that :issue:`23028` is fixed:: sage: ct = CartanType(['A',8,2]).dual() sage: K = crystals.KirillovReshetikhin(ct, 4, 3) @@ -2888,7 +2888,7 @@ def epsilon0(self): TESTS: - Check that :trac:`19982` is fixed:: + Check that :issue:`19982` is fixed:: sage: K = crystals.KirillovReshetikhin(['D',3,2], 2,3) sage: def eps0_defn(elt): @@ -2921,7 +2921,7 @@ def phi0(self): TESTS: - Check that :trac:`19982` is fixed:: + Check that :issue:`19982` is fixed:: sage: K = crystals.KirillovReshetikhin(['D',3,2], 2,3) sage: def phi0_defn(elt): diff --git a/src/sage/combinat/crystals/littelmann_path.py b/src/sage/combinat/crystals/littelmann_path.py index 275146a6366..c2d8397f737 100644 --- a/src/sage/combinat/crystals/littelmann_path.py +++ b/src/sage/combinat/crystals/littelmann_path.py @@ -1338,7 +1338,7 @@ def e(self, i, power=1, length_only=False): sage: [x.epsilon(i) for i in B.index_set()] [1, 1, 0, 1] - Check that :trac:`21671` is fixed:: + Check that :issue:`21671` is fixed:: sage: B = crystals.infinity.LSPaths(['G',2]) sage: len(B.subcrystal(max_depth=7)) diff --git a/src/sage/combinat/crystals/multisegments.py b/src/sage/combinat/crystals/multisegments.py index 6f63d4562a3..92de6809f4f 100644 --- a/src/sage/combinat/crystals/multisegments.py +++ b/src/sage/combinat/crystals/multisegments.py @@ -290,7 +290,7 @@ def _sig(self, i): TESTS: - Check that :trac:`23439` is fixed:: + Check that :issue:`23439` is fixed:: sage: B = crystals.infinity.Multisegments(2) sage: b = B.highest_weight_vector() diff --git a/src/sage/combinat/crystals/subcrystal.py b/src/sage/combinat/crystals/subcrystal.py index e712abd38c8..b9caabafd72 100644 --- a/src/sage/combinat/crystals/subcrystal.py +++ b/src/sage/combinat/crystals/subcrystal.py @@ -107,7 +107,7 @@ class Subcrystal(UniqueRepresentation, Parent): TESTS: Check that the subcrystal respects being in the category - of supercrystals (:trac:`27368`):: + of supercrystals (:issue:`27368`):: sage: T = crystals.Tableaux(['A',[1,1]], [2,1]) sage: S = T.subcrystal(max_depth=3) @@ -273,7 +273,7 @@ def cardinality(self): TESTS: - Check that :trac:`19481` is fixed:: + Check that :issue:`19481` is fixed:: sage: from sage.combinat.crystals.virtual_crystal import VirtualCrystal sage: A = crystals.infinity.Tableaux(['A',3]) diff --git a/src/sage/combinat/crystals/tensor_product.py b/src/sage/combinat/crystals/tensor_product.py index 5604a24665c..726c974e781 100644 --- a/src/sage/combinat/crystals/tensor_product.py +++ b/src/sage/combinat/crystals/tensor_product.py @@ -281,7 +281,7 @@ class TensorProductOfCrystals(CrystalOfWords): ([2, 1, 1], [1, 2, 1]) Examples with non-regular and infinite crystals (these did not work - before :trac:`14402`):: + before :issue:`14402`):: sage: B = crystals.infinity.Tableaux(['D',10]) sage: T = crystals.TensorProduct(B,B) @@ -352,7 +352,7 @@ def __classcall_private__(cls, *crystals, **options): Category of infinite tensor products of highest weight crystals Check that we get a tensor product of super crystals when given - a super Cartan type (:trac:`33518`):: + a super Cartan type (:issue:`33518`):: sage: L = crystals.Letters(['A',[1,2]]) sage: type(crystals.TensorProduct(L, L)) diff --git a/src/sage/combinat/crystals/tensor_product_element.pyx b/src/sage/combinat/crystals/tensor_product_element.pyx index 643633a9531..29921c95838 100644 --- a/src/sage/combinat/crystals/tensor_product_element.pyx +++ b/src/sage/combinat/crystals/tensor_product_element.pyx @@ -322,7 +322,7 @@ cdef class TensorProductOfCrystalsElement(ImmutableListWithParent): TESTS: - Check that :trac:`15462` is fixed:: + Check that :issue:`15462` is fixed:: sage: B = crystals.Tableaux(['A',2], shape=[2,1]) sage: La = RootSystem(['A',2]).ambient_space().fundamental_weights() @@ -371,7 +371,7 @@ cdef class TensorProductOfCrystalsElement(ImmutableListWithParent): TESTS: - Check that :trac:`18469` is fixed:: + Check that :issue:`18469` is fixed:: sage: E1 = crystals.elementary.B(['A',2], 1) sage: E2 = crystals.elementary.B(['A',2], 2) @@ -712,7 +712,7 @@ cdef class CrystalOfTableauxElement(TensorProductOfRegularCrystalsElement): [[1, 2], [3, 4]] Currently inputting the empty tableau as an empty sequence is - broken due to a bug in the generic __call__ method (see :trac:`8648`). + broken due to a bug in the generic __call__ method (see :issue:`8648`). EXAMPLES:: @@ -726,7 +726,7 @@ cdef class CrystalOfTableauxElement(TensorProductOfRegularCrystalsElement): Integer types that are not a Sage ``Integer`` (such as a Python ``int`` and typically arise from compiled code) were not converted into a letter. This caused certain functions to fail. This is fixed in - :trac:`13204`:: + :issue:`13204`:: sage: T = crystals.Tableaux(['A',3], shape = [2,2]) sage: t = T(list=[int(3),1,4,2]) @@ -806,7 +806,7 @@ cdef class CrystalOfTableauxElement(TensorProductOfRegularCrystalsElement): EXAMPLES: - We check that :trac:`16486` is fixed:: + We check that :issue:`16486` is fixed:: sage: T = crystals.Tableaux(['B',6], shape=[1]*5) sage: ascii_art(T.module_generators[0]) diff --git a/src/sage/combinat/crystals/virtual_crystal.py b/src/sage/combinat/crystals/virtual_crystal.py index a4cdc8b4ee8..e7286e58c01 100644 --- a/src/sage/combinat/crystals/virtual_crystal.py +++ b/src/sage/combinat/crystals/virtual_crystal.py @@ -172,7 +172,7 @@ def __classcall_private__(cls, ambient, virtualization, scaling_factors, TESTS: - Check that :trac:`19481` is fixed:: + Check that :issue:`19481` is fixed:: sage: from sage.combinat.crystals.virtual_crystal import VirtualCrystal sage: A = crystals.Tableaux(['A',3], shape=[2,1,1]) diff --git a/src/sage/combinat/cyclic_sieving_phenomenon.py b/src/sage/combinat/cyclic_sieving_phenomenon.py index d09168791cb..8ad3bfc1f0c 100644 --- a/src/sage/combinat/cyclic_sieving_phenomenon.py +++ b/src/sage/combinat/cyclic_sieving_phenomenon.py @@ -72,7 +72,7 @@ def CyclicSievingPolynomial(L, cyc_act=None, order=None, get_order=False): TESTS: - We check that :trac:`13997` is handled:: + We check that :issue:`13997` is handled:: sage: CyclicSievingPolynomial(S42, cyc_act, order=8, get_order=True) [q^6 + 2*q^4 + q^2 + 2, 8] diff --git a/src/sage/combinat/degree_sequences.pyx b/src/sage/combinat/degree_sequences.pyx index fa155acdd15..b25e76d9208 100644 --- a/src/sage/combinat/degree_sequences.pyx +++ b/src/sage/combinat/degree_sequences.pyx @@ -303,7 +303,7 @@ class DegreeSequences: TESTS: - :trac:`21824`:: + :issue:`21824`:: sage: DegreeSequences(-1) Traceback (most recent call last): @@ -326,12 +326,12 @@ class DegreeSequences: TESTS: - :trac:`15503`:: + :issue:`15503`:: sage: [2,2,2,2,1,1,1] in DegreeSequences(7) False - :trac:`21824`:: + :issue:`21824`:: sage: [d for d in DegreeSequences(0)] [[]] diff --git a/src/sage/combinat/derangements.py b/src/sage/combinat/derangements.py index d7c883c22c5..e9e1de647e8 100644 --- a/src/sage/combinat/derangements.py +++ b/src/sage/combinat/derangements.py @@ -500,7 +500,7 @@ def random_element(self): TESTS: - Check that index error discovered in :trac:`29974` is fixed:: + Check that index error discovered in :issue:`29974` is fixed:: sage: D = Derangements([1,1,2,2]) sage: _ = [D.random_element() for _ in range(20)] diff --git a/src/sage/combinat/designs/bibd.py b/src/sage/combinat/designs/bibd.py index 695e31ab70e..d17c325bdc0 100644 --- a/src/sage/combinat/designs/bibd.py +++ b/src/sage/combinat/designs/bibd.py @@ -789,7 +789,7 @@ def v_4_1_BIBD(v, check=True): sage: assert designs.difference_family(37,4,existence=True) sage: _ = designs.difference_family(37,4) - Check some larger `(v,4,1)`-BIBD (see :trac:`17557`):: + Check some larger `(v,4,1)`-BIBD (see :issue:`17557`):: sage: for v in range(400): # long time ....: if v%12 in [1,4]: @@ -959,7 +959,7 @@ def PBD_4_5_8_9_12(v, check=True): [0, 15, 27, 38], [0, 16, 22, 32], [0, 17, 23, 34], ... - Check that :trac:`16476` is fixed:: + Check that :issue:`16476` is fixed:: sage: from sage.combinat.designs.bibd import PBD_4_5_8_9_12 sage: for v in (0,1,4,5,8,9,12,13,16,17,20,21,24,25): # needs sage.schemes diff --git a/src/sage/combinat/designs/block_design.py b/src/sage/combinat/designs/block_design.py index 86c3b1383ee..08a92c6fe54 100644 --- a/src/sage/combinat/designs/block_design.py +++ b/src/sage/combinat/designs/block_design.py @@ -23,9 +23,9 @@ AUTHORS: -- Quentin Honoré (2015): construction of Hughes plane :trac:`18527` +- Quentin Honoré (2015): construction of Hughes plane :issue:`18527` -- Vincent Delecroix (2014): rewrite the part on projective planes :trac:`16281` +- Vincent Delecroix (2014): rewrite the part on projective planes :issue:`16281` - Peter Dobcsanyi and David Joyner (2007-2008) diff --git a/src/sage/combinat/designs/difference_family.py b/src/sage/combinat/designs/difference_family.py index 357a94fbb44..2b0474f5ed0 100644 --- a/src/sage/combinat/designs/difference_family.py +++ b/src/sage/combinat/designs/difference_family.py @@ -3368,7 +3368,7 @@ def difference_family(v, k, l=1, existence=False, explain_construction=False, ch 19 False 20 Unknown - Check a failing construction (:trac:`17528`):: + Check a failing construction (:issue:`17528`):: sage: designs.difference_family(9,3) Traceback (most recent call last): @@ -3376,7 +3376,7 @@ def difference_family(v, k, l=1, existence=False, explain_construction=False, ch NotImplementedError: No construction available for (9,3,1)-difference family Check that when ``existence=True`` we always obtain ``True``, ``False`` or ``Unknown``, - and when ``explain_construction=True``, it is a string (see :trac:`24513`):: + and when ``explain_construction=True``, it is a string (see :issue:`24513`):: sage: designs.difference_family(3, 2, 1, existence=True) True diff --git a/src/sage/combinat/designs/incidence_structures.py b/src/sage/combinat/designs/incidence_structures.py index ad60d30a6a1..839006798a0 100644 --- a/src/sage/combinat/designs/incidence_structures.py +++ b/src/sage/combinat/designs/incidence_structures.py @@ -120,7 +120,7 @@ class IncidenceStructure: [[(0, 'a'), (0, 'b'), (1, 'a')], [(0, 'a'), (1, 'a')], [(0, 'b'), (1, 'a')]] The order of the points and blocks does not matter as they are sorted on - input (see :trac:`11333`):: + input (see :issue:`11333`):: sage: A = IncidenceStructure([0,1,2], [[0],[0,2]]) sage: B = IncidenceStructure([1,0,2], [[0],[2,0]]) @@ -2224,7 +2224,7 @@ def _latex_(self): TESTS:: - # verify that :trac:`30976` is fixed + # verify that :issue:`30976` is fixed sage: IS = IncidenceStructure([1,2,3], [[1,2], [2,3]]) sage: if latex.has_file("tikz.sty"): # optional - latex ....: IS._latex_() diff --git a/src/sage/combinat/diagram_algebras.py b/src/sage/combinat/diagram_algebras.py index 15837e34128..d44d2a39649 100644 --- a/src/sage/combinat/diagram_algebras.py +++ b/src/sage/combinat/diagram_algebras.py @@ -2483,7 +2483,7 @@ class PartitionAlgebra(DiagramBasis, UnitDiagramMixin): TESTS: - A computation that returned an incorrect result until :trac:`15958`:: + A computation that returned an incorrect result until :issue:`15958`:: sage: A = PartitionAlgebra(1,17) sage: g = SetPartitionsAk(1).list() @@ -4673,7 +4673,7 @@ def pair_to_graph(sp1, sp2): ((-2, 2), (1, 2), None), ((-1, 1), (1, 2), None), ((-1, 1), (2, 1), None), ((-1, 2), (2, 2), None)] - Another example which used to be wrong until :trac:`15958`:: + Another example which used to be wrong until :issue:`15958`:: sage: sp3 = da.to_set_partition([[1, -1], [2], [-2]]) sage: sp4 = da.to_set_partition([[1], [-1], [2], [-2]]) diff --git a/src/sage/combinat/dyck_word.py b/src/sage/combinat/dyck_word.py index 06cf887c936..6316e1f9ba6 100644 --- a/src/sage/combinat/dyck_word.py +++ b/src/sage/combinat/dyck_word.py @@ -3696,7 +3696,7 @@ def __init__(self, k1, k2): r""" TESTS: - Check that :trac:`18244` is fixed:: + Check that :issue:`18244` is fixed:: sage: DyckWords(13r, 8r).cardinality() 87210 diff --git a/src/sage/combinat/e_one_star.py b/src/sage/combinat/e_one_star.py index a7b9c50b732..2d04619f393 100644 --- a/src/sage/combinat/e_one_star.py +++ b/src/sage/combinat/e_one_star.py @@ -281,7 +281,7 @@ def __init__(self, v, t, color=None): TESTS: - We test that types can be given by an int (see :trac:`10699`):: + We test that types can be given by an int (see :issue:`10699`):: sage: f = Face((0,2,0), int(1)) """ @@ -597,7 +597,7 @@ def __init__(self, faces, face_contour=None): TESTS: We test that colors are not anymore mixed up between - Patches (see :trac:`11255`):: + Patches (see :issue:`11255`):: sage: P = Patch([Face([0,0,0],2)]) sage: Q = Patch(P) @@ -675,7 +675,7 @@ def __hash__(self) -> int: TESTS: - We test that two equal patches have the same hash (see :trac:`11255`):: + We test that two equal patches have the same hash (see :issue:`11255`):: sage: P = Patch([Face([0,0,0],1), Face([0,0,0],2)]) sage: Q = Patch([Face([0,0,0],2), Face([0,0,0],1)]) @@ -1495,7 +1495,7 @@ def __call__(self, patch, iterations=1) -> Patch: TESTS: - We test that iterations=0 works (see :trac:`10699`):: + We test that iterations=0 works (see :issue:`10699`):: sage: P = Patch([Face((0,0,0),t) for t in [1,2,3]]) sage: sigma = WordMorphism({1:[1,2], 2:[1,3], 3:[1]}) diff --git a/src/sage/combinat/finite_state_machine.py b/src/sage/combinat/finite_state_machine.py index 13e523df4e6..2955d037769 100644 --- a/src/sage/combinat/finite_state_machine.py +++ b/src/sage/combinat/finite_state_machine.py @@ -805,7 +805,7 @@ .. WARNING:: The arguments used when calling a hook have changed in - :trac:`16538` from ``hook(state, process)`` to + :issue:`16538` from ``hook(state, process)`` to ``hook(process, state, output)``. Detecting sequences with same number of `0` and `1` @@ -894,21 +894,21 @@ - Daniel Krenn (2013-11-04): next release candidate for Sage patch - Sara Kropf (2013-11-08): fix for adjacency matrix - Clemens Heuberger (2013-11-11): fix for prepone_output -- Daniel Krenn (2013-11-11): comments from :trac:`15078` included: +- Daniel Krenn (2013-11-11): comments from :issue:`15078` included: docstring of FiniteStateMachine rewritten, Automaton and Transducer inherited from FiniteStateMachine - Daniel Krenn (2013-11-25): documentation improved according to - comments from :trac:`15078` + comments from :issue:`15078` - Clemens Heuberger, Daniel Krenn, Sara Kropf (2014-02-21--2014-07-18): A huge bunch of improvements. Details see - :trac:`15841`, :trac:`15847`, :trac:`15848`, :trac:`15849`, :trac:`15850`, :trac:`15922`, :trac:`15923`, :trac:`15924`, - :trac:`15925`, :trac:`15928`, :trac:`15960`, :trac:`15961`, :trac:`15962`, :trac:`15963`, :trac:`15975`, :trac:`16016`, - :trac:`16024`, :trac:`16061`, :trac:`16128`, :trac:`16132`, :trac:`16138`, :trac:`16139`, :trac:`16140`, :trac:`16143`, - :trac:`16144`, :trac:`16145`, :trac:`16146`, :trac:`16191`, :trac:`16200`, :trac:`16205`, :trac:`16206`, :trac:`16207`, - :trac:`16229`, :trac:`16253`, :trac:`16254`, :trac:`16255`, :trac:`16266`, :trac:`16355`, :trac:`16357`, :trac:`16387`, - :trac:`16425`, :trac:`16539`, :trac:`16555`, :trac:`16557`, :trac:`16588`, :trac:`16589`, :trac:`16666`, :trac:`16668`, - :trac:`16674`, :trac:`16675`, :trac:`16677`. -- Daniel Krenn (2015-09-14): cleanup :trac:`18227` + :issue:`15841`, :issue:`15847`, :issue:`15848`, :issue:`15849`, :issue:`15850`, :issue:`15922`, :issue:`15923`, :issue:`15924`, + :issue:`15925`, :issue:`15928`, :issue:`15960`, :issue:`15961`, :issue:`15962`, :issue:`15963`, :issue:`15975`, :issue:`16016`, + :issue:`16024`, :issue:`16061`, :issue:`16128`, :issue:`16132`, :issue:`16138`, :issue:`16139`, :issue:`16140`, :issue:`16143`, + :issue:`16144`, :issue:`16145`, :issue:`16146`, :issue:`16191`, :issue:`16200`, :issue:`16205`, :issue:`16206`, :issue:`16207`, + :issue:`16229`, :issue:`16253`, :issue:`16254`, :issue:`16255`, :issue:`16266`, :issue:`16355`, :issue:`16357`, :issue:`16387`, + :issue:`16425`, :issue:`16539`, :issue:`16555`, :issue:`16557`, :issue:`16588`, :issue:`16589`, :issue:`16666`, :issue:`16668`, + :issue:`16674`, :issue:`16675`, :issue:`16677`. +- Daniel Krenn (2015-09-14): cleanup :issue:`18227` ACKNOWLEDGEMENT: @@ -1512,7 +1512,7 @@ def final_word_out(self, final_word_out): True The exception is raised also when the initial state is a tuple - (see :trac:`18990`):: + (see :issue:`18990`):: sage: A = Transducer(initial_states=[(0, 0)]) sage: A.state((0, 0)).final_word_out = [] @@ -1600,7 +1600,7 @@ def is_final(self, is_final): word. The exception is raised also when the final state is a tuple - (see :trac:`18990`):: + (see :issue:`18990`):: sage: A = Transducer(final_states=[(0, 0)]) sage: A.state((0, 0)).final_word_out = [1] @@ -2983,7 +2983,7 @@ class FiniteStateMachine(SageObject): ValueError: with_final_word_out cannot be specified when copying another finite state machine. - :trac:`19454` rewrote automatic detection of the alphabets:: + :issue:`19454` rewrote automatic detection of the alphabets:: sage: def transition_function(state, letter): ....: return (0, 3 + letter) @@ -4290,7 +4290,7 @@ def format_transition_label_reversed(self, word): TESTS: - Check that :trac:`16357` is fixed:: + Check that :issue:`16357` is fixed:: sage: T = Transducer() sage: T.format_transition_label_reversed([]) @@ -4370,7 +4370,7 @@ def default_format_transition_label(self, word): TESTS: - Check that :trac:`16357` is fixed:: + Check that :issue:`16357` is fixed:: sage: T = Transducer() sage: T.default_format_transition_label([]) @@ -4771,7 +4771,7 @@ def _latex_(self): TESTS: - Check that :trac:`16943` is fixed:: + Check that :issue:`16943` is fixed:: sage: latex(Transducer( ....: [(0, 1), (1, 1), (2, 2), (3, 3), (4, 4)])) @@ -5741,7 +5741,7 @@ def is_deterministic(self): sage: fsm.is_deterministic() False - Check that :trac:`18556` is fixed:: + Check that :issue:`18556` is fixed:: sage: Automaton().is_deterministic() True @@ -6963,7 +6963,7 @@ def delete_state(self, s): TESTS: - This shows that :trac:`16024` is fixed. :: + This shows that :issue:`16024` is fixed. :: sage: F._states_ ['B'] @@ -7250,7 +7250,7 @@ def disjoint_union(self, other): sage: T.process([0]) [(True, (0, 0), [1]), (True, (1, 0), [2])] - Handling of the input alphabet (see :trac:`18989`):: + Handling of the input alphabet (see :issue:`18989`):: sage: A = Automaton([(0, 0, 0)]) sage: B = Automaton([(0, 0, 1)], input_alphabet=[1, 2]) @@ -7798,7 +7798,7 @@ def product_FiniteStateMachine(self, other, function, ....: new_class=Automaton)) - Check that isolated vertices are kept (:trac:`16762`):: + Check that isolated vertices are kept (:issue:`16762`):: sage: F = Transducer(initial_states=[0]) sage: F.add_state(1) @@ -8037,7 +8037,7 @@ def composition(self, other, algorithm=None, TESTS: In the explorative algorithm, transducers with non-empty final - output words are implemented in :trac:`16548`:: + output words are implemented in :issue:`16548`:: sage: A = transducers.GrayCode() sage: B = transducers.abs([0, 1]) @@ -8050,7 +8050,7 @@ def composition(self, other, algorithm=None, Transition from (0, 2) to (0, 2): 1|0] Similarly, the explorative algorithm can handle - non-deterministic finite state machines as of :trac:`16548`:: + non-deterministic finite state machines as of :issue:`16548`:: sage: A = Transducer([(0, 0, 0, 0), (0, 1, 0, 0)], ....: initial_states=[0]) @@ -8256,7 +8256,7 @@ def _composition_explorative_(self, other): Transition from ('B', 1) to ('B', 1): 0|0, Transition from ('B', 1) to ('B', 2): 1|0] - Check that colors are correctly dealt with, cf. :trac:`19199`. + Check that colors are correctly dealt with, cf. :issue:`19199`. In particular, the new colors have to be hashable such that :meth:`Automaton.determinisation` does not fail:: @@ -11233,7 +11233,7 @@ def determinisation(self): Automaton with 1 state If the colors of all constituent states are ``None``, - the resulting color is ``None``, too (:trac:`19199`):: + the resulting color is ``None``, too (:issue:`19199`):: sage: A = Automaton([(0, 0, 0)], ....: initial_states=[0], @@ -11243,7 +11243,7 @@ def determinisation(self): TESTS: - This is from :trac:`15078`, comment 13. + This is from :issue:`15078`, comment 13. :: @@ -11275,7 +11275,7 @@ def determinisation(self): sage: Ddet.process(list('aaab')) (True, frozenset({'A', 'C'})) - Test that :trac:`18992` is fixed:: + Test that :issue:`18992` is fixed:: sage: A = Automaton([(0, 1, []), (1, 1, 0)], ....: initial_states=[0], final_states=[1]) diff --git a/src/sage/combinat/finite_state_machine_generators.py b/src/sage/combinat/finite_state_machine_generators.py index 94342f9b4a3..86307f490f9 100644 --- a/src/sage/combinat/finite_state_machine_generators.py +++ b/src/sage/combinat/finite_state_machine_generators.py @@ -60,13 +60,13 @@ - Daniel Krenn (2014-04-15): improved common docstring during review - Clemens Heuberger, Daniel Krenn, Sara Kropf (2014-04-16--2014-05-02): A couple of improvements. Details see - :trac:`16141`, :trac:`16142`, :trac:`16143`, :trac:`16186`. + :issue:`16141`, :issue:`16142`, :issue:`16143`, :issue:`16186`. - Sara Kropf (2014-04-29): weight transducer - Clemens Heuberger, Daniel Krenn (2014-07-18): transducers Wait, all, any - Clemens Heuberger (2014-08-10): transducer Recursion - Clemens Heuberger (2015-07-31): automaton word -- Daniel Krenn (2015-09-14): cleanup :trac:`18227` +- Daniel Krenn (2015-09-14): cleanup :issue:`18227` ACKNOWLEDGEMENT: diff --git a/src/sage/combinat/free_module.py b/src/sage/combinat/free_module.py index 8a97fbdc796..19cec377fc8 100644 --- a/src/sage/combinat/free_module.py +++ b/src/sage/combinat/free_module.py @@ -218,7 +218,7 @@ class CombinatorialFreeModule(UniqueRepresentation, Module, IndexedGenerators): TESTS: - Before :trac:`14054`, combinatorial free modules violated the unique + Before :issue:`14054`, combinatorial free modules violated the unique parent condition. That caused a problem. The tensor product construction involves maps, but maps check that their domain and the parent of a to-be-mapped element are identical (not just equal). However, the tensor @@ -259,7 +259,7 @@ class CombinatorialFreeModule(UniqueRepresentation, Module, IndexedGenerators): sage: XQ == XQ True - We check that issue :trac:`28681` is fixed:: + We check that issue :issue:`28681` is fixed:: sage: F = CombinatorialFreeModule(ZZ, ZZ); F.rename("F") sage: FF = tensor((F,F)) @@ -401,7 +401,7 @@ def __init__(self, R, basis_keys=None, element_class=None, category=None, TESTS: - Regression test for :trac:`10127`: ``self._indices`` needs to be + Regression test for :issue:`10127`: ``self._indices`` needs to be set early enough, in case the initialization of the categories use ``self.basis().keys()``. This occurred on several occasions in non trivial constructions. In the following example, @@ -701,7 +701,7 @@ def _element_constructor_(self, x): The following originally used to yield ``p[[2]] # p[[2]]``, and if there was no natural coercion between ``s`` and ``p``, this would raise a :class:`NotImplementedError`. - Since :trac:`15305`, this takes the + Since :issue:`15305`, this takes the coercion between ``s`` and ``p`` and lifts it to the tensor product. :: sage: pp(a) # needs sage.combinat @@ -1336,7 +1336,7 @@ def __classcall_private__(cls, modules, **options): sage: tensor([F, tensor([G, H])]) == tensor([F, G, H]) True - Check that :trac:`19608` is fixed:: + Check that :issue:`19608` is fixed:: sage: T = tensor([F, G, H]) sage: T in Modules(ZZ).FiniteDimensional() @@ -1428,7 +1428,7 @@ def _ascii_art_(self, term): ## # ## - Check that the breakpoints are correct (:trac:`29202`):: + Check that the breakpoints are correct (:issue:`29202`):: sage: s._breakpoints # needs sage.combinat [6] @@ -1458,7 +1458,7 @@ def _unicode_art_(self, term): └┴┘ ├┼┐ └┴┘ - Check that the breakpoints are correct (:trac:`29202`):: + Check that the breakpoints are correct (:issue:`29202`):: sage: s._breakpoints # needs sage.combinat [7] @@ -1892,7 +1892,7 @@ def _cartesian_product_of_elements(self, elements): TESTS: - The ``elements`` can be a generator as in :trac:`31453`:: + The ``elements`` can be a generator as in :issue:`31453`:: sage: from sage.categories.magmatic_algebras import ( ....: MagmaticAlgebras) diff --git a/src/sage/combinat/gelfand_tsetlin_patterns.py b/src/sage/combinat/gelfand_tsetlin_patterns.py index 676c1685484..354c440c58b 100644 --- a/src/sage/combinat/gelfand_tsetlin_patterns.py +++ b/src/sage/combinat/gelfand_tsetlin_patterns.py @@ -173,7 +173,7 @@ def _hash_(self) -> int: sage: hash(gt) == hash(gt) True - Check that :trac:`14717` is fixed:: + Check that :issue:`14717` is fixed:: sage: GT = GelfandTsetlinPattern([[2, 1, 0], [2, 0], [1]]) sage: GT in {} @@ -783,7 +783,7 @@ def _coerce_map_from_(self, S): sage: t == GelfandTsetlinPattern([[1]]) True - Check that :trac:`25919` is fixed:: + Check that :issue:`25919` is fixed:: sage: t = GelfandTsetlinPattern([[1]]) sage: u = GelfandTsetlinPatterns()[1] @@ -854,7 +854,7 @@ def __iter__(self): [[1, 0, 0], [0, 0], [0]], [[1, 0, 0], [1, 0], [0]]] - Check that :trac:`14718` is fixed:: + Check that :issue:`14718` is fixed:: sage: T = GelfandTsetlinPatterns(1,3) sage: list(T) @@ -1211,7 +1211,7 @@ def __init__(self, top_row, strict): TESTS: - Check a border case in :trac:`14765`:: + Check a border case in :issue:`14765`:: sage: G = GelfandTsetlinPatterns(top_row=[]) sage: list(G) diff --git a/src/sage/combinat/growth.py b/src/sage/combinat/growth.py index 1b711ddde5f..b940fec97b8 100644 --- a/src/sage/combinat/growth.py +++ b/src/sage/combinat/growth.py @@ -914,7 +914,7 @@ def P_chain(self): sage: G.P_chain() [word: , word: 1, word: 11, word: 111, word: 1011] - Check that :trac:`25631` is fixed:: + Check that :issue:`25631` is fixed:: sage: BinaryWord = GrowthDiagram.rules.BinaryWord() sage: BinaryWord(filling = {}).P_chain() @@ -944,7 +944,7 @@ def Q_chain(self): sage: G.Q_chain() [word: , word: 1, word: 10, word: 101, word: 1011] - Check that :trac:`25631` is fixed:: + Check that :issue:`25631` is fixed:: sage: BinaryWord = GrowthDiagram.rules.BinaryWord() sage: BinaryWord(filling = {}).Q_chain() diff --git a/src/sage/combinat/integer_lists/invlex.pyx b/src/sage/combinat/integer_lists/invlex.pyx index 07036085ac0..d8ab12b0a3d 100644 --- a/src/sage/combinat/integer_lists/invlex.pyx +++ b/src/sage/combinat/integer_lists/invlex.pyx @@ -538,7 +538,7 @@ class IntegerListsLex(IntegerLists, metaclass=ClasscallMetaclass): controlled by `l`, which is to say negligible in practice. Still, there remains much room for efficiency improvements; see - :trac:`18055`, :trac:`18056`. + :issue:`18055`, :issue:`18056`. .. NOTE:: @@ -549,7 +549,7 @@ class IntegerListsLex(IntegerLists, metaclass=ClasscallMetaclass): TESTS: This example from the combinatorics tutorial used to fail before - :trac:`17979` because the floor conditions did not satisfy the + :issue:`17979` because the floor conditions did not satisfy the slope conditions:: sage: I = IntegerListsLex(16, min_length=2, max_slope=-1, floor=[5,3,3]) @@ -644,7 +644,7 @@ class IntegerListsLex(IntegerLists, metaclass=ClasscallMetaclass): sage: L.list() [[10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000]] - Noted on :trac:`17898`:: + Noted on :issue:`17898`:: sage: list(IntegerListsLex(4, min_part=1, length=3, min_slope=1)) [] @@ -653,7 +653,7 @@ class IntegerListsLex(IntegerLists, metaclass=ClasscallMetaclass): sage: IntegerListsLex(6, min_part=1, max_part=3, max_slope=-4).list() [] - Noted in :trac:`17548`, which are now fixed:: + Noted in :issue:`17548`, which are now fixed:: sage: IntegerListsLex(10, min_part=2, max_slope=-1).list() [[10], [8, 2], [7, 3], [6, 4], [5, 3, 2]] @@ -690,7 +690,7 @@ class IntegerListsLex(IntegerLists, metaclass=ClasscallMetaclass): [5, 3, 2], [4, 3, 2, 1]] - .. RUBRIC:: TESTS from comments on :trac:`17979` + .. RUBRIC:: TESTS from comments on :issue:`17979` Comment 191:: @@ -788,7 +788,7 @@ class IntegerListsLex(IntegerLists, metaclass=ClasscallMetaclass): def __classcall_private__(cls, n=None, **kwargs): r""" Specifying a list or iterable as argument was deprecated in - :trac:`17979`. Please use ``DisjointUnionEnumeratedSets`` or + :issue:`17979`. Please use ``DisjointUnionEnumeratedSets`` or the ``min_sum`` and ``max_sum`` arguments instead. """ return typecall(cls, n=n, **kwargs) diff --git a/src/sage/combinat/integer_lists/lists.py b/src/sage/combinat/integer_lists/lists.py index 9117a6076f7..8e121461056 100644 --- a/src/sage/combinat/integer_lists/lists.py +++ b/src/sage/combinat/integer_lists/lists.py @@ -157,7 +157,7 @@ def __eq__(self, other): TESTS: This used to fail due to poor equality testing. See - :trac:`17979`, comment 433:: + :issue:`17979`, comment 433:: sage: DisjointUnionEnumeratedSets(Family([2,2], ....: lambda n: IntegerListsLex(n, length=2))).list() diff --git a/src/sage/combinat/integer_vector.py b/src/sage/combinat/integer_vector.py index 4f1176c62a8..61a3229e5d0 100644 --- a/src/sage/combinat/integer_vector.py +++ b/src/sage/combinat/integer_vector.py @@ -460,7 +460,7 @@ def check(self): sage: elt = IV([1,2,1]) sage: elt.check() - Check :trac:`34510`:: + Check :issue:`34510`:: sage: IV3 = IntegerVectors(n=3) sage: IV3([2,2]) @@ -696,7 +696,7 @@ def __classcall_private__(cls, n=None, k=None, **kwargs): ... ValueError: k and length both specified - :trac:`29524`:: + :issue:`29524`:: sage: IntegerVectors(3, 3/1) Traceback (most recent call last): @@ -1288,7 +1288,7 @@ def __contains__(self, x): sage: [3,2,2,1] in IntegerVectors(8, 4) True - Check :trac:`34510`:: + Check :issue:`34510`:: sage: IV33 = IntegerVectors(n=3, k=3) sage: IV33([0]) diff --git a/src/sage/combinat/integer_vector_weighted.py b/src/sage/combinat/integer_vector_weighted.py index c7700671c61..7540aca9a07 100644 --- a/src/sage/combinat/integer_vector_weighted.py +++ b/src/sage/combinat/integer_vector_weighted.py @@ -361,7 +361,7 @@ def iterator_fast(n, l): sage: list(iterator_fast(2, [2])) [[1]] - Test that :trac:`20491` is fixed:: + Test that :issue:`20491` is fixed:: sage: type(list(iterator_fast(2, [2]))[0][0]) diff --git a/src/sage/combinat/matrices/dancing_links.pyx b/src/sage/combinat/matrices/dancing_links.pyx index 99dc42b3477..0ef6eed0026 100644 --- a/src/sage/combinat/matrices/dancing_links.pyx +++ b/src/sage/combinat/matrices/dancing_links.pyx @@ -140,7 +140,7 @@ cdef class dancing_linksWrapper: TESTS: The following example would crash in Sage's debug version - from :trac:`13864` prior to the fix from :trac:`13882`:: + from :issue:`13864` prior to the fix from :issue:`13882`:: sage: from sage.combinat.matrices.dancing_links import dlx_solver sage: x = dlx_solver([]) @@ -379,7 +379,7 @@ cdef class dancing_linksWrapper: TESTS: - Test that :trac:`11814` is fixed:: + Test that :issue:`11814` is fixed:: sage: dlx_solver([]).search() 0 @@ -531,7 +531,7 @@ cdef class dancing_linksWrapper: ValueError: column(=6) must be in range(ncols) where ncols=6 This use to take a lot of time and memory. Not anymore since - :trac:`24315`:: + :issue:`24315`:: sage: S = Subsets(range(11)) sage: rows = map(list, S) @@ -563,7 +563,7 @@ cdef class dancing_linksWrapper: TESTS: The algorithm is automatically reinitialized if needed, for example - when iterating the solutions a second time (:trac:`25125`):: + when iterating the solutions a second time (:issue:`25125`):: sage: sorted(map(sorted, d.solutions_iterator())) [[0, 1], [2, 3], [4, 5]] @@ -846,7 +846,7 @@ cdef class dancing_linksWrapper: TESTS: The algorithm is automatically reinitialized if needed, for example - when counting the number of solutions a second time (:trac:`25125`):: + when counting the number of solutions a second time (:issue:`25125`):: sage: rows = [[0,1,2], [3,4,5], [0,1], [2,3,4,5], [0], [1,2,3,4,5]] sage: x = dlx_solver(rows) diff --git a/src/sage/combinat/matrices/hadamard_matrix.py b/src/sage/combinat/matrices/hadamard_matrix.py index 29276a3ddad..14d6a30a8f5 100644 --- a/src/sage/combinat/matrices/hadamard_matrix.py +++ b/src/sage/combinat/matrices/hadamard_matrix.py @@ -3122,7 +3122,7 @@ def skew_hadamard_matrix(n, existence=False, skew_normalize=True, check=True): sage: skew_hadamard_matrix(356,existence=True) Unknown - Check that :trac:`28526` is fixed:: + Check that :issue:`28526` is fixed:: sage: skew_hadamard_matrix(0) Traceback (most recent call last): diff --git a/src/sage/combinat/necklace.py b/src/sage/combinat/necklace.py index 0a2ad690c34..e39e04aac0f 100644 --- a/src/sage/combinat/necklace.py +++ b/src/sage/combinat/necklace.py @@ -462,7 +462,7 @@ def _sfc(content, equality=False): .. WARNING:: You will get incorrect results if there are leading 0's in ``content``. - See :trac:`12997` and :trac:`17436`. + See :issue:`12997` and :issue:`17436`. EXAMPLES:: diff --git a/src/sage/combinat/parking_functions.py b/src/sage/combinat/parking_functions.py index 39feb8aa80f..fc677e47f90 100644 --- a/src/sage/combinat/parking_functions.py +++ b/src/sage/combinat/parking_functions.py @@ -697,7 +697,7 @@ def ides(self): Here we use the standard convention that descent labels start at `1`. This behaviour has been changed in - :trac:`20555`. + :issue:`20555`. For example, ``ides(PF) = [2, 3, 4, 6]`` means that descents are at the 2nd, 3rd, 4th and 6th positions in the inverse of the @@ -1460,7 +1460,7 @@ class ParkingFunctions_n(ParkingFunctions): TESTS: - Check that :trac:`15216` is fixed:: + Check that :issue:`15216` is fixed:: sage: PF = ParkingFunctions() sage: PF3 = ParkingFunctions(3) diff --git a/src/sage/combinat/partition.py b/src/sage/combinat/partition.py index cec67892f4c..3ff9bb2f1d6 100644 --- a/src/sage/combinat/partition.py +++ b/src/sage/combinat/partition.py @@ -53,7 +53,7 @@ longer than the length of the inner partition, it would include 0's. - Andrew Mathas (2012-06-01): Removed deprecated functions and added - compatibility with the PartitionTuple classes. See :trac:`13072` + compatibility with the PartitionTuple classes. See :issue:`13072` - Travis Scrimshaw (2012-10-12): Added options. Made ``Partition_class`` to the element ``Partition``. ``Partitions*`` are now @@ -1818,7 +1818,7 @@ def down(self): TESTS: - We check that :trac:`11435` is fixed:: + We check that :issue:`11435` is fixed:: sage: Partition([]).down_list() #indirect doctest [] @@ -1848,7 +1848,7 @@ def down_list(self): [[2, 2], [3, 1]] sage: Partition([3,2,1]).down_list() [[2, 2, 1], [3, 1, 1], [3, 2]] - sage: Partition([]).down_list() #checks :trac:`11435` + sage: Partition([]).down_list() #checks :issue:`11435` [] """ return [p for p in self.down()] @@ -5588,11 +5588,11 @@ class Partitions(UniqueRepresentation, Parent): - ``starting=p`` specifies that the partitions should all be less than or equal to `p` in lex order. This argument cannot be combined - with any other (see :trac:`15467`). + with any other (see :issue:`15467`). - ``ending=p`` specifies that the partitions should all be greater than or equal to `p` in lex order. This argument cannot be combined with any - other (see :trac:`15467`). + other (see :issue:`15467`). - ``length=k`` specifies that the partitions have exactly `k` parts. @@ -5616,7 +5616,7 @@ class Partitions(UniqueRepresentation, Parent): - ``parts_in=S`` specifies that the partitions have parts in the set `S`, which can be any sequence of pairwise distinct positive integers. This argument cannot be combined with any other - (see :trac:`15467`). + (see :issue:`15467`). - ``regular=ell`` specifies that the partitions are `\ell`-regular, and can only be combined with the ``max_length`` or ``max_part``, but @@ -5764,7 +5764,7 @@ class Partitions(UniqueRepresentation, Parent): [[6, 5], [6, 4, 1], [6, 3, 2], [5, 4, 2]] Note that if you specify ``min_part=0``, then it will treat the minimum - part as being 1 (see :trac:`13605`):: + part as being 1 (see :issue:`13605`):: sage: [x for x in Partitions(4, length=3, min_part=0)] [[2, 1, 1]] @@ -5822,12 +5822,12 @@ class Partitions(UniqueRepresentation, Parent): sage: Partitions(max_part = 3) 3-Bounded Partitions - Check that :trac:`14145` has been fixed:: + Check that :issue:`14145` has been fixed:: sage: 1 in Partitions() False - Check :trac:`15467`:: + Check :issue:`15467`:: sage: Partitions(5,parts_in=[1,2,3,4], length=4) Traceback (most recent call last): @@ -5851,7 +5851,7 @@ class Partitions(UniqueRepresentation, Parent): ValueError: n must be an integer or be equal to one of None, NN, NonNegativeIntegers() Check that calling ``Partitions`` with ``outer=a`` no longer - mutates ``a`` (:trac:`16234`):: + mutates ``a`` (:issue:`16234`):: sage: a = [4,3,2,1,1,1,1] sage: for p in Partitions(8, outer=a, min_slope=-1): @@ -5866,7 +5866,7 @@ class Partitions(UniqueRepresentation, Parent): [4, 3, 2, 1, 1, 1, 1] Check that ``inner`` and ``outer`` indeed accept a partition as - argument (:trac:`18423`):: + argument (:issue:`18423`):: sage: P = Partitions(5, inner=Partition([2,1]), outer=Partition([3,2])); P Partitions of the integer 5 satisfying constraints inner=[2, 1], outer=[3, 2] @@ -5892,7 +5892,7 @@ def __classcall_private__(cls, n=None, **kwargs): sage: P is P2 True - Check that :trac:`17898` is fixed:: + Check that :issue:`17898` is fixed:: sage: P = Partitions(5, min_slope=0) sage: list(P) @@ -6452,7 +6452,7 @@ def from_core_and_quotient(self, core, quotient): ... ValueError: the quotient [[2, 1], [2, 3, 1], [1, 1, 1]] must be a tuple of partitions - We check that :trac:`11412` is actually fixed:: + We check that :issue:`11412` is actually fixed:: sage: test = lambda x, k: x == Partition(core=x.core(k), ....: quotient=x.quotient(k)) @@ -6765,7 +6765,7 @@ def random_element_uniform(self): ....: for Part in map(Partitions, range(10))) True - Check that :trac:`18752` is fixed:: + Check that :issue:`18752` is fixed:: sage: P = Partitions(5) sage: la = P.random_element_uniform() # needs sage.libs.flint @@ -6841,7 +6841,7 @@ def random_element_plancherel(self): ....: for Part in map(Partitions, range(10))) True - Check that :trac:`18752` is fixed:: + Check that :issue:`18752` is fixed:: sage: P = Partitions(5) sage: la = P.random_element_plancherel() @@ -7785,7 +7785,7 @@ def list(self): TESTS: - Check :trac:`10890`:: + Check :issue:`10890`:: sage: type(PartitionsInBox(0,0)[0]) @@ -7872,7 +7872,7 @@ class Partitions_with_constraints(IntegerListsLex): sage: P = Partitions(6, min_part=2, max_slope=-1) sage: TestSuite(P).run() - Test that :trac:`15525` is fixed:: + Test that :issue:`15525` is fixed:: sage: loads(dumps(P)) == P True @@ -8044,7 +8044,7 @@ def __iter__(self): sage: [next(it) for x in range(10)] [[], [1], [2], [1, 1], [3], [2, 1], [4], [3, 1], [2, 2], [2, 1, 1]] - Check that 1-regular partitions works (:trac:`20584`):: + Check that 1-regular partitions works (:issue:`20584`):: sage: P = Partitions(regular=1) sage: list(P) @@ -8134,7 +8134,7 @@ def __iter__(self): sage: [next(it) for x in range(10)] [[], [1], [2], [1, 1], [3], [2, 1], [4], [3, 1], [2, 2], [5]] - Check that 1-regular partitions works (:trac:`20584`):: + Check that 1-regular partitions works (:issue:`20584`):: sage: P = Partitions(regular=1, max_length=2) sage: list(P) @@ -8251,7 +8251,7 @@ def __iter__(self): sage: list(P) [[3, 2, 1], [3, 2], [3, 1], [3], [2, 1], [2], [1], []] - Check that 1-regular partitions works (:trac:`20584`):: + Check that 1-regular partitions works (:issue:`20584`):: sage: P = Partitions(regular=1, max_part=3) sage: list(P) @@ -8995,7 +8995,7 @@ def number_of_partitions(n, algorithm='default'): parts. The options of :meth:`number_of_partitions()` are being deprecated - :trac:`13072` in favour of :meth:`Partitions_n.cardinality()` so that + :issue:`13072` in favour of :meth:`Partitions_n.cardinality()` so that :meth:`number_of_partitions()` can become a stripped down version of the fastest algorithm available (currently this is using FLINT). diff --git a/src/sage/combinat/partition_algebra.py b/src/sage/combinat/partition_algebra.py index 84c77b0670e..d1d9db36979 100644 --- a/src/sage/combinat/partition_algebra.py +++ b/src/sage/combinat/partition_algebra.py @@ -1843,7 +1843,7 @@ def pair_to_graph(sp1, sp2): ((-2, 1), (1, 1), None), ((-2, 1), (2, 2), None)] - Another example which used to be wrong until :trac:`15958`:: + Another example which used to be wrong until :issue:`15958`:: sage: sp3 = pa.to_set_partition([[1, -1], [2], [-2]]) sage: sp4 = pa.to_set_partition([[1], [-1], [2], [-2]]) diff --git a/src/sage/combinat/partition_tuple.py b/src/sage/combinat/partition_tuple.py index 88fec8b2cf1..6dfc70d475d 100644 --- a/src/sage/combinat/partition_tuple.py +++ b/src/sage/combinat/partition_tuple.py @@ -1811,7 +1811,7 @@ class PartitionTuples(UniqueRepresentation, Parent): sage: PartitionTuples(level=1, size=3, regular=(0,)) Partitions of the integer 3 - Check that :trac:`14145` has been fixed:: + Check that :issue:`14145` has been fixed:: sage: 1 in PartitionTuples() False @@ -1969,7 +1969,7 @@ def __contains__(self, mu): sage: PT(la) ([3, 3, 1]) - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in PartitionTuples() False @@ -2189,7 +2189,7 @@ def __contains__(self, mu): sage: all(mu in PartitionTuples(3) for mu in PartitionTuples(3,8)) # needs sage.libs.flint True - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in PartitionTuples(level=2) False @@ -2295,7 +2295,7 @@ def __contains__(self, mu): sage: [3, 2, 1] in PartitionTuples(size=7) False - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in PartitionTuples(size=7) False @@ -2398,7 +2398,7 @@ def __contains__(self, mu): sage: all(mu in PartitionTuples(3,8) for mu in PartitionTuples(3,8)) # needs sage.libs.flint True - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in PartitionTuples(5,7) False @@ -2472,7 +2472,7 @@ def cardinality(self): TESTS: - The following calls used to fail (:trac:`11476`):: + The following calls used to fail (:issue:`11476`):: sage: # needs sage.libs.pari sage: PartitionTuples(17,2).cardinality() diff --git a/src/sage/combinat/permutation.py b/src/sage/combinat/permutation.py index 92e187287fd..8152ed81a05 100644 --- a/src/sage/combinat/permutation.py +++ b/src/sage/combinat/permutation.py @@ -9,7 +9,7 @@ This file defined :class:`Permutation` which depends upon :class:`CombinatorialElement` despite it being deprecated (see - :trac:`13742`). This is dangerous. In particular, the + :issue:`13742`). This is dangerous. In particular, the :meth:`Permutation._left_to_right_multiply_on_right` method (which can be called through multiplication) disables the input checks (see :meth:`Permutation`). This should not happen. Do not trust the results. @@ -211,7 +211,7 @@ * (2013-07-13): Removed ``CombinatorialClass`` and moved permutations to the category framework. -- Darij Grinberg (2013-09-07): added methods; ameliorated :trac:`14885` by +- Darij Grinberg (2013-09-07): added methods; ameliorated :issue:`14885` by exposing and documenting methods for global-independent multiplication. - Travis Scrimshaw (2014-02-05): Made :class:`StandardPermutations_n` a @@ -314,7 +314,7 @@ class Permutation(CombinatorialElement): .. WARNING:: - Since :trac:`13742` the input is checked for correctness : it is not + Since :issue:`13742` the input is checked for correctness : it is not accepted unless it actually is a permutation on `\{1, \ldots, n\}`. It means that some :meth:`Permutation` objects cannot be created anymore without setting ``check=False``, as there is no certainty that @@ -338,7 +338,7 @@ class Permutation(CombinatorialElement): particular standard, but rather use the methods :meth:`left_action_product` and :meth:`right_action_product` for multiplying permutations (these methods don't depend on the setting). - See :trac:`14885` for more details. + See :issue:`14885` for more details. .. NOTE:: @@ -822,7 +822,7 @@ def prev(self): sage: p.prev() False - Check that :trac:`16913` is fixed:: + Check that :issue:`16913` is fixed:: sage: Permutation([1,4,3,2]).prev() [1, 4, 2, 3] @@ -2264,7 +2264,7 @@ def longest_increasing_subsequences(self): This algorithm could be made faster using a balanced search tree for each column instead of sorted lists. See discussion on - :trac:`31451`. + :issue:`31451`. """ n = self.size() if n == 0: @@ -3281,7 +3281,7 @@ def descents(self, final_descent=False, side='right', positive=False, TESTS: - Check that the original error of :trac:`23891` is fixed:: + Check that the original error of :issue:`23891` is fixed:: sage: Permutations(4)([1,4,3,2]).weak_covers() [[1, 3, 4, 2], [1, 4, 2, 3]] @@ -7937,7 +7937,7 @@ def from_cycles(n, cycles, parent=None): sage: permutation.from_cycles(0, []) [] - Bad input (see :trac:`13742`):: + Bad input (see :issue:`13742`):: sage: Permutation("(-12,2)(3,4)") Traceback (most recent call last): @@ -7954,7 +7954,7 @@ def from_cycles(n, cycles, parent=None): TESTS: - Verify that :trac:`34662` has been fixed:: + Verify that :issue:`34662` has been fixed:: sage: permutation.from_cycles(6, (c for c in [[1,2,3], [4,5,6]])) [2, 3, 1, 5, 6, 4] diff --git a/src/sage/combinat/posets/cartesian_product.py b/src/sage/combinat/posets/cartesian_product.py index 24d763d5831..325789a6269 100644 --- a/src/sage/combinat/posets/cartesian_product.py +++ b/src/sage/combinat/posets/cartesian_product.py @@ -193,7 +193,7 @@ def le_lex(self, left, right): TESTS: - Check that :trac:`19999` is resolved:: + Check that :issue:`19999` is resolved:: sage: P = Poset((srange(2), lambda left, right: left <= right)) sage: Q = cartesian_product((P, P), order='product') @@ -360,7 +360,7 @@ def __le__(self, other): This method uses the coercion framework to find a suitable common parent. - This method can be deleted once :trac:`10130` is fixed and + This method can be deleted once :issue:`10130` is fixed and provides these methods automatically. TESTS:: @@ -377,7 +377,7 @@ def __le__(self, other): True The following example tests that the coercion gets involved in - comparisons; it can be simplified once :trac:`18182` is merged. + comparisons; it can be simplified once :issue:`18182` is merged. :: sage: class MyCP(CartesianProductPoset): @@ -423,7 +423,7 @@ def __ge__(self, other): This method uses the coercion framework to find a suitable common parent. - This method can be deleted once :trac:`10130` is fixed and + This method can be deleted once :issue:`10130` is fixed and provides these methods automatically. TESTS:: @@ -458,7 +458,7 @@ def __lt__(self, other): This method uses the coercion framework to find a suitable common parent. - This method can be deleted once :trac:`10130` is fixed and + This method can be deleted once :issue:`10130` is fixed and provides these methods automatically. TESTS:: @@ -493,7 +493,7 @@ def __gt__(self, other): This method uses the coercion framework to find a suitable common parent. - This method can be deleted once :trac:`10130` is fixed and + This method can be deleted once :issue:`10130` is fixed and provides these methods automatically. TESTS:: diff --git a/src/sage/combinat/posets/elements.py b/src/sage/combinat/posets/elements.py index a15bae281e3..5d033c5c26a 100644 --- a/src/sage/combinat/posets/elements.py +++ b/src/sage/combinat/posets/elements.py @@ -118,7 +118,7 @@ def __eq__(self, other): sage: PosetElement(P,1,"c") == PosetElement(P,0,"c") True - Test that :trac:`12351` is fixed:: + Test that :issue:`12351` is fixed:: sage: P(0) == int(0) False diff --git a/src/sage/combinat/posets/hasse_diagram.py b/src/sage/combinat/posets/hasse_diagram.py index 9f46877aa0e..3622c934234 100644 --- a/src/sage/combinat/posets/hasse_diagram.py +++ b/src/sage/combinat/posets/hasse_diagram.py @@ -519,7 +519,7 @@ def is_chain(self) -> bool: TESTS: - Check :trac:`15330`:: + Check :issue:`15330`:: sage: p = Poset(DiGraph({0:[1],2:[1]})) sage: p.is_chain() @@ -747,7 +747,7 @@ def rank_function(self): sage: Q.rank_function() is None True - test for issue :trac:`14006`:: + test for issue :issue:`14006`:: sage: H = Poset()._hasse_diagram sage: s = dumps(H) @@ -920,8 +920,8 @@ def cardinality(self): For a time, this function was named ``size()``, which would override the same-named method of the underlying - digraph. :trac:`8735` renamed this method to ``cardinality()`` - with a deprecation warning. :trac:`11214` removed the warning + digraph. :issue:`8735` renamed this method to ``cardinality()`` + with a deprecation warning. :issue:`11214` removed the warning since code for graphs was raising the warning inadvertently. This tests that ``size()`` for a Hasse diagram returns the number of edges in the digraph. :: @@ -3188,7 +3188,7 @@ def congruence(self, parts, start=None, stop_pairs=None): sage: H.congruence([[0, 1]]).number_of_subsets() # optional - sage.modules 1 - Check :trac:`21861`:: + Check :issue:`21861`:: sage: H = HasseDiagram({0: [1, 2], 1: [3], 2: [4], 3: [4]}) sage: tmp = H.congruence([[1, 3]]) # optional - sage.modules diff --git a/src/sage/combinat/posets/lattices.py b/src/sage/combinat/posets/lattices.py index 10f1746e5e1..b626b2eb81f 100644 --- a/src/sage/combinat/posets/lattices.py +++ b/src/sage/combinat/posets/lattices.py @@ -1368,7 +1368,7 @@ def is_meet_semidistributive(self, certificate=False): sage: L.is_meet_semidistributive() False - Confirm that :trac:`21340` is fixed:: + Confirm that :issue:`21340` is fixed:: sage: posets.BooleanLattice(4).is_meet_semidistributive() True @@ -1460,7 +1460,7 @@ def is_join_semidistributive(self, certificate=False): sage: L.is_join_semidistributive() False - Confirm that :trac:`21340` is fixed:: + Confirm that :issue:`21340` is fixed:: sage: posets.BooleanLattice(3).is_join_semidistributive() True @@ -1782,7 +1782,7 @@ def is_relatively_complemented(self, certificate=False): sage: L.is_relatively_complemented() False - Confirm that :trac:`22292` is fixed:: + Confirm that :issue:`22292` is fixed:: sage: L = LatticePoset(DiGraph('IYOS`G?CE?@?C?_@??')) sage: L.is_relatively_complemented(certificate=True) diff --git a/src/sage/combinat/posets/poset_examples.py b/src/sage/combinat/posets/poset_examples.py index 6a0e57a8887..b8b18784b58 100644 --- a/src/sage/combinat/posets/poset_examples.py +++ b/src/sage/combinat/posets/poset_examples.py @@ -305,7 +305,7 @@ def ChainPoset(n, facade=None): ....: if C.covers(C(i),C(j)) and j != i+1: ....: print("TEST FAILED") - Check that :trac:`8422` is solved:: + Check that :issue:`8422` is solved:: sage: posets.ChainPoset(0) Finite lattice containing 0 elements @@ -353,7 +353,7 @@ def AntichainPoset(n, facade=None): TESTS: - Check that :trac:`8422` is solved:: + Check that :issue:`8422` is solved:: sage: posets.AntichainPoset(0) Finite poset containing 0 elements diff --git a/src/sage/combinat/posets/posets.py b/src/sage/combinat/posets/posets.py index 36f4d1eee10..5dfa5849ad9 100644 --- a/src/sage/combinat/posets/posets.py +++ b/src/sage/combinat/posets/posets.py @@ -977,7 +977,7 @@ def __classcall__(cls, hasse_diagram, elements=None, category=None, facade=None, See also the extensive tests in the class documentation. - We check that :trac:`17059` is fixed:: + We check that :issue:`17059` is fixed:: sage: p = Poset() sage: p is Poset(p, category=p.category()) @@ -1847,7 +1847,7 @@ def is_linear_extension(self, l) -> bool: TESTS: - Check that :trac:`15313` is fixed:: + Check that :issue:`15313` is fixed:: sage: P = Poset((divisors(12), attrcall("divides")), facade=True, linear_extension=True) sage: P.is_linear_extension([1,2,4,3,6,12,1337]) @@ -1997,7 +1997,7 @@ def plot(self, label_elements=True, element_labels=None, sage: get_plot_labels(P2.plot(element_labels=element_labels)) ['a', 'b', 'c', 'd', 'e'] - The following checks that :trac:`18936` has been fixed and labels still work:: + The following checks that :issue:`18936` has been fixed and labels still work:: sage: # needs sage.plot sage: P = Poset({0: [1,2], 1:[3]}) @@ -2008,7 +2008,7 @@ def plot(self, label_elements=True, element_labels=None, sage: P.plot(element_labels=elem_labels, heights=heights) Graphics object consisting of 8 graphics primitives - The following checks that equal labels are allowed (:trac:`15206`):: + The following checks that equal labels are allowed (:issue:`15206`):: sage: # needs sage.plot sage: P = Poset({1: [2,3]}) @@ -2017,7 +2017,7 @@ def plot(self, label_elements=True, element_labels=None, sage: P.plot(element_labels=labs) Graphics object consisting of 6 graphics primitives - The following checks that non-hashable labels are allowed (:trac:`15206`):: + The following checks that non-hashable labels are allowed (:issue:`15206`):: sage: # needs sage.plot sage: P = Poset({1: [2,3]}) @@ -3364,7 +3364,7 @@ def is_antichain_of_poset(self, elms): sage: P.is_antichain_of_poset([1, 2, 1]) True - Check :trac:`19078`:: + Check :issue:`19078`:: sage: P.is_antichain_of_poset([0, 1, 'junk']) Traceback (most recent call last): @@ -3547,7 +3547,7 @@ def dimension(self, certificate=False, *, solver=None, integrality_tolerance=1e- Prior to version 8.3 this returned only realizer with ``certificate=True``. Now it returns a pair having a realizer as - the second element. See :trac:`25588` for details. + the second element. See :issue:`25588` for details. ALGORITHM: @@ -3609,7 +3609,7 @@ def dimension(self, certificate=False, *, solver=None, integrality_tolerance=1e- sage: Poset().dimension(certificate=True) (0, []) - Chain and certificate, :trac:`26861`:: + Chain and certificate, :issue:`26861`:: sage: Poset({'a': ['b']}).dimension(certificate=True)[1] [['a', 'b']] @@ -4624,7 +4624,7 @@ def is_isomorphic(self, other, **kwds): TESTS: - Since :trac:`25576`, one can ask for the isomorphism:: + Since :issue:`25576`, one can ask for the isomorphism:: sage: P.is_isomorphic(Q, certificate=True) (True, {1: 4, 2: 5, 3: 6}) @@ -5165,7 +5165,7 @@ def product(self, other): sage: Poset().product(Poset()) # Product of two empty poset Finite poset containing 0 elements - We check that :trac:`19113` is fixed:: + We check that :issue:`19113` is fixed:: sage: L = LatticePoset({1: []}) sage: type(L) == type(L.product(L)) @@ -6153,7 +6153,7 @@ def relabel(self, relabeling=None): sage: Q('c') < Q('d') False - The following checks that :trac:`14019` has been fixed:: + The following checks that :issue:`14019` has been fixed:: sage: d = DiGraph({2:[1],3:[1]}) sage: p1 = Poset(d) @@ -8017,7 +8017,7 @@ def is_slender(self, certificate=False): sage: Poset().is_slender() # Test empty poset True - Correct certificate (:trac:`22373`):: + Correct certificate (:issue:`22373`):: sage: P = Poset({0:[1,2,3],1:[4],2:[4],3:[4,5]}) sage: P.is_slender(True) diff --git a/src/sage/combinat/q_analogues.py b/src/sage/combinat/q_analogues.py index bf346f03ad5..f31cbe41589 100644 --- a/src/sage/combinat/q_analogues.py +++ b/src/sage/combinat/q_analogues.py @@ -57,12 +57,12 @@ def q_int(n, q=None): TESTS: - We check that :trac:`15805` is fixed:: + We check that :issue:`15805` is fixed:: sage: q_int(0).parent() Univariate Polynomial Ring in q over Integer Ring - We check that :trac:`25715` is fixed:: + We check that :issue:`25715` is fixed:: sage: q_int(0, 3r) 0 @@ -104,7 +104,7 @@ def q_factorial(n, q=None): p^3 + 2*p^2 + 2*p + 1 The `q`-analogue of `n!` is only defined for `n` a non-negative - integer (:trac:`11411`):: + integer (:issue:`11411`):: sage: q_factorial(-2) Traceback (most recent call last): @@ -255,7 +255,7 @@ def q_binomial(n, k, q=None, algorithm='auto'): sage: q_binomial(10, 4, QQbar(I)) # needs sage.rings.number_field 2 - Note that the symbolic computation works (see :trac:`14982`):: + Note that the symbolic computation works (see :issue:`14982`):: sage: q_binomial(10, 4, I) # needs sage.rings.number_field 2 @@ -482,7 +482,7 @@ def q_catalan_number(n, q=None, m=1): TESTS: The `q`-Catalan number of index `n` is only defined for `n` a - nonnegative integer (:trac:`11411`):: + nonnegative integer (:issue:`11411`):: sage: q_catalan_number(-2) Traceback (most recent call last): @@ -522,7 +522,7 @@ def qt_catalan_number(n): q^6 + q^5*t + q^4*t^2 + q^3*t^3 + q^2*t^4 + q*t^5 + t^6 + q^4*t + q^3*t^2 + q^2*t^3 + q*t^4 + q^3*t + q^2*t^2 + q*t^3 The `q,t`-Catalan number of index `n` is only defined for `n` a - nonnegative integer (:trac:`11411`):: + nonnegative integer (:issue:`11411`):: sage: qt_catalan_number(-2) Traceback (most recent call last): @@ -591,7 +591,7 @@ def q_pochhammer(n, a, q=None): sage: q_pochhammer(0, var('a')) # needs sage.symbolic 1 - We check that :trac:`25715` is fixed:: + We check that :issue:`25715` is fixed:: sage: q_pochhammer(0, 3r) 1 @@ -794,7 +794,7 @@ def q_subgroups_of_abelian_group(la, mu, q=None, algorithm='birkhoff'): sage: q_subgroups_of_abelian_group([2], [1,1], algorithm='delsarte') 0 - Check that :trac:`25715` is fixed:: + Check that :issue:`25715` is fixed:: sage: parent(q_subgroups_of_abelian_group([2], [1], algorithm='delsarte')) Univariate Polynomial Ring in q over Integer Ring @@ -891,7 +891,7 @@ def q_stirling_number1(n, k, q=None): ... ValueError: q-Stirling numbers are not defined for n < 0 - We check that :trac:`25715` is fixed:: + We check that :issue:`25715` is fixed:: sage: q_stirling_number1(2,1,1r) 1 @@ -953,7 +953,7 @@ def q_stirling_number2(n, k, q=None): ... ValueError: q-Stirling numbers are not defined for n < 0 - We check that :trac:`25715` is fixed:: + We check that :issue:`25715` is fixed:: sage: q_stirling_number2(1,0).parent() Univariate Polynomial Ring in q over Integer Ring diff --git a/src/sage/combinat/ranker.py b/src/sage/combinat/ranker.py index 1d51b8a04d2..d56dbd54f45 100644 --- a/src/sage/combinat/ranker.py +++ b/src/sage/combinat/ranker.py @@ -190,7 +190,7 @@ def unrank(L, i): tuple (or more generally a :class:`collections.abc.Sequence`), an enumerated set, some old parent of Sage still implementing unranking in the method ``__getitem__``, or an iterable (see - :class:`collections.abc.Iterable`). See :trac:`15919`. + :class:`collections.abc.Iterable`). See :issue:`15919`. EXAMPLES: diff --git a/src/sage/combinat/recognizable_series.py b/src/sage/combinat/recognizable_series.py index 161a7e05ec4..8194e695d13 100644 --- a/src/sage/combinat/recognizable_series.py +++ b/src/sage/combinat/recognizable_series.py @@ -1437,7 +1437,7 @@ def _lmul_(self, other): True The following is not tested, as `MS^i` for integers `i` does - not work, thus ``vector([m])`` fails. (See :trac:`21317` for + not work, thus ``vector([m])`` fails. (See :issue:`21317` for details.) :: diff --git a/src/sage/combinat/regular_sequence.py b/src/sage/combinat/regular_sequence.py index a9db984caa7..a56aba79f81 100644 --- a/src/sage/combinat/regular_sequence.py +++ b/src/sage/combinat/regular_sequence.py @@ -1890,7 +1890,7 @@ def some_inverse_U_matrix(lines): d = len(seq(0)) + len(lines) # The following search for an inverse works but is inefficient; - # see :trac:`35748` for details. + # see :issue:`35748` for details. for m_indices in cantor_product(xsrange(n_verify), repeat=d, min_slope=1): # Iterate over all increasing lists of length d consisting # of non-negative integers less than `n_verify`. @@ -2737,7 +2737,7 @@ def parse_recurrence(self, equations, function, var): sage: RP.parse_recurrence([f(2*n) == 0, f(2*n + 1) == 0], f, n) (1, 0, {}, {}) - We check that the output is of the correct type (:trac:`33158`):: + We check that the output is of the correct type (:issue:`33158`):: sage: RP = RecurrenceParser(2, QQ) sage: equations = [ @@ -2756,7 +2756,7 @@ def parse_recurrence(self, equations, function, var): sage: all(v.parent() == QQ for v in initial_values.values()) True - This results in giving the correct (see :trac:`33158`) minimization in:: + This results in giving the correct (see :issue:`33158`) minimization in:: sage: Seq2 = RegularSequenceRing(2, QQ) sage: P = Seq2.from_recurrence(equations, f, n) diff --git a/src/sage/combinat/rigged_configurations/bij_type_B.py b/src/sage/combinat/rigged_configurations/bij_type_B.py index 299f9e2e94c..51fd8f198bc 100644 --- a/src/sage/combinat/rigged_configurations/bij_type_B.py +++ b/src/sage/combinat/rigged_configurations/bij_type_B.py @@ -84,7 +84,7 @@ def run(self, verbose=False): TESTS: - Check that :trac:`19384` is fixed:: + Check that :issue:`19384` is fixed:: sage: RC = RiggedConfigurations(['B',3,1], [[3,1],[3,1]]) sage: RC._test_bijection() diff --git a/src/sage/combinat/rigged_configurations/kleber_tree.py b/src/sage/combinat/rigged_configurations/kleber_tree.py index f6082658969..c3a2bbeaf0a 100644 --- a/src/sage/combinat/rigged_configurations/kleber_tree.py +++ b/src/sage/combinat/rigged_configurations/kleber_tree.py @@ -324,7 +324,7 @@ def multiplicity(self): TESTS: - We check that :trac:`16057` is fixed:: + We check that :issue:`16057` is fixed:: sage: RC = RiggedConfigurations(['D',4,1], [[1,3],[3,3],[4,3]]) sage: sum(x.multiplicity() for x in RC.kleber_tree()) == len(RC.module_generators) @@ -569,7 +569,7 @@ class KleberTree(UniqueRepresentation, Parent): sage: KT.cardinality() # long time 12 - We check that relabelled types work (:trac:`16876`):: + We check that relabelled types work (:issue:`16876`):: sage: ct = CartanType(['A',3,1]).relabel(lambda x: x+2) sage: kt = KleberTree(ct, [[3,1],[5,1]]) diff --git a/src/sage/combinat/rigged_configurations/rc_crystal.py b/src/sage/combinat/rigged_configurations/rc_crystal.py index f8856ed362b..171928862ef 100644 --- a/src/sage/combinat/rigged_configurations/rc_crystal.py +++ b/src/sage/combinat/rigged_configurations/rc_crystal.py @@ -225,7 +225,7 @@ def _element_constructor_(self, *lst, **options): TESTS: - Check that :trac:`17054` is fixed:: + Check that :issue:`17054` is fixed:: sage: La = RootSystem(['A', 2]).weight_lattice().fundamental_weights() sage: RC = crystals.RiggedConfigurations(4*La[1] + 4*La[2]) diff --git a/src/sage/combinat/rigged_configurations/rc_infinity.py b/src/sage/combinat/rigged_configurations/rc_infinity.py index 734d2bc0f57..5d5ec854771 100644 --- a/src/sage/combinat/rigged_configurations/rc_infinity.py +++ b/src/sage/combinat/rigged_configurations/rc_infinity.py @@ -204,7 +204,7 @@ def _element_constructor_(self, lst=None, **options): TESTS: - Check that :trac:`17054` is fixed:: + Check that :issue:`17054` is fixed:: sage: RC = RiggedConfigurations(['A',2,1], [[1,1]]*4 + [[2,1]]*4) sage: B = crystals.infinity.RiggedConfigurations(['A',2]) diff --git a/src/sage/combinat/rigged_configurations/rigged_configuration_element.py b/src/sage/combinat/rigged_configurations/rigged_configuration_element.py index 088dd64f20f..4cb80058bf4 100644 --- a/src/sage/combinat/rigged_configurations/rigged_configuration_element.py +++ b/src/sage/combinat/rigged_configurations/rigged_configuration_element.py @@ -156,7 +156,7 @@ def __init__(self, parent, rigged_partitions=[], **options): if the rigged partitions comes from another rigged configuration, a deep copy should be made before being passed here. We do not make a deep copy here because the crystal operators generate - their own rigged partitions. See :trac:`17054`. + their own rigged partitions. See :issue:`17054`. EXAMPLES:: @@ -2038,7 +2038,7 @@ def complement_rigging(self, reverse_factors=False): TESTS: - We check that :trac:`18898` is fixed:: + We check that :issue:`18898` is fixed:: sage: RC = RiggedConfigurations(['D',4,1], [[2,1], [2,1], [2,3]]) sage: x = RC(partition_list=[[1], [1,1], [1], [1]], rigging_list=[[0], [2,1], [0], [0]]) diff --git a/src/sage/combinat/rigged_configurations/rigged_configurations.py b/src/sage/combinat/rigged_configurations/rigged_configurations.py index f810702e092..33de9927c12 100644 --- a/src/sage/combinat/rigged_configurations/rigged_configurations.py +++ b/src/sage/combinat/rigged_configurations/rigged_configurations.py @@ -531,7 +531,7 @@ def module_generators(self): TESTS: - We check that this works with relabelled Cartan types (:trac:`16876`):: + We check that this works with relabelled Cartan types (:issue:`16876`):: sage: ct = CartanType(['A',3,1]).relabel(lambda x: x+2) sage: RC = RiggedConfigurations(ct, [[4,1],[5,1]]) @@ -731,7 +731,7 @@ def _element_constructor_(self, *lst, **options): TESTS: - Check that :trac:`17054` is fixed:: + Check that :issue:`17054` is fixed:: sage: B = crystals.infinity.RiggedConfigurations(['A',2]) sage: RC = RiggedConfigurations(['A',2,1], [[1,1]]*4 + [[2,1]]*4) diff --git a/src/sage/combinat/root_system/cartan_matrix.py b/src/sage/combinat/root_system/cartan_matrix.py index 8019029d62a..23da5ab2e4b 100644 --- a/src/sage/combinat/root_system/cartan_matrix.py +++ b/src/sage/combinat/root_system/cartan_matrix.py @@ -256,7 +256,7 @@ def __classcall_private__(cls, data=None, index_set=None, TESTS: - Check that :trac:`15740` is fixed:: + Check that :issue:`15740` is fixed:: sage: # needs sage.graphs sage: d = DynkinDiagram() diff --git a/src/sage/combinat/root_system/cartan_type.py b/src/sage/combinat/root_system/cartan_type.py index aeb059143b3..e4526d5f079 100644 --- a/src/sage/combinat/root_system/cartan_type.py +++ b/src/sage/combinat/root_system/cartan_type.py @@ -540,7 +540,7 @@ def __call__(self, *args): sage: CartanType(fct) ['C', 4, 1] - Check that :trac:`13774` is fixed:: + Check that :issue:`13774` is fixed:: sage: CT = CartanType([['A',2]]) sage: CT.is_irreducible() @@ -564,14 +564,14 @@ def __call__(self, *args): sage: CartanType([CT]) ['A', 2] relabelled by {1: -1, 2: -2} - Check the errors from :trac:`20973`:: + Check the errors from :issue:`20973`:: sage: CartanType(['A',-1]) Traceback (most recent call last): ... ValueError: ['A', -1] is not a valid Cartan type - Check that unicode is handled properly (:trac:`23323`):: + Check that unicode is handled properly (:issue:`23323`):: sage: CartanType(u"A3") ['A', 3] diff --git a/src/sage/combinat/root_system/coxeter_matrix.py b/src/sage/combinat/root_system/coxeter_matrix.py index 57e6030b9c4..4ac8ea335ed 100644 --- a/src/sage/combinat/root_system/coxeter_matrix.py +++ b/src/sage/combinat/root_system/coxeter_matrix.py @@ -1078,7 +1078,7 @@ def recognize_coxeter_type_from_matrix(coxeter_matrix, index_set): ....: if C.is_finite() or C.is_affine(): ....: assert recognized_type == C.coxeter_type() - We check the rank 2 cases (:trac:`20419`):: + We check the rank 2 cases (:issue:`20419`):: sage: for i in range(2, 10): ....: M = matrix([[1,i],[i,1]]) @@ -1095,7 +1095,7 @@ def recognize_coxeter_type_from_matrix(coxeter_matrix, index_set): Coxeter type of ['A', 1, 1] Check that this works for reducible types with relabellings - (:trac:`24892`):: + (:issue:`24892`):: sage: CM = CoxeterMatrix([[1,2,5],[2,1,2],[5,2,1]]); CM [1 2 5] diff --git a/src/sage/combinat/root_system/dynkin_diagram.py b/src/sage/combinat/root_system/dynkin_diagram.py index fe5f93549ef..f5aa29ba129 100644 --- a/src/sage/combinat/root_system/dynkin_diagram.py +++ b/src/sage/combinat/root_system/dynkin_diagram.py @@ -160,7 +160,7 @@ def DynkinDiagram(*args, **kwds): TESTS: - Check that :trac:`15277` is fixed by not having edges from 0's:: + Check that :issue:`15277` is fixed by not having edges from 0's:: sage: CM = CartanMatrix([[2,-1,0,0],[-3,2,-2,-2],[0,-1,2,-1],[0,-1,-1,2]]) sage: CM @@ -240,7 +240,7 @@ class DynkinDiagram_class(DiGraph, CartanType_abstract): sage: type(copy(d)) - We check that :trac:`14655` is fixed:: + We check that :issue:`14655` is fixed:: sage: cd = copy(d) sage: cd.add_vertex(4) @@ -302,7 +302,7 @@ def _rich_repr_(self, display_manager, **kwds): Rich Output Magic Method Override rich output because :meth:`_repr_` outputs ascii - art. The proper fix will be in :trac:`18328`. + art. The proper fix will be in :issue:`18328`. See :mod:`sage.repl.rich_output` for details. @@ -717,7 +717,7 @@ def symmetrizer(self): TESTS: - We check that :trac:`15740` is fixed:: + We check that :issue:`15740` is fixed:: sage: d = DynkinDiagram() sage: d.add_edge(1,2,3) diff --git a/src/sage/combinat/root_system/plot.py b/src/sage/combinat/root_system/plot.py index c81d86b8484..5d591febe43 100644 --- a/src/sage/combinat/root_system/plot.py +++ b/src/sage/combinat/root_system/plot.py @@ -671,7 +671,7 @@ somewhat ridiculously slow. This is due to the use of generic code that works uniformly in all dimension rather than taylor-made code for 2D. Things should improve with the fast interface to the PPL - library (see e.g. :trac:`12553`). + library (see e.g. :issue:`12553`). Drawing custom objects on top of a root system plot --------------------------------------------------- diff --git a/src/sage/combinat/root_system/reflection_group_complex.py b/src/sage/combinat/root_system/reflection_group_complex.py index 99578dc7098..0b80aa73a71 100644 --- a/src/sage/combinat/root_system/reflection_group_complex.py +++ b/src/sage/combinat/root_system/reflection_group_complex.py @@ -2185,7 +2185,7 @@ def is_regular(self, h, is_class_representative=False): [2, 1, 2, 3, 2, 1, 2, 1, 3, 2, 1, 2, 3] [1, 2, 1, 3, 2, 1, 2, 1, 3, 2, 1, 2, 3] - Check that :trac:`25478` is fixed:: + Check that :issue:`25478` is fixed:: sage: W = ReflectionGroup(["A",5]) sage: w = W.from_reduced_word([1,2,3,5]) diff --git a/src/sage/combinat/root_system/reflection_group_element.pyx b/src/sage/combinat/root_system/reflection_group_element.pyx index 4f01a5a2882..680e40f16cd 100644 --- a/src/sage/combinat/root_system/reflection_group_element.pyx +++ b/src/sage/combinat/root_system/reflection_group_element.pyx @@ -51,7 +51,7 @@ cdef class ComplexReflectionGroupElement(PermutationGroupElement): TESTS: - Check that types B and C are hashed differently, see :trac:`29726`:: + Check that types B and C are hashed differently, see :issue:`29726`:: sage: WB = ReflectionGroup(['B',5]) # optional - gap3 sage: WC = ReflectionGroup(['C',5]) # optional - gap3 @@ -68,7 +68,7 @@ cdef class ComplexReflectionGroupElement(PermutationGroupElement): sage: WB_hash.intersection(WC_hash) # optional - gap3 set() - Check that :trac:`34912` is fixed:: + Check that :issue:`34912` is fixed:: sage: # optional - gap3 sage: G4 = ReflectionGroup(4) diff --git a/src/sage/combinat/root_system/root_lattice_realizations.py b/src/sage/combinat/root_system/root_lattice_realizations.py index d3e443d830b..ea1f4d285b2 100644 --- a/src/sage/combinat/root_system/root_lattice_realizations.py +++ b/src/sage/combinat/root_system/root_lattice_realizations.py @@ -1080,7 +1080,7 @@ def root_poset(self, restricted=False, facade=False): TESTS: - Check that :trac:`17982` is fixed:: + Check that :issue:`17982` is fixed:: sage: RootSystem(['A', 2]).ambient_space().root_poset() # needs sage.graphs Finite poset containing 3 elements @@ -3199,7 +3199,7 @@ def plot_crystal(self, crystal, TESTS: - Check that :trac:`29548` is fixed:: + Check that :issue:`29548` is fixed:: sage: LS = crystals.LSPaths(['A',2], [1,1]) # needs sage.combinat sage: L = RootSystem(['A',2]).ambient_space() diff --git a/src/sage/combinat/root_system/type_dual.py b/src/sage/combinat/root_system/type_dual.py index 22c4fb809d4..d7ec7e262a3 100644 --- a/src/sage/combinat/root_system/type_dual.py +++ b/src/sage/combinat/root_system/type_dual.py @@ -99,7 +99,7 @@ def __init__(self, type): False Test that the produced Cartan type is in the appropriate - abstract classes (see :trac:`13724`):: + abstract classes (see :issue:`13724`):: sage: from sage.combinat.root_system import cartan_type sage: ct = CartanType(['B',3,1]).dual() diff --git a/src/sage/combinat/root_system/type_reducible.py b/src/sage/combinat/root_system/type_reducible.py index 46cdccd2ab4..3b2e6bbedc4 100644 --- a/src/sage/combinat/root_system/type_reducible.py +++ b/src/sage/combinat/root_system/type_reducible.py @@ -187,7 +187,7 @@ def __richcmp__(self, other, op): TESTS: - Check that :trac:`20418` is fixed:: + Check that :issue:`20418` is fixed:: sage: ct = CartanType(["A2", "B2"]) sage: ct == (1, 2, 1) diff --git a/src/sage/combinat/root_system/type_relabel.py b/src/sage/combinat/root_system/type_relabel.py index 712937d08ce..d90e97cd375 100644 --- a/src/sage/combinat/root_system/type_relabel.py +++ b/src/sage/combinat/root_system/type_relabel.py @@ -117,7 +117,7 @@ def __init__(self, type, relabelling): TESTS: Test that the produced Cartan type is in the appropriate - abstract classes (see :trac:`13724`):: + abstract classes (see :issue:`13724`):: sage: ct = CartanType(['B',4]).relabel(cycle) sage: TestSuite(ct).run() @@ -146,7 +146,7 @@ def __init__(self, type, relabelling): sage: isinstance(ct, cartan_type.CartanType_simply_laced) True - Check for the original issues of :trac:`13724`:: + Check for the original issues of :issue:`13724`:: sage: A3 = CartanType("A3") sage: A3.cartan_matrix() # needs sage.graphs @@ -164,7 +164,7 @@ def __init__(self, type, relabelling): sage: ct.symmetrizer() # needs sage.graphs Finite family {1: 1, 2: 3} - Check the underlying issue of :trac:`24892`, that the root system + Check the underlying issue of :issue:`24892`, that the root system of a relabelled non-crystallographic Cartan type has an ``ambient_space()`` that does not result in an error (note that this should actually return a valid ambient space, which requires @@ -599,7 +599,7 @@ def affine(self): 0 1 2 3 B4~ relabelled by {0: 4, 1: 0, 2: 1, 3: 2, 4: 3} - This failed before :trac:`13724`:: + This failed before :issue:`13724`:: sage: ct = CartanType(["G",2]).dual(); ct ['G', 2] relabelled by {1: 2, 2: 1} diff --git a/src/sage/combinat/root_system/weight_lattice_realizations.py b/src/sage/combinat/root_system/weight_lattice_realizations.py index c33299f1012..82f076c2475 100644 --- a/src/sage/combinat/root_system/weight_lattice_realizations.py +++ b/src/sage/combinat/root_system/weight_lattice_realizations.py @@ -1061,7 +1061,7 @@ def symmetric_form(self, la): sage: [al[i].symmetric_form(al[i]) for i in P.index_set()] # needs sage.graphs [2, 4, 8] - Check that :trac:`31410` is fixed, and the symmetric form + Check that :issue:`31410` is fixed, and the symmetric form computed on the weight space is the same as the symmetric form computed on the root space:: diff --git a/src/sage/combinat/root_system/weyl_group.py b/src/sage/combinat/root_system/weyl_group.py index 58711f85653..2c8091e7e41 100644 --- a/src/sage/combinat/root_system/weyl_group.py +++ b/src/sage/combinat/root_system/weyl_group.py @@ -363,7 +363,7 @@ def reflections(self): .. NOTE:: - Prior to :trac:`20027`, the reflections were the keys + Prior to :issue:`20027`, the reflections were the keys of the family and the values were the positive roots. EXAMPLES:: diff --git a/src/sage/combinat/rsk.py b/src/sage/combinat/rsk.py index 96e5e29db5b..21557d306de 100644 --- a/src/sage/combinat/rsk.py +++ b/src/sage/combinat/rsk.py @@ -3346,7 +3346,7 @@ def RSK_inverse(p, q, output='array', insertion=InsertionRules.RSK): ... ValueError: p(=[[1, 2, 3]]) and q(=[[1, 2]]) must have the same shape - Check that :trac:`20430` is fixed:: + Check that :issue:`20430` is fixed:: sage: RSK([1,1,1,1,1,1,1,2,2,2,3], [1,1,1,1,1,1,3,2,2,2,1]) [[[1, 1, 1, 1, 1, 1, 1, 2, 2], [2], [3]], diff --git a/src/sage/combinat/schubert_polynomial.py b/src/sage/combinat/schubert_polynomial.py index e4611fcdc55..f783873a4ee 100644 --- a/src/sage/combinat/schubert_polynomial.py +++ b/src/sage/combinat/schubert_polynomial.py @@ -145,7 +145,7 @@ def expand(self): Now we check for correct handling of the empty - permutation (:trac:`23443`):: + permutation (:issue:`23443`):: sage: X([1]).expand() * X([2,1]).expand() x0 @@ -250,7 +250,7 @@ def divided_difference(self, i, algorithm="sage"): TESTS: - Check that :trac:`23403` is fixed:: + Check that :issue:`23403` is fixed:: sage: X = SchubertPolynomialRing(ZZ) sage: a = X([3,2,4,1]) @@ -431,7 +431,7 @@ def _element_constructor_(self, x): TESTS: - We check that :trac:`12924` is fixed:: + We check that :issue:`12924` is fixed:: sage: X = SchubertPolynomialRing(QQ) sage: X._element_constructor_([1,2,1]) @@ -440,7 +440,7 @@ def _element_constructor_(self, x): ValueError: the input [1, 2, 1] is not a valid permutation Now we check for correct handling of the empty - permutation (:trac:`23443`):: + permutation (:issue:`23443`):: sage: X([]) X[1] diff --git a/src/sage/combinat/set_partition.py b/src/sage/combinat/set_partition.py index c08e1c7aef3..75116d35e68 100644 --- a/src/sage/combinat/set_partition.py +++ b/src/sage/combinat/set_partition.py @@ -582,7 +582,7 @@ class SetPartition(AbstractSetPartition, {{1, 2}, {3}, {4}}, {{1}, {2, 3}, {4}}] - Since :trac:`14140`, we can create a set partition directly by + Since :issue:`14140`, we can create a set partition directly by :class:`SetPartition`, which creates the base set by taking the union of the parts passed in:: @@ -2027,7 +2027,7 @@ class SetPartitions(UniqueRepresentation, Parent): 70 In strings, repeated letters are not considered distinct as of - :trac:`14140`:: + :issue:`14140`:: sage: SetPartitions('abcde').cardinality() # needs sage.libs.flint 52 diff --git a/src/sage/combinat/set_partition_ordered.py b/src/sage/combinat/set_partition_ordered.py index a76adfa8f9f..782b13df638 100644 --- a/src/sage/combinat/set_partition_ordered.py +++ b/src/sage/combinat/set_partition_ordered.py @@ -126,7 +126,7 @@ class OrderedSetPartition(ClonableArray, [{3}, {2, 4}, {1}], [{4}, {2, 3}, {1}]] - Since :trac:`14140`, we can create an ordered set partition directly by + Since :issue:`14140`, we can create an ordered set partition directly by :class:`OrderedSetPartition` which creates the parent object by taking the union of the partitions passed in. However it is recommended and (marginally) faster to create the parent first and then create the ordered @@ -1300,7 +1300,7 @@ def __iter__(self): sage: [ p for p in OrderedSetPartitions([1], [1]) ] [[{1}]] - Let us check that it works for large size (:trac:`16646`):: + Let us check that it works for large size (:issue:`16646`):: sage: OrderedSetPartitions(42).first() [{1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, {11}, {12}, diff --git a/src/sage/combinat/sf/classical.py b/src/sage/combinat/sf/classical.py index 3151566ed6d..792272417a8 100644 --- a/src/sage/combinat/sf/classical.py +++ b/src/sage/combinat/sf/classical.py @@ -47,7 +47,7 @@ def init(): sage: sage.combinat.sf.classical.conversion_functions[('Schur', 'powersum')] - The following checks if the bug described in :trac:`15312` is fixed. :: + The following checks if the bug described in :issue:`15312` is fixed. :: sage: change = sage.combinat.sf.classical.conversion_functions[('powersum', 'Schur')] sage: hideme = change({Partition([1]*47):ZZ(1)}) # long time @@ -111,7 +111,7 @@ def _element_constructor_(self, x): TESTS: Check that non-Schur bases raise an error when given skew partitions - (:trac:`19218`):: + (:issue:`19218`):: sage: e = SymmetricFunctions(QQ).e() sage: e([[2,1],[1]]) @@ -119,7 +119,7 @@ def _element_constructor_(self, x): ... TypeError: do not know how to make x (= [[2, 1], [1]]) an element of self - Check that :trac:`34576` is fixed:: + Check that :issue:`34576` is fixed:: sage: s = SymmetricFunctions(ZZ).s() sage: f = s(0/2); f diff --git a/src/sage/combinat/sf/dual.py b/src/sage/combinat/sf/dual.py index 6a68eb7dfe6..97f81551f8b 100644 --- a/src/sage/combinat/sf/dual.py +++ b/src/sage/combinat/sf/dual.py @@ -111,7 +111,7 @@ def __init__(self, dual_basis, scalar, scalar_name="", basis_name=None, prefix=N TESTS: - Regression test for :trac:`12489`. This issue improving + Regression test for :issue:`12489`. This issue improving equality test revealed that the conversion back from the dual basis did not strip cancelled terms from the dictionary:: diff --git a/src/sage/combinat/sf/new_kschur.py b/src/sage/combinat/sf/new_kschur.py index e4c2abcc75a..e181340f8df 100644 --- a/src/sage/combinat/sf/new_kschur.py +++ b/src/sage/combinat/sf/new_kschur.py @@ -968,7 +968,7 @@ class kSchur(CombinatorialFreeModule): TESTS: - Check that :trac:`13743` is fixed:: + Check that :issue:`13743` is fixed:: sage: ks3 = SymmetricFunctions(QQ).kschur(3, 1) sage: f = ks3[2,1] diff --git a/src/sage/combinat/sf/sfa.py b/src/sage/combinat/sf/sfa.py index d1125995d68..aad6bfb133f 100644 --- a/src/sage/combinat/sf/sfa.py +++ b/src/sage/combinat/sf/sfa.py @@ -161,14 +161,14 @@ TESTS: -Check that we can handle large integers properly (:trac:`13413`):: +Check that we can handle large integers properly (:issue:`13413`):: sage: s = SymmetricFunctions(QQ).s() sage: p = SymmetricFunctions(QQ).p() sage: max(s(p([1]*36)).coefficients()) # long time (4s on sage.math, 2013) 40971642983700000000 -BACKWARD INCOMPATIBLE CHANGES (:trac:`5457`): +BACKWARD INCOMPATIBLE CHANGES (:issue:`5457`): The symmetric functions code has been refactored to take advantage of the coercion systems. This introduced a couple of glitches: diff --git a/src/sage/combinat/shuffle.py b/src/sage/combinat/shuffle.py index 9da145671bf..846a214e30d 100644 --- a/src/sage/combinat/shuffle.py +++ b/src/sage/combinat/shuffle.py @@ -634,7 +634,7 @@ def __iter__(self): TESTS: We need to be explicitly more generic about the resulting parent - when shuffling two compositions `I` and `J` (:trac:`15131`):: + when shuffling two compositions `I` and `J` (:issue:`15131`):: sage: I, J = Compositions(4)([2, 2]), Composition([1, 1]) sage: S = ShuffleProduct_overlapping_r(I, J, 1, Compositions()) diff --git a/src/sage/combinat/skew_partition.py b/src/sage/combinat/skew_partition.py index e525c67ee39..3337d6b2fb7 100644 --- a/src/sage/combinat/skew_partition.py +++ b/src/sage/combinat/skew_partition.py @@ -271,7 +271,7 @@ def _latex_diagram(self): TESTS: - Check that :trac:`34760` is fixed:: + Check that :issue:`34760` is fixed:: sage: print(SkewPartition([[],[]])._latex_diagram()) {\emptyset} @@ -306,7 +306,7 @@ def _latex_young_diagram(self): TESTS: - Check that :trac:`34760` is fixed:: + Check that :issue:`34760` is fixed:: sage: print(SkewPartition([[],[]])._latex_young_diagram()) {\emptyset} @@ -338,7 +338,7 @@ def _latex_marked(self): TESTS: - Check that :trac:`34760` is fixed:: + Check that :issue:`34760` is fixed:: sage: print(SkewPartition([[],[]])._latex_marked()) {\emptyset} diff --git a/src/sage/combinat/skew_tableau.py b/src/sage/combinat/skew_tableau.py index 3019522d21e..44dece78ab0 100644 --- a/src/sage/combinat/skew_tableau.py +++ b/src/sage/combinat/skew_tableau.py @@ -109,7 +109,7 @@ def __init__(self, parent, st): sage: st = SkewTableau([[None,1,1],[None,2],[4]]) sage: TestSuite(st).run() - A skew tableau is immutable, see :trac:`15862`:: + A skew tableau is immutable, see :issue:`15862`:: sage: T = SkewTableau([[None,2],[2]]) sage: t0 = T[0] @@ -204,7 +204,7 @@ def __hash__(self): EXAMPLES: - Check that :trac:`35137` is fixed:: + Check that :issue:`35137` is fixed:: sage: t = SkewTableau([[None,1,2]]) sage: hash(t) == hash(tuple(t)) diff --git a/src/sage/combinat/subset.py b/src/sage/combinat/subset.py index 3a3ff7bf759..822420d6514 100644 --- a/src/sage/combinat/subset.py +++ b/src/sage/combinat/subset.py @@ -535,7 +535,7 @@ def _an_element_(self): sage: Subsets([2,4,5]).an_element() {2, 4} - Check that :trac:`33988` is fixed:: + Check that :issue:`33988` is fixed:: sage: Subsets([1,2,3]).an_element() == Subsets([1,2,3])._an_element_() True @@ -1318,7 +1318,7 @@ def __iter__(self): sage: S.list() [[1, 2], [1, 3], [2, 2], [2, 3]] - Check that :trac:`28588` is fixed:: + Check that :issue:`28588` is fixed:: sage: Subsets([3,2,2], submultiset=True).list() [[], [3], [2], [3, 2], [2, 2], [3, 2, 2]] diff --git a/src/sage/combinat/subword.py b/src/sage/combinat/subword.py index 9cced6b8645..e5a9afcb804 100644 --- a/src/sage/combinat/subword.py +++ b/src/sage/combinat/subword.py @@ -540,7 +540,7 @@ def smallest_positions(word, subword, pos=0) -> list | bool: TESTS: - We check for :trac:`5534`:: + We check for :issue:`5534`:: sage: w = ["a", "b", "c", "d"]; ww = ["b", "d"] sage: x = sage.combinat.subword.smallest_positions(w, ww); ww diff --git a/src/sage/combinat/symmetric_group_algebra.py b/src/sage/combinat/symmetric_group_algebra.py index 031940f5283..7962dbda641 100644 --- a/src/sage/combinat/symmetric_group_algebra.py +++ b/src/sage/combinat/symmetric_group_algebra.py @@ -176,7 +176,7 @@ def SymmetricGroupAlgebra(R, W, category=None): usual multiplication function, but rather use the methods :meth:`left_action_product` and :meth:`right_action_product` for multiplying permutations (these methods don't depend on the - setting). See :trac:`14885` for more information. + setting). See :issue:`14885` for more information. We conclude by constructing the algebra of the symmetric group as a monoid algebra:: @@ -242,7 +242,7 @@ def __init__(self, R, W, category): sage: QS3 in FiniteDimensionalAlgebrasWithBasis(QQ) True - Check that :trac:`16926` works:: + Check that :issue:`16926` works:: sage: S = SymmetricGroup(4) sage: SGA = S.algebra(QQ) @@ -1267,7 +1267,7 @@ def algebra_generators(self): TESTS: - Check that :trac:`15309` is fixed:: + Check that :issue:`15309` is fixed:: sage: S3 = SymmetricGroupAlgebra(QQ, 3) sage: S3.algebra_generators() diff --git a/src/sage/combinat/symmetric_group_representations.py b/src/sage/combinat/symmetric_group_representations.py index 7c975919a75..d95317335ab 100644 --- a/src/sage/combinat/symmetric_group_representations.py +++ b/src/sage/combinat/symmetric_group_representations.py @@ -327,7 +327,7 @@ def __eq__(self, other): TESTS: - The following tests against some bug that was fixed in :trac:`8611`:: + The following tests against some bug that was fixed in :issue:`8611`:: sage: spc = SymmetricGroupRepresentation([3]) sage: spc.important_info = 'Sage rules' diff --git a/src/sage/combinat/tableau.py b/src/sage/combinat/tableau.py index c4009853da6..ae26221951d 100644 --- a/src/sage/combinat/tableau.py +++ b/src/sage/combinat/tableau.py @@ -230,7 +230,7 @@ def __init__(self, parent, t, check=True): sage: s is t # identical tableaux are distinct objects False - A tableau is shallowly immutable. See :trac:`15862`. The entries + A tableau is shallowly immutable. See :issue:`15862`. The entries themselves may be mutable objects, though in that case the resulting Tableau should be unhashable. :: @@ -400,7 +400,7 @@ def _repr_diagram(self): TESTS: - Check that :trac:`20768` is fixed:: + Check that :issue:`20768` is fixed:: sage: T = Tableau([[1523, 1, 2],[1,12341, -2]]) sage: T.pp() @@ -530,7 +530,7 @@ def _ascii_art_table(self, use_unicode=False): r""" TESTS: - We check that :trac:`16487` is fixed:: + We check that :issue:`16487` is fixed:: sage: t = Tableau([[1,2,3],[4,5]]) sage: print(t._ascii_art_table()) @@ -664,7 +664,7 @@ def _ascii_art_compact(self): r""" TESTS: - We check that :trac:`16487` is fixed:: + We check that :issue:`16487` is fixed:: sage: t = Tableau([[1,2,3],[4,5]]) sage: print(t._ascii_art_compact()) @@ -1617,7 +1617,7 @@ def reading_word_permutation(self): sage: StandardTableau([[1,2],[3,4]]).reading_word_permutation() [3, 4, 1, 2] - Check that :trac:`14724` is fixed:: + Check that :issue:`14724` is fixed:: sage: SemistandardTableau([[1,1]]).reading_word_permutation() [1, 2] @@ -2803,7 +2803,7 @@ def promotion_inverse(self, n): sage: all( bk_promotion_inverse7(st) == st.promotion_inverse(6) for st in ST ) # long time True - A test for :trac:`13203`:: + A test for :issue:`13203`:: sage: T = Tableau([[1]]) sage: type(T.promotion_inverse(2)[0][0]) @@ -5535,7 +5535,7 @@ class Tableaux(UniqueRepresentation, Parent): sage: [] in Tableaux(0) True - Check that :trac:`14145` has been fixed:: + Check that :issue:`14145` has been fixed:: sage: 1 in Tableaux() False @@ -5722,7 +5722,7 @@ def __contains__(self, x): sage: [[1],[1,2]] in T False - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in sage.combinat.tableau.Tableaux() False @@ -5808,7 +5808,7 @@ def __contains__(self, x): sage: [[2,4],[1,3]] in T False - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in sage.combinat.tableau.Tableaux_size(3) False @@ -6264,7 +6264,7 @@ def __contains__(self, t): sage: [[1,3,2]] in T False - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in sage.combinat.tableau.SemistandardTableaux() False @@ -6398,7 +6398,7 @@ def __contains__(self, t): sage: Tableau([[1]]) in T False - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in SemistandardTableaux(3, max_entry=oo) False @@ -6485,7 +6485,7 @@ def __contains__(self, x): sage: [[13, 67], [1467]] in SST False - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: SST = SemistandardTableaux([3,1], max_entry=oo) sage: 1 in SST @@ -6597,7 +6597,7 @@ def __contains__(self, x): sage: all(sst in SST for sst in SST) # needs sage.modules True - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: SST = SemistandardTableaux(4) sage: 1 in SST @@ -7306,7 +7306,7 @@ def __contains__(self, x): True Check that integers are not contained in ``self`` - (see :trac:`14145`):: + (see :issue:`14145`):: sage: 1 in RowStandardTableaux() False @@ -7431,7 +7431,7 @@ def __contains__(self, x): sage: [x for x in ST4 if x in ST3] # needs sage.graphs [] - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in RowStandardTableaux(4) False @@ -7706,7 +7706,7 @@ def __contains__(self, x): sage: [] in StandardTableaux() True - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in StandardTableaux() False @@ -7822,7 +7822,7 @@ def __contains__(self, x): sage: [x for x in ST4 if x in ST3] [] - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in StandardTableaux(4) False @@ -7859,7 +7859,7 @@ def cardinality(self): True The cardinality can be computed without constructing all elements in - this set, so this computation is fast (see also :trac:`28273`):: + this set, so this computation is fast (see also :issue:`28273`):: sage: StandardTableaux(500).cardinality() 423107565308608549951551753690...221285999236657443927937253376 @@ -7995,7 +7995,7 @@ def __contains__(self, x): sage: ST.cardinality() 3 - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in StandardTableaux([2,1,1]) False diff --git a/src/sage/combinat/tableau_tuple.py b/src/sage/combinat/tableau_tuple.py index 807823a4af7..a163bf08d86 100644 --- a/src/sage/combinat/tableau_tuple.py +++ b/src/sage/combinat/tableau_tuple.py @@ -484,7 +484,7 @@ def _repr_diagram(self): TESTS: - Check that :trac:`20768` is fixed:: + Check that :issue:`20768` is fixed:: sage: T = TableauTuple([[[1,2,1],[1],[12345]], [], [[1523,1,2],[1,12341,-2]]]) sage: T.pp() @@ -2158,7 +2158,7 @@ class TableauTuples(UniqueRepresentation, Parent): sage: TestSuite( TableauTuples(level=6, size=1) ).run() sage: TestSuite( TableauTuples(level=6, size=10) ).run() - Check that :trac:`14145` has been fixed:: + Check that :issue:`14145` has been fixed:: sage: 1 in TableauTuples() False @@ -2294,7 +2294,7 @@ def __contains__(self, t): sage: ([[1,2],[4]],[[2,3],[1],[1]]) in T True - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in TableauTuples() False @@ -2455,7 +2455,7 @@ def __contains__(self, t): sage: [[1],[2],[3]] in T False - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in TableauTuples(3) False @@ -2536,7 +2536,7 @@ def __contains__(self, t): sage: [[1],[2],[3],[4]] in T False - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in TableauTuples(size=3) False @@ -2619,7 +2619,7 @@ def __contains__(self, t): sage: [[2,4],[1,3]] in T False - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in TableauTuples(3,3) False @@ -2941,7 +2941,7 @@ def __contains__(self, t): sage: [[1,1],[5]] in T False - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in RowStandardTableauTuples() False @@ -3099,7 +3099,7 @@ def __contains__(self, t): sage: [] in T False - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in RowStandardTableauTuples(3) False @@ -3309,7 +3309,7 @@ def __contains__(self, t): sage: RowStandardTableauTuple([[[2, 3]], [[1]]]) in tabs False - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in RowStandardTableauTuples(level=4, size=3) # needs sage.libs.flint False @@ -3390,7 +3390,7 @@ def __contains__(self, t): sage: ([[1, 4],[3]], [[2]]) in STT True - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in RowStandardTableauTuples([[2,1],[1]]) False @@ -4232,7 +4232,7 @@ def __contains__(self, t): sage: [[1,1],[5]] in T False - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in StandardTableauTuples() False @@ -4404,7 +4404,7 @@ def __contains__(self, t): sage: [] in T False - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in StandardTableauTuples(3) False @@ -4516,7 +4516,7 @@ def __contains__(self, t): sage: Tableau([[1]]) in T False - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in StandardTableauTuples(size=3) False @@ -4650,7 +4650,7 @@ def __contains__(self, t): sage: Tableau([[1]]) in tabs False - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in StandardTableauTuples(level=4, size=3) # needs sage.libs.flint False @@ -4774,7 +4774,7 @@ def __contains__(self, t): sage: ([[1, 4],[3]], [[2]]) in STT True - Check that :trac:`14145` is fixed:: + Check that :issue:`14145` is fixed:: sage: 1 in StandardTableauTuples([[2,1],[1]]) False diff --git a/src/sage/combinat/tiling.py b/src/sage/combinat/tiling.py index 723557eb9ab..63a25e0bd81 100644 --- a/src/sage/combinat/tiling.py +++ b/src/sage/combinat/tiling.py @@ -2060,7 +2060,7 @@ def row_to_polyomino(self, row_number): TESTS: - We check that issue :trac:`32252` is fixed and that colors of + We check that issue :issue:`32252` is fixed and that colors of polyominoes are properly recovered:: sage: v = Polyomino([(0, 0), (0, 1)], color="blue") diff --git a/src/sage/combinat/words/abstract_word.py b/src/sage/combinat/words/abstract_word.py index eaf5cbd4975..4b385e3e79f 100644 --- a/src/sage/combinat/words/abstract_word.py +++ b/src/sage/combinat/words/abstract_word.py @@ -225,7 +225,7 @@ def __len__(self): sage: len(Word(iter('a'*200), length='finite')) 200 - We make sure :trac:`8574` is fixed:: + We make sure :issue:`8574` is fixed:: sage: s = WordMorphism('0->000,1->%s'%('1'*100)) sage: len(s('1')) diff --git a/src/sage/combinat/words/finite_word.py b/src/sage/combinat/words/finite_word.py index 41613ed61e2..b596f87e56d 100644 --- a/src/sage/combinat/words/finite_word.py +++ b/src/sage/combinat/words/finite_word.py @@ -2134,7 +2134,7 @@ def conjugate_position(self, other): TESTS: - We check that :trac:`11128` is fixed:: + We check that :issue:`11128` is fixed:: sage: w = Word([0,0,1,0,2,1]) sage: [w.conjugate(i).conjugate_position(w) for i in range(w.length())] @@ -2199,7 +2199,7 @@ def is_conjugate_with(self, other): sage: Word('12131').is_conjugate_with(Word('11213')) True - We make sure that :trac:`11128` is fixed:: + We make sure that :issue:`11128` is fixed:: sage: Word('abaa').is_conjugate_with(Word('aaba')) True @@ -4340,7 +4340,7 @@ def find(self, sub, start=0, end=None): TESTS: - Check that :trac:`12804` is fixed:: + Check that :issue:`12804` is fixed:: sage: w = Word(iter("ababab"), length="finite") sage: w.find("ab") @@ -4421,7 +4421,7 @@ def rfind(self, sub, start=0, end=None): TESTS: - Check that :trac:`12804` is fixed:: + Check that :issue:`12804` is fixed:: sage: w = Word(iter("abab"), length="finite") sage: w.rfind("ab") @@ -6969,7 +6969,7 @@ def is_square_free(self): TESTS: - We make sure that :trac:`8490` is fixed:: + We make sure that :issue:`8490` is fixed:: sage: Word('11').is_square_free() False @@ -7035,7 +7035,7 @@ def is_cube_free(self): TESTS: - We make sure that :trac:`8490` is fixed:: + We make sure that :issue:`8490` is fixed:: sage: Word('111').is_cube_free() False diff --git a/src/sage/combinat/words/lyndon_word.py b/src/sage/combinat/words/lyndon_word.py index 209f9099f18..c466166d78a 100644 --- a/src/sage/combinat/words/lyndon_word.py +++ b/src/sage/combinat/words/lyndon_word.py @@ -322,7 +322,7 @@ def __iter__(self): TESTS: - Check that :trac:`12997` is fixed:: + Check that :issue:`12997` is fixed:: sage: LyndonWords([0,1]).list() [word: 2] @@ -413,7 +413,7 @@ def __call__(self, *args, **kwds): ... ValueError: length is not k=3 - Make sure that the correct length is checked (:trac:`30186`):: + Make sure that the correct length is checked (:issue:`30186`):: sage: L = LyndonWords(2, 4) sage: _ = L(L.random_element()) # needs sage.libs.pari diff --git a/src/sage/combinat/words/morphic.py b/src/sage/combinat/words/morphic.py index c036db8e2ec..6a7a7877185 100644 --- a/src/sage/combinat/words/morphic.py +++ b/src/sage/combinat/words/morphic.py @@ -331,7 +331,7 @@ def __iter__(self): ... TypeError: self (=a->ac, b->aac) is not self-composable - We check that :trac:`8595` is fixed:: + We check that :issue:`8595` is fixed:: sage: s = WordMorphism({('a', 1):[('a', 1), ('a', 2)], ('a', 2):[('a', 1)]}) sage: w = s.fixed_point(('a', 1)) @@ -339,7 +339,7 @@ def __iter__(self): sage: next(it) ('a', 1) - This shows that issue :trac:`13668` has been resolved:: + This shows that issue :issue:`13668` has been resolved:: sage: s = WordMorphism({1:[1,2],2:[2,3],3:[4],4:[5],5:[6],6:[7],7:[8],8:[9],9:[10],10:[1]}) sage: (s^7).fixed_points() diff --git a/src/sage/combinat/words/morphism.py b/src/sage/combinat/words/morphism.py index abb99d9f685..f8965a6b9d8 100644 --- a/src/sage/combinat/words/morphism.py +++ b/src/sage/combinat/words/morphism.py @@ -558,7 +558,7 @@ def __ne__(self, other): sage: n != o True - This solves :trac:`12475`:: + This solves :issue:`12475`:: sage: s = WordMorphism('1->121,2->131,3->4,4->1') sage: s == s.reversal() @@ -1202,7 +1202,7 @@ def is_endomorphism(self): sage: m.is_endomorphism() True - We check that :trac:`8674` is fixed:: + We check that :issue:`8674` is fixed:: sage: P = WordPaths('abcd') # needs sage.modules sage: m = WordMorphism('a->adab,b->ab,c->cbcd,d->cd', # needs sage.modules @@ -1365,7 +1365,7 @@ def is_identity(self): sage: WordMorphism({0:[0],1:[1]}).is_identity() True - We check that :trac:`8618` is fixed:: + We check that :issue:`8618` is fixed:: sage: t = WordMorphism({'a1':['a2'], 'a2':['a1']}) sage: (t*t).is_identity() @@ -1668,7 +1668,7 @@ def is_prolongable(self, letter): sage: WordMorphism('a->bb,b->aac').is_prolongable(letter='a') False - We check that :trac:`8595` is fixed:: + We check that :issue:`8595` is fixed:: sage: s = WordMorphism({('a', 1) : [('a', 1), ('a', 2)], ('a', 2) : [('a', 1)]}) sage: s.is_prolongable(('a',1)) @@ -1863,7 +1863,7 @@ def fixed_points(self): sage: for w in f.fixed_points(): print(w) abcabbccabcabcabbccbccabcabbccabcabbccab... - This shows that issue :trac:`13668` has been resolved:: + This shows that issue :issue:`13668` has been resolved:: sage: d = {1:[1,2],2:[2,3],3:[4],4:[5],5:[6],6:[7],7:[8],8:[9],9:[10],10:[1]} sage: s = WordMorphism(d) @@ -1874,7 +1874,7 @@ def fixed_points(self): sage: s7r.periodic_point(2) word: 2,1,1,10,9,8,7,6,5,4,3,2,1,10,9,8,7,6,5,4,3,2,10,9,8,7,6,5,4,3,2,9,8,7,6,5,4,3,2,8,... - This shows that issue :trac:`13668` has been resolved:: + This shows that issue :issue:`13668` has been resolved:: sage: s = "1->321331332133133,2->133321331332133133,3->2133133133321331332133133" sage: s = WordMorphism(s) @@ -1902,7 +1902,7 @@ def periodic_point(self, letter): ... TypeError: self must be prolongable on a - Make sure that :trac:`31759` is fixed:: + Make sure that :issue:`31759` is fixed:: sage: WordMorphism('a->b,b->a').periodic_point('a') word: a @@ -1950,7 +1950,7 @@ def periodic_points(self): sage: f.fixed_points() [] - This shows that issue :trac:`13668` has been resolved:: + This shows that issue :issue:`13668` has been resolved:: sage: d = {1:[1,2],2:[2,3],3:[4],4:[5],5:[6],6:[7],7:[8],8:[9],9:[10],10:[1]} sage: s = WordMorphism(d) @@ -1968,7 +1968,7 @@ def periodic_points(self): word: 7654326543254324323221654325432432322154..., word: 4,3,2,3,2,2,1,3,2,2,1,2,1,1,10,9,8,7,6,5...] - Make sure that :trac:`31454` is fixed:: + Make sure that :issue:`31454` is fixed:: sage: WordMorphism('a->a,b->bb').periodic_points() [[word: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...]] @@ -3066,7 +3066,7 @@ def is_growing(self, letter=None): TESTS: - Make sure that :trac:`31454` is fixed:: + Make sure that :issue:`31454` is fixed:: sage: WordMorphism('a->a').is_growing('a') False @@ -3103,7 +3103,7 @@ def growing_letters(self): TESTS: - Make sure that :trac:`31454` is fixed:: + Make sure that :issue:`31454` is fixed:: sage: WordMorphism('a->a').growing_letters() [] diff --git a/src/sage/combinat/words/shuffle_product.py b/src/sage/combinat/words/shuffle_product.py index 7363d642126..719e0122e5c 100644 --- a/src/sage/combinat/words/shuffle_product.py +++ b/src/sage/combinat/words/shuffle_product.py @@ -118,7 +118,7 @@ def __contains__(self, x): sage: w in S False - We check that :trac:`14121` is solved:: + We check that :issue:`14121` is solved:: sage: w = W('ab') sage: x = W('ac') @@ -199,7 +199,7 @@ def __iter__(self): TESTS: Sage is no longer confused by a too-restrictive parent of `I` - when shuffling compositions `I` and `J` (cf. :trac:`15131`):: + when shuffling compositions `I` and `J` (cf. :issue:`15131`):: sage: I = Compositions(2)([1, 1]) sage: J = Composition([2]) diff --git a/src/sage/combinat/words/word_char.pyx b/src/sage/combinat/words/word_char.pyx index 1b68cd293ce..b34bbad7c19 100644 --- a/src/sage/combinat/words/word_char.pyx +++ b/src/sage/combinat/words/word_char.pyx @@ -267,7 +267,7 @@ cdef class WordDatatype_char(WordDatatype): sage: w > w[1:] or w[1:] < w False - Testing that :trac:`21609` is fixed:: + Testing that :issue:`21609` is fixed:: sage: w = Word([1,2], alphabet=[1,2]) sage: z = Word([1,1], alphabet=[1,2]) @@ -284,7 +284,7 @@ cdef class WordDatatype_char(WordDatatype): sage: (w>=w, z>=z, w>=z, z>=w) (True, True, True, False) - Testing that :trac:`22717` is fixed:: + Testing that :issue:`22717` is fixed:: sage: w = Word([1,2], alphabet=[1,2,3]) sage: z = Word([1,2,3], alphabet=[1,2,3]) @@ -301,7 +301,7 @@ cdef class WordDatatype_char(WordDatatype): sage: (w>=w, z>=z, w>=z, z>=w) (True, True, False, True) - Check that :trac:`23317` is fixed:: + Check that :issue:`23317` is fixed:: sage: L = [Word([2,2], (1,2)), Word([], (1,2))] sage: sorted(L) @@ -356,7 +356,7 @@ cdef class WordDatatype_char(WordDatatype): ... TypeError: slice indices must be integers or None or have an __index__ method - Check a weird behavior of PySlice_GetIndicesEx (:trac:`17056`):: + Check a weird behavior of PySlice_GetIndicesEx (:issue:`17056`):: sage: w[1:0] word: @@ -607,7 +607,7 @@ cdef class WordDatatype_char(WordDatatype): TESTS: - :trac:`19322`:: + :issue:`19322`:: sage: W = Words([0,1,2]) sage: w = W([0,1,0,2]) diff --git a/src/sage/combinat/words/word_generators.py b/src/sage/combinat/words/word_generators.py index 641319f2ee7..3c38103cff4 100644 --- a/src/sage/combinat/words/word_generators.py +++ b/src/sage/combinat/words/word_generators.py @@ -7,7 +7,7 @@ - Sébastien Labbé (2008-12-17): merged into sage - Arnaud Bergeron (2008-12-17): merged into sage - Amy Glen (2008-12-17): merged into sage -- Sébastien Labbé (2009-12-19): Added S-adic words (:trac:`7543`) +- Sébastien Labbé (2009-12-19): Added S-adic words (:issue:`7543`) USE: @@ -1150,7 +1150,7 @@ def LowerMechanicalWord(self, alpha, rho=0, alphabet=None): sage: m[:500] == s[:500] # needs sage.symbolic True - Check that this returns a word in an alphabet (:trac:`10054`):: + Check that this returns a word in an alphabet (:issue:`10054`):: sage: words.UpperMechanicalWord(1/golden_ratio^2).parent() # needs sage.symbolic Infinite words over {0, 1} @@ -1210,7 +1210,7 @@ def UpperMechanicalWord(self, alpha, rho=0, alphabet=None): sage: m[:500] == s[:500] # needs sage.symbolic True - Check that this returns a word in an alphabet (:trac:`10054`):: + Check that this returns a word in an alphabet (:issue:`10054`):: sage: words.UpperMechanicalWord(1/golden_ratio^2).parent() # needs sage.symbolic Infinite words over {0, 1} diff --git a/src/sage/combinat/words/word_infinite_datatypes.py b/src/sage/combinat/words/word_infinite_datatypes.py index 604acfb3c1b..8dbf97ed59a 100644 --- a/src/sage/combinat/words/word_infinite_datatypes.py +++ b/src/sage/combinat/words/word_infinite_datatypes.py @@ -226,7 +226,7 @@ def __getitem__(self, key): ... ValueError: for infinite words, start and stop values cannot be negative - Out of range index (:trac:`8673`):: + Out of range index (:issue:`8673`):: sage: w = Word(lambda n:n^2, length=23) sage: w[100] diff --git a/src/sage/combinat/words/words.py b/src/sage/combinat/words/words.py index 2e3f82bede1..9cdc76c7eac 100644 --- a/src/sage/combinat/words/words.py +++ b/src/sage/combinat/words/words.py @@ -9,8 +9,8 @@ - Franco Saliola (2008-12-17): merged into sage - Sebastien Labbe (2008-12-17): merged into sage - Arnaud Bergeron (2008-12-17): merged into sage - - Sebastien Labbe (2009-07-21): Improved morphism iterator (:trac:`6571`). - - Vincent Delecroix (2015): classes simplifications (:trac:`19619`) + - Sebastien Labbe (2009-07-21): Improved morphism iterator (:issue:`6571`). + - Vincent Delecroix (2015): classes simplifications (:issue:`19619`) EXAMPLES:: @@ -117,7 +117,7 @@ class AbstractLanguage(Parent): Abstract base class This is *not* to be used by any means. This class gather previous features - of set of words (prior to :trac:`19619`). In the future that class might + of set of words (prior to :issue:`19619`). In the future that class might simply disappear or become a common base class for all languages. In the latter case, its name would possibly change to ``Language``. """ @@ -2217,7 +2217,7 @@ def random_element(self, *args, **kwds): sage: _ = Words(GF(5),4).random_element() # needs sage.rings.finite_rings - Check that :trac:`18283` is fixed:: + Check that :issue:`18283` is fixed:: sage: w = Words('abc', 5).random_element() sage: w.length() diff --git a/src/sage/cpython/_py2_random.py b/src/sage/cpython/_py2_random.py index 3ba96ccbbd1..38ca23416ed 100644 --- a/src/sage/cpython/_py2_random.py +++ b/src/sage/cpython/_py2_random.py @@ -6,7 +6,7 @@ between Python versions, but the difference lies in higher-level methods such as `random.randint`. -See :trac:`24508` +See :issue:`24508` """ # The following code was copied from diff --git a/src/sage/cpython/dict_del_by_value.pyx b/src/sage/cpython/dict_del_by_value.pyx index fdeb5fee8ff..e00b4bcd611 100644 --- a/src/sage/cpython/dict_del_by_value.pyx +++ b/src/sage/cpython/dict_del_by_value.pyx @@ -62,7 +62,7 @@ cdef int del_dictitem_by_exact_value(PyDictObject *mp, PyObject *value, Py_hash_ TESTS: - The following is an indirect doctest, as discussed on :trac:`13394`. + The following is an indirect doctest, as discussed on :issue:`13394`. :: sage: from sage.misc.weak_dict import WeakValueDictionary @@ -87,7 +87,7 @@ cdef int del_dictitem_by_exact_value(PyDictObject *mp, PyObject *value, Py_hash_ TESTS: The following shows that the deletion of deeply nested structures does not - result in an error, by :trac:`15506`:: + result in an error, by :issue:`15506`:: sage: class A: pass sage: a = A(); prev = a @@ -156,7 +156,7 @@ def test_del_dictitem_by_exact_value(D, value, h): TESTS: - See :trac:`13394` for a discussion. + See :issue:`13394` for a discussion. :: sage: from sage.cpython.dict_del_by_value import test_del_dictitem_by_exact_value diff --git a/src/sage/cpython/getattr.pyx b/src/sage/cpython/getattr.pyx index e4982020879..5df2880d835 100644 --- a/src/sage/cpython/getattr.pyx +++ b/src/sage/cpython/getattr.pyx @@ -307,7 +307,7 @@ cpdef getattr_from_other_class(self, cls, name) noexcept: ... AttributeError: 'sage.rings.integer.Integer' object has no attribute '__weakref__'... - This was caught by :trac:`8296` for which we do a couple more tests:: + This was caught by :issue:`8296` for which we do a couple more tests:: sage: "__weakref__" in dir(A) True @@ -334,7 +334,7 @@ cpdef getattr_from_other_class(self, cls, name) noexcept: TESTS: Check that we do not pick up special attributes from the ``type`` - class, see :trac:`20686`:: + class, see :issue:`20686`:: sage: getattr_from_other_class(1, type, "__name__") Traceback (most recent call last): @@ -419,7 +419,7 @@ def dir_with_other_class(self, *cls): TESTS: - Check that :trac:`13043` is fixed:: + Check that :issue:`13043` is fixed:: sage: len(dir(RIF))==len(set(dir(RIF))) # needs sage.rings.real_interval_field True diff --git a/src/sage/cpython/string.pyx b/src/sage/cpython/string.pyx index 554a8a128be..a35fbd41881 100644 --- a/src/sage/cpython/string.pyx +++ b/src/sage/cpython/string.pyx @@ -4,7 +4,7 @@ String <-> bytes encoding/decoding TESTS: -Check that this can be used outside of Sage (see :trac:`25549`):: +Check that this can be used outside of Sage (see :issue:`25549`):: sage: cython( # needs sage.misc.cython ....: ''' diff --git a/src/sage/crypto/block_cipher/present.py b/src/sage/crypto/block_cipher/present.py index fbf46c6a443..d6f6146af3a 100644 --- a/src/sage/crypto/block_cipher/present.py +++ b/src/sage/crypto/block_cipher/present.py @@ -73,7 +73,7 @@ def _smallscale_present_linearlayer(nsboxes=16): .. TODO:: switch to sage.crypto.linearlayer - (:trac:`25735`) as soon as it is included in sage + (:issue:`25735`) as soon as it is included in sage EXAMPLES:: diff --git a/src/sage/crypto/mq/sr.py b/src/sage/crypto/mq/sr.py index e63cc5be016..5fcffef726d 100644 --- a/src/sage/crypto/mq/sr.py +++ b/src/sage/crypto/mq/sr.py @@ -20,7 +20,7 @@ - Martin Albrecht (2007-09): initial version -- Niles Johnson (2010-08): (:trac:`3893`) ``random_element()`` should pass on ``*args`` and ``**kwds``. +- Niles Johnson (2010-08): (:issue:`3893`) ``random_element()`` should pass on ``*args`` and ``**kwds``. EXAMPLES: @@ -2062,7 +2062,7 @@ def polynomial_system(self, P=None, K=None, C=None): We show that the (returned) key is a solution to the returned system:: sage: sr = mq.SR(3,4,4,8, star=True, gf2=True, polybori=True) - sage: while True: # workaround (see :trac:`31891`) # needs sage.rings.polynomial.pbori + sage: while True: # workaround (see :issue:`31891`) # needs sage.rings.polynomial.pbori ....: try: ....: F, s = sr.polynomial_system() ....: break diff --git a/src/sage/crypto/sbox.pyx b/src/sage/crypto/sbox.pyx index a08eacb4740..36a2c4a4e66 100644 --- a/src/sage/crypto/sbox.pyx +++ b/src/sage/crypto/sbox.pyx @@ -986,7 +986,7 @@ cdef class SBox(SageObject): TESTS: - Check that :trac:`22453` is fixed:: + Check that :issue:`22453` is fixed:: sage: from sage.crypto.sboxes import AES sage: aes_polys = AES.polynomials() # long time @@ -1090,7 +1090,7 @@ cdef class SBox(SageObject): The method-internal call to the S-box initially used a different endianess for handling finite field elements. This changed in - :trac:`25633`, by calling the S-box directly. + :issue:`25633`, by calling the S-box directly. """ if self.m != self.n: raise TypeError("Lagrange interpolation only supported if" diff --git a/src/sage/data_structures/bitset.pyx b/src/sage/data_structures/bitset.pyx index 5c341c8a003..ee3e64a8107 100644 --- a/src/sage/data_structures/bitset.pyx +++ b/src/sage/data_structures/bitset.pyx @@ -2377,7 +2377,7 @@ def test_bitset_copy_flex(py_a): """ TESTS: - Check that :trac:`33012` is fixed:: + Check that :issue:`33012` is fixed:: sage: from sage.data_structures.bitset import test_bitset_copy_flex sage: test_bitset_copy_flex('0101'*100) diff --git a/src/sage/data_structures/bitset_base.pxd b/src/sage/data_structures/bitset_base.pxd index 60082345ccc..450e8656c35 100644 --- a/src/sage/data_structures/bitset_base.pxd +++ b/src/sage/data_structures/bitset_base.pxd @@ -13,9 +13,9 @@ AUTHORS: - Rudi Pendavingh, Stefan van Zwam (2013-06-06): added functions map, lex_cmp, pickle, unpickle - Jeroen Demeyer (2014-09-05): use mpn_* functions from MPIR in the - implementation (:trac:`13352` and :trac:`16937`) + implementation (:issue:`13352` and :issue:`16937`) - Simon King (2014-10-28): ``bitset_rshift`` and ``bitset_lshift`` respecting - the size of the given bitsets (:trac:`15820`) + the size of the given bitsets (:issue:`15820`) """ #***************************************************************************** diff --git a/src/sage/data_structures/bounded_integer_sequences.pyx b/src/sage/data_structures/bounded_integer_sequences.pyx index 7e6513ec1b0..2455ecc74fe 100644 --- a/src/sage/data_structures/bounded_integer_sequences.pyx +++ b/src/sage/data_structures/bounded_integer_sequences.pyx @@ -94,7 +94,7 @@ cimported in Cython modules: AUTHORS: -- Simon King, Jeroen Demeyer (2014-10): initial version (:trac:`15820`) +- Simon King, Jeroen Demeyer (2014-10): initial version (:issue:`15820`) """ # **************************************************************************** @@ -736,7 +736,7 @@ cdef class BoundedIntegerSequence: TESTS: - The discussion at :trac:`15820` explains why the following is a good test:: + The discussion at :issue:`15820` explains why the following is a good test:: sage: X = BoundedIntegerSequence(21, [4,1,6,2,7,2,3]) sage: S = BoundedIntegerSequence(21, [0,0,0,0,0,0,0]) @@ -837,7 +837,7 @@ cdef class BoundedIntegerSequence: sage: list(BoundedIntegerSequence(1, [])) [] - The discussion at :trac:`15820` explains why this is a good test:: + The discussion at :issue:`15820` explains why this is a good test:: sage: S = BoundedIntegerSequence(21, [0,0,0,0,0,0,0]) sage: X = BoundedIntegerSequence(21, [4,1,6,2,7,2,3]) @@ -995,7 +995,7 @@ cdef class BoundedIntegerSequence: TESTS: - The discussion at :trac:`15820` explains why the following are good tests:: + The discussion at :issue:`15820` explains why the following are good tests:: sage: X = BoundedIntegerSequence(21, [4,1,6,2,7,2,3]) sage: S = BoundedIntegerSequence(21, [0,0,0,0,0,0,0]) @@ -1058,7 +1058,7 @@ cdef class BoundedIntegerSequence: sage: S.list() == list(S) == L True - The discussion at :trac:`15820` explains why the following is a good test:: + The discussion at :issue:`15820` explains why the following is a good test:: sage: (BoundedIntegerSequence(21, [0,0]) + BoundedIntegerSequence(21, [0,0])).list() [0, 0, 0, 0] @@ -1215,7 +1215,7 @@ cdef class BoundedIntegerSequence: TESTS: - The discussion at :trac:`15820` explains why the following are good tests:: + The discussion at :issue:`15820` explains why the following are good tests:: sage: BoundedIntegerSequence(21, [0,0]) + BoundedIntegerSequence(21, [0,0]) <0, 0, 0, 0> diff --git a/src/sage/databases/cremona.py b/src/sage/databases/cremona.py index 31301f72afc..172d212fc97 100644 --- a/src/sage/databases/cremona.py +++ b/src/sage/databases/cremona.py @@ -850,7 +850,7 @@ def coefficients_and_data(self, label): sage: d['torsion_order'] 2 - Check that :trac:`17904` is fixed:: + Check that :issue:`17904` is fixed:: sage: 'gens' in CremonaDatabase().coefficients_and_data('100467a2')[1] # optional - database_cremona_ellcurve True @@ -918,7 +918,7 @@ def data_from_coefficients(self, ainvs): sage: d['torsion_order'] 2 - Check that :trac:`17904` is fixed:: + Check that :issue:`17904` is fixed:: sage: ai = EllipticCurve('100467a2').ainvs() # optional - database_cremona_ellcurve sage: 'gens' in CremonaDatabase().data_from_coefficients(ai) # optional - database_cremona_ellcurve @@ -977,7 +977,7 @@ def elliptic_curve_from_ainvs(self, ainvs): sage: c.elliptic_curve('9450KKKK1') Elliptic Curve defined by y^2 + x*y + y = x^3 - x^2 - 5*x + 7 over Rational Field - Make sure :trac:`12565` is fixed:: + Make sure :issue:`12565` is fixed:: sage: c.elliptic_curve('10a1') Traceback (most recent call last): @@ -1695,7 +1695,7 @@ def CremonaDatabase(name=None,mini=None,set_global=None): sage: isinstance(c, sage.databases.cremona.LargeCremonaDatabase) # optional - database_cremona_ellcurve True - Verify that :trac:`12341` has been resolved:: + Verify that :issue:`12341` has been resolved:: sage: c = CremonaDatabase('should not exist', mini=True) Traceback (most recent call last): diff --git a/src/sage/databases/findstat.py b/src/sage/databases/findstat.py index 657eaf13dad..338d0fde498 100644 --- a/src/sage/databases/findstat.py +++ b/src/sage/databases/findstat.py @@ -3974,7 +3974,7 @@ def _plane_partitions_by_size(n): .. TODO:: - This can be replaced when :trac:`28244` is merged. + This can be replaced when :issue:`28244` is merged. INPUT: diff --git a/src/sage/databases/oeis.py b/src/sage/databases/oeis.py index 53a10ea02d1..040a2460289 100644 --- a/src/sage/databases/oeis.py +++ b/src/sage/databases/oeis.py @@ -126,10 +126,10 @@ AUTHORS: - Thierry Monteil (2012-02-10 -- 2013-06-21): initial version. -- Vincent Delecroix (2014): modifies continued fractions because of :trac:`14567` -- Moritz Firsching (2016): modifies handling of dead sequence, see :trac:`17330` -- Thierry Monteil (2019): refactorization (unique representation :trac:`28480`, - laziness :trac:`28627`) +- Vincent Delecroix (2014): modifies continued fractions because of :issue:`14567` +- Moritz Firsching (2016): modifies handling of dead sequence, see :issue:`17330` +- Thierry Monteil (2019): refactorization (unique representation :issue:`28480`, + laziness :issue:`28627`) """ @@ -1266,7 +1266,7 @@ def first_terms(self, number=None): sage: f.first_terms()[:10] # optional -- internet (0, 1, 1, 2, 3, 5, 8, 13, 21, 34) - Handle dead sequences, see :trac:`17330` :: + Handle dead sequences, see :issue:`17330` :: sage: oeis(5000).first_terms(12) # optional -- internet doctest:warning @@ -2103,7 +2103,7 @@ def __getitem__(self, x): sage: ft[-1] == 'ç' True - Check that :trac:`26997` is fixed:: + Check that :issue:`26997` is fixed:: sage: FancyTuple([[1,2,3],(4,5,6)]) 0: [1, 2, 3] diff --git a/src/sage/databases/sql_db.py b/src/sage/databases/sql_db.py index 7e027673cc0..ebc6d5f0eea 100644 --- a/src/sage/databases/sql_db.py +++ b/src/sage/databases/sql_db.py @@ -433,7 +433,7 @@ def __init__(self, database, *args, **kwds): 0 1 - Test that :trac:`27562` is fixed:: + Test that :issue:`27562` is fixed:: sage: D = SQLDatabase() sage: r = SQLQuery(D, {'table_name':'simon', 'display_cols':['a1'], 'expression':['b2','<=', 3]}) diff --git a/src/sage/doctest/control.py b/src/sage/doctest/control.py index 2973e9f6c64..0660cfb5b73 100644 --- a/src/sage/doctest/control.py +++ b/src/sage/doctest/control.py @@ -814,7 +814,7 @@ def log(self, s, end="\n"): ....: print(f.read()) hello world - Check that no duplicate logs appear, even when forking (:trac:`15244`):: + Check that no duplicate logs appear, even when forking (:issue:`15244`):: sage: DD = DocTestDefaults(logfile=tmp_filename()) sage: DC = DocTestController(DD, []) @@ -1430,7 +1430,7 @@ def run(self): Features detected... 0 - We check that :trac:`25378` is fixed (testing external packages + We check that :issue:`25378` is fixed (testing external packages while providing a logfile does not raise a ValueError: I/O operation on closed file):: @@ -1454,7 +1454,7 @@ def run(self): Features detected... 0 - We test the ``--hide`` option (:trac:`34185`):: + We test the ``--hide`` option (:issue:`34185`):: sage: from sage.doctest.control import test_hide sage: filename = tmp_filename(ext='.py') diff --git a/src/sage/doctest/external.py b/src/sage/doctest/external.py index efa46ef135e..85eefc27119 100644 --- a/src/sage/doctest/external.py +++ b/src/sage/doctest/external.py @@ -8,7 +8,7 @@ Even though the functions in this module should also work when an external software is not present, most doctests in this module are only tested if testing of external software is explicitly enabled in order to avoid invoking -external software otherwise. See :trac:`28819` for details. +external software otherwise. See :issue:`28819` for details. AUTHORS: diff --git a/src/sage/doctest/forker.py b/src/sage/doctest/forker.py index 5541e1aef8c..e1eef17e7b8 100644 --- a/src/sage/doctest/forker.py +++ b/src/sage/doctest/forker.py @@ -583,7 +583,7 @@ def _run(self, test, compileflags, out): TESTS: - Check that :trac:`26038` is fixed:: + Check that :issue:`26038` is fixed:: sage: a = 1 ....: b = 2 diff --git a/src/sage/doctest/parsing.py b/src/sage/doctest/parsing.py index 3e5b0a98975..675de50e536 100644 --- a/src/sage/doctest/parsing.py +++ b/src/sage/doctest/parsing.py @@ -9,7 +9,7 @@ - David Roe (2012-03-27) -- initial version, based on Robert Bradshaw's code. - Jeroen Demeyer(2014-08-28) -- much improved handling of tolerances - using interval arithmetic (:trac:`16889`). + using interval arithmetic (:issue:`16889`). """ # **************************************************************************** @@ -1045,7 +1045,7 @@ def parse(self, string, *args): ... ValueError: the order of a finite field must be a prime power - Test that :trac:`26575` is resolved:: + Test that :issue:`26575` is resolved:: sage: example3 = 'sage: Zp(5,4,print_mode="digits")(5)\n...00010' sage: parsed3 = DTP.parse(example3) @@ -1538,7 +1538,7 @@ def check_output(self, want, got, optionflags): sage: c = 'you'; c 'you' - This illustrates that :trac:`33588` is fixed:: + This illustrates that :issue:`33588` is fixed:: sage: from sage.doctest.parsing import SageOutputChecker, SageDocTestParser sage: import doctest @@ -1659,19 +1659,19 @@ def do_fixup(self, want, got): # Version 4.65 of glpk prints the warning "Long-step dual # simplex will be used" frequently. When Sage uses a system # installation of glpk which has not been patched, we need to - # ignore that message. See :trac:`29317`. + # ignore that message. See :issue:`29317`. glpk_simplex_warning_regex = re.compile(r'(Long-step dual simplex will be used)') got = glpk_simplex_warning_regex.sub('', got) did_fixup = True if "chained fixups" in got: - # :trac:`34533` -- suppress warning on OS X 12.6 about chained fixups + # :issue:`34533` -- suppress warning on OS X 12.6 about chained fixups chained_fixup_warning_regex = re.compile(r'ld: warning: -undefined dynamic_lookup may not work with chained fixups') got = chained_fixup_warning_regex.sub('', got) did_fixup = True if "newer macOS version" in got: - # :trac:`34741` -- suppress warning arising after + # :issue:`34741` -- suppress warning arising after # upgrading from macOS 12.X to 13.X. newer_macOS_version_regex = re.compile(r'.*dylib \(.*\) was built for newer macOS version \(.*\) than being linked \(.*\)') got = newer_macOS_version_regex.sub('', got) @@ -1683,14 +1683,14 @@ def do_fixup(self, want, got): did_fixup = True if "dylib" in got: - # :trac:`31204` -- suppress warning about ld and OS version for + # :issue:`31204` -- suppress warning about ld and OS version for # dylib files. ld_warning_regex = re.compile(r'^.*dylib.*was built for newer macOS version.*than being linked.*') got = ld_warning_regex.sub('', got) did_fixup = True if "pie being ignored" in got: - # :trac:`30845` -- suppress warning on conda about ld + # :issue:`30845` -- suppress warning on conda about ld ld_pie_warning_regex = re.compile(r'ld: warning: -pie being ignored. It is only used when linking a main executable') got = ld_pie_warning_regex.sub('', got) did_fixup = True diff --git a/src/sage/doctest/reporting.py b/src/sage/doctest/reporting.py index 9fab0e966bd..1161bafd31c 100644 --- a/src/sage/doctest/reporting.py +++ b/src/sage/doctest/reporting.py @@ -147,7 +147,7 @@ def were_doctests_with_optional_tag_run(self, tag): False When latex is available, doctests marked with optional tag - ``latex`` are run by default since :trac:`32174`:: + ``latex`` are run by default since :issue:`32174`:: sage: filename = os.path.join(SAGE_SRC,'sage','misc','latex.py') sage: DC = DocTestController(DocTestDefaults(),[filename]) diff --git a/src/sage/doctest/test.py b/src/sage/doctest/test.py index aa64974fd72..cb2cecc0b8b 100644 --- a/src/sage/doctest/test.py +++ b/src/sage/doctest/test.py @@ -13,7 +13,7 @@ sage: tests_dir = os.path.join(SAGE_SRC, 'sage', 'doctest', 'tests') sage: tests_env = dict(os.environ) -Unset :envvar:`TERM` when running doctests, see :trac:`14370`:: +Unset :envvar:`TERM` when running doctests, see :issue:`14370`:: sage: try: ....: del tests_env['TERM'] @@ -21,7 +21,7 @@ ....: pass sage: kwds = {'cwd': tests_dir, 'env':tests_env} -Check that :trac:`2235` has been fixed:: +Check that :issue:`2235` has been fixed:: sage: subprocess.call(["sage", "-t", "--warn-long", "0", # long time ....: "--random-seed=0", "--optional=sage", "longtime.rst"], **kwds) @@ -172,7 +172,7 @@ Test a timeout using the ``SAGE_TIMEOUT`` environment variable. Also set ``CYSIGNALS_CRASH_NDEBUG`` to help ensure the test times out in a timely -manner (:trac:`26912`):: +manner (:issue:`26912`):: sage: from copy import deepcopy sage: kwds2 = deepcopy(kwds) @@ -344,7 +344,7 @@ ... 1 -Test logfiles in serial and parallel mode (see :trac:`19271`):: +Test logfiles in serial and parallel mode (see :issue:`19271`):: sage: t = tmp_filename() sage: subprocess.call(["sage", "-t", "--serial", "--warn-long", "0", # long time diff --git a/src/sage/dynamics/arithmetic_dynamics/projective_ds.py b/src/sage/dynamics/arithmetic_dynamics/projective_ds.py index 740d25358d8..353eb1ea041 100644 --- a/src/sage/dynamics/arithmetic_dynamics/projective_ds.py +++ b/src/sage/dynamics/arithmetic_dynamics/projective_ds.py @@ -759,7 +759,7 @@ def dynatomic_polynomial(self, period): TESTS: We check that the dynatomic polynomial has the right - parent (see :trac:`18409`):: + parent (see :issue:`18409`):: sage: # needs sage.rings.number_field sage: P. = ProjectiveSpace(QQbar,1) @@ -5485,7 +5485,7 @@ def sigma_invariants(self, n, formal=False, embedding=None, type='point', periodic points of period ``n`` - ``embedding`` -- (default: ``None``) must be ``None``, passing an embedding - is no longer supported, see :trac: `32205`. + is no longer supported, see :issue: `32205`. - ``type`` -- (default: ``'point'``) string; either ``'point'`` or ``'cycle'`` depending on whether you compute with one @@ -6354,7 +6354,7 @@ def _is_preperiodic(self, P, err=0.1, return_period=False): sage: f._is_preperiodic(Q) # needs sage.rings.function_field True - Check that :trac:`23814` is fixed (works even if domain is not specified):: + Check that :issue:`23814` is fixed (works even if domain is not specified):: sage: # needs sage.rings.number_field sage: R. = PolynomialRing(QQ) @@ -8293,7 +8293,7 @@ def is_polynomial(self): TESTS: - See :trac:`25242`:: + See :issue:`25242`:: sage: P. = ProjectiveSpace(QQ, 1) sage: F = DynamicalSystem([x^2 + y^2, x*y]) diff --git a/src/sage/env.py b/src/sage/env.py index cadcb820c5a..da9bad48da9 100644 --- a/src/sage/env.py +++ b/src/sage/env.py @@ -3,7 +3,7 @@ Verify that importing ``sage.all`` works in Sage's Python without any ``SAGE_`` environment variables, and has the same ``SAGE_ROOT`` and ``SAGE_LOCAL`` -(see also :trac:`29446`):: +(see also :issue:`29446`):: sage: env = {k:v for (k,v) in os.environ.items() if not k.startswith("SAGE_")} sage: from subprocess import check_output diff --git a/src/sage/ext/fast_callable.pyx b/src/sage/ext/fast_callable.pyx index 962b743b0c8..a93799ab19a 100644 --- a/src/sage/ext/fast_callable.pyx +++ b/src/sage/ext/fast_callable.pyx @@ -1949,7 +1949,7 @@ cpdef generate_code(Expression expr, InstructionStream stream) noexcept: 1.00000095367477 Make sure we do not overflow the stack with highly nested expressions - (:trac:`11766`):: + (:issue:`11766`):: sage: # needs sage.rings.real_mpfr sage: R. = CC[] diff --git a/src/sage/ext/memory.pyx b/src/sage/ext/memory.pyx index e7961348cb8..26a5c848bb5 100644 --- a/src/sage/ext/memory.pyx +++ b/src/sage/ext/memory.pyx @@ -4,7 +4,7 @@ Low-level memory allocation functions TESTS: Check that an error is raised if we try to allocate a -ridiculously large integer, see :trac:`15363`:: +ridiculously large integer, see :issue:`15363`:: sage: try: ....: 2^(2^63-3) @@ -14,11 +14,11 @@ ridiculously large integer, see :trac:`15363`:: AUTHORS: -- Jeroen Demeyer (2011-01-13): initial version (:trac:`10258`) +- Jeroen Demeyer (2011-01-13): initial version (:issue:`10258`) -- Jeroen Demeyer (2014-12-14): add more functions (:trac:`10257`) +- Jeroen Demeyer (2014-12-14): add more functions (:issue:`10257`) -- Jeroen Demeyer (2015-03-02): move from ``c_lib`` to Cython (:trac:`17881`) +- Jeroen Demeyer (2015-03-02): move from ``c_lib`` to Cython (:issue:`17881`) """ #***************************************************************************** diff --git a/src/sage/functions/bessel.py b/src/sage/functions/bessel.py index 24ee74b561c..cedbe56c00e 100644 --- a/src/sage/functions/bessel.py +++ b/src/sage/functions/bessel.py @@ -321,7 +321,7 @@ class Function_Bessel_J(BuiltinFunction): Numerical evaluation is handled by the mpmath library. Symbolics are handled by a combination of Maxima and Sage (Ginac/Pynac). - Check whether the return value is real whenever the argument is real (:trac:`10251`):: + Check whether the return value is real whenever the argument is real (:issue:`10251`):: sage: bessel_J(5, 1.5) in RR # needs mpmath True @@ -397,7 +397,7 @@ def _evalf_(self, n, x, parent=None, algorithm=None): sage: bessel_J(0.5, 1.5) # needs mpmath 0.649838074753747 - Check for correct rounding (:trac:`17122`):: + Check for correct rounding (:issue:`17122`):: sage: # needs sage.rings.real_mpfr sage: R = RealField(113) @@ -509,7 +509,7 @@ class Function_Bessel_Y(BuiltinFunction): sage: f.diff(x) -1/2*bessel_Y(3, x) + 1/2*bessel_Y(1, x) - High precision and complex valued inputs (see :trac:`4230`):: + High precision and complex valued inputs (see :issue:`4230`):: sage: bessel_Y(0, 1).n(128) # needs sage.symbolic 0.088256964215676957982926766023515162828 @@ -533,12 +533,12 @@ class Function_Bessel_Y(BuiltinFunction): TESTS: - Check whether the return value is real whenever the argument is real (:trac:`10251`):: + Check whether the return value is real whenever the argument is real (:issue:`10251`):: sage: bessel_Y(5, 1.5) in RR # needs mpmath True - Coercion works correctly (see :trac:`17130`):: + Coercion works correctly (see :issue:`17130`):: sage: # needs sage.rings.real_mpfr sage: r = bessel_Y(RealField(200)(1), 1.0); r @@ -617,7 +617,7 @@ def _evalf_(self, n, x, parent=None, algorithm=None): sage: bessel_Y(0, 1).n(256) # needs mpmath sage.symbolic 0.08825696421567695798292676602351516282781752309067554671104384761199978932351 - Check for correct rounding (:trac:`17122`):: + Check for correct rounding (:issue:`17122`):: sage: # needs mpmath sage.rings.real_mpfr sage: R = RealField(113) @@ -758,7 +758,7 @@ class Function_Bessel_I(BuiltinFunction): sage: N(bessel_I(1,1),500) # needs sage.symbolic 0.565159103992485027207696027609863307328899621621092009480294489479255640964371134092664997766814410064677886055526302676857637684917179812041131208121 - Check whether the return value is real whenever the argument is real (:trac:`10251`):: + Check whether the return value is real whenever the argument is real (:issue:`10251`):: sage: bessel_I(5, 1.5) in RR # needs mpmath True @@ -944,7 +944,7 @@ class Function_Bessel_K(BuiltinFunction): TESTS: - Verify that :trac:`3426` is fixed: + Verify that :issue:`3426` is fixed: The Bessel K function can be evaluated numerically at complex orders:: @@ -961,7 +961,7 @@ class Function_Bessel_K(BuiltinFunction): 4.11189776828337e-45 - 1.01494840019482e-80*I 1.15159692553603e-88 - 6.75787862113718e-125*I - Check whether the return value is real whenever the argument is real (:trac:`10251`):: + Check whether the return value is real whenever the argument is real (:issue:`10251`):: sage: bessel_K(5, 1.5) in RR # needs mpmath True @@ -2076,7 +2076,7 @@ def spherical_bessel_f(F, n, z): TESTS: - Check that :trac:`28474` is fixed:: + Check that :issue:`28474` is fixed:: sage: from sage.functions.bessel import spherical_bessel_f sage: spherical_bessel_f('besselj', 3, -4) # needs mpmath diff --git a/src/sage/functions/error.py b/src/sage/functions/error.py index 1e4b74d5afe..76509ce5ef0 100644 --- a/src/sage/functions/error.py +++ b/src/sage/functions/error.py @@ -135,19 +135,19 @@ class Function_erf(BuiltinFunction): sage: (integrate(exp(-x**2), (x,0,3))*2/sqrt(pi)).n() # needs sage.symbolic 0.999977909503001 - :trac:`9044`:: + :issue:`9044`:: sage: N(erf(sqrt(2)),200) # needs sage.symbolic 0.95449973610364158559943472566693312505644755259664313203267 - :trac:`11626`:: + :issue:`11626`:: sage: n(erf(2),100) # needs sage.symbolic 0.99532226501895273416206925637 sage: erf(2).n(100) # needs sage.symbolic 0.99532226501895273416206925637 - Test (indirectly) :trac:`11885`:: + Test (indirectly) :issue:`11885`:: sage: erf(float(0.5)) 0.5204998778130465 @@ -270,14 +270,14 @@ def _evalf_(self, x, parent=None, algorithm=None): 0.84270079294971486934122063508260925929606699796630290845994 Check that for an imaginary input, the output is also imaginary, see - :trac:`13193`:: + :issue:`13193`:: sage: erf(3.0*I) # needs sage.symbolic 1629.99462260157*I sage: erf(33.0*I) # needs sage.symbolic 1.51286977510409e471*I - Check that real ball evaluation is fixed :trac:`28061`:: + Check that real ball evaluation is fixed :issue:`28061`:: sage: RealBallField(128)(erf(5)) # abs tol 1e-38 # needs sage.symbolic [0.99999999999846254020557196514981165651 +/- 7.33e-39] @@ -297,7 +297,7 @@ def _derivative_(self, x, diff_param=None): TESTS: - Check if :trac:`8568` is fixed:: + Check if :issue:`8568` is fixed:: sage: var('c,x') # needs sage.symbolic (c, x) @@ -417,7 +417,7 @@ class Function_erfc(BuiltinFunction): TESTS: - Check that :trac:`25991` is fixed:: + Check that :issue:`25991` is fixed:: sage: erfc(x)._fricas_() # optional - fricas, needs sage.symbolic - erf(x) + 1 @@ -518,7 +518,7 @@ def __init__(self): TESTS: - Check that :trac:`11349` is fixed:: + Check that :issue:`11349` is fixed:: sage: # needs sage.symbolic sage: _ = var('z,t') diff --git a/src/sage/functions/exp_integral.py b/src/sage/functions/exp_integral.py index 5fb024c877c..913cb577bef 100644 --- a/src/sage/functions/exp_integral.py +++ b/src/sage/functions/exp_integral.py @@ -180,7 +180,7 @@ def _eval_(self, n, z): TESTS: - Check that Python ints work (:trac:`14766`):: + Check that Python ints work (:issue:`14766`):: sage: exp_integral_e(int(3), 0) # needs mpmath 1/2 @@ -443,7 +443,7 @@ def __init__(self): TESTS: - Verify that :trac:`28917` is fixed:: + Verify that :issue:`28917` is fixed:: sage: latex(log_integral(x)) # needs sage.symbolic \operatorname{log\_integral}\left(x\right) @@ -639,7 +639,7 @@ def __init__(self): TESTS: - Verify that the problem described in :trac:`28917` no longer appears here:: + Verify that the problem described in :issue:`28917` no longer appears here:: sage: latex(log_integral_offset) \operatorname{log\_integral\_offset} @@ -1375,7 +1375,7 @@ class Function_exp_integral(BuiltinFunction): TESTS: - Show that the evaluation and limit issue in :trac:`13271` is fixed:: + Show that the evaluation and limit issue in :issue:`13271` is fixed:: sage: # needs sage.symbolic sage: var('Z') diff --git a/src/sage/functions/gamma.py b/src/sage/functions/gamma.py index 5462671805b..0af99e5dc20 100644 --- a/src/sage/functions/gamma.py +++ b/src/sage/functions/gamma.py @@ -124,7 +124,7 @@ def __init__(self): sage: latex(gamma1(z)) # needs sage.symbolic \Gamma\left(z\right) - Test that :trac:`5556` is fixed:: + Test that :issue:`5556` is fixed:: sage: gamma1(3/4) # needs sage.symbolic gamma(3/4) @@ -145,7 +145,7 @@ def __init__(self): sage: CDF(-1).gamma() # needs sage.libs.pari sage.rings.complex_double Infinity - Check if :trac:`8297` is fixed:: + Check if :issue:`8297` is fixed:: sage: latex(gamma(1/4)) # needs sage.symbolic \Gamma\left(\frac{1}{4}\right) @@ -204,7 +204,7 @@ def __init__(self): EXAMPLES: Numerical evaluation happens when appropriate, to the - appropriate accuracy (see :trac:`10072`):: + appropriate accuracy (see :issue:`10072`):: sage: # needs sage.symbolic sage: log_gamma(6) @@ -223,7 +223,7 @@ def __init__(self): sage: log_gamma(RealField(100)(6)) # needs sage.rings.real_mpfr 4.7874917427820459942477009345 - Symbolic input works (see :trac:`10075`):: + Symbolic input works (see :issue:`10075`):: sage: log_gamma(3*x) # needs sage.symbolic log_gamma(3*x) @@ -232,7 +232,7 @@ def __init__(self): sage: log_gamma(3 + I + x) # needs sage.symbolic log_gamma(x + I + 3) - Check that :trac:`12521` is fixed:: + Check that :issue:`12521` is fixed:: sage: # needs sage.symbolic sage: log_gamma(-2.1) @@ -345,14 +345,14 @@ def __init__(self): TESTS: - Check that :trac:`21407` is fixed:: + Check that :issue:`21407` is fixed:: sage: gamma(-1, 5)._sympy_() # needs sympy sage.symbolic expint(2, 5)/5 sage: gamma(-3/2, 5)._sympy_() # needs sympy sage.symbolic -6*sqrt(5)*exp(-5)/25 + 4*sqrt(pi)*erfc(sqrt(5))/3 - Check that :trac:`25597` is fixed:: + Check that :issue:`25597` is fixed:: sage: gamma(-1, 5)._fricas_() # optional - fricas, needs sage.symbolic Gamma(- 1,5) @@ -438,7 +438,7 @@ def _evalf_(self, x, y, parent=None, algorithm='pari'): TESTS: - Check that :trac:`7099` is fixed:: + Check that :issue:`7099` is fixed:: sage: R = RealField(1024) # needs sage.rings.real_mpfr sage: gamma(R(9), R(10^-3)) # rel tol 1e-308 # needs sage.rings.real_mpfr @@ -446,7 +446,7 @@ def _evalf_(self, x, y, parent=None, algorithm='pari'): sage: numerical_approx(gamma(9, 10^(-3)) - gamma(9), digits=40) # abs tol 1e-36 # needs sage.symbolic -1.110111598370794007949063502542063148294e-28 - Check that :trac:`17328` is fixed:: + Check that :issue:`17328` is fixed:: sage: gamma_inc(float(-1), float(-1)) # needs sage.rings.real_mpfr (-0.8231640121031085+3.141592653589793j) @@ -455,7 +455,7 @@ def _evalf_(self, x, y, parent=None, algorithm='pari'): sage: gamma_inc(-1, float(-log(3))) - gamma_inc(-1, float(-log(2))) # abs tol 1e-15 # needs sage.symbolic (1.2730972164471142+0j) - Check that :trac:`17130` is fixed:: + Check that :issue:`17130` is fixed:: sage: r = gamma_inc(float(0), float(1)); r # needs sage.rings.real_mpfr 0.21938393439552029 @@ -1059,7 +1059,7 @@ def __init__(self): sage: loads(dumps(beta)) beta - Check that :trac:`15196` is fixed:: + Check that :issue:`15196` is fixed:: sage: beta(-1.3, -0.4) # needs sage.symbolic -4.92909641669610 diff --git a/src/sage/functions/generalized.py b/src/sage/functions/generalized.py index 3d58d4d9d0a..5e66d267828 100644 --- a/src/sage/functions/generalized.py +++ b/src/sage/functions/generalized.py @@ -411,7 +411,7 @@ class FunctionSignum(BuiltinFunction): TESTS: - Check if conversions to sympy and others work (:trac:`11921`):: + Check if conversions to sympy and others work (:issue:`11921`):: sage: sgn(x)._sympy_() # needs sympy sage.symbolic sign(x) @@ -420,7 +420,7 @@ class FunctionSignum(BuiltinFunction): sage: sgn(x)._giac_() # needs sage.libs.giac sage.symbolic sign(sageVARx) - Test for :trac:`31085`:: + Test for :issue:`31085`:: sage: fricas(sign(x)).eval(x=-3) # optional - fricas # needs sage.symbolic - 1 @@ -499,7 +499,7 @@ def _evalf_(self, x, **kwds): """ TESTS: - Check that :trac:`16587` is fixed:: + Check that :issue:`16587` is fixed:: sage: # needs sage.symbolic sage: M = sgn(3/2, hold=True); M diff --git a/src/sage/functions/hyperbolic.py b/src/sage/functions/hyperbolic.py index 6c70caef310..7c94892ba9d 100644 --- a/src/sage/functions/hyperbolic.py +++ b/src/sage/functions/hyperbolic.py @@ -170,7 +170,7 @@ def __init__(self): sage: tanh(x)._sympy_() # needs sympy sage.symbolic tanh(x) - Check that real/imaginary parts are correct (:trac:`20098`):: + Check that real/imaginary parts are correct (:issue:`20098`):: sage: # needs sage.symbolic sage: tanh(1+2*I).n() @@ -617,7 +617,7 @@ def __init__(self): sage: acoth(x)._sympy_() # needs sympy sage.symbolic acoth(x) - Check that :trac:`23636` is fixed:: + Check that :issue:`23636` is fixed:: sage: acoth(float(1.1)) # needs sage.symbolic 1.5222612188617113 @@ -717,7 +717,7 @@ def __init__(self): TESTS: - Check that :trac:`20818` is fixed:: + Check that :issue:`20818` is fixed:: sage: acsch(float(0.1)) # needs sage.symbolic 2.99822295029797 diff --git a/src/sage/functions/hypergeometric.py b/src/sage/functions/hypergeometric.py index 1c2712382f3..6e2b26d284a 100644 --- a/src/sage/functions/hypergeometric.py +++ b/src/sage/functions/hypergeometric.py @@ -12,7 +12,7 @@ EXAMPLES: -Examples from :trac:`9908`:: +Examples from :issue:`9908`:: sage: maxima('integrate(bessel_j(2, x), x)').sage() 1/24*x^3*hypergeometric((3/2,), (5/2, 3), -1/4*x^2) diff --git a/src/sage/functions/log.py b/src/sage/functions/log.py index c7e67fb9acd..37e5f601e59 100644 --- a/src/sage/functions/log.py +++ b/src/sage/functions/log.py @@ -3,9 +3,9 @@ AUTHORS: -- Yoora Yi Tenen (2012-11-16): Add documentation for :meth:`log()` (:trac:`12113`) +- Yoora Yi Tenen (2012-11-16): Add documentation for :meth:`log()` (:issue:`12113`) -- Tomas Kalvoda (2015-04-01): Add :meth:`exp_polar()` (:trac:`18085`) +- Tomas Kalvoda (2015-04-01): Add :meth:`exp_polar()` (:issue:`18085`) """ @@ -132,7 +132,7 @@ class Function_exp(GinacFunction): sage: conjugate(exp(x)) # needs sage.symbolic e^conjugate(x) - Test simplifications when taking powers of exp (:trac:`7264`):: + Test simplifications when taking powers of exp (:issue:`7264`):: sage: # needs sage.symbolic sage: var('a,b,c,II') @@ -154,12 +154,12 @@ class Function_exp(GinacFunction): sage: exp(x)*exp(a)^2 e^(2*a + x) - Another instance of the same problem (:trac:`7394`):: + Another instance of the same problem (:issue:`7394`):: sage: 2*sqrt(e) # needs sage.symbolic 2*e^(1/2) - Check that :trac:`19918` is fixed:: + Check that :issue:`19918` is fixed:: sage: exp(-x^2).subs(x=oo) # needs sage.symbolic 0 @@ -238,7 +238,7 @@ class Function_log1(GinacFunction): sage: log(x).subs(x=float(-1)) # needs sage.symbolic 3.141592653589793j - :trac:`22142`:: + :issue:`22142`:: sage: log(QQbar(sqrt(2))) # needs sage.rings.number_field sage.symbolic log(1.414213562373095?) @@ -361,7 +361,7 @@ def __init__(self): TESTS: - Check if :trac:`8459` is fixed:: + Check if :issue:`8459` is fixed:: sage: t = maxima(polylog(5,x)).sage(); t # needs sage.symbolic polylog(5, x) @@ -370,7 +370,7 @@ def __init__(self): sage: t.subs(x=.5).n() # needs sage.symbolic 0.50840057924226... - Check if :trac:`18386` is fixed:: + Check if :issue:`18386` is fixed:: sage: polylog(2.0, 1) # needs sage.symbolic 1.64493406684823 @@ -396,7 +396,7 @@ def __init__(self): sage: polylog(1, -1) # known bug # needs sage.symbolic -log(2) - Check for :trac:`21907`:: + Check for :issue:`21907`:: sage: bool(x*polylog(x,x)==0) # needs sage.symbolic False @@ -522,7 +522,7 @@ def __init__(self): conjugate(dilog(2)) Check that return type matches argument type where possible - (:trac:`18386`):: + (:issue:`18386`):: sage: dilog(0.5) # needs sage.symbolic 0.582240526465012 @@ -658,7 +658,7 @@ def __init__(self): TESTS: - Check that :trac:`25987` is fixed:: + Check that :issue:`25987` is fixed:: sage: lambert_w(x)._fricas_() # optional - fricas, needs sage.symbolic lambertW(x) @@ -829,7 +829,7 @@ def _derivative_(self, n, z, diff_param=None): TESTS: - Differentiation in the first parameter raises an error :trac:`14788`:: + Differentiation in the first parameter raises an error :issue:`14788`:: sage: n = var('n') # needs sage.symbolic sage: lambert_w(n, x).diff(n) # needs sage.symbolic @@ -949,7 +949,7 @@ def __init__(self): sage: exp_polar(-4*pi*I) # needs sage.symbolic exp_polar(-4*I*pi) - This fixes :trac:`18085`:: + This fixes :issue:`18085`:: sage: integrate(1/sqrt(1+x^3), x, algorithm='sympy') # needs sage.symbolic 1/3*x*gamma(1/3)*hypergeometric((1/3, 1/2), (4/3,), -x^3)/gamma(4/3) @@ -1010,7 +1010,7 @@ def _eval_(self, z): TESTS: - Check that :trac:`24441` is fixed:: + Check that :issue:`24441` is fixed:: sage: exp_polar(arcsec(jacobi_sn(1.1*I*x, x))) # should be fast # needs sage.symbolic exp_polar(arcsec(jacobi_sn(1.10000000000000*I*x, x))) diff --git a/src/sage/functions/orthogonal_polys.py b/src/sage/functions/orthogonal_polys.py index f4e0dc1bdbf..8976001bc62 100644 --- a/src/sage/functions/orthogonal_polys.py +++ b/src/sage/functions/orthogonal_polys.py @@ -1323,13 +1323,13 @@ class Func_legendre_P(GinacFunction): TESTS: - Verify that :trac:`33962` is fixed:: + Verify that :issue:`33962` is fixed:: sage: [legendre_P(n, 0) for n in range(-10, 10)] # needs sage.symbolic [0, 35/128, 0, -5/16, 0, 3/8, 0, -1/2, 0, 1, 1, 0, -1/2, 0, 3/8, 0, -5/16, 0, 35/128, 0] - Verify that :trac:`33963` is fixed:: + Verify that :issue:`33963` is fixed:: sage: # needs sage.symbolic sage: n = var("n") @@ -2076,7 +2076,7 @@ class Func_hermite(GinacFunction): sage: hermite(5, RealField(100)(pi)) 5208.6167627118104649470287166 - Check that :trac:`17192` is fixed:: + Check that :issue:`17192` is fixed:: sage: # needs sage.symbolic sage: x = PolynomialRing(QQ, 'x').gen() @@ -2202,7 +2202,7 @@ def _eval_(self, n, a, b, x): TESTS: - Check that :trac:`17192` is fixed:: + Check that :issue:`17192` is fixed:: sage: x = PolynomialRing(QQ, 'x').gen() sage: jacobi_P(0,0,0,x) @@ -2353,7 +2353,7 @@ class Func_ultraspherical(GinacFunction): TESTS: - Check that :trac:`17192` is fixed:: + Check that :issue:`17192` is fixed:: sage: x = PolynomialRing(QQ, 'x').gen() sage: ultraspherical(0, 1, x) # needs sage.symbolic diff --git a/src/sage/functions/other.py b/src/sage/functions/other.py index eed84964be3..3da7beec8ce 100644 --- a/src/sage/functions/other.py +++ b/src/sage/functions/other.py @@ -3,7 +3,7 @@ TESTS: -Check that gamma function imports are deprecated (:trac:`24411`):: +Check that gamma function imports are deprecated (:issue:`24411`):: sage: from sage.functions.other import beta sage: beta(x, x) # needs sage.symbolic @@ -78,7 +78,7 @@ def __init__(self): TESTS: - Check that :trac:`12588` is fixed:: + Check that :issue:`12588` is fixed:: sage: # needs sage.symbolic sage: abs(pi*I) @@ -158,7 +158,7 @@ def _eval_floor_ceil(self, x, method, bits=0, **kwds): ....: else: ....: assert f + 1 == c - A test from :trac:`12121`:: + A test from :issue:`12121`:: sage: # needs sage.symbolic sage: e1 = pi - continued_fraction(pi).convergent(2785) @@ -183,7 +183,7 @@ def _eval_floor_ceil(self, x, method, bits=0, **kwds): ValueError: Calling ceil() on infinity or NaN Test that elements of symbolic subrings work in the same way as - elements of ``SR``, :trac:`32724`:: + elements of ``SR``, :issue:`32724`:: sage: SCR = SR.subring(no_variables=True) # needs sage.symbolic sage: floor(log(2^(3/2)) / log(2) + 1/2) # needs sage.symbolic @@ -663,7 +663,7 @@ def __init__(self): TESTS: - Check that :trac:`19425` is resolved:: + Check that :issue:`19425` is resolved:: sage: x.Order().operator() # needs sage.symbolic Order @@ -1091,7 +1091,7 @@ def _evalf_(self, x, parent=None, algorithm=None): TESTS: Make sure that the ``_evalf_`` method works when it receives a - keyword argument ``parent`` :trac:`12289`:: + keyword argument ``parent`` :issue:`12289`:: sage: arg(5+I, hold=True).n() # needs sage.symbolic 0.197395559849881 @@ -1179,7 +1179,7 @@ def __init__(self): sage: real_part(x)._sympy_() # needs sympy sage.symbolic re(x) - Check if :trac:`6401` is fixed:: + Check if :issue:`6401` is fixed:: sage: latex(x.real()) # needs sage.symbolic \Re \left( x \right) @@ -1189,7 +1189,7 @@ def __init__(self): \Re \left( f\left(x\right) \right) Check that some real part expansions evaluate correctly - (:trac:`21614`):: + (:issue:`21614`):: sage: real(sqrt(sin(x))).subs(x==0) # needs sage.symbolic 0 @@ -1248,7 +1248,7 @@ def __init__(self): sage: imag_part(x)._sympy_() # needs sympy sage.symbolic im(x) - Check if :trac:`6401` is fixed:: + Check if :issue:`6401` is fixed:: sage: latex(x.imag()) # needs sage.symbolic \Im \left( x \right) @@ -1324,7 +1324,7 @@ def __init__(self): sage: x.conjugate().operator() == conjugate True - Check if :trac:`8755` is fixed:: + Check if :issue:`8755` is fixed:: sage: # needs sage.symbolic sage: conjugate(sqrt(-3)) @@ -1340,7 +1340,7 @@ def __init__(self): sage: conjugate(sqrt(y)) sqrt(y) - Check if :trac:`10964` is fixed:: + Check if :issue:`10964` is fixed:: sage: # needs sage.symbolic sage: z = I*sqrt(-3); z @@ -1483,7 +1483,7 @@ def __init__(self): sage: latex(factorial) {\rm factorial} - Check that :trac:`11539` is fixed:: + Check that :issue:`11539` is fixed:: sage: # needs sage.symbolic sage: (factorial(x) == 0).simplify() @@ -1494,7 +1494,7 @@ def __init__(self): sage: (factorial(x) == y).solve(x) [factorial(x) == y] - Check that :trac:`16166` is fixed:: + Check that :issue:`16166` is fixed:: sage: RBF = RealBallField(53) # needs sage.libs.flint sage: factorial(RBF(4.2)) # abs tol 1e-13 # needs sage.libs.flint @@ -1539,12 +1539,12 @@ def _eval_(self, x): TESTS: - Check that :trac:`25421` is fixed:: + Check that :issue:`25421` is fixed:: sage: factorial(RBF(2)**64) # needs sage.libs.flint [+/- 2.30e+347382171326740403407] - Check that :trac:`26749` is fixed:: + Check that :issue:`26749` is fixed:: sage: factorial(float(3.2)) # abs tol 1e-14 # needs sage.symbolic 7.7566895357931776 @@ -1660,7 +1660,7 @@ def __init__(self): sage: binomial(y, 2).parent() # needs sage.symbolic Univariate Polynomial Ring in y over Rational Field - :trac:`16726`:: + :issue:`16726`:: sage: binomial(CIF(1), 2) # needs sage.symbolic 0 @@ -1985,7 +1985,7 @@ def _print_latex_(self, ex, var, to, direction=''): sage: latex(limit(f(x),x=a,dir='left')) \lim_{x \to a^-}\, f\left(x\right) - Check if :trac:`13181` is fixed:: + Check if :issue:`13181` is fixed:: sage: # needs sage.symbolic sage: t = var('t') @@ -2089,7 +2089,7 @@ def _print_latex_(self, l, **kwargs): TESTS: - Verify that :trac:`25624` is fixed:: + Verify that :issue:`25624` is fixed:: sage: L = latex(cases([(x == 0, 0), (1, 1)])); L # needs sage.symbolic \begin{cases}{0} & {x = 0}\\{1} & {1}\end{cases} @@ -2202,7 +2202,7 @@ def _evalf_(self, poly, index, parent=None, algorithm=None): TESTS: - Check that low precision is handled (:trac:`24378`):: + Check that low precision is handled (:issue:`24378`):: sage: complex_root_of(x^8 - 1, 7).n(2) # needs sage.symbolic 0.75 + 0.75*I diff --git a/src/sage/functions/piecewise.py b/src/sage/functions/piecewise.py index 1638637287f..f621c324cc4 100644 --- a/src/sage/functions/piecewise.py +++ b/src/sage/functions/piecewise.py @@ -820,7 +820,7 @@ def integral(self, parameters, variable, x=None, a=None, b=None, definite=False, TESTS: - Verify that piecewise integrals of zero work (:trac:`10841`):: + Verify that piecewise integrals of zero work (:issue:`10841`):: sage: f0(x) = 0 sage: f = piecewise([[[0,1],f0]]) @@ -908,7 +908,7 @@ def critical_points(self, parameters, variable): TESTS: - Use variables other than x (:trac:`13836`):: + Use variables other than x (:issue:`13836`):: sage: R. = QQ[] sage: f1 = y^0 @@ -972,7 +972,7 @@ def convolution(self, parameters, variable, other): x|-->-x + 6 on (3, 4], x|-->-2*x + 10 on (4, 5]; x) - Check that the bugs raised in :trac:`12123` are fixed:: + Check that the bugs raised in :issue:`12123` are fixed:: sage: f = piecewise([[(-2, 2), 2]]) sage: g = piecewise([[(0, 2), 3/4]]) @@ -1052,7 +1052,7 @@ def trapezoid(self, parameters, variable, N): TESTS: - Use variables or rings other than x (:trac:`13836`):: + Use variables or rings other than x (:issue:`13836`):: sage: R. = QQ[] sage: f1 = y^2 diff --git a/src/sage/functions/prime_pi.pyx b/src/sage/functions/prime_pi.pyx index 2f64469c731..50be4d24a74 100644 --- a/src/sage/functions/prime_pi.pyx +++ b/src/sage/functions/prime_pi.pyx @@ -75,7 +75,7 @@ cdef class PrimePi(BuiltinFunction): sage: prime_pi(500509) 41581 - The following test is to verify that :trac:`4670` has been essentially + The following test is to verify that :issue:`4670` has been essentially resolved:: sage: prime_pi(10^10) # needs sage.symbolic @@ -157,7 +157,7 @@ cdef class PrimePi(BuiltinFunction): TESTS: - Check that :trac:`24960` is fixed:: + Check that :issue:`24960` is fixed:: sage: prime_pi(642763101936913) 19439675999019 diff --git a/src/sage/functions/special.py b/src/sage/functions/special.py index 9348b921685..e100ba3ee23 100644 --- a/src/sage/functions/special.py +++ b/src/sage/functions/special.py @@ -269,7 +269,7 @@ def _eval_(self, n, m, theta, phi, **kwargs): sage: spherical_harmonic(3 + I, 2., 1, 2) -0.351154337307488 - 0.415562233975369*I - Check that :trac:`20939` is fixed:: + Check that :issue:`20939` is fixed:: sage: ex = spherical_harmonic(3, 2, 1, 2*pi/3) # needs sage.symbolic sage: QQbar(ex * sqrt(pi)/cos(1)/sin(1)^2).minpoly() # needs sage.rings.number_field sage.symbolic @@ -277,7 +277,7 @@ def _eval_(self, n, m, theta, phi, **kwargs): Check whether Sage yields correct results compared to Maxima, up to the Condon-Shortley phase factor `(-1)^m` - (see :trac:`25034` and :trac:`33117`):: + (see :issue:`25034` and :issue:`33117`):: sage: # needs sage.symbolic sage: spherical_harmonic(1, 1, pi/3, pi/6).n() # abs tol 1e-14 @@ -289,7 +289,7 @@ def _eval_(self, n, m, theta, phi, **kwargs): sage: maxima.spherical_harmonic(1, -1, pi/3, pi/6).n() # abs tol 1e-14 -0.259120612103502 + 0.149603355150537*I - Check that :trac:`33501` is fixed:: + Check that :issue:`33501` is fixed:: sage: spherical_harmonic(2, 1, x, y) # needs sage.symbolic -1/4*sqrt(6)*sqrt(5)*cos(x)*e^(I*y)*sin(x)/sqrt(pi) @@ -344,7 +344,7 @@ def _derivative_(self, n, m, theta, phi, diff_param): sage: Ynm.diff(phi) I*m*spherical_harmonic(n, m, theta, phi) - Check that :trac:`33117` is fixed:: + Check that :issue:`33117` is fixed:: sage: # needs sage.symbolic sage: DY_theta.subs({n: 1, m: 0}) @@ -436,7 +436,7 @@ def elliptic_j(z, prec=53): 640320 This example shows the need for higher precision than the default one of - the `ComplexField`, see :trac:`28355`:: + the `ComplexField`, see :issue:`28355`:: sage: # needs sage.symbolic sage: -elliptic_j(tau) # rel tol 1e-2 @@ -508,7 +508,7 @@ def __init__(self): sage: elliptic_e(x, x)._sympy_() # needs sympy sage.symbolic elliptic_e(x, x) - Check that :trac:`34085` is fixed:: + Check that :issue:`34085` is fixed:: sage: _ = var("x y") # needs sage.symbolic sage: fricas(elliptic_e(x, y)) # optional - fricas, needs sage.symbolic @@ -585,7 +585,7 @@ def _evalf_(self, z, m, parent=None, algorithm=None): TESTS: - This gave an error in Maxima (:trac:`15046`):: + This gave an error in Maxima (:issue:`15046`):: sage: elliptic_e(2.5, 2.5) # needs mpmath 0.535647771608740 + 1.63996015168665*I @@ -874,7 +874,7 @@ def __init__(self): sage: elliptic_f(x, 2)._sympy_() # needs sympy sage.symbolic elliptic_f(x, 2) - Check that :trac:`34186` is fixed:: + Check that :issue:`34186` is fixed:: sage: _ = var("x y") # needs sage.symbolic sage: fricas(elliptic_f(x, y)) # optional - fricas, needs sage.symbolic @@ -1040,7 +1040,7 @@ def _eval_(self, z): TESTS: Check if complex numbers in the arguments are converted to maxima - correctly (see :trac:`7557`):: + correctly (see :issue:`7557`):: sage: t = jacobi_sn(1.2 + 2*I*elliptic_kc(1 - .5), .5) # needs sage.symbolic sage: maxima(t) # abs tol 1e-13 # needs sage.symbolic diff --git a/src/sage/functions/transcendental.py b/src/sage/functions/transcendental.py index d0a30362fdf..c0debecdc0d 100644 --- a/src/sage/functions/transcendental.py +++ b/src/sage/functions/transcendental.py @@ -115,21 +115,21 @@ def __init__(self): sage: zeta(x).subs(x=1) # needs sage.symbolic Infinity - Check that :trac:`19799` is resolved:: + Check that :issue:`19799` is resolved:: sage: zeta(pi) # needs sage.symbolic zeta(pi) sage: zeta(pi).n() # rel tol 1e-10 # needs sage.symbolic 1.17624173838258 - Check that :trac:`20082` is fixed:: + Check that :issue:`20082` is fixed:: sage: zeta(x).series(x==pi, 2) # needs sage.symbolic (zeta(pi)) + (zetaderiv(1, pi))*(-pi + x) + Order((pi - x)^2) sage: (zeta(x) * 1/(1 - exp(-x))).residue(x==2*pi*I) # needs sage.symbolic zeta(2*I*pi) - Check that :trac:`20102` is fixed:: + Check that :issue:`20102` is fixed:: sage: (zeta(x)^2).series(x==1, 1) # needs sage.symbolic 1*(x - 1)^(-2) + (2*euler_gamma)*(x - 1)^(-1) @@ -138,7 +138,7 @@ def __init__(self): 4/3*euler_gamma*(3*euler_gamma^2 - 2*stieltjes(1)) - 28/3*euler_gamma*stieltjes(1) + 2*stieltjes(2) - Check that the right infinities are returned (:trac:`19439`):: + Check that the right infinities are returned (:issue:`19439`):: sage: zeta(1.0) # needs sage.symbolic +infinity diff --git a/src/sage/functions/trig.py b/src/sage/functions/trig.py index 62e5bd35b2e..d4e723ec6e2 100644 --- a/src/sage/functions/trig.py +++ b/src/sage/functions/trig.py @@ -111,14 +111,14 @@ def __init__(self): ....: 1/8, 3/8, 1/16, 3/16, 5/16, 7/16, 1/24, 5/24, 7/24, 11/24]) True - Check that :trac:`20456` is fixed:: + Check that :issue:`20456` is fixed:: sage: assume(x > 0) # needs sage.symbolic sage: sin(pi*x) # needs sage.symbolic sin(pi*x) sage: forget() # needs sage.symbolic - Check that :trac:`20752` is fixed:: + Check that :issue:`20752` is fixed:: sage: sin(3*pi + 41/42*pi) # needs sage.symbolic -sin(1/42*pi) @@ -186,7 +186,7 @@ def __init__(self): sage: cos(complex(1,1)) # rel tol 1e-15 (0.8337300251311491-0.9888977057628651j) - Check that :trac:`20752` is fixed:: + Check that :issue:`20752` is fixed:: sage: cos(3*pi + 41/42*pi) # needs sage.symbolic cos(1/42*pi) @@ -255,7 +255,7 @@ def __init__(self): sage: tan(complex(1,1)) # rel tol 1e-15 (0.2717525853195118+1.0839233273386946j) - Check that :trac:`19791` is fixed:: + Check that :issue:`19791` is fixed:: sage: tan(2+I).imag().n() # needs sage.symbolic 1.16673625724092 @@ -701,7 +701,7 @@ def __init__(self): sage: atan(complex(1,1)) # needs sage.rings.complex_double (1.0172219678978514+0.4023594781085251j) - Check that :trac:`19918` is fixed:: + Check that :issue:`19918` is fixed:: sage: arctan(-x).subs(x=oo) # needs sage.symbolic -1/2*pi @@ -991,22 +991,22 @@ def __init__(self): sage: arctan2(y, x).operator() # needs sage.symbolic arctan2 - Check if :trac:`8565` is fixed:: + Check if :issue:`8565` is fixed:: sage: atan2(-pi, 0) # needs sage.symbolic -1/2*pi - Check if :trac:`8564` is fixed:: + Check if :issue:`8564` is fixed:: sage: arctan2(x,x)._sympy_() # needs sympy sage.symbolic atan2(x, x) - Check if numerical evaluation works :trac:`9913`:: + Check if numerical evaluation works :issue:`9913`:: sage: arctan2(0, -log(2)).n() # needs sage.symbolic 3.14159265358979 - Check that atan2(0,0) returns NaN :trac:`21614`:: + Check that atan2(0,0) returns NaN :issue:`21614`:: sage: # needs sage.symbolic sage: atan2(0, 0) @@ -1020,7 +1020,7 @@ def __init__(self): ... RuntimeError: atan2(): division by zero - Check if :trac:`10062` is fixed, this was caused by + Check if :issue:`10062` is fixed, this was caused by ``(I*I).is_positive()`` returning ``True``:: sage: arctan2(0, I*I) # needs sage.symbolic diff --git a/src/sage/functions/wigner.py b/src/sage/functions/wigner.py index af987c20084..0bafe13a246 100644 --- a/src/sage/functions/wigner.py +++ b/src/sage/functions/wigner.py @@ -607,7 +607,7 @@ def gaunt(l_1, l_2, l_3, m_1, m_2, m_3, prec=None): 0.00689500421922113448 If the sum of the `l_i` is odd, the answer is zero, even for Python - ints (see :trac:`14766`):: + ints (see :issue:`14766`):: sage: gaunt(1,2,2,1,0,-1) 0 @@ -627,7 +627,7 @@ def gaunt(l_1, l_2, l_3, m_1, m_2, m_3, prec=None): TESTS: - Check for :trac:`14735`:: + Check for :issue:`14735`:: sage: gaunt(int(1),int(1),int(1),int(0),int(1),int(-1)) 0 diff --git a/src/sage/game_theory/normal_form_game.py b/src/sage/game_theory/normal_form_game.py index 275907d7276..b053f3160b8 100644 --- a/src/sage/game_theory/normal_form_game.py +++ b/src/sage/game_theory/normal_form_game.py @@ -2413,7 +2413,7 @@ def is_degenerate(self, certificate=False): search over supports which is a discrete search. A full explanation of this is given in [CK2015]_. This problem is known to be NP-Hard [Du2009]_. Another possible implementation is via best response - polytopes, see :trac:`18958`. + polytopes, see :issue:`18958`. The game Rock-Paper-Scissors is an example of a non-degenerate game,:: diff --git a/src/sage/geometry/cone.py b/src/sage/geometry/cone.py index 3a35e078173..fc0b3731945 100644 --- a/src/sage/geometry/cone.py +++ b/src/sage/geometry/cone.py @@ -2547,7 +2547,7 @@ def face_lattice(self): C1 and C2 are equal, but not identical. We currently want them to have non identical face lattices, even if the faces - themselves are equal (see :trac:`10998`):: + themselves are equal (see :issue:`10998`):: sage: C1.face_lattice() is C2.face_lattice() # needs sage.combinat sage.graphs False @@ -2737,7 +2737,7 @@ def faces(self, dim=None, codim=None): TESTS: Now we check that "general" cones whose dimension is smaller than the - dimension of the ambient space work as expected (see :trac:`9188`):: + dimension of the ambient space work as expected (see :issue:`9188`):: sage: c = Cone([(1,1,1,3),(1,-1,1,3),(-1,-1,1,3)]) sage: c.faces() # needs sage.graphs @@ -2751,7 +2751,7 @@ def faces(self, dim=None, codim=None): (3-d cone in 4-d lattice N,)) We also ensure that a call to this function does not break - :meth:`facets` method (see :trac:`9780`):: + :meth:`facets` method (see :issue:`9780`):: sage: # needs palp sage.graphs sage: cone = toric_varieties.dP8().fan().generating_cone(0); cone @@ -2987,7 +2987,7 @@ def incidence_matrix(self): sage: halfspace.incidence_matrix().is_immutable() True - Check that the base ring is ``ZZ``, see :trac:`29840`:: + Check that the base ring is ``ZZ``, see :issue:`29840`:: sage: halfspace.incidence_matrix().base_ring() Integer Ring @@ -3264,7 +3264,7 @@ def is_isomorphic(self, other): sage: classify_cone_2d(*cone2.rays()) (3, 2) - We check that :trac:`18613` is fixed:: + We check that :issue:`18613` is fixed:: sage: K = cones.trivial(0) sage: K.is_isomorphic(K) # needs sage.graphs @@ -3547,7 +3547,7 @@ def polyhedron(self, **kwds): A 1-dimensional polyhedron in ZZ^2 defined as the convex hull of 1 vertex and 1 line - Here is an example of a trivial cone (see :trac:`10237`):: + Here is an example of a trivial cone (see :issue:`10237`):: sage: origin = Cone([], lattice=ZZ^2) sage: origin.polyhedron() @@ -4046,7 +4046,7 @@ def orthogonal_sublattice(self, *args, **kwds): TESTS: - We check that :trac:`24541` is fixed:: + We check that :issue:`24541` is fixed:: sage: c = Cone([(1,0)], lattice=ZZ^2) sage: c.orthogonal_sublattice() @@ -4323,7 +4323,7 @@ def semigroup_generators(self): sage: sorted(wedge.semigroup_generators()) [N(0, 0, -1), N(0, 0, 1), N(1, 0, 0), N(1, 1, 0), N(1, 2, 0)] - Nor does it have to be full-dimensional (see :trac:`11312`):: + Nor does it have to be full-dimensional (see :issue:`11312`):: sage: Cone([(1,1,0), (-1,1,0)]).semigroup_generators() N( 0, 1, 0), @@ -4499,7 +4499,7 @@ def Hilbert_basis(self): N(1, 1, 0) in 3-d lattice N - Not full-dimensional cones are ok, too (see :trac:`11312`):: + Not full-dimensional cones are ok, too (see :issue:`11312`):: sage: Cone([(1,1,0), (-1,1,0)]).Hilbert_basis() N( 1, 1, 0), diff --git a/src/sage/geometry/fan.py b/src/sage/geometry/fan.py index 901b8114b39..832a76bb65d 100644 --- a/src/sage/geometry/fan.py +++ b/src/sage/geometry/fan.py @@ -474,7 +474,7 @@ def Fan(cones, rays=None, lattice=None, check=True, normalize=True, 0 In the following examples, we test the ``allow_arrangement=True`` option. - See :trac:`25122`. + See :issue:`25122`. The intersection of the two cones is not a face of each. Therefore, they do not belong to the same rational polyhedral fan:: @@ -1097,7 +1097,7 @@ def star_generator_indices(self): TESTS: A mistake in this function used to cause the problem reported in - :trac:`9782`. We check that now everything is working smoothly:: + :issue:`9782`. We check that now everything is working smoothly:: sage: f = Fan([(0, 2, 4), ....: (0, 4, 5), @@ -1413,7 +1413,7 @@ def _compute_cone_lattice(self): These 5 elements are: 1 origin, 2 rays, 1 generating cone, 1 fan. A subcase of this common case is treatment of fans consisting of the - origin only, which used to be handled incorrectly :trac:`18613`:: + origin only, which used to be handled incorrectly :issue:`18613`:: sage: fan = Fan([Cone([], ToricLattice(0))]) sage: list(fan.cone_lattice()) @@ -1902,7 +1902,7 @@ def _subdivide_stellar(self, new_rays, verbose): (1, 2) We make sure that this function constructs cones with ordered ambient - ray indices (see :trac:`9812`):: + ray indices (see :issue:`9812`):: sage: C = Cone([(1,0,0), (0,1,0), (1,0,1), (0,1,1)]) sage: F = Fan([C]).make_simplicial() @@ -3044,7 +3044,7 @@ def subdivide(self, new_rays=None, make_simplicial=False, TESTS: - We check that :trac:`11902` is fixed:: + We check that :issue:`11902` is fixed:: sage: fan = toric_varieties.P2().fan() # needs palp sage: fan.subdivide(new_rays=[(0,0)]) # needs palp @@ -3129,7 +3129,7 @@ def virtual_rays(self, *args): N(1, 0, 0, 0) in 4-d lattice N - Make sure that :trac:`16344` is fixed and one can compute + Make sure that :issue:`16344` is fixed and one can compute the virtual rays of fans in non-saturated lattices:: sage: N = ToricLattice(1) diff --git a/src/sage/geometry/fan_isomorphism.py b/src/sage/geometry/fan_isomorphism.py index 2c69f06a71f..2cf79c13442 100644 --- a/src/sage/geometry/fan_isomorphism.py +++ b/src/sage/geometry/fan_isomorphism.py @@ -346,7 +346,7 @@ def fan_2d_echelon_forms(fan): ....: fan2 = Fan(perm_cones, rays=[m*vector(r) for r in perm_rays]) ....: assert fan_2d_echelon_form(fan2) in echelon_forms - The trivial case was fixed in :trac:`18613`:: + The trivial case was fixed in :issue:`18613`:: sage: fan = Fan([], lattice=ToricLattice(2)) sage: fan_2d_echelon_forms(fan) diff --git a/src/sage/geometry/fan_morphism.py b/src/sage/geometry/fan_morphism.py index d00e87083f7..6f4fa78c5a3 100644 --- a/src/sage/geometry/fan_morphism.py +++ b/src/sage/geometry/fan_morphism.py @@ -650,7 +650,7 @@ def _subdivide_domain_fan(self, check, verbose): into the support of Rational polyhedral fan in 2-d lattice N! - We check that :trac:`10943` is fixed:: + We check that :issue:`10943` is fixed:: sage: Sigma = Fan(rays=[(1,1,0), (1,-1,0)], cones=[(0,1)]) sage: Sigma_prime = FaceFan(lattice_polytope.cross_polytope(3)) @@ -1304,7 +1304,7 @@ def is_fibration(self): TESTS: - We check that reviewer's example on :trac:`11200` works as expected:: + We check that reviewer's example on :issue:`11200` works as expected:: sage: P1 = toric_varieties.P1() sage: A1 = toric_varieties.A1() @@ -1452,7 +1452,7 @@ def is_surjective(self): TESTS: - We check that reviewer's example on :trac:`11200` works as expected:: + We check that reviewer's example on :issue:`11200` works as expected:: sage: P1 = toric_varieties.P1() sage: A1 = toric_varieties.A1() @@ -1568,7 +1568,7 @@ def preimage_cones(self, cone): TESTS: - We check that reviewer's example from :trac:`9972` is handled correctly:: + We check that reviewer's example from :issue:`9972` is handled correctly:: sage: # needs palp sage: N1 = ToricLattice(1) diff --git a/src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py b/src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py index 00c79650d3f..802de09a9f0 100644 --- a/src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py +++ b/src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py @@ -1592,7 +1592,7 @@ def perpendicular_bisector(self): # UHP TESTS: - Check the result is independent of the order (:trac:`29936`):: + Check the result is independent of the order (:issue:`29936`):: sage: def bisector_gets_midpoint(a, b): ....: UHP = HyperbolicPlane().UHP() @@ -1653,7 +1653,7 @@ def midpoint(self): # UHP TESTS: - This checks :trac:`20330` so that geodesics defined by symbolic + This checks :issue:`20330` so that geodesics defined by symbolic expressions do not generate runtime errors. :: sage: g=HyperbolicPlane().UHP().get_geodesic(-1+I,1+I) @@ -1672,7 +1672,7 @@ def midpoint(self): # UHP sage: parent(g.midpoint().coordinates()) Complex Field with 53 bits of precision - Check that the midpoint is independent of the order (:trac:`29936`):: + Check that the midpoint is independent of the order (:issue:`29936`):: sage: g = UHP.get_geodesic(1+I, 2+0.5*I) sage: h = UHP.get_geodesic(2+0.5*I, 1+I) diff --git a/src/sage/geometry/hyperplane_arrangement/arrangement.py b/src/sage/geometry/hyperplane_arrangement/arrangement.py index 48b77950153..bb1e04efabe 100644 --- a/src/sage/geometry/hyperplane_arrangement/arrangement.py +++ b/src/sage/geometry/hyperplane_arrangement/arrangement.py @@ -1354,7 +1354,7 @@ def n_regions(self): ... TypeError: base field must have characteristic zero - Check that :trac:`30749` is fixed:: + Check that :issue:`30749` is fixed:: sage: # needs sage.rings.number_field sage: R. = QQ[] @@ -3303,7 +3303,7 @@ def minimal_generated_number(self): TESTS: - Check that :trac:`26705` is fixed:: + Check that :issue:`26705` is fixed:: sage: # needs sage.combinat sage.groups sage: w = WeylGroup(['A', 4]).from_reduced_word([3, 4, 2, 1]) diff --git a/src/sage/geometry/hyperplane_arrangement/hyperplane.py b/src/sage/geometry/hyperplane_arrangement/hyperplane.py index 18e39e286a0..9ca1a7c42ac 100644 --- a/src/sage/geometry/hyperplane_arrangement/hyperplane.py +++ b/src/sage/geometry/hyperplane_arrangement/hyperplane.py @@ -551,7 +551,7 @@ def primitive(self, signed=True): TESTS: - Check that :trac:`30078` is fixed:: + Check that :issue:`30078` is fixed:: sage: # needs sage.rings.number_field sage: R. = QuadraticField(2) @@ -560,7 +560,7 @@ def primitive(self, signed=True): sage: B Arrangement - Check that :trac:`30749` is fixed:: + Check that :issue:`30749` is fixed:: sage: # needs sage.rings.number_field sage: tau = (1+AA(5).sqrt()) / 2 diff --git a/src/sage/geometry/integral_points.pxi b/src/sage/geometry/integral_points.pxi index 8d45f44714c..5a10ebfe548 100644 --- a/src/sage/geometry/integral_points.pxi +++ b/src/sage/geometry/integral_points.pxi @@ -522,7 +522,7 @@ cpdef rectangular_box_points(list box_min, list box_max, TESTS: - Check that this can be interrupted, see :trac:`20781`:: + Check that this can be interrupted, see :issue:`20781`:: sage: ieqs = [(-1, -1, -1, -1, -1, -1, -1, -1, -1), ....: (0, -1, 0, 0, 0, 0, 0, 0, 0), @@ -885,7 +885,7 @@ cdef class Inequality_int: TESTS: - Check that :trac:`21993` is fixed:: + Check that :issue:`21993` is fixed:: sage: Inequality_int([18560500, -89466500], 108027, [178933, 37121]) Traceback (most recent call last): @@ -1190,7 +1190,7 @@ cdef class InequalityCollection: TESTS: - Check that :trac:`21037` is fixed:: + Check that :issue:`21037` is fixed:: sage: P = Polyhedron(vertices=((0, 0), (17,3))) sage: P += 1/1000*polytopes.regular_polygon(5) # needs sage.rings.number_field diff --git a/src/sage/geometry/lattice_polytope.py b/src/sage/geometry/lattice_polytope.py index db25b345f4a..b652e68c946 100644 --- a/src/sage/geometry/lattice_polytope.py +++ b/src/sage/geometry/lattice_polytope.py @@ -781,7 +781,7 @@ def _compute_facets(self): N(-1, 1, 0) in 3-d lattice N - Check that :trac:`28741` is fixed:: + Check that :issue:`28741` is fixed:: sage: # needs sage.graphs sage: p = LatticePolytope([], lattice=ToricLattice(3).dual()); p @@ -2465,7 +2465,7 @@ def incidence_matrix(self): sage: o.incidence_matrix().is_immutable() True - Check that the base ring is ``ZZ``, see :trac:`29840`:: + Check that the base ring is ``ZZ``, see :issue:`29840`:: sage: o.incidence_matrix().base_ring() Integer Ring @@ -3453,7 +3453,7 @@ def origin(self): None Now we make sure that the origin of non-full-dimensional polytopes can - be identified correctly (:trac:`10661`):: + be identified correctly (:issue:`10661`):: sage: LatticePolytope([(1,0,0), (-1,0,0)]).origin() 2 diff --git a/src/sage/geometry/polyhedron/backend_cdd.py b/src/sage/geometry/polyhedron/backend_cdd.py index e35ea92fe67..e59f05d09a3 100644 --- a/src/sage/geometry/polyhedron/backend_cdd.py +++ b/src/sage/geometry/polyhedron/backend_cdd.py @@ -113,7 +113,7 @@ def _init_from_Hrepresentation(self, ieqs, eqns, verbose=False): TESTS: The polyhedron with zero inequalities can be initialized from Hrepresentation; - see :trac:`29899`:: + see :issue:`29899`:: sage: Polyhedron(ieqs=[], ambient_dim=5, backend='cdd') A 5-dimensional polyhedron in QQ^5 defined as the convex hull of 1 vertex and 5 lines @@ -220,7 +220,7 @@ def _init_from_cdd_output(self, cddout): sage: p.vertices() (A vertex at (0, 0), A vertex at (1, 0), A vertex at (0, 1), A vertex at (1, 1)) - Check that :trac:`29176` is fixed:: + Check that :issue:`29176` is fixed:: sage: e = [[11582947.657000002, 5374.38, 4177.06, 1.0], [11562795.9322, 5373.62, 4168.38, 1.0]] sage: p = Polyhedron(ieqs=e); p @@ -241,7 +241,7 @@ def _init_from_cdd_output(self, cddout): (P(-2686.81000000000, -2084.19000000000), A 2-dimensional polyhedron in RDF^2 defined as the convex hull of 1 vertex, 1 ray, 1 line) - Check that :trac:`31253` is fixed:: + Check that :issue:`31253` is fixed:: sage: P = polytopes.permutahedron(2, backend='cdd') sage: P.Hrepresentation() @@ -431,7 +431,7 @@ class Polyhedron_QQ_cdd(Polyhedron_cdd, Polyhedron_QQ): TESTS: - Check that :trac:`19803` is fixed:: + Check that :issue:`19803` is fixed:: sage: from sage.geometry.polyhedron.parent import Polyhedra sage: P_cdd = Polyhedra(QQ, 3, 'cdd') diff --git a/src/sage/geometry/polyhedron/backend_cdd_rdf.py b/src/sage/geometry/polyhedron/backend_cdd_rdf.py index a39ad446a80..756e8df7b4a 100644 --- a/src/sage/geometry/polyhedron/backend_cdd_rdf.py +++ b/src/sage/geometry/polyhedron/backend_cdd_rdf.py @@ -42,7 +42,7 @@ class Polyhedron_RDF_cdd(Polyhedron_cdd, Polyhedron_RDF): TESTS: - Checks that :trac:`24877` is fixed:: + Checks that :issue:`24877` is fixed:: sage: n1 = 1045602428815736513789288687833080060779 sage: n2 = 76591188009721216624438400001815308369088648782156930777145 @@ -70,7 +70,7 @@ class Polyhedron_RDF_cdd(Polyhedron_cdd, Polyhedron_RDF): sage: P.n_facets() 10 - Check that :trac:`19803` is fixed:: + Check that :issue:`19803` is fixed:: sage: from sage.geometry.polyhedron.parent import Polyhedra sage: P_cdd = Polyhedra(RDF, 3, 'cdd') @@ -132,7 +132,7 @@ def _init_from_Vrepresentation_and_Hrepresentation(self, Vrep, Hrep, verbose=Fal TESTS: - Test that :trac:`29568` is fixed:: + Test that :issue:`29568` is fixed:: sage: # needs sage.groups sage: P = polytopes.buckyball(exact=False) @@ -143,7 +143,7 @@ def _init_from_Vrepresentation_and_Hrepresentation(self, Vrep, Hrep, verbose=Fal sage: P.is_combinatorially_isomorphic(R) True - The polyhedron with zero inequalities works correctly; see :trac:`29899`:: + The polyhedron with zero inequalities works correctly; see :issue:`29899`:: sage: Vrep = [[], [], [[1.0]]] sage: Hrep = [[], []] @@ -152,7 +152,7 @@ def _init_from_Vrepresentation_and_Hrepresentation(self, Vrep, Hrep, verbose=Fal sage: p A 1-dimensional polyhedron in RDF^1 defined as the convex hull of 1 vertex and 1 line - Test that :trac:`30330` is fixed:: + Test that :issue:`30330` is fixed:: sage: P1 = polytopes.regular_polygon(5, exact=False) sage: P2 = Polyhedron() diff --git a/src/sage/geometry/polyhedron/backend_field.py b/src/sage/geometry/polyhedron/backend_field.py index feda80cb697..7026cca98b8 100644 --- a/src/sage/geometry/polyhedron/backend_field.py +++ b/src/sage/geometry/polyhedron/backend_field.py @@ -57,7 +57,7 @@ class Polyhedron_field(Polyhedron_base): sage: p = Polyhedron([(0,0), (1,0), (1/2, sqrt3/2)]) # needs sage.rings.number_field sage: TestSuite(p).run() # needs sage.rings.number_field - Check that :trac:`19013` is fixed:: + Check that :issue:`19013` is fixed:: sage: # needs sage.rings.number_field sage: x = polygen(ZZ, 'x') @@ -68,7 +68,7 @@ class Polyhedron_field(Polyhedron_base): The empty polyhedron in (Number Field in phi with defining polynomial x^2 - x - 1 with phi = 1.618033988749895?)^2 - Check that :trac:`28654` is fixed:: + Check that :issue:`28654` is fixed:: sage: Polyhedron(lines=[[1]], backend='field') A 1-dimensional polyhedron in QQ^1 defined as the convex hull of 1 vertex and 1 line diff --git a/src/sage/geometry/polyhedron/backend_normaliz.py b/src/sage/geometry/polyhedron/backend_normaliz.py index b8450c873fa..29b914531c4 100644 --- a/src/sage/geometry/polyhedron/backend_normaliz.py +++ b/src/sage/geometry/polyhedron/backend_normaliz.py @@ -329,7 +329,7 @@ def _convert_to_pynormaliz(x): sage: Pn._convert_to_pynormaliz([[1, 2], (3, 4)]) [[1, 2], [3, 4]] - Check that :trac:`29836` is fixed:: + Check that :issue:`29836` is fixed:: sage: P = polytopes.simplex(backend='normaliz') sage: K. = QuadraticField(2) # needs sage.rings.number_field @@ -593,7 +593,7 @@ def _init_from_Hrepresentation(self, ieqs, eqns, minimize=True, verbose=False): sage: p & p == p # needs sage.rings.number_field True - Check that :trac:`30248` is fixed, that maps as input works:: + Check that :issue:`30248` is fixed, that maps as input works:: sage: # needs sage.rings.number_field sage: q = Polyhedron(backend='normaliz', base_ring=AA, @@ -766,7 +766,7 @@ def _cone_from_Vrepresentation_and_Hrepresentation(self, vertices, rays, lines, ... ValueError: the specification of this method has changed; please specify the lines as well - Check that :trac:`30891` is fixed:: + Check that :issue:`30891` is fixed:: sage: p = Polyhedron(vertices=[(-3,-3), (3,0), (3,3), (0,3)], ....: backend='normaliz') @@ -1270,7 +1270,7 @@ def __setstate__(self, state): sage: P == P2 True - Test that :trac:`31820` is fixed:: + Test that :issue:`31820` is fixed:: sage: P = polytopes.cube(backend='normaliz') sage: v = P.Vrepresentation()[0] @@ -1375,7 +1375,7 @@ def _h_star_vector_normaliz(self) -> list: TESTS: - Check that :trac:`33847` is fixed:: + Check that :issue:`33847` is fixed:: sage: L = [[1, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0], [1, 0, 1, 0, 0, 0], ....: [1, 0, 0, 1, 0, 0], [1, 0, 0, 0, 1, 0], [1, 0, 0, 1, 2, 3]] @@ -1443,7 +1443,7 @@ def _volume_normaliz(self, measure='euclidean'): TESTS: - Check that :trac:`28872` is fixed:: + Check that :issue:`28872` is fixed:: sage: P = polytopes.dodecahedron(backend='normaliz') # needs sage.rings.number_field sage: P.volume(measure='induced_lattice') # needs sage.rings.number_field @@ -1537,7 +1537,7 @@ def _triangulate_normaliz(self): TESTS: - Check that :trac:`30531` is fixed:: + Check that :issue:`30531` is fixed:: sage: P = polytopes.cube(backend='normaliz')*AA(2).sqrt() sage: P._triangulate_normaliz() @@ -1974,7 +1974,7 @@ def integral_points(self, threshold=10000) -> tuple: TESTS: - Test some trivial cases (see :trac:`17937`): + Test some trivial cases (see :issue:`17937`): Empty polyhedron in 1 dimension:: @@ -2006,7 +2006,7 @@ def integral_points(self, threshold=10000) -> tuple: sage: P.integral_points() ((),) - A polytope with no integral points (:trac:`22938`):: + A polytope with no integral points (:issue:`22938`):: sage: ieqs = [[1, 2, -1, 0], [0, -1, 2, -1], [0, 0, -1, 2], ....: [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, -1], @@ -2020,7 +2020,7 @@ def integral_points(self, threshold=10000) -> tuple: sage: P.integral_points() () - Check the polytopes from :trac:`22984`:: + Check the polytopes from :issue:`22984`:: sage: base = [[0, 2, 0, -1, 0, 0, 0, 0, 0], ....: [0, 0, 2, 0, -1, 0, 0, 0, 0], diff --git a/src/sage/geometry/polyhedron/backend_ppl.py b/src/sage/geometry/polyhedron/backend_ppl.py index a4012616deb..bb1a77e9f5d 100644 --- a/src/sage/geometry/polyhedron/backend_ppl.py +++ b/src/sage/geometry/polyhedron/backend_ppl.py @@ -162,7 +162,7 @@ def set_immutable(self): TESTS: - Check that :trac:`33666` is fixed:: + Check that :issue:`33666` is fixed:: sage: cube = polytopes.cube() sage: parent = cube.parent() @@ -234,7 +234,7 @@ def Vrepresentation(self, index=None): TESTS: - Check that :trac:`33666` is fixed:: + Check that :issue:`33666` is fixed:: sage: cube = polytopes.cube() sage: parent = cube.parent() diff --git a/src/sage/geometry/polyhedron/base.py b/src/sage/geometry/polyhedron/base.py index eee9034d651..f9ce84be09d 100644 --- a/src/sage/geometry/polyhedron/base.py +++ b/src/sage/geometry/polyhedron/base.py @@ -278,7 +278,7 @@ def to_linear_program(self, solver=None, return_variable=False, base_ring=None): ... TypeError: The PPL backend only supports rational data. - Test that equations are handled correctly (:trac:`24154`):: + Test that equations are handled correctly (:issue:`24154`):: sage: p = Polyhedron(vertices=[[19]]) sage: lp, x = p.to_linear_program(return_variable=True) @@ -504,7 +504,7 @@ def is_inscribed(self, certificate=False): TESTS: - We check that :trac:`28464` is fixed:: + We check that :issue:`28464` is fixed:: sage: P = Polyhedron(vertices=[(-130658298093891402635075/416049251842505144482473, ....: 177469511761879509172000/1248147755527515433447419, @@ -551,7 +551,7 @@ def is_inscribed(self, certificate=False): sage: P.is_inscribed() True - We check that :trac:`29125` is fixed:: + We check that :issue:`29125` is fixed:: sage: P = Polyhedron(vertices=[[-2,-1], [-2,1], [0,-1], [0,1]], backend='field') sage: P.is_inscribed() diff --git a/src/sage/geometry/polyhedron/base0.py b/src/sage/geometry/polyhedron/base0.py index ba296c2c282..ea6a08837c5 100644 --- a/src/sage/geometry/polyhedron/base0.py +++ b/src/sage/geometry/polyhedron/base0.py @@ -117,7 +117,7 @@ def __init__(self, parent, Vrep, Hrep, Vrep_minimal=None, Hrep_minimal=None, pre TypeError: ..._init_Hrepresentation() takes 3 positional arguments but 9 were given The empty polyhedron is detected when the Vrepresentation is given with generator; - see :trac:`29899`:: + see :issue:`29899`:: sage: from sage.geometry.polyhedron.backend_cdd import Polyhedron_QQ_cdd sage: from sage.geometry.polyhedron.parent import Polyhedra_QQ_cdd @@ -359,7 +359,7 @@ def base_extend(self, base_ring, backend=None): TESTS: - Test that :trac:`22575` is fixed:: + Test that :issue:`22575` is fixed:: sage: Q = P.base_extend(ZZ, backend='field') sage: Q.backend() @@ -1142,7 +1142,7 @@ def vertices_matrix(self, base_ring=None): TESTS: - Check that :trac:`28828` is fixed:: + Check that :issue:`28828` is fixed:: sage: P.vertices_matrix().is_immutable() True diff --git a/src/sage/geometry/polyhedron/base1.py b/src/sage/geometry/polyhedron/base1.py index 4741a97d988..507316f26a3 100644 --- a/src/sage/geometry/polyhedron/base1.py +++ b/src/sage/geometry/polyhedron/base1.py @@ -205,7 +205,7 @@ def _richcmp_(self, other, op): sage: P == Q False - Test that we have fixed a problem revealed in :trac:`31701`, + Test that we have fixed a problem revealed in :issue:`31701`, where neither of the two polyhedra contains the other:: sage: P = Polyhedron(vertices=[(1, 1), (0, 0), (1, 2)]) @@ -330,7 +330,7 @@ def dim(self): sage: simplex.ambient_dim() 4 - The empty set is a special case (:trac:`12193`):: + The empty set is a special case (:issue:`12193`):: sage: P1=Polyhedron(vertices=[[1,0,0],[0,1,0],[0,0,1]]) sage: P2=Polyhedron(vertices=[[2,0,0],[0,2,0],[0,0,2]]) @@ -634,7 +634,7 @@ def contains(self, point): sage: ray.contains(['hello', 'kitty']) # no common ring for coordinates False - The empty polyhedron needs extra care, see :trac:`10238`:: + The empty polyhedron needs extra care, see :issue:`10238`:: sage: empty = Polyhedron(); empty The empty polyhedron in ZZ^0 @@ -651,7 +651,7 @@ def contains(self, point): TESTS: - Passing non-iterable objects does not cause an exception, see :trac:`32013`:: + Passing non-iterable objects does not cause an exception, see :issue:`32013`:: sage: None in Polyhedron(vertices=[(0,0)], rays=[(1,0)], base_ring=QQ) False @@ -752,7 +752,7 @@ def interior_contains(self, point): sage: P.interior_contains( [0,0] ) False - The empty polyhedron needs extra care, see :trac:`10238`:: + The empty polyhedron needs extra care, see :issue:`10238`:: sage: empty = Polyhedron(); empty The empty polyhedron in ZZ^0 @@ -873,7 +873,7 @@ def relative_interior_contains(self, point): sage: P.relative_interior_contains( (1,0) ) False - The empty polyhedron needs extra care, see :trac:`10238`:: + The empty polyhedron needs extra care, see :issue:`10238`:: sage: empty = Polyhedron(); empty The empty polyhedron in ZZ^0 diff --git a/src/sage/geometry/polyhedron/base2.py b/src/sage/geometry/polyhedron/base2.py index 0594d0c6708..3b72b5088c7 100644 --- a/src/sage/geometry/polyhedron/base2.py +++ b/src/sage/geometry/polyhedron/base2.py @@ -459,7 +459,7 @@ def integral_points(self, threshold=100000): TESTS: - Test some trivial cases (see :trac:`17937`):: + Test some trivial cases (see :issue:`17937`):: sage: P = Polyhedron(ambient_dim=1) # empty polyhedron in 1 dimension sage: P.integral_points() diff --git a/src/sage/geometry/polyhedron/base3.py b/src/sage/geometry/polyhedron/base3.py index 8904d9fac82..d64cf38d26d 100644 --- a/src/sage/geometry/polyhedron/base3.py +++ b/src/sage/geometry/polyhedron/base3.py @@ -280,7 +280,7 @@ def incidence_matrix(self): TESTS: - Check that :trac:`28828` is fixed:: + Check that :issue:`28828` is fixed:: sage: R.incidence_matrix().is_immutable() True @@ -583,7 +583,7 @@ def face_generator(self, face_dimension=None, algorithm=None, **kwds): sage: list(Polyhedron().face_generator()) [A -1-dimensional face of a Polyhedron in ZZ^0] - Check that :trac:`29155` is fixed:: + Check that :issue:`29155` is fixed:: sage: P = polytopes.permutahedron(3) sage: [f] = P.face_generator(2) @@ -844,7 +844,7 @@ def f_vector(self, num_threads=None, parallelization_depth=None, algorithm=None) TESTS: - Check that :trac:`28828` is fixed:: + Check that :issue:`28828` is fixed:: sage: P.f_vector().is_immutable() True @@ -1016,7 +1016,7 @@ def vertex_adjacency_matrix(self, algorithm=None): TESTS: - Check that :trac:`28828` is fixed:: + Check that :issue:`28828` is fixed:: sage: P.adjacency_matrix().is_immutable() True @@ -1067,12 +1067,12 @@ def facet_adjacency_matrix(self, algorithm=None): TESTS: - Check that :trac:`28828` is fixed:: + Check that :issue:`28828` is fixed:: sage: s4.facet_adjacency_matrix().is_immutable() True - Checks that :trac:`22455` is fixed:: + Checks that :issue:`22455` is fixed:: sage: s = polytopes.simplex(2) sage: s.facet_adjacency_matrix() diff --git a/src/sage/geometry/polyhedron/base4.py b/src/sage/geometry/polyhedron/base4.py index 2ba2a696b30..bc31ab76102 100644 --- a/src/sage/geometry/polyhedron/base4.py +++ b/src/sage/geometry/polyhedron/base4.py @@ -126,12 +126,12 @@ def vertex_facet_graph(self, labels=True): TESTS: - Check that :trac:`28828` is fixed:: + Check that :issue:`28828` is fixed:: sage: G._immutable True - Check that :trac:`29188` is fixed:: + Check that :issue:`29188` is fixed:: sage: P = polytopes.cube() sage: P.vertex_facet_graph().is_isomorphic(P.vertex_facet_graph(False)) @@ -192,7 +192,7 @@ def vertex_graph(self, **kwds): TESTS: - Check for a line segment (:trac:`30545`):: + Check for a line segment (:issue:`30545`):: sage: polytopes.simplex(1).graph().edges(sort=True) [(A vertex at (0, 1), A vertex at (1, 0), None)] @@ -308,7 +308,7 @@ def face_lattice(self): .. NOTE:: - The face lattice is not cached, as long as this creates a memory leak, see :trac:`28982`. + The face lattice is not cached, as long as this creates a memory leak, see :issue:`28982`. EXAMPLES:: @@ -921,7 +921,7 @@ def restricted_automorphism_group(self, output="abstract"): ... ValueError: unknown output 'foobar', valid values are ('abstract', 'permutation', 'matrix', 'matrixlist') - Check that :trac:`28828` is fixed:: + Check that :issue:`28828` is fixed:: sage: P.restricted_automorphism_group(output="matrixlist")[0].is_immutable() True diff --git a/src/sage/geometry/polyhedron/base5.py b/src/sage/geometry/polyhedron/base5.py index 72cb9f349ca..a1e57a63b99 100644 --- a/src/sage/geometry/polyhedron/base5.py +++ b/src/sage/geometry/polyhedron/base5.py @@ -192,13 +192,13 @@ def polar(self, in_affine_span=False): TESTS: - Check that :trac:`25081` is fixed:: + Check that :issue:`25081` is fixed:: sage: C = polytopes.hypercube(4,backend='cdd') sage: C.polar().backend() 'cdd' - Check that :trac:`28850` is fixed:: + Check that :issue:`28850` is fixed:: sage: P = polytopes.simplex(3, base_ring=QQ) sage: P.polar() @@ -815,7 +815,7 @@ def minkowski_difference(self, other): sage: (X-Y)+Y == X True - Testing that :trac:`28506` is fixed:: + Testing that :issue:`28506` is fixed:: sage: Q = Polyhedron([[1,0],[0,1]]) sage: S = Polyhedron([[0,0],[1,2]]) @@ -921,7 +921,7 @@ def product(self, other): TESTS: - Check that :trac:`15253` is fixed:: + Check that :issue:`15253` is fixed:: sage: polytopes.hypercube(1) * polytopes.hypercube(2) A 3-dimensional polyhedron in ZZ^3 defined as the convex hull of 8 vertices @@ -1249,7 +1249,7 @@ def direct_sum(self, other): sage: Q.direct_sum(P).backend() 'ppl' - Check that :trac:`28506` is fixed:: + Check that :issue:`28506` is fixed:: sage: s2 = polytopes.simplex(2) sage: s3 = polytopes.simplex(3) @@ -1353,7 +1353,7 @@ def intersection(self, other): TESTS: - Check that :trac:`19012` is fixed:: + Check that :issue:`19012` is fixed:: sage: # needs sage.rings.number_field sage: K. = QuadraticField(5) @@ -1562,7 +1562,7 @@ def dilation(self, scalar): TESTS: - Dilation of empty polyhedra works, see :trac:`14987`:: + Dilation of empty polyhedra works, see :issue:`14987`:: sage: p = Polyhedron(ambient_dim=2); p The empty polyhedron in ZZ^2 @@ -1893,7 +1893,7 @@ def _test_linear_transformation(self, tester=None, **options): # Avoid very long doctests. return - # Check that :trac:`30146` is fixed. + # Check that :issue:`30146` is fixed. from sage.matrix.special import identity_matrix tester.assertEqual(self, self.linear_transformation(identity_matrix(self.ambient_dim()))) @@ -2029,7 +2029,7 @@ def face_truncation(self, face, linear_coefficients=None, cut_frac=None): sage: face_trunc.backend() 'field' - Testing that :trac:`28506` is fixed:: + Testing that :issue:`28506` is fixed:: sage: P = polytopes.twenty_four_cell() sage: P = P.dilation(6) @@ -2193,7 +2193,7 @@ def stack(self, face, position=None): ... ValueError: the chosen position is too large - Testing that :trac:`29057` is fixed:: + Testing that :issue:`29057` is fixed:: sage: P = polytopes.cross_polytope(4) sage: P.stack(P.faces(3)[0]) @@ -2377,7 +2377,7 @@ def face_split(self, face): TESTS: - Check that :trac:`28668` is fixed:: + Check that :issue:`28668` is fixed:: sage: P = polytopes.octahedron() sage: P.face_split(P.faces(2)[0]) @@ -2454,11 +2454,11 @@ def _test_lawrence(self, tester=None, **options): TESTS: - Check that :trac:`28725` is fixed:: + Check that :issue:`28725` is fixed:: sage: polytopes.regular_polygon(3)._test_lawrence() # needs sage.rings.number_field - Check that :trac:`30293` is fixed:: + Check that :issue:`30293` is fixed:: sage: polytopes.cube()._test_lawrence() """ @@ -2509,7 +2509,7 @@ def _test_lawrence(self, tester=None, **options): try: from sage.rings.real_double_field import RDF two = RDF(2.0) - # Implicitly checks :trac:`30328`. + # Implicitly checks :issue:`30328`. R = self.lawrence_extension(two * v - self.center()) tester.assertEqual(self.dim() + 1, R.dim()) tester.assertEqual(self.n_vertices() + 2, R.n_vertices()) diff --git a/src/sage/geometry/polyhedron/base6.py b/src/sage/geometry/polyhedron/base6.py index b9d23daefa1..aaa18f5b541 100644 --- a/src/sage/geometry/polyhedron/base6.py +++ b/src/sage/geometry/polyhedron/base6.py @@ -375,7 +375,7 @@ def plot(self, TESTS: - Check that :trac:`30015` is fixed:: + Check that :issue:`30015` is fixed:: sage: fcube = polytopes.hypercube(4) sage: tfcube = fcube.face_truncation(fcube.faces(0)[0]) @@ -386,7 +386,7 @@ def plot(self, ....: projected_vertices = [sp.transformed_coords[i] for i in indices] ....: assert Polyhedron(projected_vertices).dim() == 2 - Check that :trac:`31802` is fixed:: + Check that :issue:`31802` is fixed:: sage: # needs sage.plot sage: halfspace = Polyhedron(rays=[(0, 0, 1)], lines=[(1, 0, 0), (0, 1, 0)]) @@ -700,7 +700,7 @@ def gale_transform(self): ... ValueError: not a polytope - Check that :trac:`29073` is fixed:: + Check that :issue:`29073` is fixed:: sage: P = polytopes.icosahedron(exact=False) # needs sage.groups sage: sum(P.gale_transform()).norm() < 1e-15 # needs sage.groups @@ -732,7 +732,7 @@ def _test_gale_transform(self, tester=None, **options): self.gale_transform() return - # Check :trac:`29073`. + # Check :issue:`29073`. if not self.base_ring().is_exact() and self.ambient_dim() > 0: g = self.gale_transform() tester.assertTrue(sum(g).norm() < 1e-10 or sum(g).norm()/matrix(g).norm() < 1e-13) @@ -856,7 +856,7 @@ def schlegel_projection(self, facet=None, position=None): sage: len([x for x in schlegel_edges if x[0][0] > 0]) 8 - The Schlegel projection preserves the convexity of facets, see :trac:`30015`:: + The Schlegel projection preserves the convexity of facets, see :issue:`30015`:: sage: fcube = polytopes.hypercube(4) sage: tfcube = fcube.face_truncation(fcube.faces(0)[0]) @@ -934,7 +934,7 @@ def _affine_hull_projection(self, *, TESTS: - Check that :trac:`23355` is fixed:: + Check that :issue:`23355` is fixed:: sage: P = Polyhedron([[7]]); P A 0-dimensional polyhedron in ZZ^1 defined as the convex hull of 1 vertex @@ -945,7 +945,7 @@ def _affine_hull_projection(self, *, sage: P.affine_hull_projection(orthogonal='True') A 0-dimensional polyhedron in QQ^0 defined as the convex hull of 1 vertex - Check that :trac:`24047` is fixed:: + Check that :issue:`24047` is fixed:: sage: P1 = Polyhedron(vertices=[[-1, 1], [0, -1], [0, 0], [-1, -1]]) sage: P2 = Polyhedron(vertices=[[1, 1], [1, -1], [0, -1], [0, 0]]) @@ -966,7 +966,7 @@ def _affine_hull_projection(self, *, ....: extend=True).backend() 'field' - Check that :trac:`29116` is fixed:: + Check that :issue:`29116` is fixed:: sage: V = [[1, 0, -1, 0, 0], ....: [1, 0, 0, -1, 0], diff --git a/src/sage/geometry/polyhedron/base7.py b/src/sage/geometry/polyhedron/base7.py index 99ca1b7ebe7..55f9d23ea0b 100644 --- a/src/sage/geometry/polyhedron/base7.py +++ b/src/sage/geometry/polyhedron/base7.py @@ -660,7 +660,7 @@ def volume(self, measure='ambient', engine='auto', **kwds): sage: Q.volume.is_in_cache() True - Induced volumes work with lrs (:trac:`33410`):: + Induced volumes work with lrs (:issue:`33410`):: sage: P = Polyhedron([[0, 0], [1, 1]]) sage: P.volume(measure='induced', engine='lrs') # optional - lrslib diff --git a/src/sage/geometry/polyhedron/base_QQ.py b/src/sage/geometry/polyhedron/base_QQ.py index d31c5bc254c..ff0872b7dd7 100644 --- a/src/sage/geometry/polyhedron/base_QQ.py +++ b/src/sage/geometry/polyhedron/base_QQ.py @@ -160,7 +160,7 @@ def integral_points_count(self, verbose=False, use_Hrepresentation=False, TESTS: - We check that :trac:`21491` is fixed:: + We check that :issue:`21491` is fixed:: sage: P = Polyhedron(ieqs=[], eqns=[[-10,0,1],[-10,1,0]]) sage: P.integral_points_count() diff --git a/src/sage/geometry/polyhedron/base_ZZ.py b/src/sage/geometry/polyhedron/base_ZZ.py index 20b3c95bbcc..c450fbda0e0 100644 --- a/src/sage/geometry/polyhedron/base_ZZ.py +++ b/src/sage/geometry/polyhedron/base_ZZ.py @@ -91,7 +91,7 @@ def is_lattice_polytope(self): TESTS: - Check :trac:`22622`:: + Check :issue:`22622`:: sage: P1 = Polyhedron(vertices = [[1, 0], [0, 1]], rays = [[1, 1]]) sage: P1.is_lattice_polytope() @@ -514,7 +514,7 @@ def polar(self): TESTS: - Test that :trac:`28551` is fixed:: + Test that :issue:`28551` is fixed:: sage: polytopes.cube(backend='normaliz').polar().backend() # optional - pynormaliz 'normaliz' diff --git a/src/sage/geometry/polyhedron/base_number_field.py b/src/sage/geometry/polyhedron/base_number_field.py index 9491fce4e75..ef912a5e501 100644 --- a/src/sage/geometry/polyhedron/base_number_field.py +++ b/src/sage/geometry/polyhedron/base_number_field.py @@ -87,7 +87,7 @@ def _compute_data_lists_and_internal_base_ring(self, data_lists, convert_QQ, con ... ValueError: invalid base ring: Number Field in a ... is not real embedded - Checks that :trac:`30248` is fixed:: + Checks that :issue:`30248` is fixed:: sage: q = Polyhedron(base_ring=AA, # indirect doctest # optional - pynormaliz, needs sage.rings.number_field ....: backend='normaliz', diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pyx b/src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pyx index 830d45f9b90..8d9d0567100 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pyx +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pyx @@ -254,7 +254,7 @@ cdef class CombinatorialPolyhedron(SageObject): TESTS: - Checking that :trac:`27987` is fixed:: + Checking that :issue:`27987` is fixed:: sage: P1 = Polyhedron(vertices=[[0,1],[1,0]], rays=[[1,1]]) sage: P2 = Polyhedron(vertices=[[0,1],[1,0],[1,1]]) @@ -308,7 +308,7 @@ cdef class CombinatorialPolyhedron(SageObject): ... ValueError: not all vertices are intersections of facets - Check that :trac:`28678` is fixed:: + Check that :issue:`28678` is fixed:: sage: CombinatorialPolyhedron([]) A -1-dimensional combinatorial polyhedron with 0 facets @@ -1123,7 +1123,7 @@ cdef class CombinatorialPolyhedron(SageObject): TESTS: - Check that :trac:`29455` is fixed:: + Check that :issue:`29455` is fixed:: sage: C = Polyhedron([[0]]).combinatorial_polyhedron() sage: C.incidence_matrix.clear_cache() @@ -1134,7 +1134,7 @@ cdef class CombinatorialPolyhedron(SageObject): sage: C.incidence_matrix() [] - Check that the base ring is ``ZZ``, see :trac:`29840`:: + Check that the base ring is ``ZZ``, see :issue:`29840`:: sage: C = CombinatorialPolyhedron([[0,1,2], [0,1,3], [0,2,3], [1,2,3]]) sage: C.incidence_matrix().base_ring() @@ -1575,7 +1575,7 @@ cdef class CombinatorialPolyhedron(SageObject): sage: CombinatorialPolyhedron(P).facet_graph() # needs sage.graphs Graph on 2 vertices - Checking that :trac:`28604` is fixed:: + Checking that :issue:`28604` is fixed:: sage: C = CombinatorialPolyhedron(polytopes.cube()); C A 3-dimensional combinatorial polyhedron with 6 facets @@ -1662,7 +1662,7 @@ cdef class CombinatorialPolyhedron(SageObject): TESTS: - Test that :trac:`29898` is fixed:: + Test that :issue:`29898` is fixed:: sage: Polyhedron().vertex_facet_graph() # needs sage.graphs Digraph on 0 vertices @@ -2411,7 +2411,7 @@ cdef class CombinatorialPolyhedron(SageObject): sage: CombinatorialPolyhedron(0).is_pyramid(True) (True, 0) - Check that :trac:`30292` is fixed:: + Check that :issue:`30292` is fixed:: sage: Polyhedron([[0, -1, -1], [0, -1, 1], [0, 1, -1], [0, 1, 1], [1, 0, 0]]).is_pyramid(certificate=True) (True, A vertex at (1, 0, 0)) @@ -2503,7 +2503,7 @@ cdef class CombinatorialPolyhedron(SageObject): sage: C.is_bipyramid(True) (True, [A vertex at (1), A vertex at (-1)]) - Check that bug analog to :trac:`30292` is avoided:: + Check that bug analog to :issue:`30292` is avoided:: sage: Polyhedron([[0, 1, 0], [0, 0, 1], [0, -1, -1], [1, 0, 0], [-1, 0, 0]]).is_bipyramid(certificate=True) (True, [A vertex at (1, 0, 0), A vertex at (-1, 0, 0)]) diff --git a/src/sage/geometry/polyhedron/constructor.py b/src/sage/geometry/polyhedron/constructor.py index f18492f584f..0de0a075325 100644 --- a/src/sage/geometry/polyhedron/constructor.py +++ b/src/sage/geometry/polyhedron/constructor.py @@ -530,18 +530,18 @@ def Polyhedron(vertices=None, rays=None, lines=None, TESTS: - Check that giving ``float`` input gets converted to ``RDF`` (see :trac:`22605`):: + Check that giving ``float`` input gets converted to ``RDF`` (see :issue:`22605`):: sage: f = float(1.1) sage: Polyhedron(vertices=[[f]]) A 0-dimensional polyhedron in RDF^1 defined as the convex hull of 1 vertex - Check that giving ``int`` input gets converted to ``ZZ`` (see :trac:`22605`):: + Check that giving ``int`` input gets converted to ``ZZ`` (see :issue:`22605`):: sage: Polyhedron(vertices=[[int(42)]]) A 0-dimensional polyhedron in ZZ^1 defined as the convex hull of 1 vertex - Check that giving ``Fraction`` input gets converted to ``QQ`` (see :trac:`22605`):: + Check that giving ``Fraction`` input gets converted to ``QQ`` (see :issue:`22605`):: sage: from fractions import Fraction sage: f = Fraction(int(6), int(8)) @@ -549,7 +549,7 @@ def Polyhedron(vertices=None, rays=None, lines=None, A 0-dimensional polyhedron in QQ^1 defined as the convex hull of 1 vertex Check that non-compact polyhedra given by V-representation have base ring ``QQ``, - not ``ZZ`` (see :trac:`27840`):: + not ``ZZ`` (see :issue:`27840`):: sage: Q = Polyhedron(vertices=[(1, 2, 3), (1, 3, 2), (2, 1, 3), ....: (2, 3, 1), (3, 1, 2), (3, 2, 1)], @@ -568,7 +568,7 @@ def Polyhedron(vertices=None, rays=None, lines=None, TypeError: no conversion of this rational to integer Check that input with too many bits of precision returns an error (see - :trac:`22552`):: + :issue:`22552`):: sage: Polyhedron(vertices=[(8.3319544851638732, 7.0567045956967727), # needs sage.rings.real_mpfr ....: (6.4876921900819049, 4.8435898415984129)]) @@ -576,7 +576,7 @@ def Polyhedron(vertices=None, rays=None, lines=None, ... ValueError: the only allowed inexact ring is 'RDF' with backend 'cdd' - Check that setting ``base_ring`` to a ``RealField`` returns an error (see :trac:`22552`):: + Check that setting ``base_ring`` to a ``RealField`` returns an error (see :issue:`22552`):: sage: Polyhedron(vertices=[(8.3, 7.0), (6.4, 4.8)], base_ring=RealField(40)) # needs sage.rings.real_mpfr Traceback (most recent call last): @@ -587,7 +587,7 @@ def Polyhedron(vertices=None, rays=None, lines=None, ... ValueError: no default backend for computations with Real Field with 53 bits of precision - Check that :trac:`17339` is fixed:: + Check that :issue:`17339` is fixed:: sage: Polyhedron(ambient_dim=0, ieqs=[], eqns=[[1]], base_ring=QQ) The empty polyhedron in QQ^0 diff --git a/src/sage/geometry/polyhedron/face.py b/src/sage/geometry/polyhedron/face.py index 8a1e2dc2969..97319ed1740 100644 --- a/src/sage/geometry/polyhedron/face.py +++ b/src/sage/geometry/polyhedron/face.py @@ -601,7 +601,7 @@ def dim(self): TESTS: - Check that :trac:`28650` is fixed:: + Check that :issue:`28650` is fixed:: sage: P = Polyhedron(vertices=[[1,0]], rays=[[1,0], [0,1]]) sage: P.faces(2) @@ -960,7 +960,7 @@ def affine_tangent_cone(self): TESTS: - Check that :trac:`32658` is fixed:: + Check that :issue:`32658` is fixed:: sage: P = polytopes.hypercube(2) sage: P.faces(-1)[0].affine_tangent_cone() diff --git a/src/sage/geometry/polyhedron/library.py b/src/sage/geometry/polyhedron/library.py index efd79abb318..81cf67b2d8b 100644 --- a/src/sage/geometry/polyhedron/library.py +++ b/src/sage/geometry/polyhedron/library.py @@ -3234,7 +3234,7 @@ def hypercube(self, dim, intervals=None, backend=None): sage: P = polytopes.hypercube(4, intervals, backend='field') sage: TestSuite(P).run() - Check that :trac:`29904` is fixed:: + Check that :issue:`29904` is fixed:: sage: intervals = [[-2,2]] sage: P = polytopes.hypercube(1, intervals, 'field') diff --git a/src/sage/geometry/polyhedron/parent.py b/src/sage/geometry/polyhedron/parent.py index 92691fab081..2d87ac6f202 100644 --- a/src/sage/geometry/polyhedron/parent.py +++ b/src/sage/geometry/polyhedron/parent.py @@ -606,7 +606,7 @@ def _element_constructor_(self, *args, **kwds): sage: P(0) A 0-dimensional polyhedron in QQ^3 defined as the convex hull of 1 vertex - Check that :trac:`21270` is fixed:: + Check that :issue:`21270` is fixed:: sage: # needs sage.rings.number_field sage: poly = polytopes.regular_polygon(7) @@ -765,7 +765,7 @@ def base_extend(self, base_ring, backend=None, ambient_dim=None): TESTS: - Test that :trac:`22575` is fixed:: + Test that :issue:`22575` is fixed:: sage: P = Polyhedra(ZZ,3).base_extend(QQ, backend='field') sage: P.backend() @@ -866,7 +866,7 @@ def _coerce_base_ring(self, other): TESTS: - Test that :trac:`28770` is fixed:: + Test that :issue:`28770` is fixed:: sage: z = QQ['z'].0 sage: K = NumberField(z^2 - 2, 's') # needs sage.rings.number_field diff --git a/src/sage/geometry/polyhedron/plot.py b/src/sage/geometry/polyhedron/plot.py index b5a6410bc75..283d5163f81 100644 --- a/src/sage/geometry/polyhedron/plot.py +++ b/src/sage/geometry/polyhedron/plot.py @@ -711,7 +711,7 @@ def _init_lines_arrows(self, polyhedron): sage: pp.arrows [[0, 1], [0, 2], [0, 3], [0, 4]] - We check that :trac:`31802` is fixed:: + We check that :issue:`31802` is fixed:: sage: x = Polyhedron(lines=[(1, 0, 0), (0, 1, 0)], rays=[(0, 0, 1)]) sage: y = x.projection() @@ -1202,7 +1202,7 @@ def render_3d(self, point_opts=None, line_opts=None, polygon_opts=None): sage: Polyhedron(vertices=[[1,1,1]]).plot() # point in R^3 Graphics3d Object - The origin is not included, if it is not in the polyhedron (:trac:`23555`):: + The origin is not included, if it is not in the polyhedron (:issue:`23555`):: sage: Q = Polyhedron([[100],[101]]) sage: P = Q*Q*Q; P @@ -1507,7 +1507,7 @@ def _tikz_2d(self, scale, edge_color, facet_color, opacity, vertex_color, axis): sage: with open('polytope-tikz2.tex', 'w') as f: # not tested ....: _ = f.write(Image) - Scientific notation is not used in the output (:trac:`16519`):: + Scientific notation is not used in the output (:issue:`16519`):: sage: P = Polyhedron([[2*10^-10,0], [0,1], [1,0]], base_ring=QQ) sage: tikz = P.projection().tikz(output_type='TikzPicture') diff --git a/src/sage/geometry/polyhedron/ppl_lattice_polytope.py b/src/sage/geometry/polyhedron/ppl_lattice_polytope.py index e62e108e61d..3cde1c6af81 100644 --- a/src/sage/geometry/polyhedron/ppl_lattice_polytope.py +++ b/src/sage/geometry/polyhedron/ppl_lattice_polytope.py @@ -1072,7 +1072,7 @@ def lattice_automorphism_group(self, points=None, point_labels=None): Permutation Group with generators [(), (3,4), (1,6)(2,5), (1,6)(2,5)(3,4)] Point labels also work for lattice polytopes that are not - full-dimensional, see :trac:`16669`:: + full-dimensional, see :issue:`16669`:: sage: from sage.geometry.polyhedron.ppl_lattice_polytope import LatticePolytope_PPL sage: lp = LatticePolytope_PPL((1,0,0), (0,1,0), (-1,-1,0)) diff --git a/src/sage/geometry/polyhedron/representation.py b/src/sage/geometry/polyhedron/representation.py index df37a756f86..ea803b2e558 100644 --- a/src/sage/geometry/polyhedron/representation.py +++ b/src/sage/geometry/polyhedron/representation.py @@ -151,7 +151,7 @@ def __richcmp__(self, other, op): TESTS: - Check :trac:`30954`:: + Check :issue:`30954`:: sage: P = (1/2)*polytopes.cube() sage: Q = (1/2)*polytopes.cube(backend='field') @@ -250,7 +250,7 @@ def vector(self, base_ring=None): TESTS: - Checks that :trac:`27709` is fixed:: + Checks that :issue:`27709` is fixed:: sage: C = polytopes.cube() sage: C.vertices()[0].vector()[0] = 3 @@ -499,7 +499,7 @@ def A(self): TESTS: - Checks that :trac:`27709` is fixed:: + Checks that :issue:`27709` is fixed:: sage: C = polytopes.cube() sage: C.inequalities()[0].A()[2] = 5 @@ -540,7 +540,7 @@ def neighbors(self): TESTS: - Checking that :trac:`28463` is fixed:: + Checking that :issue:`28463` is fixed:: sage: P = polytopes.simplex() sage: F1 = P.Hrepresentation()[1] @@ -899,7 +899,7 @@ def _repr_(self): TESTS: - Test that :trac:`21105` has been fixed:: + Test that :issue:`21105` has been fixed:: sage: x = polygen(ZZ, 'x') sage: K. = NumberField(x^3 - 2, 'a', embedding=1.26) # needs sage.rings.number_field diff --git a/src/sage/geometry/toric_lattice.py b/src/sage/geometry/toric_lattice.py index d2816aa7287..2759a2b1281 100644 --- a/src/sage/geometry/toric_lattice.py +++ b/src/sage/geometry/toric_lattice.py @@ -706,7 +706,7 @@ def quotient(self, sub, check=True, TESTS: - We check that :trac:`19603` is fixed:: + We check that :issue:`19603` is fixed:: sage: K = Cone([(1,0,0),(0,1,0)]) sage: K.lattice() diff --git a/src/sage/graphs/all.py b/src/sage/graphs/all.py index 2cbc65d0e23..68529637000 100644 --- a/src/sage/graphs/all.py +++ b/src/sage/graphs/all.py @@ -22,7 +22,7 @@ TESTS: Test that methods all_max_clique, max_clique and clique_number from -sage.graphs.cliquer are deprecated from the global namespace (:trac:`26200`):: +sage.graphs.cliquer are deprecated from the global namespace (:issue:`26200`):: sage: all_max_clique(Graph()) Traceback (most recent call last): diff --git a/src/sage/graphs/base/c_graph.pyx b/src/sage/graphs/base/c_graph.pyx index 70ce392a43c..9b9dac6917b 100644 --- a/src/sage/graphs/base/c_graph.pyx +++ b/src/sage/graphs/base/c_graph.pyx @@ -1456,7 +1456,7 @@ cdef class CGraphBackend(GenericGraphBackend): TESTS: - Ensure that :trac:`8395` is fixed. :: + Ensure that :issue:`8395` is fixed. :: sage: G = Graph({1:[1]}); G Looped graph on 1 vertex @@ -1574,7 +1574,7 @@ cdef class CGraphBackend(GenericGraphBackend): TESTS: - We check that the bug described in :trac:`8406` is gone:: + We check that the bug described in :issue:`8406` is gone:: sage: # needs sage.rings.finite_rings sage: G = Graph() @@ -1585,7 +1585,7 @@ cdef class CGraphBackend(GenericGraphBackend): sage: G.vertices(sort=True) [a^2, x] - And that the bug described in :trac:`9610` is gone:: + And that the bug described in :issue:`9610` is gone:: sage: n = 20 sage: k = 3 @@ -1596,7 +1596,7 @@ cdef class CGraphBackend(GenericGraphBackend): sage: g.strongly_connected_components() [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]] - The bug in :trac:`14967` and :trac:`14853` is fixed:: + The bug in :issue:`14967` and :issue:`14853` is fixed:: sage: DiGraph({0: {}, 1/2: {}}) Digraph on 2 vertices @@ -2011,7 +2011,7 @@ cdef class CGraphBackend(GenericGraphBackend): TESTS: - Ensure that issue :trac:`8395` is fixed. :: + Ensure that issue :issue:`8395` is fixed. :: sage: def my_add_edges(G, m, n): ....: for i in range(m): @@ -2106,7 +2106,7 @@ cdef class CGraphBackend(GenericGraphBackend): sage: G.degree(1) 3 - Ensure that :trac:`13664` is fixed :: + Ensure that :issue:`13664` is fixed :: sage: W = WeylGroup(["A",1]) # needs sage.combinat sage.groups sage: G = W.cayley_graph() # needs sage.combinat sage.groups @@ -2396,7 +2396,7 @@ cdef class CGraphBackend(GenericGraphBackend): sage: D.edges(sort=True) [(0, 1, 3)] - Check :trac:`22991` for sparse backend:: + Check :issue:`22991` for sparse backend:: sage: G = Graph(3, sparse=True) sage: G.add_edge(0,0) @@ -2407,7 +2407,7 @@ cdef class CGraphBackend(GenericGraphBackend): sage: G.add_edge(0,0); G.edges(sort=True) [(0, 0, None)] - Check :trac:`22991` for dense backend:: + Check :issue:`22991` for dense backend:: sage: G = Graph(3, sparse=False) sage: G.add_edge(0,0) @@ -2418,7 +2418,7 @@ cdef class CGraphBackend(GenericGraphBackend): sage: G.add_edge(0, 0); G.edges(sort=True) [(0, 0, None)] - Remove edges correctly when multiedges are not allowed (:trac:`28077`):: + Remove edges correctly when multiedges are not allowed (:issue:`28077`):: sage: D = DiGraph(multiedges=False) sage: D.add_edge(1, 2, 'A') @@ -2559,7 +2559,7 @@ cdef class CGraphBackend(GenericGraphBackend): sage: G.edges(sort=True) [(0, 1, 2)] - Do we remove loops correctly? (:trac:`12135`):: + Do we remove loops correctly? (:issue:`12135`):: sage: g=Graph({0:[0,0,0]}, sparse=True) sage: g.edges(sort=True, labels=False) @@ -3946,19 +3946,19 @@ cdef class CGraphBackend(GenericGraphBackend): TESTS: - Bugfix from :trac:`7673` :: + Bugfix from :issue:`7673` :: sage: G = Graph([(0, 1, 9), (0, 2, 8), (1, 2, 7)]) sage: G.shortest_path_length(0, 1, by_weight=True) 9 - Bugfix from :trac:`28221` :: + Bugfix from :issue:`28221` :: sage: G = Graph([(0, 1, 9.2), (0, 2, 4.5), (1, 2, 4.6)]) sage: G.shortest_path_length(0, 1, by_weight=True) 9.1 - Bugfix from :trac:`27464` :: + Bugfix from :issue:`27464` :: sage: G = DiGraph({0: [1, 2], 1: [4], 2: [3, 4], 4: [5], 5: [6]}, multiedges=True) sage: for u, v in list(G.edges(labels=None, sort=False)): @@ -4818,7 +4818,7 @@ cdef class Search_iterator: ... LookupError: vertex ('') is not a vertex of the graph - Immutable graphs (see :trac:`16019`):: + Immutable graphs (see :issue:`16019`):: sage: DiGraph([(1, 2)], immutable=True).connected_components(sort=True) [[1, 2]] diff --git a/src/sage/graphs/base/static_dense_graph.pyx b/src/sage/graphs/base/static_dense_graph.pyx index 9d8732b2f83..fe356d939d6 100644 --- a/src/sage/graphs/base/static_dense_graph.pyx +++ b/src/sage/graphs/base/static_dense_graph.pyx @@ -175,7 +175,7 @@ def is_strongly_regular(g, parameters=False): sage: g.is_strongly_regular() False - Complete graphs are not strongly regular. (:trac:`14297`) :: + Complete graphs are not strongly regular. (:issue:`14297`) :: sage: g = graphs.CompleteGraph(5) sage: g.is_strongly_regular() diff --git a/src/sage/graphs/base/static_sparse_backend.pyx b/src/sage/graphs/base/static_sparse_backend.pyx index 0d1361c940a..678d7e86c8a 100644 --- a/src/sage/graphs/base/static_sparse_backend.pyx +++ b/src/sage/graphs/base/static_sparse_backend.pyx @@ -84,7 +84,7 @@ cdef class StaticSparseCGraph(CGraph): sage: from sage.graphs.base.static_sparse_backend import StaticSparseCGraph sage: g = StaticSparseCGraph(graphs.PetersenGraph()) - Check that the digraph methods are working (see :trac:`20253`):: + Check that the digraph methods are working (see :issue:`20253`):: sage: G = DiGraph([(0, 1), (1, 0)]) sage: G2 = G.copy(immutable=True) @@ -505,7 +505,7 @@ cdef class StaticSparseBackend(CGraphBackend): sage: g.edges(sort=True) [(1, 1, 1), (1, 1, 2), (1, 1, 3)] - :trac:`15810` is fixed:: + :issue:`15810` is fixed:: sage: DiGraph({1: {2: ['a', 'b'], 3: ['c']}, 2: {3: ['d']}}, immutable=True).is_directed_acyclic() True @@ -978,7 +978,7 @@ cdef class StaticSparseBackend(CGraphBackend): ... NotImplementedError: Sorry, I have no idea what is expected in this situation. I don't think that it is well-defined either, especially for multigraphs. - :trac:`15491`:: + :issue:`15491`:: sage: g = digraphs.RandomDirectedGNP(10, .3) sage: gi = DiGraph(g, data_structure="static_sparse") @@ -1025,7 +1025,7 @@ cdef class StaticSparseBackend(CGraphBackend): [(0, 1), (0, 4), (0, 5), (1, 2), (1, 6), (2, 3), (2, 7), (3, 4), (3, 8), (4, 9), (5, 7), (5, 8), (6, 8), (6, 9), (7, 9)] - :trac:`15665`:: + :issue:`15665`:: sage: Graph(immutable=True).edges(sort=False) [] @@ -1215,7 +1215,7 @@ cdef class StaticSparseBackend(CGraphBackend): sage: g.degree(0) 3 - :trac:`17225` about the degree of a vertex with a loop:: + :issue:`17225` about the degree of a vertex with a loop:: sage: Graph({0: [0]}, immutable=True).degree(0) 2 @@ -1308,7 +1308,7 @@ cdef class StaticSparseBackend(CGraphBackend): TESTS: - Issue :trac:`25550` is fixed:: + Issue :issue:`25550` is fixed:: sage: g = DiGraph({0: [1]}, immutable=True) sage: g.neighbors(1) diff --git a/src/sage/graphs/bipartite_graph.py b/src/sage/graphs/bipartite_graph.py index de2d22f8533..6d8e909fa57 100644 --- a/src/sage/graphs/bipartite_graph.py +++ b/src/sage/graphs/bipartite_graph.py @@ -320,14 +320,14 @@ class BipartiteGraph(Graph): TESTS: Make sure we can create a ``BipartiteGraph`` with keywords but no positional - arguments (:trac:`10958`):: + arguments (:issue:`10958`):: sage: B = BipartiteGraph(multiedges=True) sage: B.allows_multiple_edges() True Ensure that we can construct a ``BipartiteGraph`` with isolated vertices via - the reduced adjacency matrix (:trac:`10356`):: + the reduced adjacency matrix (:issue:`10356`):: sage: # needs sage.modules sage: a = BipartiteGraph(matrix(2, 2, [1, 0, 1, 0])) @@ -341,7 +341,7 @@ class BipartiteGraph(Graph): sage: sorted(g.left.union(g.right)) [0, 1, 2, 3, 4, 5, 6, 7] - Make sure that loops are not allowed (:trac:`23275`):: + Make sure that loops are not allowed (:issue:`23275`):: sage: B = BipartiteGraph(loops=True) Traceback (most recent call last): @@ -371,7 +371,7 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=None, *arg TESTS: - Check that :trac:`33249` is fixed:: + Check that :issue:`33249` is fixed:: sage: G = BipartiteGraph({2:[1], 3:[1], 4:[5]}, partition=([2,3,4],[1,5])) sage: print(G.left, G.right) @@ -1443,7 +1443,7 @@ def project_right(self): TESTS: - Issue :trac:`25985` is fixed:: + Issue :issue:`25985` is fixed:: sage: B = BipartiteGraph(graphs.CycleGraph(6)) sage: B.project_left().vertices(sort=True) diff --git a/src/sage/graphs/bliss.pyx b/src/sage/graphs/bliss.pyx index c623b5fe402..f8491088abc 100644 --- a/src/sage/graphs/bliss.pyx +++ b/src/sage/graphs/bliss.pyx @@ -450,7 +450,7 @@ cpdef canonical_form(G, partition=None, return_graph=False, use_edge_labels=True sage: 0 in g_[0] # optional - bliss True - Check that parameter ``use_edge_labels`` can be used (:trac:`27571`):: + Check that parameter ``use_edge_labels`` can be used (:issue:`27571`):: sage: g = Graph({1: {2: 'a'}}) sage: canonical_form(g, use_edge_labels=True) # optional - bliss @@ -458,7 +458,7 @@ cpdef canonical_form(G, partition=None, return_graph=False, use_edge_labels=True sage: canonical_form(g, use_edge_labels=False) # optional - bliss [(1, 0, None)] - Check that :trac:`28531` is fixed:: + Check that :issue:`28531` is fixed:: sage: from itertools import product, permutations sage: edges_list = [[(0,1), (1,2)], @@ -484,7 +484,7 @@ cpdef canonical_form(G, partition=None, return_graph=False, use_edge_labels=True sage: g1can == g2can # optional - bliss True - Check that :trac:`32395` is fixed:: + Check that :issue:`32395` is fixed:: sage: g = Graph([[0, 2]]) # 1 is not a vertex! sage: g.canonical_label(partition=[[0], [1], [2]], algorithm="bliss") # optional - bliss diff --git a/src/sage/graphs/chrompoly.pyx b/src/sage/graphs/chrompoly.pyx index f596272219e..6da52be470f 100644 --- a/src/sage/graphs/chrompoly.pyx +++ b/src/sage/graphs/chrompoly.pyx @@ -124,12 +124,12 @@ def chromatic_polynomial(G, return_tree_basis=False, algorithm='C', cache=None): TESTS: - Check that :trac:`21502` is solved:: + Check that :issue:`21502` is solved:: sage: graphs.EmptyGraph().chromatic_polynomial() 1 - Check that :trac:`27966` is solved:: + Check that :issue:`27966` is solved:: sage: Graph([[1, 1]], multiedges=True, loops=True).chromatic_polynomial() 0 diff --git a/src/sage/graphs/cliquer.pyx b/src/sage/graphs/cliquer.pyx index 2800efa5d37..62ce4816ccd 100644 --- a/src/sage/graphs/cliquer.pyx +++ b/src/sage/graphs/cliquer.pyx @@ -10,9 +10,9 @@ AUTHORS: - Nathann Cohen (2009-08-14): Initial version -- Jeroen Demeyer (2011-05-06): Make cliquer interruptible (:trac:`11252`) +- Jeroen Demeyer (2011-05-06): Make cliquer interruptible (:issue:`11252`) -- Nico Van Cleemput (2013-05-27): Handle the empty graph (:trac:`14525`) +- Nico Van Cleemput (2013-05-27): Handle the empty graph (:issue:`14525`) REFERENCE: diff --git a/src/sage/graphs/connectivity.pyx b/src/sage/graphs/connectivity.pyx index 910fcc88df8..d97f3a2819a 100644 --- a/src/sage/graphs/connectivity.pyx +++ b/src/sage/graphs/connectivity.pyx @@ -146,7 +146,7 @@ def connected_components(G, sort=None, key=None): - ``sort`` -- boolean (default: ``None``); if ``True``, vertices inside each component are sorted according to the default ordering - As of :trac:`35889`, this argument must be explicitly specified (unless a + As of :issue:`35889`, this argument must be explicitly specified (unless a ``key`` is given); otherwise a warning is printed and ``sort=True`` is used. The default will eventually be changed to ``False``. @@ -186,7 +186,7 @@ def connected_components(G, sort=None, key=None): ... ValueError: sort keyword is False, yet a key function is given - Deprecation warning for ``sort=None`` (:trac:`35889`):: + Deprecation warning for ``sort=None`` (:issue:`35889`):: sage: G = graphs.HouseGraph() sage: G.connected_components() @@ -296,7 +296,7 @@ def connected_component_containing_vertex(G, vertex, sort=None, key=None): - ``sort`` -- boolean (default: ``None``); if ``True``, vertices inside the component are sorted according to the default ordering - As of :trac:`35889`, this argument must be explicitly specified (unless a + As of :issue:`35889`, this argument must be explicitly specified (unless a ``key`` is given); otherwise a warning is printed and ``sort=True`` is used. The default will eventually be changed to ``False``. @@ -328,7 +328,7 @@ def connected_component_containing_vertex(G, vertex, sort=None, key=None): ... TypeError: the input must be a Sage graph - :trac:`35889` is fixed:: + :issue:`35889` is fixed:: sage: G = Graph([('A', 1)]) sage: G.connected_component_containing_vertex(1, sort=False) @@ -346,7 +346,7 @@ def connected_component_containing_vertex(G, vertex, sort=None, key=None): ... ValueError: sort keyword is False, yet a key function is given - Deprecation warning for ``sort=None`` (:trac:`35889`):: + Deprecation warning for ``sort=None`` (:issue:`35889`):: sage: G = graphs.HouseGraph() sage: G.connected_component_containing_vertex(1) @@ -497,7 +497,7 @@ def blocks_and_cut_vertices(G, algorithm="Tarjan_Boost", sort=False, key=None): sage: blocks_and_cut_vertices(g) ([[1, 2, 3], [5, 6], [5, 7], [5, 8], [4]], [5]) - A directed graph with Boost's algorithm (:trac:`25994`):: + A directed graph with Boost's algorithm (:issue:`25994`):: sage: rings = graphs.CycleGraph(10) sage: rings.merge_vertices([0, 5]) @@ -701,7 +701,7 @@ def blocks_and_cuts_tree(G): TESTS: When ``self`` is not connected, the resulting graph is a forest - (:trac:`24163`):: + (:issue:`24163`):: sage: from sage.graphs.connectivity import blocks_and_cuts_tree sage: T = blocks_and_cuts_tree(Graph(2)) @@ -1006,7 +1006,7 @@ def edge_connectivity(G, - ``"boost"`` -- use the Boost graph library (which is much more efficient). It is not available when ``edge_labels=True``, and it is - unreliable for directed graphs (see :trac:`18753`). + unreliable for directed graphs (see :issue:`18753`). -``"Sage"`` -- use Sage's implementation based on integer linear programming @@ -1115,7 +1115,7 @@ def edge_connectivity(G, [1, [(0, 1)], [{0}, {1, 2, 3, 4, 5, 6, 7, 8, 9}]] However, the Boost algorithm is not reliable if the input is directed - (see :trac:`18753`):: + (see :issue:`18753`):: sage: g = digraphs.Path(3) sage: edge_connectivity(g) @@ -1458,7 +1458,7 @@ def vertex_connectivity(G, value_only=True, sets=False, k=None, solver=None, ver ... TypeError: the input must be a Sage graph - Complete Graph with loops or multiple edges (:trac:`25589`):: + Complete Graph with loops or multiple edges (:issue:`25589`):: sage: G = Graph([(0, 1), (0, 1)], multiedges=True) sage: G.vertex_connectivity() # needs sage.numerical.mip @@ -1916,7 +1916,7 @@ def strong_articulation_points(G): ... TypeError: the input must be a Sage DiGraph - Issue :trac:`29958` is fixed:: + Issue :issue:`29958` is fixed:: sage: D = DiGraph('SA?GA??_??a???@?@OH_?@?I??b??G?AgGGCO??AC????a?????A@????AOCOQ?d??I?') sage: SAP = strong_articulation_points(D) @@ -2015,7 +2015,7 @@ def bridges(G, labels=True): sage: list(bridges(g, labels=True)) [(2, 3, 'label')] - Issue :trac:`23817` is solved:: + Issue :issue:`23817` is solved:: sage: G = Graph() sage: G.add_edge(0, 1) diff --git a/src/sage/graphs/digraph.py b/src/sage/graphs/digraph.py index 929fa9f31a7..fa8184664c3 100644 --- a/src/sage/graphs/digraph.py +++ b/src/sage/graphs/digraph.py @@ -515,7 +515,7 @@ class DiGraph(GenericGraph): sage: G.edges(sort=True) [(1, 2, None)] - Check that :trac:`27505` is fixed:: + Check that :issue:`27505` is fixed:: sage: DiGraph(DiGraph().networkx_graph(), weighted=None, format='NX') # needs networkx Digraph on 0 vertices @@ -552,7 +552,7 @@ def __init__(self, data=None, pos=None, loops=None, format=None, sage: g.get_pos() == graphs.PetersenGraph().get_pos() True - The position dictionary is not the input one (:trac:`22424`):: + The position dictionary is not the input one (:issue:`22424`):: sage: my_pos = {0:(0,0), 1:(1,1)} sage: D = DiGraph([[0,1], [(0,1)]], pos=my_pos) @@ -568,8 +568,8 @@ def __init__(self, data=None, pos=None, loops=None, format=None, sage: DiGraph({1:{2:0}}) Digraph on 2 vertices - An empty list or dictionary defines a simple graph (:trac:`10441` and - :trac:`12910`):: + An empty list or dictionary defines a simple graph (:issue:`10441` and + :issue:`12910`):: sage: DiGraph([]) Digraph on 0 vertices @@ -577,7 +577,7 @@ def __init__(self, data=None, pos=None, loops=None, format=None, Digraph on 0 vertices sage: # not "Multi-digraph on 0 vertices" - Problem with weighted adjacency matrix (:trac:`13919`):: + Problem with weighted adjacency matrix (:issue:`13919`):: sage: B = {0:{1:2,2:5,3:4},1:{2:2,4:7},2:{3:1,4:4,5:3}, ....: 3:{5:4},4:{5:1,6:5},5:{4:1,6:7,5:1}} @@ -628,7 +628,7 @@ def __init__(self, data=None, pos=None, loops=None, format=None, ... ValueError: a *directed* igraph graph was expected. To build an undirected graph, call the Graph constructor - Vertex labels are retained in the graph (:trac:`14708`):: + Vertex labels are retained in the graph (:issue:`14708`):: sage: g = DiGraph() sage: g.add_vertex(0) @@ -1046,12 +1046,12 @@ def to_undirected(self, data_structure=None, sparse=None): TESTS: - Immutable graphs yield immutable graphs (:trac:`17005`):: + Immutable graphs yield immutable graphs (:issue:`17005`):: sage: DiGraph([[1, 2]], immutable=True).to_undirected()._backend - Vertex labels will be retained (:trac:`14708`):: + Vertex labels will be retained (:issue:`14708`):: sage: D.set_vertex(0, 'foo') sage: G = D.to_undirected() @@ -1580,7 +1580,7 @@ def feedback_edge_set(self, constraint_generation=True, value_only=False, TESTS: Comparing with/without constraint generation. Also double-checks issue - :trac:`12833`:: + :issue:`12833`:: sage: for i in range(20): # needs sage.numerical.mip ....: g = digraphs.RandomDirectedGNP(10, .3) @@ -1591,7 +1591,7 @@ def feedback_edge_set(self, constraint_generation=True, value_only=False, ....: print("Oh my, oh my !") ....: break - Loops are part of the feedback edge set (:trac:`23989`):: + Loops are part of the feedback edge set (:issue:`23989`):: sage: # needs sage.combinat sage: D = digraphs.DeBruijn(2, 2) @@ -1619,7 +1619,7 @@ def feedback_edge_set(self, constraint_generation=True, value_only=False, ....: constraint_generation=False) 10 - Strongly connected components are well handled (:trac:`23989`):: + Strongly connected components are well handled (:issue:`23989`):: sage: g = digraphs.Circuit(3) * 2 sage: g.add_edge(0, 3) @@ -2425,7 +2425,7 @@ def radius(self, by_weight=False, algorithm=None, weight_function=None, ... ValueError: radius is not defined for the empty DiGraph - Check that :trac:`35300` is fixed:: + Check that :issue:`35300` is fixed:: sage: H = DiGraph([[42, 'John'], [(42, 'John')]]) sage: H.radius() @@ -2554,7 +2554,7 @@ def diameter(self, by_weight=False, algorithm=None, weight_function=None, ... ValueError: diameter is not defined for the empty DiGraph - :trac:`32095` is fixed:: + :issue:`32095` is fixed:: sage: g6 = 'guQOUOQCW[IaDBCVP_IE\\RfxV@WMSaeHgheEIA@tfOJkB~@EpGLCrs' sage: g6 += 'aPIpwgQI_`Abs_x?VWxNJAo@w\\hffCDAW]bYGMIZGC_PYOrIw[Gp[' @@ -2565,7 +2565,7 @@ def diameter(self, by_weight=False, algorithm=None, weight_function=None, sage: G.diameter(algorithm='DiFUB', by_weight=True) 3.0 - Check that :trac:`35300` is fixed:: + Check that :issue:`35300` is fixed:: sage: H = DiGraph([[42, 'John'], [(42, 'John')]]) sage: H.diameter() @@ -3424,7 +3424,7 @@ def layout_acyclic_dummy(self, heights=None, rankdir='up', **options): TESTS: - :trac:`31681` is fixed:: + :issue:`31681` is fixed:: sage: H = DiGraph({0: [1], 'X': [1]}, format='dict_of_lists') sage: pos = H.layout_acyclic_dummy(rankdir='up') @@ -3765,7 +3765,7 @@ def flow_polytope(self, edges=None, ends=None, backend=None): A 0-dimensional polyhedron in QQ^0 defined as the convex hull of 1 vertex - A digraph with multiple edges (:trac:`28837`):: + A digraph with multiple edges (:issue:`28837`):: sage: G = DiGraph([(0, 1), (0,1)], multiedges=True); G Multi-digraph on 2 vertices diff --git a/src/sage/graphs/digraph_generators.py b/src/sage/graphs/digraph_generators.py index 1ddad92806c..a5804ab9c8e 100644 --- a/src/sage/graphs/digraph_generators.py +++ b/src/sage/graphs/digraph_generators.py @@ -938,7 +938,7 @@ def DeBruijn(self, k, n, vertices='strings'): sage: digraphs.DeBruijn(0, 0) # needs sage.combinat De Bruijn digraph (k=0, n=0): Looped multi-digraph on 0 vertices - :trac:`22355`:: + :issue:`22355`:: sage: db = digraphs.DeBruijn(2, 2, vertices='strings') # needs sage.combinat sage: db.vertices(sort=True) # needs sage.combinat @@ -1200,7 +1200,7 @@ def Kautz(self, k, D, vertices='strings'): ... ValueError: diameter must be greater than or equal to one - :trac:`22355`:: + :issue:`22355`:: sage: K = digraphs.Kautz(2, 2, vertices='strings') # needs sage.combinat sage: K.vertices(sort=True) # needs sage.combinat diff --git a/src/sage/graphs/distances_all_pairs.pyx b/src/sage/graphs/distances_all_pairs.pyx index ec24fd5378f..db6df6b2cb1 100644 --- a/src/sage/graphs/distances_all_pairs.pyx +++ b/src/sage/graphs/distances_all_pairs.pyx @@ -1799,7 +1799,7 @@ def diameter(G, algorithm=None, source=None): TESTS: - This was causing a segfault. Fixed in :trac:`17873` :: + This was causing a segfault. Fixed in :issue:`17873` :: sage: G = graphs.PathGraph(1) sage: diameter(G, algorithm='iFUB') @@ -2305,7 +2305,7 @@ def szeged_index(G, algorithm=None): TESTS: - Not defined when the graph is not connected (:trac:`26803`):: + Not defined when the graph is not connected (:issue:`26803`):: sage: szeged_index(Graph({0: [1], 2: []})) Traceback (most recent call last): diff --git a/src/sage/graphs/domination.py b/src/sage/graphs/domination.py index 6323cdd29e4..6b119afed25 100644 --- a/src/sage/graphs/domination.py +++ b/src/sage/graphs/domination.py @@ -325,7 +325,7 @@ def dominating_sets(g, k=1, independent=False, total=False, connected=False, [[2], [3]] The dominating set is calculated for both the directed and undirected graphs - (modification introduced in :trac:`17905`):: + (modification introduced in :issue:`17905`):: sage: # needs sage.numerical.mip sage: g = digraphs.Path(3) @@ -561,7 +561,7 @@ def dominating_set(g, k=1, independent=False, total=False, connected=False, valu 4 The dominating set is calculated for both the directed and undirected graphs - (modification introduced in :trac:`17905`):: + (modification introduced in :issue:`17905`):: sage: g = digraphs.Path(3) sage: g.dominating_set(value_only=True) # needs sage.numerical.mip diff --git a/src/sage/graphs/edge_connectivity.pyx b/src/sage/graphs/edge_connectivity.pyx index 22163fc9c77..a2e367bb577 100644 --- a/src/sage/graphs/edge_connectivity.pyx +++ b/src/sage/graphs/edge_connectivity.pyx @@ -86,7 +86,7 @@ cdef class GabowEdgeConnectivity: TESTS: - :trac:`32169`:: + :issue:`32169`:: sage: dig6_string = r'[E_S?_hKIH@eos[BSg???Q@FShGC?hTHUGM?IPug?' sage: dig6_string += r'JOEYCdOzdkQGo@ADA@AAg?GAQW?' diff --git a/src/sage/graphs/generators/basic.py b/src/sage/graphs/generators/basic.py index 0dc2c00baef..216ac0b4e39 100644 --- a/src/sage/graphs/generators/basic.py +++ b/src/sage/graphs/generators/basic.py @@ -537,14 +537,14 @@ def CompleteBipartiteGraph(p, q, set_position=True): sage: G = graphics_array(j) sage: G.show() # long time - :trac:`12155`:: + :issue:`12155`:: sage: graphs.CompleteBipartiteGraph(5,6).complement() complement(Complete bipartite graph of order 5+6): Graph on 11 vertices TESTS: - Prevent negative dimensions (:trac:`18530`):: + Prevent negative dimensions (:issue:`18530`):: sage: graphs.CompleteBipartiteGraph(-1,1) Traceback (most recent call last): diff --git a/src/sage/graphs/generators/degree_sequence.py b/src/sage/graphs/generators/degree_sequence.py index 05c021403b0..5250bd9cb1a 100644 --- a/src/sage/graphs/generators/degree_sequence.py +++ b/src/sage/graphs/generators/degree_sequence.py @@ -107,7 +107,7 @@ def DegreeSequenceBipartite(s1, s2): TESTS: - :trac:`12155`:: + :issue:`12155`:: sage: graphs.DegreeSequenceBipartite([2,2,2,2,2],[5,5]).complement() # needs sage.combinat sage.modules Graph on 7 vertices diff --git a/src/sage/graphs/generators/families.py b/src/sage/graphs/generators/families.py index c91fcdc0dbe..f090296938e 100644 --- a/src/sage/graphs/generators/families.py +++ b/src/sage/graphs/generators/families.py @@ -4063,7 +4063,7 @@ def TuranGraph(n, r): True The Turan graph `T(n,r)` has `\frac{(r-1)(n^2-s^2)}{2r} + \frac{s(s-1)}{2}` - edges, where `s = n \mod r` (:trac:`34249`):: + edges, where `s = n \mod r` (:issue:`34249`):: sage: n = 12 sage: r = 8 diff --git a/src/sage/graphs/generators/random.py b/src/sage/graphs/generators/random.py index e0868b36e21..db70878cbde 100644 --- a/src/sage/graphs/generators/random.py +++ b/src/sage/graphs/generators/random.py @@ -221,7 +221,7 @@ def RandomBipartite(n1, n2, p, set_position=False, seed=None): ... ValueError: parameter p is a probability, and so should be a real value between 0 and 1 - :trac:`12155`:: + :issue:`12155`:: sage: graphs.RandomBipartite(5, 6, .2).complement() # needs numpy complement(Random bipartite graph of order 5+6 with edge probability 0.200000000000000): Graph on 11 vertices @@ -629,7 +629,7 @@ def RandomBoundedToleranceGraph(n, seed=None): TESTS: - Check that :trac:`32186` is fixed:: + Check that :issue:`32186` is fixed:: sage: for _ in range(100): _ = graphs.RandomBoundedToleranceGraph(1) diff --git a/src/sage/graphs/generators/world_map.py b/src/sage/graphs/generators/world_map.py index 76ec2b4f9ae..588689d516c 100644 --- a/src/sage/graphs/generators/world_map.py +++ b/src/sage/graphs/generators/world_map.py @@ -312,7 +312,7 @@ def WorldMap(): TESTS: - :trac:`24488`:: + :issue:`24488`:: sage: 'Iceland' in graphs.WorldMap() True diff --git a/src/sage/graphs/generic_graph.py b/src/sage/graphs/generic_graph.py index 5dfb59d9cbf..01d7cf01a37 100644 --- a/src/sage/graphs/generic_graph.py +++ b/src/sage/graphs/generic_graph.py @@ -677,7 +677,7 @@ def __hash__(self): Equality and hash do not depend on ordering of vertices. In other words, `G1 == G2` can be `True` even when `G1.vertices(sort=True) == G2.vertices(sort=True)` is - `False`. This is parts 1 and 2 of issue :trac:`17086`. :: + `False`. This is parts 1 and 2 of issue :issue:`17086`. :: sage: import functools sage: @functools.total_ordering @@ -710,7 +710,7 @@ def __hash__(self): True Hash of unweighted graphs does not depend on edge labels. That is, - part 3 of issue :trac:`17086` is fixed :: + part 3 of issue :issue:`17086` is fixed :: sage: G1 = Graph({0: {1: 'edge label A'}}, immutable=True) sage: G2 = Graph({0: {1: 'edge label B'}}, immutable=True) @@ -720,7 +720,7 @@ def __hash__(self): True Make sure ``hash_labels`` parameter behaves as expected - (:trac:`33255`):: + (:issue:`33255`):: sage: A = Graph([(1, 2, 1)], immutable=True) sage: B = Graph([(1, 2, 33)], immutable=True) @@ -844,14 +844,14 @@ def _bit_vector(self): TESTS: - Check that :trac:`27695` is fixed:: + Check that :issue:`27695` is fixed:: sage: G = Graph([[0,1,2],[(0,1)]]) sage: G.relabel({0:2,2:0}) sage: G._bit_vector() '001' - Check that :trac:`27695` fixes :trac:`26800`:: + Check that :issue:`27695` fixes :issue:`26800`:: sage: P = graphs.PetersenGraph() sage: v = P.random_vertex() @@ -2532,7 +2532,7 @@ def weighted_adjacency_matrix(self, sparse=True, vertices=None, TESTS: - The following doctest verifies that :trac:`4888` is fixed:: + The following doctest verifies that :issue:`4888` is fixed:: sage: G = DiGraph({0:{}, 1:{0:1}, 2:{0:1}}, weighted=True, sparse=True) sage: G.weighted_adjacency_matrix() # needs sage.modules @@ -2540,7 +2540,7 @@ def weighted_adjacency_matrix(self, sparse=True, vertices=None, [1 0 0] [1 0 0] - Check error message for non numerical edge weights (:trac:`33562`):: + Check error message for non numerical edge weights (:issue:`33562`):: sage: G = Graph([(0, 1)]) sage: G.weighted_adjacency_matrix() # needs sage.modules @@ -3593,7 +3593,7 @@ def multiple_edges(self, to_undirected=False, labels=True, sort=False, key=None) [(1, 2, 'h'), (2, 1, 'g')] Using the ``key`` argument to order multiple edges of incomparable - types (see :trac:`35903`):: + types (see :issue:`35903`):: sage: G = Graph([('A', 'B', 3), (1, 2, 1), ('A', 'B', 4), (1, 2, 2)], multiedges=True) sage: G.multiple_edges(sort=True) @@ -3725,7 +3725,7 @@ def name(self, new=None): TESTS: - Name of an immutable graph :trac:`15681` :: + Name of an immutable graph :issue:`15681` :: sage: g = graphs.PetersenGraph() sage: gi = g.copy(immutable=True) @@ -3950,7 +3950,7 @@ def weighted(self, new=None): TESTS: - Ensure that :trac:`10490` is fixed: allows a weighted graph to be set as + Ensure that :issue:`10490` is fixed: allows a weighted graph to be set as unweighted:: sage: G = Graph({1: {2: 3}}) @@ -3964,7 +3964,7 @@ def weighted(self, new=None): False Ensure that graphs using the static sparse backend cannot be mutated - using this method, as fixed in :trac:`15278`:: + using this method, as fixed in :issue:`15278`:: sage: G = graphs.PetersenGraph() sage: G.weighted() @@ -4282,7 +4282,7 @@ def is_eulerian(self, path=False): sage: g = Graph({0:[], 1:[], 2:[], 3:[]}); g.is_eulerian() True - Issue :trac:`35168` is fixed:: + Issue :issue:`35168` is fixed:: sage: Graph([[0, 42, 'John'], [(42, 0)]]).is_eulerian() False @@ -4549,7 +4549,7 @@ def eulerian_circuit(self, return_vertices=False, labels=True, path=False): sage: Graph({0: [0, 1, 1, 1, 1]}).eulerian_circuit(labels=False) [(0, 1), (1, 0), (0, 1), (1, 0), (0, 0)] - Check graphs without edges (:trac:`28451`):: + Check graphs without edges (:issue:`28451`):: sage: G = Graph() sage: G.add_vertex(0) @@ -5191,7 +5191,7 @@ def cycle_basis(self, output='vertex'): TESTS: - :trac:`27538`:: + :issue:`27538`:: sage: G = Graph([(1, 2, 'a'), (2, 3, 'b'), (2, 3, 'c'), ....: (3, 4, 'd'), (3, 4, 'e'), (4, 1, 'f')], multiedges=True) @@ -5476,7 +5476,7 @@ def is_planar(self, on_embedding=None, kuratowski=False, set_embedding=False, se [(0, [0, 0]), (1, [0, 1])] Digraphs with multiple edges or loops or pairs of opposite arcs are - partially supported (:trac:`35152`):: + partially supported (:issue:`35152`):: sage: D = digraphs.Complete(3) sage: D.is_planar() @@ -5533,7 +5533,7 @@ def is_planar(self, on_embedding=None, kuratowski=False, set_embedding=False, se TESTS: - :trac:`18045`:: + :issue:`18045`:: sage: g = graphs.CompleteGraph(4) sage: g.is_planar(set_embedding=True) @@ -5542,12 +5542,12 @@ def is_planar(self, on_embedding=None, kuratowski=False, set_embedding=False, se sage: g.is_planar(on_embedding=emb) False - :trac:`19193`:: + :issue:`19193`:: sage: posets.BooleanLattice(3).cover_relations_graph().is_planar() True - :trac:`33759`:: + :issue:`33759`:: sage: G = Graph([(1, 2)]) sage: for set_embedding, set_pos in ((True,True), (True,False), (False, True), (False, False)): @@ -5556,7 +5556,7 @@ def is_planar(self, on_embedding=None, kuratowski=False, set_embedding=False, se ....: assert (hasattr(G, '_embedding') and G._embedding is not None) == set_embedding, (set_embedding, set_pos) ....: assert (hasattr(G, '_pos') and G._pos is not None) == set_pos, (set_embedding, set_pos) - :trac:`34122`:: + :issue:`34122`:: sage: G = DiGraph([[1, 2], [1, 4], [1, 5], [2, 3], [2, 4], [2, 5], ....: [3, 4], [3, 5], [4, 5], [5, 1]]) @@ -5911,7 +5911,7 @@ def layout_planar(self, set_embedding=False, on_embedding=None, but has been provided as an edge of the external face Check the dependence of the computed position on the given combinatorial - embedding (:trac:`28152`):: + embedding (:issue:`28152`):: sage: G = Graph([[0, 1, 2, 3], [[0, 1], [0, 2], [0, 3]]]) sage: G.set_embedding({0: [1, 2, 3], 1: [0], 2: [0], 3: [0]}) @@ -5924,7 +5924,7 @@ def layout_planar(self, set_embedding=False, on_embedding=None, False Check that the function handles disconnected graphs and small - graphs (:trac:`29522`):: + graphs (:issue:`29522`):: sage: G = graphs.CycleGraph(4) + graphs.CycleGraph(5) sage: G.layout_planar() # random @@ -5944,7 +5944,7 @@ def layout_planar(self, set_embedding=False, on_embedding=None, {0: [0, 0], 1: [0, 1]} Check that the embedding can be specified for disconnected - graphs (:trac:`29522`):: + graphs (:issue:`29522`):: sage: H = graphs.LadderGraph(4) + graphs.CompleteGraph(3) sage: em = {0:[1,4], 4:[0,5], 1:[5,2,0], 5:[4,6,1], 2:[1,3,6], 6:[7,5,2], 3:[7,2], 7:[3,6], 8:[10,9], 9:[8,10], 10:[8,9]} @@ -6634,7 +6634,7 @@ def num_faces(self, embedding=None): ... ValueError: no embedding is provided and the graph is not planar - Issue :trac:`22003` is fixed:: + Issue :issue:`22003` is fixed:: sage: Graph(1).num_faces() 1 @@ -6743,7 +6743,7 @@ def planar_dual(self, embedding=None): .. TODO:: Implement the method for graphs that are not 3-vertex-connected, - or at least have a faster 3-vertex-connectivity test (:trac:`24635`). + or at least have a faster 3-vertex-connectivity test (:issue:`24635`). """ self._scream_if_not_simple() @@ -7040,7 +7040,7 @@ def edge_disjoint_spanning_trees(self, k, algorithm=None, root=None, solver=None sage: all(g.order() == t.size() + 1 for t in trees) True - Example of :trac:`32169`:: + Example of :issue:`32169`:: sage: d6 = r'[E_S?_hKIH@eos[BSg???Q@FShGC?hTHUGM?IPug?JOEYCdOzdkQGo' sage: d6 += r'@ADA@AAg?GAQW?[aIaSwHYcD@qQb@Dd?\hJTI@OHlJ_?C_OEIKoeC' @@ -7342,7 +7342,7 @@ def edge_cut(self, s, t, value_only=True, use_edge_labels=False, vertices=False, sage: g.edge_cut(1, 2, value_only=True, algorithm="LP") # needs sage.numerical.mip 3 - :trac:`12797`:: + :issue:`12797`:: sage: G = Graph([(0, 3, 1), (0, 4, 1), (1, 2, 1), (2, 3, 1), (2, 4, 1)]) sage: G.edge_cut(0, 1, value_only=False, use_edge_labels=True) @@ -8366,13 +8366,13 @@ def longest_path(self, s=None, t=None, use_edge_labels=False, algorithm="MILP", ....: not lp.is_connected()) False - :trac:`13019`:: + :issue:`13019`:: sage: g = graphs.CompleteGraph(5).to_directed() sage: g.longest_path(s=1, t=2) # needs sage.numerical.mip Subgraph of (Complete graph): Digraph on 5 vertices - :trac:`14412`:: + :issue:`14412`:: sage: l = [(0, 1), (0, 3), (2, 0), (3, 4)] sage: G = DiGraph(l) @@ -9091,7 +9091,7 @@ def traveling_salesman_problem(self, use_edge_labels=False, maximize=False, sage: G.is_hamiltonian() True - Check that weight 0 edges are handled correctly (see :trac:`16214`):: + Check that weight 0 edges are handled correctly (see :issue:`16214`):: sage: G = Graph([(0, 1, 1), (0, 2, 0), (0, 3, 1), (1, 2, 1), (1, 3, 0), (2, 3, 1)]) sage: tsp = G.traveling_salesman_problem(use_edge_labels=True) # needs sage.numerical.mip @@ -9645,7 +9645,7 @@ def feedback_vertex_set(self, value_only=False, solver=None, verbose=0, ... ValueError: the only implementation available for undirected graphs is with constraint_generation set to True - :trac:`35889` is fixed:: + :issue:`35889` is fixed:: sage: G = Graph([('A', 1)]) sage: G.feedback_vertex_set() @@ -9895,7 +9895,7 @@ def flow(self, x, y, value_only=True, integer=False, use_edge_labels=True, ValueError: the algorithm argument has to be equal to either "FF", "LP", "igraph", or None The two algorithms are indeed returning the same results (possibly with - some numerical noise, cf. :trac:`12362`):: + some numerical noise, cf. :issue:`12362`):: sage: g = graphs.RandomGNP(20, .3) sage: for u, v in g.edge_iterator(labels=False): @@ -10337,7 +10337,7 @@ def _ford_fulkerson(self, s, t, use_edge_labels=False, integer=False, value_only TESTS: - Graph with an isolated vertex (:trac:`24925`):: + Graph with an isolated vertex (:issue:`24925`):: sage: G = Graph({0: [], 1: []}) sage: G.flow(0, 1, algorithm='FF') @@ -10891,7 +10891,7 @@ def vertex_disjoint_paths(self, s, t, solver=None, verbose=0, TESTS: - Fix issues reported in :trac:`22990`:: + Fix issues reported in :issue:`22990`:: sage: g = digraphs.Path(2) sage: g.vertex_disjoint_paths(0, 1) # needs sage.numerical.mip @@ -11219,7 +11219,7 @@ def delete_vertex(self, vertex, in_order=False): TESTS: - Test that :trac:`33759` is fixed:: + Test that :issue:`33759` is fixed:: sage: G = Graph([(1, 4), (2, 3)]) sage: G.is_planar(set_embedding=True) @@ -11270,7 +11270,7 @@ def delete_vertices(self, vertices): TESTS: - Test that :trac:`33759` is fixed:: + Test that :issue:`33759` is fixed:: sage: G = Graph([(1, 4), (2, 3)]) sage: G.is_planar(set_embedding=True) @@ -11524,7 +11524,7 @@ def vertex_boundary(self, vertices1, vertices2=None): TESTS: When ``vertices2`` is ``None``, then ``vertices2`` is the complement of - ``vertices1``. Corrected in issue :trac:`20479`:: + ``vertices1``. Corrected in issue :issue:`20479`:: sage: P = graphs.PathGraph(3) sage: P.vertex_boundary([0, 1]) @@ -12002,7 +12002,7 @@ def merge_vertices(self, vertices): TESTS: - Check that :trac:`23290` was fixed:: + Check that :issue:`23290` was fixed:: sage: edgelist = [(0, 0, 'a'), (0, 1, 'b'), (1, 1, 'c')] sage: G = Graph(edgelist, loops=True, multiedges=True) @@ -12264,7 +12264,7 @@ def subdivide_edge(self, *args): TESTS: - :trac:`15895` is fixed:: + :issue:`15895` is fixed:: sage: F = graphs.PathGraph(3) sage: S = 'S'; F.add_vertex(S) @@ -13063,7 +13063,7 @@ def edge_boundary(self, vertices1, vertices2=None, labels=True, sort=False, key= [(0, 1), (0, 2)] Using the ``key`` argument to order multiple edges of incomparable - types (see :trac:`35903`):: + types (see :issue:`35903`):: sage: G = Graph([(1, 'A', 4), (1, 2, 3)]) sage: G.edge_boundary([1], sort=True) @@ -14176,7 +14176,7 @@ def _subgraph_by_deleting(self, vertices=None, edges=None, inplace=False, sage: h.get_vertices() {3: 'v3', 4: 'v4', 5: 'v5'} - :trac:`17683`:: + :issue:`17683`:: sage: graphs.PetersenGraph().copy(immutable=True).subgraph([1, 2]) Subgraph of (Petersen graph): Graph on 2 vertices @@ -14336,12 +14336,12 @@ def subgraph_search(self, G, induced=False): TESTS: - Inside of a small graph (:trac:`13906`):: + Inside of a small graph (:issue:`13906`):: sage: Graph(5).subgraph_search(Graph(1)) # needs sage.modules Graph on 1 vertex - For labelled edges (:trac:`14999`):: + For labelled edges (:issue:`14999`):: sage: G = graphs.CompleteGraph(10) sage: C = G.subgraph_search(graphs.CycleGraph(4)) # needs sage.modules @@ -14436,7 +14436,7 @@ def subgraph_search_count(self, G, induced=False): TESTS: - Inside of a small graph (:trac:`13906`):: + Inside of a small graph (:issue:`13906`):: sage: Graph(5).subgraph_search_count(Graph(1)) # needs sage.modules 5 @@ -14566,13 +14566,13 @@ def subgraph_search_iterator(self, G, induced=False, return_graphs=True): TESTS: - Inside of a small graph (:trac:`13906`):: + Inside of a small graph (:issue:`13906`):: sage: list(Graph(5).subgraph_search_iterator(Graph(1))) # needs sage.modules [Graph on 1 vertex, Graph on 1 vertex, Graph on 1 vertex, Graph on 1 vertex, Graph on 1 vertex] - Check that the behavior of the method is consistent (:trac:`34004`):: + Check that the behavior of the method is consistent (:issue:`34004`):: sage: g = graphs.CycleGraph(3) sage: for i in range(3): # needs sage.modules @@ -14783,14 +14783,14 @@ def is_chordal(self, certificate=False, algorithm="B"): TESTS: - This should not raise exceptions (:trac:`10899`):: + This should not raise exceptions (:issue:`10899`):: sage: Graph(1).is_chordal() True sage: for g in graphs(5): ....: _ = g.is_chordal() - :trac:`11735`:: + :issue:`11735`:: sage: g = Graph({3: [2, 1, 4], 2: [1], 4: [1], 5: [2, 1, 4]}) sage: _, g1 = g.is_chordal(certificate=True); g1.is_chordal() @@ -15250,7 +15250,7 @@ def is_gallai_tree(self): TESTS: - Check that :trac:`25613` is fixed:: + Check that :issue:`25613` is fixed:: sage: g = graphs.CycleGraph(5) sage: g.add_edge(0, 5) @@ -15323,7 +15323,7 @@ def is_clique(self, vertices=None, directed_clique=False, induced=True, loops=Fa TESTS: - Check that :trac:`25696` is fixed:: + Check that :issue:`25696` is fixed:: sage: G = Graph([(0, 1), (0, 1), (0, 1), (0, 3), (1, 2), (2, 3)], multiedges=True) sage: G.is_clique() @@ -16231,7 +16231,7 @@ def girth(self, certificate=False): TESTS: - Prior to :trac:`12243`, the girth computation assumed vertices were + Prior to :issue:`12243`, the girth computation assumed vertices were integers (and failed). The example below tests the computation for graphs with vertices that are not integers. In this example the vertices are sets:: @@ -16242,13 +16242,13 @@ def girth(self, certificate=False): sage: G.girth() 5 - Issue :trac:`12355`:: + Issue :issue:`12355`:: sage: H = Graph([(0, 1), (0, 3), (0, 4), (0, 5), (1, 2), (1, 3), (1, 4), (1, 6), (2, 5), (3, 4), (5, 6)]) sage: H.girth() 3 - Girth < 3 (see :trac:`12355`):: + Girth < 3 (see :issue:`12355`):: sage: g = graphs.PetersenGraph() sage: g.allow_multiple_edges(True) @@ -16269,7 +16269,7 @@ def girth(self, certificate=False): sage: g.girth() 2 - Directed graphs (see :trac:`28142`):: + Directed graphs (see :issue:`28142`):: sage: g = digraphs.Circuit(6) sage: g.girth() @@ -16382,7 +16382,7 @@ def odd_girth(self, algorithm="bfs", certificate=False): sage: [graphs.CycleGraph(i).odd_girth() for i in range(3, 12, 2)] [3, 5, 7, 9, 11] - Directed graphs (see :trac:`28142`):: + Directed graphs (see :issue:`28142`):: sage: g = digraphs.Circuit(7) sage: g.odd_girth() @@ -17140,7 +17140,7 @@ def shortest_path(self, u, v, by_weight=False, algorithm=None, ... ValueError: vertex '6' is not in the (di)graph - If no path exists from ``u`` to ``v`` (:trac:`28098`):: + If no path exists from ``u`` to ``v`` (:issue:`28098`):: sage: G = Graph() sage: G.add_vertices([1, 2]) @@ -17329,7 +17329,7 @@ def shortest_path_length(self, u, v, by_weight=False, algorithm=None, ... ValueError: vertex '6' is not in the (di)graph - If no path exists from ``u`` to ``v`` (:trac:`28098`):: + If no path exists from ``u`` to ``v`` (:issue:`28098`):: sage: G = Graph() sage: G.add_vertices([1, 2]) @@ -18579,7 +18579,7 @@ def average_distance(self, by_weight=False, algorithm=None, ... ValueError: average distance is not defined for empty or one-element graph - :trac:`22885`:: + :issue:`22885`:: sage: G = graphs.PetersenGraph() sage: G2 = Graph([(u, v, 2) for u,v in G.edge_iterator(labels=False)], weighted=True) @@ -18696,7 +18696,7 @@ def breadth_first_search(self, start, ignore_direction=False, sage: list(D.breadth_first_search(5 ,neighbors=D.neighbors, distance=2)) [5, 1, 2, 7, 0, 4, 6] - It is possible (:trac:`16470`) using the keyword ``report_distance`` to + It is possible (:issue:`16470`) using the keyword ``report_distance`` to get pairs ``(vertex, distance)`` encoding the distance from the starting vertices:: @@ -18996,7 +18996,7 @@ def add_clique(self, vertices, loops=False): TESTS: - Using different kinds of iterable container of vertices, :trac:`22906`:: + Using different kinds of iterable container of vertices, :issue:`22906`:: sage: G = Graph(4) sage: G.add_clique(G) @@ -19164,7 +19164,7 @@ def complement(self): TESTS: - We check that :trac:`15669` is fixed:: + We check that :issue:`15669` is fixed:: sage: G = graphs.PathGraph(5).copy(immutable=True) sage: G.complement() @@ -19367,7 +19367,7 @@ def union(self, other, immutable=None): TESTS: - Multiple edges and loops (:trac:`15627`):: + Multiple edges and loops (:issue:`15627`):: sage: g = Graph(multiedges=True, loops=True) sage: g.add_edges(graphs.PetersenGraph().edges(sort=True)) @@ -19380,13 +19380,13 @@ def union(self, other, immutable=None): sage: (2*g.size()) == (2*g).size() True - Immutable input ? Immutable output (:trac:`15627`):: + Immutable input ? Immutable output (:issue:`15627`):: sage: g = g.copy(immutable=True) sage: (2*g)._backend - Check that weighted is appropriately inherited (:trac:`23843`):: + Check that weighted is appropriately inherited (:issue:`23843`):: sage: G1 = Graph(weighted=True) sage: G2 = Graph(weighted=False) @@ -19720,7 +19720,7 @@ def strong_product(self, other): sage: T.is_isomorphic(J.strong_product(I)) True - Counting the edges (see :trac:`13699`):: + Counting the edges (see :issue:`13699`):: sage: # needs networkx sage: g = graphs.RandomGNP(5, .5) @@ -20841,7 +20841,7 @@ def layout_graphviz(self, dim=2, prog='dot', **options): TESTS: - Make sure that :trac:`12364` is fixed:: + Make sure that :issue:`12364` is fixed:: sage: # needs sage.combinat sage.modules sage: m = WordMorphism('a->abb,b->ba') @@ -20961,7 +20961,7 @@ def _circle_embedding(self, vertices, center=(0, 0), radius=1, shift=0, angle=0, TESTS: - The rounding error raised in :trac:`22050` is fixed:: + The rounding error raised in :issue:`22050` is fixed:: sage: G = Graph(4) sage: G._circle_embedding(G.vertices(sort=True)) @@ -21904,7 +21904,7 @@ def _keys_for_vertices(self): TESTS: - We check that :trac:`21916` is fixed:: + We check that :issue:`21916` is fixed:: sage: g = graphs.PetersenGraph() sage: key = g._keys_for_vertices() @@ -22374,14 +22374,14 @@ def graphviz_string(self, **options): node_4 -- node_5; } - Check that :trac:`22950` is fixed:: + Check that :issue:`22950` is fixed:: sage: D = DiGraph({1: [2]}) sage: D.graphviz_string(edge_colors={'blue': [(1, 2)]}) 'digraph {\n node_0 [label="1"];\n node_1 [label="2"];\n\n node_0 -> node_1 [color = "blue"];\n}' - Check that :trac:`25121` is fixed:: + Check that :issue:`25121` is fixed:: sage: G = Graph([(0, 1)]) sage: G.graphviz_string(edge_colors={(0.25, 0.5, 1.0): [(0, 1)]}) # needs sage.plot @@ -22398,7 +22398,7 @@ def graphviz_string(self, **options): \end{tikzpicture} An error is raised if the value of the edge option ``dir`` is - misspelled (:trac:`31381`):: + misspelled (:issue:`31381`):: sage: edges = [(0,1,'a'), (1,2,'b'), (2,3,'c'), (3,4,'d')] sage: G = DiGraph(edges) @@ -22412,7 +22412,7 @@ def graphviz_string(self, **options): (0, 1) should be 'forward', 'back', 'both', or 'none' An error is raised if the value of the edge option ``edge_string`` - is invalid (:trac:`31381`):: + is invalid (:issue:`31381`):: sage: edges = [(0,1,'a'), (1,2,'b'), (2,3,'c'), (3,4,'d')] sage: G = DiGraph(edges) @@ -23159,7 +23159,7 @@ def relabel(self, perm=None, inplace=True, return_map=False, check_input=True, c sage: G.get_pos() {0: (0, 0), 1: (2, 0), 2: (3, 0), 3: (4, 0)} - Check that :trac:`12477` is fixed:: + Check that :issue:`12477` is fixed:: sage: g = Graph({1:[2,3]}) sage: rel = {1:'a', 2:'b'} @@ -23176,7 +23176,7 @@ def relabel(self, perm=None, inplace=True, return_map=False, check_input=True, c ... ValueError: To relabel an immutable graph use inplace=False - :trac:`16257`:: + :issue:`16257`:: sage: G = graphs.PetersenGraph() sage: G.relabel( [ i+1 for i in range(G.order()) ], inplace=True ) @@ -23648,7 +23648,7 @@ def automorphism_group(self, partition=None, verbosity=0, TESTS: - We get a :class:`KeyError` when given an invalid partition (:trac:`6087`):: + We get a :class:`KeyError` when given an invalid partition (:issue:`6087`):: sage: g = graphs.CubeGraph(3) sage: g.relabel() @@ -23690,7 +23690,7 @@ def automorphism_group(self, partition=None, verbosity=0, ['a', 'b'] We can check that the subgroups are labelled correctly - (:trac:`15656`):: + (:issue:`15656`):: sage: G1 = Graph(':H`ECw@HGXGAGUG`e') sage: G = G1.automorphism_group() # needs sage.groups @@ -23699,7 +23699,7 @@ def automorphism_group(self, partition=None, verbosity=0, Subgroup generated by [(0,7)(1,4)(2,3)(6,8)] of (Permutation Group with generators [(0,7)(1,4)(2,3)(6,8)])] We check that the representations of the groups returned with ``'sage'`` - and ``'bliss'`` are the same (:trac:`27571`):: + and ``'bliss'`` are the same (:issue:`27571`):: sage: # needs sage.groups sage.libs.pari sage: G = graphs.PaleyGraph(9) @@ -23977,7 +23977,7 @@ def is_hamiltonian(self, solver=None, constraint_generation=None, sage: g.is_hamiltonian() # needs sage.numerical.mip True - :trac:`16210`:: + :issue:`16210`:: sage: g = graphs.CycleGraph(10) sage: g.allow_loops(True) @@ -24164,7 +24164,7 @@ def is_isomorphic(self, other, certificate=False, verbosity=0, edge_labels=False True Ensure that isomorphic looped graphs with non-range vertex labels report - correctly (:trac:`10814`, fixed by :trac:`8395`):: + correctly (:issue:`10814`, fixed by :issue:`8395`):: sage: G1 = Graph({1:[0,1]}) sage: G2 = Graph({2:[0,2]}) @@ -24183,7 +24183,7 @@ def is_isomorphic(self, other, certificate=False, verbosity=0, edge_labels=False sage: D.is_isomorphic(D,edge_labels=True, certificate=True) (True, {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5}) - Ensure that :trac:`11620` is fixed:: + Ensure that :issue:`11620` is fixed:: sage: G1 = DiGraph([(0, 0, 'c'), (0, 4, 'b'), (0, 5, 'c'), ....: (0, 5, 't'), (1, 1, 'c'), (1, 3,'c'), (1, 3, 't'), (1, 5, 'b'), @@ -24197,7 +24197,7 @@ def is_isomorphic(self, other, certificate=False, verbosity=0, edge_labels=False sage: G1.is_isomorphic(G2,edge_labels=True) True - Ensure that :trac:`13114` is fixed :: + Ensure that :issue:`13114` is fixed :: sage: g = Graph([(0, 0, 0), (0, 2, 0), (1, 1, 0), (1, 2, 0), (1, 2, 1), (2, 2, 0)], multiedges=True, loops=True) @@ -24205,19 +24205,19 @@ def is_isomorphic(self, other, certificate=False, verbosity=0, edge_labels=False sage: g.is_isomorphic(gg) False - Ensure that :trac:`14777` is fixed :: + Ensure that :issue:`14777` is fixed :: sage: g = Graph() sage: h = Graph() sage: g.is_isomorphic(h) True - as well as :trac:`18613`:: + as well as :issue:`18613`:: sage: g.is_isomorphic(h, certificate=True) (True, None) - Ensure that :trac:`24964` is fixed :: + Ensure that :issue:`24964` is fixed :: sage: A = DiGraph([(6,7,'a'), (6,7,'b')], multiedges=True) sage: B = DiGraph([('x','y','u'), ('x','y','v')], multiedges=True) @@ -24439,7 +24439,7 @@ class by some canonization function `c`. If `G` and `H` are graphs, sage: G.canonical_label(algorithm='bliss', certificate=True) # optional - bliss (Graph on 2 vertices, {'a': 1, 'b': 0}) - Check for immutable graphs (:trac:`16602`):: + Check for immutable graphs (:issue:`16602`):: sage: G = Graph([[1, 2], [2, 3]], immutable=True) sage: C = G.canonical_label(); C @@ -24468,7 +24468,7 @@ class by some canonization function `c`. If `G` and `H` are graphs, sage: g.canonical_label(algorithm='bliss') # optional - bliss Path graph: Graph on 1 vertex - Check that :trac:`28531` is fixed:: + Check that :issue:`28531` is fixed:: sage: from itertools import product, permutations sage: edges_list = [[(0,1), (2,3)], @@ -25516,7 +25516,7 @@ def graph_isom_equivalent_non_edge_labeled_graph(g, partition=None, standard_lab TESTS: - Ensure that :trac:`14108` is fixed:: + Ensure that :issue:`14108` is fixed:: sage: G=DiGraph({0:[0,0,0],1:[1,1,1]}) sage: H=DiGraph({0:[0,0,0,0],1:[1,1]}) diff --git a/src/sage/graphs/generic_graph_pyx.pyx b/src/sage/graphs/generic_graph_pyx.pyx index 653a36d43f3..9d091cdee58 100644 --- a/src/sage/graphs/generic_graph_pyx.pyx +++ b/src/sage/graphs/generic_graph_pyx.pyx @@ -656,7 +656,7 @@ cdef class SubgraphSearch: TESTS: - Test proper initialization and deallocation, see :trac:`14067`. + Test proper initialization and deallocation, see :issue:`14067`. We intentionally only create the class without doing any computations with it:: @@ -727,7 +727,7 @@ cdef class SubgraphSearch: 6 Check that the method is working even when vertices or edges are of - incomparable types (see :trac:`35904`):: + incomparable types (see :issue:`35904`):: sage: from sage.graphs.generic_graph_pyx import SubgraphSearch sage: G = Graph() @@ -778,7 +778,7 @@ cdef class SubgraphSearch: TESTS: - Check that :trac:`21828` is fixed:: + Check that :issue:`21828` is fixed:: sage: Poset().is_incomparable_chain_free(1,1) # indirect doctest # needs sage.modules True @@ -1285,7 +1285,7 @@ cpdef tuple find_hamiltonian(G, long max_iter=100000, long reset_bound=30000, TESTS: - :trac:`10206` -- Hamiltonian cycle in small (di)graphs:: + :issue:`10206` -- Hamiltonian cycle in small (di)graphs:: sage: for n in range(3): ....: for G in graphs(n): @@ -1303,7 +1303,7 @@ cpdef tuple find_hamiltonian(G, long max_iter=100000, long reset_bound=30000, order 2 and size 1: (False, [0, 1]) order 2 and size 2: (False, [0, 1]) - :trac:`10206` -- Hamiltonian path in small (di)graphs:: + :issue:`10206` -- Hamiltonian path in small (di)graphs:: sage: for n in range(3): ....: for G in graphs(n): @@ -1321,7 +1321,7 @@ cpdef tuple find_hamiltonian(G, long max_iter=100000, long reset_bound=30000, order 2 and size 1: (True, [0, 1]) order 2 and size 2: (True, [0, 1]) - :trac:`10206` -- disconnected graphs:: + :issue:`10206` -- disconnected graphs:: sage: G = graphs.CompleteGraph(4) + Graph(1) sage: fh(G, find_path=False) diff --git a/src/sage/graphs/graph.py b/src/sage/graphs/graph.py index 0308fbca960..f7eac6cd39c 100644 --- a/src/sage/graphs/graph.py +++ b/src/sage/graphs/graph.py @@ -761,7 +761,7 @@ class Graph(GenericGraph): ... ValueError: there must be one or two nonzero entries per column in an incidence matrix, got entries [1, 1] in column 2 - Check that :trac:`9714` is fixed:: + Check that :issue:`9714` is fixed:: sage: # needs sage.modules sage: MA = Matrix([[1,2,0], [0,2,0], [0,0,1]]) @@ -909,7 +909,7 @@ class Graph(GenericGraph): sage: G.edges(sort=True) [(1, 2, None)] - Check that :trac:`27505` is fixed:: + Check that :issue:`27505` is fixed:: sage: Graph(Graph().networkx_graph(), weighted=None, format='NX') # needs networkx Graph on 0 vertices @@ -942,7 +942,7 @@ def __init__(self, data=None, pos=None, loops=None, format=None, sage: g.get_pos() == h.get_pos() True - The position dictionary is not the input one (:trac:`22424`):: + The position dictionary is not the input one (:issue:`22424`):: sage: my_pos = {0:(0,0), 1:(1,1)} sage: G = Graph([[0,1], [(0,1)]], pos=my_pos) @@ -958,7 +958,7 @@ def __init__(self, data=None, pos=None, loops=None, format=None, sage: g.get_pos() == h.get_pos() True - Loops are not counted as multiedges (see :trac:`11693`) and edges are + Loops are not counted as multiedges (see :issue:`11693`) and edges are not counted twice :: sage: Graph({1:[1]}).num_edges() @@ -967,7 +967,7 @@ def __init__(self, data=None, pos=None, loops=None, format=None, 2 An empty list or dictionary defines a simple graph - (:trac:`10441` and :trac:`12910`):: + (:issue:`10441` and :issue:`12910`):: sage: Graph([]) Graph on 0 vertices @@ -975,7 +975,7 @@ def __init__(self, data=None, pos=None, loops=None, format=None, Graph on 0 vertices sage: # not "Multi-graph on 0 vertices" - Verify that the int format works as expected (:trac:`12557`):: + Verify that the int format works as expected (:issue:`12557`):: sage: Graph(2).adjacency_matrix() # needs sage.modules [0 0] @@ -983,7 +983,7 @@ def __init__(self, data=None, pos=None, loops=None, format=None, sage: Graph(3) == Graph(3,format='int') True - Problem with weighted adjacency matrix (:trac:`13919`):: + Problem with weighted adjacency matrix (:issue:`13919`):: sage: B = {0:{1:2,2:5,3:4},1:{2:2,4:7},2:{3:1,4:4,5:3},3:{5:4},4:{5:1,6:5},5:{6:7}} sage: grafo3 = Graph(B, weighted=True) @@ -1005,7 +1005,7 @@ def __init__(self, data=None, pos=None, loops=None, format=None, Petersen graph: Graph on 10 vertices Check error messages for graphs built from incidence matrices (see - :trac:`18440`):: + :issue:`18440`):: sage: Graph(matrix([[-1, 1, 0],[1, 0, 0]])) # needs sage.modules Traceback (most recent call last): @@ -1022,7 +1022,7 @@ def __init__(self, data=None, pos=None, loops=None, format=None, ... ValueError: each column of a non-oriented incidence matrix must sum to 2, but column 0 does not - Vertex labels are retained in the graph (:trac:`14708`):: + Vertex labels are retained in the graph (:issue:`14708`):: sage: g = Graph() sage: g.add_vertex(0) @@ -1355,12 +1355,12 @@ def sparse6_string(self): sage: G.sparse6_string() ':?' - Check that :trac:`18445` is fixed:: + Check that :issue:`18445` is fixed:: sage: Graph(graphs.KneserGraph(5,2).sparse6_string()).size() 15 - Graphs with 1 vertex are correctly handled (:trac:`24923`):: + Graphs with 1 vertex are correctly handled (:issue:`24923`):: sage: Graph([(0, 0)], loops=True).sparse6_string() ':@^' @@ -1373,7 +1373,7 @@ def sparse6_string(self): sage: H.order(), H.size() (1, 2) - Sparse6 encoding of canonical graph is unique (:trac:`31026`):: + Sparse6 encoding of canonical graph is unique (:issue:`31026`):: sage: G = Graph([(0,1),(1,2),(2,3),(3,0),(0,2)]) sage: H = Graph([(0,1),(1,2),(2,3),(3,0),(1,3)]) @@ -1390,7 +1390,7 @@ def sparse6_string(self): sage: G_.sparse6_string() == H_.sparse6_string() True - The method can handle vertices with different types (:trac:`31026`):: + The method can handle vertices with different types (:issue:`31026`):: sage: G = Graph([(1, 'a')]) sage: H = Graph(G.sparse6_string()) @@ -1523,7 +1523,7 @@ def is_tree(self, certificate=False, output='vertex'): TESTS: - :trac:`14434` is fixed:: + :issue:`14434` is fixed:: sage: g = Graph({0:[1,4,5],3:[4,8,9],4:[9],5:[7,8],7:[9]}) sage: _,cycle = g.is_tree(certificate=True) @@ -1540,7 +1540,7 @@ def is_tree(self, certificate=False, output='vertex'): sage: graphs.EmptyGraph().is_tree(certificate=True) (False, None) - :trac:`22912` is fixed:: + :issue:`22912` is fixed:: sage: G = Graph([(0,0), (0,1)], loops=True) sage: G.is_tree(certificate=True) @@ -1548,7 +1548,7 @@ def is_tree(self, certificate=False, output='vertex'): sage: G.is_tree(certificate=True, output='edge') (False, [(0, 0, None)]) - Case of edges with incomparable types (see :trac:`35903`):: + Case of edges with incomparable types (see :issue:`35903`):: sage: G = Graph(multiedges=True) sage: G.add_cycle(['A', 1, 2, 3]) @@ -1710,7 +1710,7 @@ def is_cactus(self): sage: Graph('Fli@?').is_cactus() False - Test a graph that is not outerplanar, see :trac:`24480`:: + Test a graph that is not outerplanar, see :issue:`24480`:: sage: graphs.Balaban10Cage().is_cactus() # needs networkx False @@ -2274,7 +2274,7 @@ def is_even_hole_free(self, certificate=False): TESTS: - Bug reported in :trac:`9925`, and fixed by :trac:`9420`:: + Bug reported in :issue:`9925`, and fixed by :issue:`9420`:: sage: g = Graph(':SiBFGaCEF_@CE`DEGH`CEFGaCDGaCDEHaDEF`CEH`ABCDEF', ....: loops=False, multiedges=False) @@ -2647,7 +2647,7 @@ def is_perfect(self, certificate=False): TESTS: - Check that :trac:`13546` has been fixed:: + Check that :issue:`13546` has been fixed:: sage: Graph(':FgGE@I@GxGs', loops=False, multiedges=False).is_perfect() # needs sage.modules False @@ -3488,7 +3488,7 @@ def orientations(self, data_structure=None, sparse=None): An orientation of Petersen graph: Digraph on 10 vertices An orientation must have the same ground set of vertices as the original - graph (:trac:`24366`):: + graph (:issue:`24366`):: sage: G = Graph(1) sage: next(G.orientations()) @@ -3787,7 +3787,7 @@ def chromatic_number(self, algorithm="DLX", solver=None, verbose=0, ... ValueError: the 'algorithm' keyword must be set to either 'DLX', 'MILP', 'CP' or 'parallel' - Test on a random graph (:trac:`33559`, modified in :trac:`12379`):: + Test on a random graph (:issue:`33559`, modified in :issue:`12379`):: sage: G = graphs.RandomGNP(15, .2) sage: algorithms = ['DLX', 'MILP', 'CP', 'parallel'] @@ -5945,7 +5945,7 @@ def distance_graph(self, dist): AUTHOR: - Rob Beezer, 2009-11-25, :trac:`7533` + Rob Beezer, 2009-11-25, :issue:`7533` """ from sage.rings.infinity import Infinity # If input is not a list, make a list with this single object @@ -6024,12 +6024,12 @@ def to_directed(self, data_structure=None, sparse=None): sage: Graph([[1, 2]], immutable=True).to_directed()._backend - :trac:`17005`:: + :issue:`17005`:: sage: Graph([[1,2]], immutable=True).to_directed() Digraph on 2 vertices - :trac:`22424`:: + :issue:`22424`:: sage: G1 = graphs.RandomGNP(5,0.5) sage: gp1 = G1.graphplot(save_pos=True) # needs sage.plot @@ -6039,7 +6039,7 @@ def to_directed(self, data_structure=None, sparse=None): sage: gp2 = G2.graphplot() # needs sage.plot sage: gp1 = G1.graphplot() # needs sage.plot - Vertex labels will be retained (:trac:`14708`):: + Vertex labels will be retained (:issue:`14708`):: sage: G = Graph({0: [1, 2], 1: [0]}) sage: G.set_vertex(0, 'foo') @@ -7184,7 +7184,7 @@ def vertex_cover(self, algorithm="Cliquer", value_only=False, ... ValueError: the algorithm must be "Cliquer", "MILP" or "mcqd" - Issue :trac:`24287` is fixed:: + Issue :issue:`24287` is fixed:: sage: G = Graph([(0,1)]*5 + [(1,2)]*2, multiedges=True) sage: G.vertex_cover(reduction_rules=True, algorithm='MILP') # needs sage.numerical.mip @@ -7192,7 +7192,7 @@ def vertex_cover(self, algorithm="Cliquer", value_only=False, sage: G.vertex_cover(reduction_rules=False) # needs sage.numerical.mip [1] - Issue :trac:`25988` is fixed:: + Issue :issue:`25988` is fixed:: sage: B = BipartiteGraph(graphs.CycleGraph(6)) sage: B.vertex_cover(algorithm='Cliquer', reduction_rules=True) @@ -8048,7 +8048,7 @@ def modular_decomposition(self, algorithm=None, style='tuple'): .. NOTE:: A buggy implementation of linear time algorithm from [TCHP2008]_ was - removed in Sage 9.7, see :trac:`25872`. + removed in Sage 9.7, see :issue:`25872`. TESTS: @@ -8066,7 +8066,7 @@ def modular_decomposition(self, algorithm=None, style='tuple'): sage: Graph(1).modular_decomposition(style='tree') PRIME[0[]] - Vertices may be arbitrary --- check that :trac:`24898` is fixed:: + Vertices may be arbitrary --- check that :issue:`24898` is fixed:: sage: md = Graph({(1,2):[(2,3)],(2,3):[(1,2)]}).modular_decomposition() sage: md[0] @@ -8081,7 +8081,7 @@ def modular_decomposition(self, algorithm=None, style='tuple'): ... ValueError: style must be 'tuple' or 'tree' - Check that :trac:`25872` is fixed:: + Check that :issue:`25872` is fixed:: sage: G1 = Graph('FwA]w') sage: G2 = Graph('F@Nfg') @@ -8567,7 +8567,7 @@ def gomory_hu_tree(self, algorithm=None): TESTS: - :trac:`16475`:: + :issue:`16475`:: sage: G = graphs.PetersenGraph() sage: for u,v in G.edge_iterator(labels=False): diff --git a/src/sage/graphs/graph_coloring.pyx b/src/sage/graphs/graph_coloring.pyx index f5025a641ac..c300d4f39a9 100644 --- a/src/sage/graphs/graph_coloring.pyx +++ b/src/sage/graphs/graph_coloring.pyx @@ -352,7 +352,7 @@ cpdef first_coloring(G, n=0, hex_colors=False) noexcept: TESTS: - :trac:`33554` is fixed:: + :issue:`33554` is fixed:: sage: P3 = graphs.PathGraph(3) sage: [len(graph_coloring.first_coloring(P3, k)) for k in range(P3.order() + 1)] @@ -532,7 +532,7 @@ def vertex_coloring(g, k=None, value_only=False, hex_colors=False, solver=None, sage: vertex_coloring(empty) [] - :trac:`33559` is fixed:: + :issue:`33559` is fixed:: sage: G = Graph('MgCgS?_O@IeTHKG??') sage: len(G.coloring(algorithm='MILP')) # needs sage.numerical.mip @@ -872,8 +872,8 @@ def fractional_chromatic_index(G, solver="PPL", verbose_constraints=False, verbo The default solver used here is ``"PPL"`` which provides exact results, i.e. a rational number, although this may be slower that using other solvers. Be aware that this method may loop endlessly when - using some non exact solvers as reported in :trac:`23658` and - :trac:`23798`. + using some non exact solvers as reported in :issue:`23658` and + :issue:`23798`. - ``verbose_constraints`` -- boolean (default: ``False``); whether to display which constraints are being generated @@ -891,7 +891,7 @@ def fractional_chromatic_index(G, solver="PPL", verbose_constraints=False, verbo TESTS: - Issue reported in :trac:`23658` and :trac:`23798` with non exact + Issue reported in :issue:`23658` and :issue:`23798` with non exact solvers:: sage: g = graphs.PetersenGraph() @@ -1856,13 +1856,13 @@ def linear_arboricity(g, plus_one=None, hex_colors=False, value_only=False, TESTS: - Asking for the value of the linear arboricity only (:trac:`24991`):: + Asking for the value of the linear arboricity only (:issue:`24991`):: sage: from sage.graphs.graph_coloring import linear_arboricity sage: sorted(linear_arboricity(G, value_only=True) for G in graphs(4)) # needs sage.numerical.mip [0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2] - Test parameter ``hex_color`` (:trac:`26228`):: + Test parameter ``hex_color`` (:issue:`26228`):: sage: from sage.graphs.graph_coloring import linear_arboricity sage: g = graphs.Grid2dGraph(4, 4) @@ -2076,13 +2076,13 @@ def acyclic_edge_coloring(g, hex_colors=False, value_only=False, k=0, TESTS: - Issue :trac:`24991` is fixed:: + Issue :issue:`24991` is fixed:: sage: from sage.graphs.graph_coloring import acyclic_edge_coloring sage: sorted(acyclic_edge_coloring(G, value_only=True) for G in graphs(4)) # needs sage.numerical.mip [2, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5] - Test parameter ``hex_color`` (:trac:`26228`):: + Test parameter ``hex_color`` (:issue:`26228`):: sage: from sage.graphs.graph_coloring import acyclic_edge_coloring sage: g = graphs.CompleteGraph(4) @@ -2090,7 +2090,7 @@ def acyclic_edge_coloring(g, hex_colors=False, value_only=False, k=0, sage: sorted(d) # needs sage.numerical.mip ['#0066ff', '#00ff66', '#cbff00', '#cc00ff', '#ff0000'] - The acyclic chromatic index of a graph without edge is 0 (:trac:`27079`):: + The acyclic chromatic index of a graph without edge is 0 (:issue:`27079`):: sage: from sage.graphs.graph_coloring import acyclic_edge_coloring sage: g = Graph(3) @@ -2101,7 +2101,7 @@ def acyclic_edge_coloring(g, hex_colors=False, value_only=False, k=0, sage: acyclic_edge_coloring(g, k=None, hex_colors=False) # needs sage.numerical.mip [] - Empty graph (:trac:`27079`):: + Empty graph (:issue:`27079`):: sage: from sage.graphs.graph_coloring import acyclic_edge_coloring sage: acyclic_edge_coloring(Graph(), k=None, value_only=True) # needs sage.numerical.mip diff --git a/src/sage/graphs/graph_decompositions/cutwidth.pyx b/src/sage/graphs/graph_decompositions/cutwidth.pyx index e4e139084c0..8aa99a242c9 100644 --- a/src/sage/graphs/graph_decompositions/cutwidth.pyx +++ b/src/sage/graphs/graph_decompositions/cutwidth.pyx @@ -366,7 +366,7 @@ def cutwidth(G, algorithm="exponential", cut_off=0, solver=None, verbose=False, ... ValueError: the specified cut off parameter must be an integer - Cutwidth of a graph with one edge (:trac:`32131`):: + Cutwidth of a graph with one edge (:issue:`32131`):: sage: from sage.graphs.graph_decompositions.cutwidth import cutwidth sage: G = Graph([(0, 1)]) diff --git a/src/sage/graphs/graph_decompositions/graph_products.pyx b/src/sage/graphs/graph_decompositions/graph_products.pyx index cd4f0b04c7d..98bfb6ec0f5 100644 --- a/src/sage/graphs/graph_decompositions/graph_products.pyx +++ b/src/sage/graphs/graph_decompositions/graph_products.pyx @@ -204,13 +204,13 @@ def is_cartesian_product(g, certificate=False, relabeling=False): TESTS: - Wagner's Graph (:trac:`13599`):: + Wagner's Graph (:issue:`13599`):: sage: g = graphs.WagnerGraph() # needs networkx sage: g.is_cartesian_product() # needs networkx False - Empty and one-element graph (:trac:`19546`):: + Empty and one-element graph (:issue:`19546`):: sage: Graph().is_cartesian_product() False diff --git a/src/sage/graphs/graph_decompositions/tree_decomposition.pyx b/src/sage/graphs/graph_decompositions/tree_decomposition.pyx index 803f5a09771..0fb9f87c6ee 100644 --- a/src/sage/graphs/graph_decompositions/tree_decomposition.pyx +++ b/src/sage/graphs/graph_decompositions/tree_decomposition.pyx @@ -87,7 +87,7 @@ The treewidth of a clique is `n-1` and its treelength is 1:: - Approximation of treelength based on :meth:`~sage.graphs.graph.Graph.lex_M` - Approximation of treelength based on BFS Layering - - upgrade tdlib to 0.9.0 :trac:`30813` + - upgrade tdlib to 0.9.0 :issue:`30813` Methods @@ -577,7 +577,7 @@ def treewidth(g, k=None, kmin=None, certificate=False, algorithm=None, nice=Fals sage: is_valid_tree_decomposition(g, T) True - All edges do appear (:trac:`17893`):: + All edges do appear (:issue:`17893`):: sage: from itertools import combinations sage: g = graphs.PathGraph(10) @@ -587,7 +587,7 @@ def treewidth(g, k=None, kmin=None, certificate=False, algorithm=None, nice=Fals sage: g.size() 0 - :trac:`19358`:: + :issue:`19358`:: sage: g = Graph() sage: for i in range(3): @@ -596,7 +596,7 @@ def treewidth(g, k=None, kmin=None, certificate=False, algorithm=None, nice=Fals sage: g.treewidth() 2 - The decomposition is a tree (:trac:`23546`):: + The decomposition is a tree (:issue:`23546`):: sage: g = Graph({0:[1,2], 3:[4,5]}) sage: t = g.treewidth(certificate=True) @@ -609,7 +609,7 @@ def treewidth(g, k=None, kmin=None, certificate=False, algorithm=None, nice=Fals True Check that the use of atoms and clique separators is correct - (:trac:`30993`):: + (:issue:`30993`):: sage: g = 2 * graphs.Grid2dGraph(2, 3) sage: g.treewidth(algorithm='sage') diff --git a/src/sage/graphs/graph_generators.py b/src/sage/graphs/graph_generators.py index b7b5d350250..7c7bc9d0138 100644 --- a/src/sage/graphs/graph_generators.py +++ b/src/sage/graphs/graph_generators.py @@ -709,7 +709,7 @@ class GraphGenerators: (10, 19) Make sure that the graphs are really independent and the generator - survives repeated vertex removal (:trac:`8458`):: + survives repeated vertex removal (:issue:`8458`):: sage: for G in graphs(3): ....: G.delete_vertex(0) @@ -959,7 +959,7 @@ def nauty_geng(self, options="", debug=False): TESTS: - Wrong input, ``"-c3"`` instead of ``"-c 3"`` (:trac:`14068`):: + Wrong input, ``"-c3"`` instead of ``"-c 3"`` (:issue:`14068`):: sage: list(graphs.nauty_geng("-c3", debug=False)) Traceback (most recent call last): @@ -1132,7 +1132,7 @@ def nauty_genbg(self, options="", debug=False): sage: list(graphs.nauty_genbg("-c 1 2", debug=True)) ['>A ...genbg n=1+2 e=2:2 d=1:1 D=2:1 c...\n', Bipartite graph on 3 vertices] - We must have n1=1..24, n2=0..32 and n1+n2=1..32 (:trac:`34179`):: + We must have n1=1..24, n2=0..32 and n1+n2=1..32 (:issue:`34179`):: sage: next(graphs.nauty_genbg("25 1", debug=False)) Traceback (most recent call last): diff --git a/src/sage/graphs/graph_input.py b/src/sage/graphs/graph_input.py index 4e08af6a4fc..52941853359 100644 --- a/src/sage/graphs/graph_input.py +++ b/src/sage/graphs/graph_input.py @@ -385,14 +385,14 @@ def from_oriented_incidence_matrix(G, M, loops=False, multiedges=False, weighted TESTS: - Fix bug reported in :trac:`22985`:: + Fix bug reported in :issue:`22985`:: sage: DiGraph(matrix ([[1,0,0,1],[0,0,1,1],[0,0,1,1]]).transpose()) # needs sage.modules Traceback (most recent call last): ... ValueError: each column represents an edge: -1 goes to 1 - Handle incidence matrix containing a column with only zeros (:trac:`29275`):: + Handle incidence matrix containing a column with only zeros (:issue:`29275`):: sage: m = Matrix([[0,1],[0,-1],[0,0]]); m # needs sage.modules [ 0 1] @@ -402,7 +402,7 @@ def from_oriented_incidence_matrix(G, M, loops=False, multiedges=False, weighted sage: list(G.edges(sort=True, labels=False)) # needs sage.modules [(1, 0)] - Handle incidence matrix [[1],[-1]] (:trac:`29275`):: + Handle incidence matrix [[1],[-1]] (:issue:`29275`):: sage: m = Matrix([[1],[-1]]); m # needs sage.modules [ 1] @@ -464,7 +464,7 @@ def from_dict_of_dicts(G, M, loops=False, multiedges=False, weighted=False, conv TESTS: - :trac:`32831` is fixed:: + :issue:`32831` is fixed:: sage: DiGraph({0: {}, 1: {}, 2: {}, 3: {}, 4: {}}) Digraph on 5 vertices diff --git a/src/sage/graphs/graph_latex.py b/src/sage/graphs/graph_latex.py index cd3d46fc1ca..42cc1b369ab 100644 --- a/src/sage/graphs/graph_latex.py +++ b/src/sage/graphs/graph_latex.py @@ -1321,7 +1321,7 @@ def latex(self): % \end{tikzpicture} - We check that :trac:`22070` is fixed:: + We check that :issue:`22070` is fixed:: sage: edges = [(i,(i+1)%3,a) for i,a in enumerate('abc')] sage: G_with_labels = DiGraph(edges) @@ -1382,7 +1382,7 @@ def dot2tex_picture(self): % \end{tikzpicture} - We make sure :trac:`13624` is fixed:: + We make sure :issue:`13624` is fixed:: sage: G = DiGraph() sage: G.add_edge(3333, 88, 'my_label') @@ -1399,7 +1399,7 @@ def dot2tex_picture(self): % \end{tikzpicture} - Check that :trac:`25120` is fixed:: + Check that :issue:`25120` is fixed:: sage: G = Graph([(0,1)]) sage: G.set_latex_options(edge_colors = {(0,1): 'red'}) diff --git a/src/sage/graphs/graph_plot.py b/src/sage/graphs/graph_plot.py index 7908454db54..6e36a195197 100644 --- a/src/sage/graphs/graph_plot.py +++ b/src/sage/graphs/graph_plot.py @@ -364,7 +364,7 @@ def set_pos(self): Make sure that vertex locations are floats. Not being floats isn't a bug in itself but made it too easy to accidentally introduce a bug - elsewhere, such as in :meth:`set_edges` (:trac:`10124`), via silent + elsewhere, such as in :meth:`set_edges` (:issue:`10124`), via silent truncating division of Python 2 integers:: sage: g = graphs.FruchtGraph() @@ -376,7 +376,7 @@ def set_pos(self): sage: set(map(type, flatten(gp._pos.values()))) {<... 'float'>} - Non-ascii labels are also possible using unicode (:trac:`21008`):: + Non-ascii labels are also possible using unicode (:issue:`21008`):: sage: Graph({u'où': [u'là', u'ici']}).plot() Graphics object consisting of 6 graphics primitives @@ -669,7 +669,7 @@ def set_edges(self, **edge_options): Check default edge labels are pretty close to halfway between the vertices in some cases where they weren't due to Python 2 - truncating division (:trac:`10124`):: + truncating division (:issue:`10124`):: sage: test_graphs = graphs.FruchtGraph(), graphs.BullGraph() sage: tol = 0.001 @@ -687,13 +687,13 @@ def set_edges(self, **edge_options): ....: m = sum(vector((vx[v], vy[v])) for v in (v0, v1))/2 ....: assert (vector((x, y)) - m).norm() < tol - Issue :trac:`24051` is fixed:: + Issue :issue:`24051` is fixed:: sage: G = Graph([(0, 1), (0, 1)], multiedges=True) sage: G.plot(edge_colors={"red": [(1, 0)]}) Graphics object consisting of 5 graphics primitives - Issue :trac:`31542` is fixed:: + Issue :issue:`31542` is fixed:: sage: s = 'ABCCCCDABCDABCDA' sage: g = DiGraph({}, loops=True, multiedges=True) @@ -978,7 +978,7 @@ def _polar_hack_for_multidigraph(self, A, B, VR): TESTS: - Make sure that Python ints are acceptable arguments (:trac:`10124`):: + Make sure that Python ints are acceptable arguments (:issue:`10124`):: sage: GP = DiGraph().graphplot() sage: GP._polar_hack_for_multidigraph((0, 1), (2, 2), .1) @@ -1422,7 +1422,7 @@ def plot(self, **kwds): ....: assert (bbox['ymin'] <= part_bbox['ymin'] ....: <= part_bbox['ymax'] <= bbox['ymax']) - Check that one can plot immutable graphs (:trac:`17340`):: + Check that one can plot immutable graphs (:issue:`17340`):: sage: Graph({0: [0]}, immutable=True).plot() Graphics object consisting of 3 graphics primitives diff --git a/src/sage/graphs/graph_plot_js.py b/src/sage/graphs/graph_plot_js.py index f1045446d65..cd9c635c736 100644 --- a/src/sage/graphs/graph_plot_js.py +++ b/src/sage/graphs/graph_plot_js.py @@ -193,13 +193,13 @@ def gen_html_code(G, sage: from sage.graphs.graph_plot_js import gen_html_code sage: filename = gen_html_code(graphs.PetersenGraph()) - :trac:`17370`:: + :issue:`17370`:: sage: filename = gen_html_code(graphs.CompleteBipartiteGraph(4, 5)) In the generated html code, the source (resp. target) of a link is the index of the node in the list defining the names of the nodes. We check that the - order is correct (:trac:`27460`):: + order is correct (:issue:`27460`):: sage: filename = gen_html_code(DiGraph({1: [10]})) sage: with open(filename, 'r') as f: diff --git a/src/sage/graphs/line_graph.pyx b/src/sage/graphs/line_graph.pyx index cef56940d38..796e15d44ab 100644 --- a/src/sage/graphs/line_graph.pyx +++ b/src/sage/graphs/line_graph.pyx @@ -22,7 +22,7 @@ Author: - David Coudert (10-2018), use maximal cliques iterator in :meth:`root_graph`, and use :meth:`root_graph` instead of forbidden subgraph search in - :meth:`is_line_graph` (:trac:`26444`). + :meth:`is_line_graph` (:issue:`26444`). Definition ----------- @@ -206,7 +206,7 @@ def is_line_graph(g, certificate=False): sage: g.line_graph().is_isomorphic(gl) # needs sage.modules True - Verify that :trac:`29740` is fixed:: + Verify that :issue:`29740` is fixed:: sage: g = Graph('O{e[{}^~z`MDZBZBkXzE^') sage: g.is_line_graph() @@ -340,7 +340,7 @@ def line_graph(g, labels=True): TESTS: - :trac:`13787`:: + :issue:`13787`:: sage: g = graphs.KneserGraph(7,1) sage: C = graphs.CompleteGraph(7) diff --git a/src/sage/graphs/matchpoly.pyx b/src/sage/graphs/matchpoly.pyx index 861d05df8af..03b15c066d1 100644 --- a/src/sage/graphs/matchpoly.pyx +++ b/src/sage/graphs/matchpoly.pyx @@ -206,7 +206,7 @@ def matching_polynomial(G, complement=True, name=None): TESTS: - Non-integer labels should work, (:trac:`15545`):: + Non-integer labels should work, (:issue:`15545`):: sage: G = Graph(10) sage: G.add_vertex((0,1)) diff --git a/src/sage/graphs/path_enumeration.pyx b/src/sage/graphs/path_enumeration.pyx index 140bbda60e7..3dfa2697f64 100644 --- a/src/sage/graphs/path_enumeration.pyx +++ b/src/sage/graphs/path_enumeration.pyx @@ -152,12 +152,12 @@ def all_paths(G, start, end, use_multiedges=False, report_edges=False, labels=Fa TESTS: - Starting and ending at the same vertex (see :trac:`13006`):: + Starting and ending at the same vertex (see :issue:`13006`):: sage: graphs.CompleteGraph(4).all_paths(2, 2) [[2]] - Non-existing vertex as end vertex (see :trac:`24495`):: + Non-existing vertex as end vertex (see :issue:`24495`):: sage: g = graphs.PathGraph(5) sage: g.all_paths(1, 'junk') @@ -165,7 +165,7 @@ def all_paths(G, start, end, use_multiedges=False, report_edges=False, labels=Fa ... LookupError: end vertex (junk) is not a vertex of the graph - Distinguishing between multiedged paths (see :trac:`27501`):: + Distinguishing between multiedged paths (see :issue:`27501`):: sage: g = Graph(multiedges=True) sage: g.add_edge(0, 3, 1) @@ -196,7 +196,7 @@ def all_paths(G, start, end, use_multiedges=False, report_edges=False, labels=Fa [0, 2, 4, 5, 6], [0, 2, 4, 5, 6]] - Added reporting of edges (see :trac:`27501`):: + Added reporting of edges (see :issue:`27501`):: sage: G = DiGraph(multiedges=True) sage: G.add_edges([(0, 2), (0, 3), (0, 4), (1, 2), (1, 2), (1, 5), (3, 5), (3, 5)]) diff --git a/src/sage/graphs/pq_trees.py b/src/sage/graphs/pq_trees.py index 68063bc8e73..66f0c9aaf67 100644 --- a/src/sage/graphs/pq_trees.py +++ b/src/sage/graphs/pq_trees.py @@ -296,7 +296,7 @@ def __init__(self, seq): sage: from sage.graphs.pq_trees import P, Q sage: p = Q([[1,2], [2,3], P([[2,4], [2,8], [2,9]])]) - :trac:`17787`:: + :issue:`17787`:: sage: Graph('GvGNp?').is_interval() False diff --git a/src/sage/graphs/schnyder.py b/src/sage/graphs/schnyder.py index ef00bf1523a..b22ab6d3302 100644 --- a/src/sage/graphs/schnyder.py +++ b/src/sage/graphs/schnyder.py @@ -66,7 +66,7 @@ def _triangulate(g, comb_emb): TESTS: - :trac:`29522` is fixed:: + :issue:`29522` is fixed:: sage: g = Graph(2) sage: _triangulate(g, {}) diff --git a/src/sage/graphs/spanning_tree.pyx b/src/sage/graphs/spanning_tree.pyx index 7576a341701..ccddfa7f5b4 100644 --- a/src/sage/graphs/spanning_tree.pyx +++ b/src/sage/graphs/spanning_tree.pyx @@ -1134,7 +1134,7 @@ def spanning_trees(g, labels=False): Graph on 6 vertices, Graph on 6 vertices] - Edges of the spanning trees can be labeled or unlabeled (:trac:`27557`):: + Edges of the spanning trees can be labeled or unlabeled (:issue:`27557`):: sage: g = Graph([(1,2,2),(1,2,1),(1,2,4),(1,4,5)],multiedges=True) sage: l = list(g.spanning_trees(labels=True)) diff --git a/src/sage/graphs/strongly_regular_db.pyx b/src/sage/graphs/strongly_regular_db.pyx index 453f711731c..955f87222a1 100644 --- a/src/sage/graphs/strongly_regular_db.pyx +++ b/src/sage/graphs/strongly_regular_db.pyx @@ -2698,7 +2698,7 @@ cdef bint seems_feasible(int v, int k, int l, int mu) noexcept: TESTS: - :trac:`32306` is fixed:: + :issue:`32306` is fixed:: sage: from sage.graphs.strongly_regular_db import strongly_regular_graph sage: strongly_regular_graph(16384, 8256, 4160, 4160, existence=True) # needs sage.combinat sage.modules @@ -2868,7 +2868,7 @@ def strongly_regular_graph(int v, int k, int l, int mu=-1, bint existence=False, TESTS: - Check that :trac:`26513` is fixed:: + Check that :issue:`26513` is fixed:: sage: graphs.strongly_regular_graph(539, 288, 162, 144) # needs sage.combinat descendant of (540, 264, 138, 120)-strongly regular graph at ... 539 vertices @@ -2890,7 +2890,7 @@ def strongly_regular_graph(int v, int k, int l, int mu=-1, bint existence=False, ....: if 'Brouwer' not in str(e): ....: raise - `\mu=0` behaves correctly (:trac:`19712`):: + `\mu=0` behaves correctly (:issue:`19712`):: sage: graphs.strongly_regular_graph(10,2,1) Traceback (most recent call last): diff --git a/src/sage/graphs/trees.pyx b/src/sage/graphs/trees.pyx index 422fa28baa1..2fd64e9ef43 100644 --- a/src/sage/graphs/trees.pyx +++ b/src/sage/graphs/trees.pyx @@ -119,7 +119,7 @@ cdef class TreeIterator: TESTS: This used to be broken for trees with no vertices - and was fixed in :trac:`13719` :: + and was fixed in :issue:`13719` :: sage: from sage.graphs.trees import TreeIterator sage: T = TreeIterator(0) diff --git a/src/sage/graphs/tutte_polynomial.py b/src/sage/graphs/tutte_polynomial.py index 4868577c892..6206b963b50 100644 --- a/src/sage/graphs/tutte_polynomial.py +++ b/src/sage/graphs/tutte_polynomial.py @@ -574,7 +574,7 @@ def tutte_polynomial(G, edge_selector=None, cache=None): sage: len(cache) > 0 True - Verify that :trac:`18366` is fixed:: + Verify that :issue:`18366` is fixed:: sage: g = Graph(multiedges=True) sage: g.add_edges([(0,1,1),(1,5,2),(5,3,3),(5,2,4),(2,4,5),(0,2,6),(0,3,7),(0,4,8),(0,5,9)]) diff --git a/src/sage/graphs/views.pyx b/src/sage/graphs/views.pyx index 05534c744ef..d8eb1b3eae6 100644 --- a/src/sage/graphs/views.pyx +++ b/src/sage/graphs/views.pyx @@ -564,7 +564,7 @@ cdef class EdgesView: sage: G == E False - Check that :trac:`29180` is fixed:: + Check that :issue:`29180` is fixed:: sage: G = graphs.CycleGraph(4) sage: E = graphs.EmptyGraph() diff --git a/src/sage/groups/abelian_gps/abelian_group.py b/src/sage/groups/abelian_gps/abelian_group.py index bbe793b3625..43dcb946122 100644 --- a/src/sage/groups/abelian_gps/abelian_group.py +++ b/src/sage/groups/abelian_gps/abelian_group.py @@ -526,7 +526,7 @@ def __init__(self, generator_orders, names, category=None): Multiplicative Abelian group isomorphic to Z x C5 x Z x C7 sage: TestSuite(G).run() - We check that :trac:`15140` is fixed:: + We check that :issue:`15140` is fixed:: sage: A = AbelianGroup([3,3]) sage: A.category() @@ -1136,7 +1136,7 @@ def permutation_group(self): TESTS: - Check that :trac:`25692` is fixed:: + Check that :issue:`25692` is fixed:: sage: G = AbelianGroup([0]) sage: G.permutation_group() @@ -1471,7 +1471,7 @@ def subgroups(self, check=False): sage: AbelianGroup([]).subgroups() [Trivial Abelian group] - Check that :trac:`14196` is fixed:: + Check that :issue:`14196` is fixed:: sage: B = AbelianGroup([1,2]) sage: B.subgroups() # needs sage.libs.gap # optional - gap_package_polycyclic @@ -1695,7 +1695,7 @@ def __init__(self, ambient, gens, names="f", category=None): sage: F.order() +Infinity - Testing issue :trac:`18863`:: + Testing issue :issue:`18863`:: sage: G = AbelianGroup(5,[2]) sage: G.subgroup([prod(g^k for g,k in zip(G.gens(),[1,-2,3,-4,5]))]) # needs sage.libs.gap # optional - gap_package_polycyclic @@ -1746,7 +1746,7 @@ def __contains__(self, x): TESTS: - Check that :trac:`32910` is fixed:: + Check that :issue:`32910` is fixed:: sage: # needs sage.libs.gap # optional - gap_package_polycyclic sage: G. = AbelianGroup(2, [4, 576]) @@ -1755,7 +1755,7 @@ def __contains__(self, x): sage: [g in H for g in (a^3, b^2, b^3, a^3*b^2, "junk")] [False, False, False, True, False] - Check that :trac:`31507` is fixed:: + Check that :issue:`31507` is fixed:: sage: # needs sage.libs.gap # optional - gap_package_polycyclic sage: G = AbelianGroup(2, gens_orders=[16, 16]) diff --git a/src/sage/groups/abelian_gps/abelian_group_gap.py b/src/sage/groups/abelian_gps/abelian_group_gap.py index 3a183ab9a20..9ce83a6e33c 100644 --- a/src/sage/groups/abelian_gps/abelian_group_gap.py +++ b/src/sage/groups/abelian_gps/abelian_group_gap.py @@ -331,7 +331,7 @@ def _element_constructor_(self, x, check=True): TESTS: - Document that :trac:`31428` is fixed:: + Document that :issue:`31428` is fixed:: sage: A = AbelianGroupGap([]) sage: A([]) == A.one() diff --git a/src/sage/groups/additive_abelian/additive_abelian_group.py b/src/sage/groups/additive_abelian/additive_abelian_group.py index c0a90f0c110..914b4f95407 100644 --- a/src/sage/groups/additive_abelian/additive_abelian_group.py +++ b/src/sage/groups/additive_abelian/additive_abelian_group.py @@ -311,7 +311,7 @@ def _module_constructor(self, cover, relations, check=True): TESTS: - Check that :trac:`21027` is fixed:: + Check that :issue:`21027` is fixed:: sage: G = AdditiveAbelianGroup([2,2,2]) sage: phi = G.hom([G.0, G.0, G.0]) @@ -455,7 +455,7 @@ def permutation_group(self): TESTS: - Check that :trac:`25692` is fixed:: + Check that :issue:`25692` is fixed:: sage: G = AdditiveAbelianGroup([0]) sage: G.permutation_group() diff --git a/src/sage/groups/additive_abelian/additive_abelian_wrapper.py b/src/sage/groups/additive_abelian/additive_abelian_wrapper.py index 9cb8d958c61..bf16874d97f 100644 --- a/src/sage/groups/additive_abelian/additive_abelian_wrapper.py +++ b/src/sage/groups/additive_abelian/additive_abelian_wrapper.py @@ -573,7 +573,7 @@ def _discrete_log_pgroup(p, vals, aa, b): TESTS: - Check for :trac:`34716`:: + Check for :issue:`34716`:: sage: # needs sage.rings.finite_rings sage.schemes sage: E = EllipticCurve(GF(487^2), [311,205]) diff --git a/src/sage/groups/affine_gps/group_element.py b/src/sage/groups/affine_gps/group_element.py index 7df4dc8a69a..42546194bb6 100644 --- a/src/sage/groups/affine_gps/group_element.py +++ b/src/sage/groups/affine_gps/group_element.py @@ -393,7 +393,7 @@ def __call__(self, v): sage: h(z+1) 3*z + 2 - The action on a polyhedron is defined (see :trac:`30327`):: + The action on a polyhedron is defined (see :issue:`30327`):: sage: F = AffineGroup(3, QQ) sage: M = matrix(3, [-1, -2, 0, 0, 0, 1, -2, 1, -1]) diff --git a/src/sage/groups/artin.py b/src/sage/groups/artin.py index 2b2f604a462..4d207d9d512 100644 --- a/src/sage/groups/artin.py +++ b/src/sage/groups/artin.py @@ -715,7 +715,7 @@ class FiniteTypeArtinGroup(ArtinGroup): Artin group of type ['E', 7] Since the word problem for finite-type Artin groups is solvable, their - Cayley graph can be locally obtained as follows (see :trac:`16059`):: + Cayley graph can be locally obtained as follows (see :issue:`16059`):: sage: def ball(group, radius): ....: ret = set() diff --git a/src/sage/groups/braid.py b/src/sage/groups/braid.py index bd787d3c153..d2a110bc097 100644 --- a/src/sage/groups/braid.py +++ b/src/sage/groups/braid.py @@ -51,7 +51,7 @@ - Thierry Monteil: add a ``__hash__`` method consistent with the word problem to ensure correct Cayley graph computations. - Sebastian Oehms (July and Nov 2018): add other versions for - burau_matrix (unitary + simple, see :trac:`25760` and :trac:`26657`) + burau_matrix (unitary + simple, see :issue:`25760` and :issue:`26657`) - Moritz Firsching (Sept 2021): Colored Jones polynomial - Sebastian Oehms (May 2022): add :meth:`links_gould_polynomial` """ @@ -2546,14 +2546,14 @@ def __init__(self, names): sage: B1.category() Category of infinite groups - Check that :trac:`14081` is fixed:: + Check that :issue:`14081` is fixed:: sage: BraidGroup(2) Braid group on 2 strands sage: BraidGroup(('a',)) Braid group on 2 strands - Check that :trac:`15505` is fixed:: + Check that :issue:`15505` is fixed:: sage: B = BraidGroup(4) sage: B.relations() @@ -3532,7 +3532,7 @@ def BraidGroup(n=None, names='s'): (g0, g1) Since the word problem for the braid groups is solvable, their Cayley graph - can be locally obtained as follows (see :trac:`16059`):: + can be locally obtained as follows (see :issue:`16059`):: sage: def ball(group, radius): ....: ret = set() diff --git a/src/sage/groups/cubic_braid.py b/src/sage/groups/cubic_braid.py index c8119f12dbc..e2b49edf867 100644 --- a/src/sage/groups/cubic_braid.py +++ b/src/sage/groups/cubic_braid.py @@ -274,7 +274,7 @@ def _richcmp_(self, other, op): :class:`FinitelyPresentedGroupElement` (via Gap) does not terminate in the case of more than 5 strands (not only infinite cases). On less than 5 strands comparison is not assumed to be deterministic - (see the :trac:`33498` and section 47.3-2 of the + (see the :issue:`33498` and section 47.3-2 of the `Gap Reference manual `__). Therefore, the comparison is done via the Burau representation. diff --git a/src/sage/groups/fqf_orthogonal.py b/src/sage/groups/fqf_orthogonal.py index 24dcb5412db..f481a5d7395 100644 --- a/src/sage/groups/fqf_orthogonal.py +++ b/src/sage/groups/fqf_orthogonal.py @@ -230,7 +230,7 @@ def _element_constructor_(self, x, check=True): [1 3] [3 4] - Note that the following does not work since it may lead to ambiguities, see :trac:`30669`:: + Note that the following does not work since it may lead to ambiguities, see :issue:`30669`:: sage: Oq(f.matrix()) # needs sage.graphs Traceback (most recent call last): diff --git a/src/sage/groups/free_group.py b/src/sage/groups/free_group.py index 5bc575ae264..471940f6b95 100644 --- a/src/sage/groups/free_group.py +++ b/src/sage/groups/free_group.py @@ -552,7 +552,7 @@ def __call__(self, *values): sage: w(i+1 for i in range(2)) 1/2 - Check that :trac:`25017` is fixed:: + Check that :issue:`25017` is fixed:: sage: F = FreeGroup(2) sage: x0, x1 = F.gens() @@ -720,7 +720,7 @@ def wrap_FreeGroup(libgap_free_group): TESTS: - Check that we can do it twice (see :trac:`12339`) :: + Check that we can do it twice (see :issue:`12339`) :: sage: G = libgap.FreeGroup(['a', 'b']) sage: wrap_FreeGroup(G) @@ -856,7 +856,7 @@ def _element_constructor_(self, *args, **kwds): sage: G(a^2*b^-3*a^-1) a^2*b^-3*a^-1 - Check that :trac:`17246` is fixed:: + Check that :issue:`17246` is fixed:: sage: F = FreeGroup(0) sage: F([]) diff --git a/src/sage/groups/generic.py b/src/sage/groups/generic.py index c62f5148dff..206e8561e5a 100644 --- a/src/sage/groups/generic.py +++ b/src/sage/groups/generic.py @@ -750,7 +750,7 @@ def discrete_log(a, base, ord=None, bounds=None, operation='*', identity=None, i ... ValueError: no discrete log of 2 found to base 1 - See :trac:`2356`:: + See :issue:`2356`:: sage: F. = GF(121) # needs sage.rings.finite_rings sage: v = w^120 # needs sage.rings.finite_rings @@ -1656,14 +1656,14 @@ def structure_description(G, latex=False): sage: D4.structure_description() # needs sage.groups 'D4' - Works for finitely presented groups (:trac:`17573`):: + Works for finitely presented groups (:issue:`17573`):: sage: F. = FreeGroup() # needs sage.groups sage: G = F / [x^2*y^-1, x^3*y^2, x*y*x^-1*y^-1] # needs sage.groups sage: G.structure_description() # needs sage.groups 'C7' - And matrix groups (:trac:`17573`):: + And matrix groups (:issue:`17573`):: sage: groups.matrix.GL(4,2).structure_description() # needs sage.libs.gap sage.modules 'A8' diff --git a/src/sage/groups/group.pyx b/src/sage/groups/group.pyx index ef639a0c367..8ec72eef5d8 100644 --- a/src/sage/groups/group.pyx +++ b/src/sage/groups/group.pyx @@ -94,7 +94,7 @@ cdef class Group(Parent): sage: G._repr_option('element_is_atomic') False - Check for :trac:`8119`:: + Check for :issue:`8119`:: sage: # needs sage.groups sage: G = SymmetricGroup(2) diff --git a/src/sage/groups/libgap_mixin.py b/src/sage/groups/libgap_mixin.py index 3bb5d68e36f..6d993facf2a 100644 --- a/src/sage/groups/libgap_mixin.py +++ b/src/sage/groups/libgap_mixin.py @@ -889,7 +889,7 @@ def list(self): sage: all(g in G for g in G.list()) True - An example over a ring (see :trac:`5241`):: + An example over a ring (see :issue:`5241`):: sage: M1 = matrix(ZZ,2,[[-1,0],[0,1]]) sage: M2 = matrix(ZZ,2,[[1,0],[0,-1]]) @@ -909,7 +909,7 @@ def list(self): [ 0 1], [ 0 -1], [ 0 -1] ) - An example over a field (see :trac:`10515`):: + An example over a field (see :issue:`10515`):: sage: gens = [matrix(QQ,2,[1,0,0,1])] sage: MatrixGroup(gens).list() @@ -918,7 +918,7 @@ def list(self): [0 1] ) - Another example over a ring (see :trac:`9437`):: + Another example over a ring (see :issue:`9437`):: sage: len(SL(2, Zmod(4)).list()) 48 diff --git a/src/sage/groups/libgap_morphism.py b/src/sage/groups/libgap_morphism.py index f1a47fcb279..daac871629b 100644 --- a/src/sage/groups/libgap_morphism.py +++ b/src/sage/groups/libgap_morphism.py @@ -14,7 +14,7 @@ AUTHORS: - Simon Brandhorst (2018-02-08): initial version -- Sebastian Oehms (2018-11-15): have this functionality work for permutation groups (:trac:`26750`) +- Sebastian Oehms (2018-11-15): have this functionality work for permutation groups (:issue:`26750`) and implement :meth:`section` and :meth:`natural_map` """ @@ -114,7 +114,7 @@ class GroupMorphism_libgap(Morphism): sage: a = G.gens()[0]^2 sage: phi = G.hom([a]) - Check that :trac:`19406` is fixed:: + Check that :issue:`19406` is fixed:: sage: G = GL(2, GF(3)) sage: H = GL(3, GF(2)) @@ -172,7 +172,7 @@ class GroupMorphism_libgap(Morphism): [0 1] ) - The following tests against :trac:`10659`:: + The following tests against :issue:`10659`:: sage: phi(H) # indirect doctest Subgroup with 1 generators ( @@ -204,7 +204,7 @@ class GroupMorphism_libgap(Morphism): [1 1] [0 1] - We check that :trac:`19780` is fixed:: + We check that :issue:`19780` is fixed:: sage: G = groups.matrix.SO(3, 3) sage: H = groups.matrix.GL(3, 3) @@ -245,7 +245,7 @@ class GroupMorphism_libgap(Morphism): From: General Orthogonal Group of degree 2 and form parameter 1 over Finite Field of size 2 To: Abelian group with gap, generator orders (2,) - Check that :trac:`19407` is fixed:: + Check that :issue:`19407` is fixed:: sage: G = GL(2, GF(2)) sage: H = GL(3, ZZ) @@ -445,7 +445,7 @@ def _call_(self, g): TESTS: - The following tests we do fall back behind :trac:`10659`:: + The following tests we do fall back behind :issue:`10659`:: sage: O = WeylGroup(['D',6]) sage: r = prod(O.gens()) diff --git a/src/sage/groups/libgap_wrapper.pyx b/src/sage/groups/libgap_wrapper.pyx index 354882f6829..69395ed7e73 100644 --- a/src/sage/groups/libgap_wrapper.pyx +++ b/src/sage/groups/libgap_wrapper.pyx @@ -117,7 +117,7 @@ class ParentLibGAP(SageObject): sage: G = FreeGroup(3) sage: TestSuite(G).run() - We check that :trac:`19270` is fixed:: + We check that :issue:`19270` is fixed:: sage: G = GL(2,5) sage: g = G( matrix([[1,0],[0,4]])) @@ -242,7 +242,7 @@ class ParentLibGAP(SageObject): sage: F.0 * G.0 a^3*b - Checking that :trac:`19270` is fixed:: + Checking that :issue:`19270` is fixed:: sage: gens = [w.matrix() for w in WeylGroup(['B', 3])] sage: G = MatrixGroup(gens) @@ -254,7 +254,7 @@ class ParentLibGAP(SageObject): TESTS: - Check that :trac:`19010` is fixed:: + Check that :issue:`19010` is fixed:: sage: G = WeylGroup(['B',3]) sage: H = G.subgroup([G[14], G[17]]) diff --git a/src/sage/groups/matrix_gps/coxeter_group.py b/src/sage/groups/matrix_gps/coxeter_group.py index d1c647f1286..b6a9e211ff0 100644 --- a/src/sage/groups/matrix_gps/coxeter_group.py +++ b/src/sage/groups/matrix_gps/coxeter_group.py @@ -250,7 +250,7 @@ def __init__(self, coxeter_matrix, base_ring, index_set): sage: W = CoxeterGroup([[1,3,2],[3,1,-1],[2,-1,1]]) sage: TestSuite(W).run(max_runs=30) - We check that :trac:`16630` is fixed:: + We check that :issue:`16630` is fixed:: sage: CoxeterGroup(['D',4], base_ring=QQ).category() Category of finite irreducible Coxeter groups diff --git a/src/sage/groups/matrix_gps/finitely_generated.py b/src/sage/groups/matrix_gps/finitely_generated.py index afcadc9123a..6d487e5d123 100644 --- a/src/sage/groups/matrix_gps/finitely_generated.py +++ b/src/sage/groups/matrix_gps/finitely_generated.py @@ -48,7 +48,7 @@ - Volker Braun (2013-1) port to new Parent, libGAP. - Sebastian Oehms (2018-07): Added _permutation_group_element_ (Issue #25706) -- Sebastian Oehms (2019-01): Revision of :trac:`25706` (:trac:`26903` and :trac:`27143`). +- Sebastian Oehms (2019-01): Revision of :issue:`25706` (:issue:`26903` and :issue:`27143`). """ # ############################################################################# @@ -461,7 +461,7 @@ def __reduce__(self): sage: loads(dumps(G)) == G True - Check that :trac:`22128` is fixed:: + Check that :issue:`22128` is fixed:: sage: # needs sage.symbolic sage: R = MatrixSpace(SR, 2) diff --git a/src/sage/groups/matrix_gps/finitely_generated_gap.py b/src/sage/groups/matrix_gps/finitely_generated_gap.py index 139b94809e3..fa92b9926e1 100644 --- a/src/sage/groups/matrix_gps/finitely_generated_gap.py +++ b/src/sage/groups/matrix_gps/finitely_generated_gap.py @@ -173,7 +173,7 @@ def as_permutation_group(self, algorithm=None, seed=None): sage: Sp(6,3).as_permutation_group().cardinality() 9170703360 - Check that :trac:`25706` still works after :trac:`26903`:: + Check that :issue:`25706` still works after :issue:`26903`:: sage: # needs sage.libs.pari sage: MG = GU(3,2).as_matrix_group() diff --git a/src/sage/groups/matrix_gps/linear.py b/src/sage/groups/matrix_gps/linear.py index 70caaf80e26..ef2bf1aa0be 100644 --- a/src/sage/groups/matrix_gps/linear.py +++ b/src/sage/groups/matrix_gps/linear.py @@ -322,14 +322,14 @@ def order(self): TESTS: - Check if :trac:`36876` is fixed:: + Check if :issue:`36876` is fixed:: sage: SL(1, QQ).order() 1 sage: SL(2, ZZ).cardinality() +Infinity - Check if :trac:`35490` is fixed:: + Check if :issue:`35490` is fixed:: sage: q = 7 sage: FqT. = GF(q)[] diff --git a/src/sage/groups/matrix_gps/linear_gap.py b/src/sage/groups/matrix_gps/linear_gap.py index 37d33d5d2be..f5c16f1c9fe 100644 --- a/src/sage/groups/matrix_gps/linear_gap.py +++ b/src/sage/groups/matrix_gps/linear_gap.py @@ -13,7 +13,7 @@ class LinearMatrixGroup_gap(NamedMatrixGroup_gap, LinearMatrixGroup_generic, Fin TESTS: - Check that :trac:`20867` is fixed:: + Check that :issue:`20867` is fixed:: sage: from sage.groups.matrix_gps.finitely_generated_gap import FinitelyGeneratedMatrixGroup_gap sage: G = GL(3,3) diff --git a/src/sage/groups/matrix_gps/matrix_group.py b/src/sage/groups/matrix_gps/matrix_group.py index 192c4e4d4cf..8e7f636afb0 100644 --- a/src/sage/groups/matrix_gps/matrix_group.py +++ b/src/sage/groups/matrix_gps/matrix_group.py @@ -14,7 +14,7 @@ [4 0] sage: TestSuite(g).run() -We test that :trac:`9437` is fixed:: +We test that :issue:`9437` is fixed:: sage: len(list(SL(2, Zmod(4)))) 48 @@ -38,7 +38,7 @@ - Simon King (2010-05): Improve invariant_generators by using GAP for the construction of the Reynolds operator in Singular. -- Sebastian Oehms (2018-07): Add :meth:`subgroup` and :meth:`ambient` see :trac:`25894` +- Sebastian Oehms (2018-07): Add :meth:`subgroup` and :meth:`ambient` see :issue:`25894` """ # **************************************************************************** diff --git a/src/sage/groups/matrix_gps/matrix_group_gap.py b/src/sage/groups/matrix_gps/matrix_group_gap.py index 9205951ccdd..f3cb0899df2 100644 --- a/src/sage/groups/matrix_gps/matrix_group_gap.py +++ b/src/sage/groups/matrix_gps/matrix_group_gap.py @@ -97,7 +97,7 @@ def __init__(self, degree, base_ring, libgap_group, ambient=None, category=None) sage: all(g in G for g in G.list()) True - An example over a ring (see :trac:`5241`):: + An example over a ring (see :issue:`5241`):: sage: M1 = matrix(ZZ,2,[[-1,0],[0,1]]) sage: M2 = matrix(ZZ,2,[[1,0],[0,-1]]) @@ -117,7 +117,7 @@ def __init__(self, degree, base_ring, libgap_group, ambient=None, category=None) [ 0 1], [ 0 -1], [ 0 -1] ) - An example over a field (see :trac:`10515`):: + An example over a field (see :issue:`10515`):: sage: gens = [matrix(QQ,2,[1,0,0,1])] sage: MatrixGroup(gens).list() @@ -126,7 +126,7 @@ def __init__(self, degree, base_ring, libgap_group, ambient=None, category=None) [0 1] ) - Another example over a ring (see :trac:`9437`):: + Another example over a ring (see :issue:`9437`):: sage: len(SL(2, Zmod(4)).list()) 48 diff --git a/src/sage/groups/matrix_gps/named_group.py b/src/sage/groups/matrix_gps/named_group.py index 98841d9f0af..90c01e232e7 100644 --- a/src/sage/groups/matrix_gps/named_group.py +++ b/src/sage/groups/matrix_gps/named_group.py @@ -172,7 +172,7 @@ def normalize_args_invariant_form(R, d, invariant_form): AUTHORS: - - Sebastian Oehms (2018-8) (see :trac:`26028`) + - Sebastian Oehms (2018-8) (see :issue:`26028`) """ if invariant_form is None: return invariant_form diff --git a/src/sage/groups/matrix_gps/orthogonal.py b/src/sage/groups/matrix_gps/orthogonal.py index 8d622f7b14f..3ce9915dfec 100644 --- a/src/sage/groups/matrix_gps/orthogonal.py +++ b/src/sage/groups/matrix_gps/orthogonal.py @@ -73,7 +73,7 @@ - Sebastian Oehms (2018-8) add :meth:`~sage.groups.matrix_gps.orthogonal.OrthogonalMatrixGroup_generic.invariant_form` (as alias), ``_OG``, option for user defined invariant bilinear form, - and bug-fix in cmd-string for calling GAP (see :trac:`26028`) + and bug-fix in cmd-string for calling GAP (see :issue:`26028`) """ # **************************************************************************** @@ -154,12 +154,12 @@ def _OG(n, R, special, e=0, var='a', invariant_form=None): TESTS: - Check that :trac:`26028` is fixed:: + Check that :issue:`26028` is fixed:: sage: GO(3,25).order() # indirect doctest # needs sage.libs.gap sage.rings.finite_rings 31200 - Check that :trac:`28054` is fixed:: + Check that :issue:`28054` is fixed:: sage: G = SO(2, GF(3), -1) sage: m = G.invariant_form() diff --git a/src/sage/groups/matrix_gps/orthogonal_gap.py b/src/sage/groups/matrix_gps/orthogonal_gap.py index 17dabb698f2..39947bda211 100644 --- a/src/sage/groups/matrix_gps/orthogonal_gap.py +++ b/src/sage/groups/matrix_gps/orthogonal_gap.py @@ -29,7 +29,7 @@ class OrthogonalMatrixGroup_gap(OrthogonalMatrixGroup_generic, NamedMatrixGroup_ TESTS: - Check that :trac:`20867` is fixed:: + Check that :issue:`20867` is fixed:: sage: from sage.groups.matrix_gps.finitely_generated_gap import FinitelyGeneratedMatrixGroup_gap sage: G = GO(3,3) diff --git a/src/sage/groups/matrix_gps/symplectic.py b/src/sage/groups/matrix_gps/symplectic.py index ec61d8a0634..0e378b4d153 100644 --- a/src/sage/groups/matrix_gps/symplectic.py +++ b/src/sage/groups/matrix_gps/symplectic.py @@ -28,7 +28,7 @@ - Sebastian Oehms (2018-8) add option for user defined invariant bilinear form and bug-fix in :meth:`~sage.groups.matrix_gps.symplectic.SymplecticMatrixGroup_generic.invariant_form` - (see :trac:`26028`) + (see :issue:`26028`) """ # **************************************************************************** diff --git a/src/sage/groups/matrix_gps/symplectic_gap.py b/src/sage/groups/matrix_gps/symplectic_gap.py index 96bf1fb5a75..d348ed9f40f 100644 --- a/src/sage/groups/matrix_gps/symplectic_gap.py +++ b/src/sage/groups/matrix_gps/symplectic_gap.py @@ -35,7 +35,7 @@ class SymplecticMatrixGroup_gap(SymplecticMatrixGroup_generic, NamedMatrixGroup_ TESTS: - Check that :trac:`20867` is fixed:: + Check that :issue:`20867` is fixed:: sage: from sage.groups.matrix_gps.finitely_generated_gap import FinitelyGeneratedMatrixGroup_gap sage: G = Sp(4,3) diff --git a/src/sage/groups/matrix_gps/unitary.py b/src/sage/groups/matrix_gps/unitary.py index 379d8276571..43ac69c3983 100644 --- a/src/sage/groups/matrix_gps/unitary.py +++ b/src/sage/groups/matrix_gps/unitary.py @@ -36,7 +36,7 @@ - Sebastian Oehms (2018-8) add ``_UG``, :meth:`~sage.groups.matrix_gps.unitary.UnitaryMatrixGroup_generic.invariant_form`, option for user defined invariant bilinear form, and bug-fix in - ``_check_matrix`` (see :trac:`26028`) + ``_check_matrix`` (see :issue:`26028`) """ # **************************************************************************** diff --git a/src/sage/groups/matrix_gps/unitary_gap.py b/src/sage/groups/matrix_gps/unitary_gap.py index 0aa547f32e2..ac2de20f96b 100644 --- a/src/sage/groups/matrix_gps/unitary_gap.py +++ b/src/sage/groups/matrix_gps/unitary_gap.py @@ -28,7 +28,7 @@ class UnitaryMatrixGroup_gap(UnitaryMatrixGroup_generic, NamedMatrixGroup_gap, F TESTS: - Check that :trac:`20867` is fixed:: + Check that :issue:`20867` is fixed:: sage: from sage.groups.matrix_gps.finitely_generated_gap import FinitelyGeneratedMatrixGroup_gap sage: G = GU(3,3) diff --git a/src/sage/groups/old.pyx b/src/sage/groups/old.pyx index 761034cff65..ec4010f3a83 100644 --- a/src/sage/groups/old.pyx +++ b/src/sage/groups/old.pyx @@ -45,7 +45,7 @@ cdef class Group(sage.structure.parent.Parent): ... AssertionError: Category of commutative additive groups is not a subcategory of Category of groups - Check for :trac:`8119`:: + Check for :issue:`8119`:: sage: # needs sage.groups sage: G = SymmetricGroup(2) diff --git a/src/sage/groups/perm_gps/cubegroup.py b/src/sage/groups/perm_gps/cubegroup.py index 0b40ba3bc78..5a802bb4f48 100644 --- a/src/sage/groups/perm_gps/cubegroup.py +++ b/src/sage/groups/perm_gps/cubegroup.py @@ -567,7 +567,7 @@ def __init__(self): TESTS: - Check that :trac:`11360` is fixed:: + Check that :issue:`11360` is fixed:: sage: rubik = CubeGroup() sage: rubik.order() diff --git a/src/sage/groups/perm_gps/partn_ref/data_structures.pyx b/src/sage/groups/perm_gps/partn_ref/data_structures.pyx index d636b74e076..d2da976bc87 100644 --- a/src/sage/groups/perm_gps/partn_ref/data_structures.pyx +++ b/src/sage/groups/perm_gps/partn_ref/data_structures.pyx @@ -1280,7 +1280,7 @@ def SC_test_list_perms(list L, int n, int limit, bint gap, bint limit_complain, ....: test_stab_chain_fns_4(n, 2, 1, 0) ....: test_stab_chain_fns_4(n, 2, 1, 0) ....: test_stab_chain_fns_4(n, 3, 1, 0) - sage: for n in range(4,9): # known bug (see :trac:`32187`), not tested + sage: for n in range(4,9): # known bug (see :issue:`32187`), not tested ....: test_stab_chain_fns_4(n, 1, 0, 1) ....: for j in range(6): ....: test_stab_chain_fns_4(n, 2, 0, 1) diff --git a/src/sage/groups/perm_gps/permgroup.py b/src/sage/groups/perm_gps/permgroup.py index 208758282b2..b203a6a84a1 100644 --- a/src/sage/groups/perm_gps/permgroup.py +++ b/src/sage/groups/perm_gps/permgroup.py @@ -106,7 +106,7 @@ - Christian Stump (2018): Added alternative implementation of strong_generating_system directly using GAP. - Sebastian Oehms (2018): Added :meth:`PermutationGroup_generic._Hom_` to use :class:`sage.groups.libgap_morphism.GroupHomset_libgap` and :meth:`PermutationGroup_generic.gap` and - :meth:`PermutationGroup_generic._subgroup_constructor` (for compatibility to libgap framework, see :trac:`26750` + :meth:`PermutationGroup_generic._subgroup_constructor` (for compatibility to libgap framework, see :issue:`26750` REFERENCES: @@ -490,7 +490,7 @@ def __init__(self, gens=None, gap_group=None, canonicalize=True, if isinstance(gap_group, str): # defining the GAP group from the original construction information # helps to avoid buffer size overflow since it avoids transferring - # lists of long generators (example PSp(8,3), see :trac:`26750` + # lists of long generators (example PSp(8,3), see :issue:`26750` self._libgap = libgap.eval(gap_group) gap_group = self._libgap @@ -784,7 +784,7 @@ def __richcmp__(self, right, op): TESTS: - Check that :trac:`29624` is fixed:: + Check that :issue:`29624` is fixed:: sage: G = SymmetricGroup(2) sage: H = PermutationGroup([(1,2)]) @@ -983,7 +983,7 @@ def _coerce_map_from_(self, G): ....: h = G3.coerce_map_from(G1) ....: assert h(elt) == g(f(elt)) - Check that :trac:`26903` is fixed:: + Check that :issue:`26903` is fixed:: sage: G = SO(4,3,-1) sage: P = G.as_permutation_group(algorithm='smaller', seed=5) @@ -996,7 +996,7 @@ def _coerce_map_from_(self, G): sage: P1(g1*g2) (1,4,13,11)(2,5,14,18)(3,15,8,16)(6,7)(9,20,19,12)(10,17) - Another check for :trac:`5583`:: + Another check for :issue:`5583`:: sage: G = PermutationGroup([(), (1,3)]) sage: G.has_coerce_map_from( PermutationGroup([(), (1,2)])) @@ -1042,7 +1042,7 @@ def list(self): TESTS: - Test :trac:`9155`:: + Test :issue:`9155`:: sage: G = SymmetricGroup(2) sage: elements = G.list() @@ -2181,7 +2181,7 @@ def _order(self): sage: [SymmetricGroup(n).subgroup(gen)._order() for gen in special_gens] [6, 24, 120, 720, 5040, 40320, 362880] - Checks that output is a Sage integer (:trac:`23778`):: + Checks that output is a Sage integer (:issue:`23778`):: sage: P = PermutationGroup(['(1,2)','(1,3)']) sage: P.cardinality() @@ -3068,7 +3068,7 @@ def as_finitely_presented_group(self, reduced=False): sage: G = PermutationGroup(perm_ls) sage: while True: ....: try: - ....: assert G.as_finitely_presented_group().as_permutation_group().is_isomorphic(G) # sometimes results in GAP error (see :trac:`32141`) + ....: assert G.as_finitely_presented_group().as_permutation_group().is_isomorphic(G) # sometimes results in GAP error (see :issue:`32141`) ....: break ....: except ValueError: ....: pass @@ -4100,7 +4100,7 @@ def isomorphism_type_info_simple_group(self): TESTS: - This shows that the issue at :trac:`7360` is fixed:: + This shows that the issue at :issue:`7360` is fixed:: sage: G = KleinFourGroup() sage: G.is_simple() @@ -4804,7 +4804,7 @@ def molien_series(self): sage: G.molien_series() -1/(x^6 - x^5 - x^4 + x^2 + x - 1) - Some further tests (after :trac:`15817`):: + Some further tests (after :issue:`15817`):: sage: G = PermutationGroup([[(1,2,3,4)]]) sage: S4ms = SymmetricGroup(4).molien_series() @@ -4825,7 +4825,7 @@ def molien_series(self): TESTS: - Check that :trac:`34854` is fixed:: + Check that :issue:`34854` is fixed:: sage: PG = PermutationGroup(["(1,2,3,4,5,6,7)","(5,6,7)"]) sage: PG.molien_series() @@ -4933,7 +4933,7 @@ def sylow_subgroup(self, p): TESTS: Implementation details should not prevent us from computing - large subgroups (:trac:`5491`):: + large subgroups (:issue:`5491`):: sage: PSL(10,2).sylow_subgroup(7) Subgroup generated by... diff --git a/src/sage/groups/perm_gps/permgroup_element.pyx b/src/sage/groups/perm_gps/permgroup_element.pyx index 493ff9bb8ea..5868052a876 100644 --- a/src/sage/groups/perm_gps/permgroup_element.pyx +++ b/src/sage/groups/perm_gps/permgroup_element.pyx @@ -10,9 +10,9 @@ AUTHORS: - Robert Bradshaw (2007-11): convert to Cython - Sebastian Oehms (2018-11): Added :meth:`gap` as synonym to - :meth:`_gap_` (compatibility to libgap framework, see :trac:`26750`) + :meth:`_gap_` (compatibility to libgap framework, see :issue:`26750`) -- Sebastian Oehms (2019-02): Implemented :meth:`gap` properly (:trac:`27234`) +- Sebastian Oehms (2019-02): Implemented :meth:`gap` properly (:issue:`27234`) There are several ways to define a permutation group element: @@ -89,7 +89,7 @@ We create element of a permutation group of large degree:: TESTS: -Check that :trac:`13569` is fixed:: +Check that :issue:`13569` is fixed:: sage: [g*h for g in SymmetricGroup(3) for h in AlternatingGroup(3)] [(), (1,2,3), (1,3,2), (1,3,2), (), (1,2,3), (1,2,3), (1,3,2), (), (2,3), @@ -424,7 +424,7 @@ cdef class PermutationGroupElement(MultiplicativeGroupElement): sage: PermutationGroupElement([()]) () - We check that :trac:`16678` is fixed:: + We check that :issue:`16678` is fixed:: sage: Permutations.options.display='cycle' sage: p = Permutation((1,2)) @@ -1003,7 +1003,7 @@ cdef class PermutationGroupElement(MultiplicativeGroupElement): TESTS: - Verify that we fixed bug :trac:`5537`:: + Verify that we fixed bug :issue:`5537`:: sage: h = PermutationGroupElement('(1,3,2)') sage: k = PermutationGroupElement('(1,2,3)(4,5)') @@ -2034,7 +2034,7 @@ cdef class PermutationGroupElement(MultiplicativeGroupElement): TESTS: - Check for :trac:`28556`:: + Check for :issue:`28556`:: sage: G = SymmetricGroup(6) sage: g = G('(1,2,3)') diff --git a/src/sage/groups/perm_gps/permgroup_morphism.py b/src/sage/groups/perm_gps/permgroup_morphism.py index c453934141a..206828b4e1a 100644 --- a/src/sage/groups/perm_gps/permgroup_morphism.py +++ b/src/sage/groups/perm_gps/permgroup_morphism.py @@ -116,7 +116,7 @@ def image(self, J): sage: G.is_isomorphic(pr1.image(G)) True - Check that :trac:`28324` is fixed:: + Check that :issue:`28324` is fixed:: sage: # needs sage.rings.number_field sage: R. = QQ[] diff --git a/src/sage/groups/perm_gps/permgroup_named.py b/src/sage/groups/perm_gps/permgroup_named.py index 222ee36f6da..20f2710a1ff 100644 --- a/src/sage/groups/perm_gps/permgroup_named.py +++ b/src/sage/groups/perm_gps/permgroup_named.py @@ -2390,7 +2390,7 @@ class PrimitiveGroupsAll(DisjointUnionEnumeratedSets): TESTS: - The following test is broken, see :trac:`22576`:: + The following test is broken, see :issue:`22576`:: sage: TestSuite(PrimitiveGroups()).run() # known bug, long time """ @@ -2586,7 +2586,7 @@ def cardinality(self): sage: type(PrimitiveGroups(0).cardinality()) - Check for :trac:`31774`:: + Check for :issue:`31774`:: sage: PrimitiveGroups(2500).cardinality() 34 @@ -2742,7 +2742,7 @@ def __init__(self, n, q, name='a'): sage: groups.permutation.PSL(2, 3) Permutation Group with generators [(2,3,4), (1,2)(3,4)] - Check that :trac:`7424` is handled:: + Check that :issue:`7424` is handled:: sage: PSL(2, GF(7,'x')) Permutation Group with generators [(3,7,5)(4,8,6), (1,2,6)(3,4,8)] diff --git a/src/sage/groups/semimonomial_transformations/semimonomial_transformation.pyx b/src/sage/groups/semimonomial_transformations/semimonomial_transformation.pyx index 453f2be85f0..5368340c98f 100644 --- a/src/sage/groups/semimonomial_transformations/semimonomial_transformation.pyx +++ b/src/sage/groups/semimonomial_transformations/semimonomial_transformation.pyx @@ -38,7 +38,7 @@ The parent is AUTHORS: - Thomas Feulner (2012-11-15): initial version -- Thomas Feulner (2013-12-27): :trac:`15576` dissolve dependency on +- Thomas Feulner (2013-12-27): :issue:`15576` dissolve dependency on Permutations.options.mul EXAMPLES:: diff --git a/src/sage/homology/chain_complex.py b/src/sage/homology/chain_complex.py index bebe39a13ea..0d692df4709 100644 --- a/src/sage/homology/chain_complex.py +++ b/src/sage/homology/chain_complex.py @@ -1193,7 +1193,7 @@ def homology(self, deg=None, base_ring=None, generators=False, - ``generators`` -- boolean (optional, default ``False``); if ``True``, return generators for the homology groups along with - the groups. See :trac:`6100` + the groups. See :issue:`6100` - ``verbose`` - boolean (optional, default ``False``); if ``True``, print some messages as the homology is computed @@ -1239,7 +1239,7 @@ def homology(self, deg=None, base_ring=None, generators=False, CHomP. CHomP is available at the web page http://chomp.rutgers.edu/, although the software has not been tested recently in Sage. The use of this option is deprecated; - see :trac:`33777`. + see :issue:`33777`. As of this writing, ``'pari'`` is the fastest standard option. @@ -1267,7 +1267,7 @@ def homology(self, deg=None, base_ring=None, generators=False, sage: C.homology(1, generators=True) [(C3, Chain(1:(1, 0))), (Z, Chain(1:(0, 1)))] - Tests for :trac:`6100`, the Klein bottle with generators:: + Tests for :issue:`6100`, the Klein bottle with generators:: sage: d0 = matrix(ZZ, 0,1) sage: d1 = matrix(ZZ, 1,3, [[0,0,0]]) @@ -2140,7 +2140,7 @@ def tensor(self, *factors, **kwds): [ x -y] [x] 0 <-- C_(8, 3) <-------- C_(6, 2) <---- C_(4, 1) <-- 0 - Check that :trac:`21760` is fixed:: + Check that :issue:`21760` is fixed:: sage: C = ChainComplex({0: matrix(ZZ, 0, 2)}, degree=-1) sage: ascii_art(C) diff --git a/src/sage/homology/chain_complex_morphism.py b/src/sage/homology/chain_complex_morphism.py index 2a182b24cdc..afefe44eb79 100644 --- a/src/sage/homology/chain_complex_morphism.py +++ b/src/sage/homology/chain_complex_morphism.py @@ -116,7 +116,7 @@ def __init__(self, matrices, C, D, check=True): [0 0 0] [0 0 0]} - Check that the bug in :trac:`13220` has been fixed:: + Check that the bug in :issue:`13220` has been fixed:: sage: # needs sage.graphs sage: X = simplicial_complexes.Simplex(1) @@ -413,7 +413,7 @@ def __mul__(self, x): TESTS: Make sure that the product is taken in the correct order - (``self * x``, not ``x * self`` -- see :trac:`19065`):: + (``self * x``, not ``x * self`` -- see :issue:`19065`):: sage: C = ChainComplex({0: zero_matrix(ZZ, 0, 2)}) sage: D = ChainComplex({0: zero_matrix(ZZ, 0, 1)}) @@ -422,7 +422,7 @@ def __mul__(self, x): sage: (f*g).in_degree(0) [2] - Before :trac:`19065`, the following multiplication produced a + Before :issue:`19065`, the following multiplication produced a :class:`KeyError` because `f` was not explicitly defined in degree 2:: sage: C0 = ChainComplex({0: zero_matrix(ZZ, 0, 1)}) diff --git a/src/sage/homology/tests.py b/src/sage/homology/tests.py index ab55168ac16..1fc391376a8 100644 --- a/src/sage/homology/tests.py +++ b/src/sage/homology/tests.py @@ -5,7 +5,7 @@ These test whether CHomP gives the same answers as Sage's built-in homology calculator. -Since the CHomP interface has been deprecated --- see :trac:`33777` +Since the CHomP interface has been deprecated --- see :issue:`33777` --- so are many of the functions in is this module. TESTS:: @@ -73,7 +73,7 @@ def test_random_chain_complex(level=1, trials=1, verbose=False): CHomP, and compare the results. If they are not the same, raise an error. - This function is deprecated: see :trac:`33777`. + This function is deprecated: see :issue:`33777`. :param level: measure of complexity of the chain complex -- see :func:`random_chain_complex` diff --git a/src/sage/interacts/algebra.py b/src/sage/interacts/algebra.py index c53607ac498..c1b10014e03 100644 --- a/src/sage/interacts/algebra.py +++ b/src/sage/interacts/algebra.py @@ -3,7 +3,7 @@ AUTHORS: -- Harald Schilly (2011-01-16): initial version (:trac:`9623`) +- Harald Schilly (2011-01-16): initial version (:issue:`9623`) partially based on work by Lauri Ruotsalainen """ diff --git a/src/sage/interacts/statistics.py b/src/sage/interacts/statistics.py index 6bdbf2eb97f..9e0748ce0d8 100644 --- a/src/sage/interacts/statistics.py +++ b/src/sage/interacts/statistics.py @@ -3,7 +3,7 @@ AUTHORS: -- Harald Schilly (2011-01-16): initial version (:trac:`9623`) +- Harald Schilly (2011-01-16): initial version (:issue:`9623`) partially based on work by Lauri Ruotsalainen """ diff --git a/src/sage/interacts/test_jupyter.rst b/src/sage/interacts/test_jupyter.rst index 7bbacee4903..bde61ee3676 100644 --- a/src/sage/interacts/test_jupyter.rst +++ b/src/sage/interacts/test_jupyter.rst @@ -283,7 +283,7 @@ Test all interacts from the Sage interact library:: n: IntSlider(value=1000, description='Number of Tosses', max=10000, min=2, step=100) interval: FloatRangeSlider(value=(0.45, 0.55), description='Plotting range (y)', max=1.0) -Test matrix control (see :trac:`27735`):: +Test matrix control (see :issue:`27735`):: sage: @library_interact(A=lambda: matrix(QQ, 2, 2, range(4))) ....: def matrix_test(A): diff --git a/src/sage/interfaces/chomp.py b/src/sage/interfaces/chomp.py index 9e1b92d7709..ccd7321094c 100644 --- a/src/sage/interfaces/chomp.py +++ b/src/sage/interfaces/chomp.py @@ -1,7 +1,7 @@ r""" Interface to CHomP -This module is deprecated: see :trac:`33777`. +This module is deprecated: see :issue:`33777`. CHomP stands for "Computation Homology Program", and is good at computing homology of simplicial complexes, cubical complexes, and @@ -131,7 +131,7 @@ def __call__(self, program, complex, subcomplex=None, **kwds): Call a CHomP program to compute the homology of a chain complex, simplicial complex, or cubical complex. - Deprecated: see :trac:`33777`. + Deprecated: see :issue:`33777`. See :class:`CHomP` for full documentation. @@ -445,7 +445,7 @@ def homsimpl(complex=None, subcomplex=None, **kwds): program ``homsimpl``. If the argument ``subcomplex`` is present, compute homology of ``complex`` relative to ``subcomplex``. - This function is deprecated: see :trac:`33777`. + This function is deprecated: see :issue:`33777`. :param complex: a simplicial complex :param subcomplex: a subcomplex of ``complex`` or None (the default) @@ -518,7 +518,7 @@ def homcubes(complex=None, subcomplex=None, **kwds): ``homcubes``. If the argument ``subcomplex`` is present, compute homology of ``complex`` relative to ``subcomplex``. - This function is deprecated: see :trac:`33777`. + This function is deprecated: see :issue:`33777`. :param complex: a cubical complex :param subcomplex: a subcomplex of ``complex`` or None (the default) @@ -574,7 +574,7 @@ def homchain(complex=None, **kwds): Compute the homology of a chain complex using the CHomP program ``homchain``. - This function is deprecated: see :trac:`33777`. + This function is deprecated: see :issue:`33777`. :param complex: a chain complex :param generators: if True, also return list of generators @@ -633,7 +633,7 @@ def process_generators_cubical(gen_string, dim): r""" Process CHomP generator information for cubical complexes. - This function is deprecated: see :trac:`33777`. + This function is deprecated: see :issue:`33777`. :param gen_string: generator output from CHomP :type gen_string: string @@ -747,7 +747,7 @@ def process_generators_simplicial(gen_string, dim, complex): r""" Process CHomP generator information for simplicial complexes. - This function is deprecated: see :trac:`33777` + This function is deprecated: see :issue:`33777` :param gen_string: generator output from CHomP :type gen_string: string @@ -833,7 +833,7 @@ def process_generators_chain(gen_string, dim, base_ring=None): r""" Process CHomP generator information for simplicial complexes. - This function is deprecated: see :trac:`33777`. + This function is deprecated: see :issue:`33777`. :param gen_string: generator output from CHomP :type gen_string: string diff --git a/src/sage/interfaces/ecm.py b/src/sage/interfaces/ecm.py index 99287dec718..a2c882643c4 100644 --- a/src/sage/interfaces/ecm.py +++ b/src/sage/interfaces/ecm.py @@ -26,7 +26,7 @@ TESTS: -Check that the issues from :trac:`27199` are fixed:: +Check that the issues from :issue:`27199` are fixed:: sage: n = 16262093986406371 sage: ecm = ECM() diff --git a/src/sage/interfaces/expect.py b/src/sage/interfaces/expect.py index 80f22b33657..340ada3f185 100644 --- a/src/sage/interfaces/expect.py +++ b/src/sage/interfaces/expect.py @@ -26,7 +26,7 @@ synchronisation of the GAP interface. - François Bissey, Bill Page, Jeroen Demeyer (2015-12-09): Upgrade to - pexpect 4.0.1 + patches, see :trac:`10295`. + pexpect 4.0.1 + patches, see :issue:`10295`. """ # **************************************************************************** # Copyright (C) 2005 William Stein @@ -732,7 +732,7 @@ def _local_tmpfile(self): sage: gap._local_tmpfile() is gap._local_tmpfile() True - The following two problems were fixed in :trac:`10004`. + The following two problems were fixed in :issue:`10004`. 1. Different interfaces have different temp-files:: @@ -1234,8 +1234,8 @@ def _expect_expr(self, expr=None, timeout=None): '...10\r\n> ' We test interrupting ``_expect_expr`` using the GP interface, - see :trac:`6661`. Unfortunately, this test doesn't work reliably using - Singular, see :trac:`9163` and the follow-up :trac:`10476`. + see :issue:`6661`. Unfortunately, this test doesn't work reliably using + Singular, see :issue:`9163` and the follow-up :issue:`10476`. The ``gp.eval('0')`` in this test makes sure that ``gp`` is running, so a timeout of 1 second should be sufficient. :: diff --git a/src/sage/interfaces/fricas.py b/src/sage/interfaces/fricas.py index be89ebb1ae9..87feb554d16 100644 --- a/src/sage/interfaces/fricas.py +++ b/src/sage/interfaces/fricas.py @@ -276,7 +276,7 @@ def __init__(self, name='fricas', command=None, sage: fricas == loads(dumps(fricas)) True - Check that :trac:`25174` is fixed:: + Check that :issue:`25174` is fixed:: sage: fricas(I) %i @@ -731,7 +731,7 @@ def get_string(self, var): sage: fricas.get_string(s) '(-1234567890123456789012345678901234567890123456789012345678901234567890)*n' - Check that :trac:`25628` is fixed:: + Check that :issue:`25628` is fixed:: sage: var("a b"); f = 1/(1+a*cos(x)) (a, b) @@ -1400,7 +1400,7 @@ def _parse_other(s, start=0, make_fun=False): (-1.23, 8) This function cannot use the symbol table to translate - symbols which are not function calls, as :trac:`31849` shows + symbols which are not function calls, as :issue:`31849` shows - ``D`` would erroneously be interpreted as differential then:: @@ -1512,7 +1512,7 @@ def _sage_expression(fricas_InputForm): sage: FriCASElement._sage_expression(s) 1/2*sqrt(2)*sqrt(pi)*fresnel_sin(sqrt(2)*x/sqrt(pi)) - Check that :trac:`22525` is fixed:: + Check that :issue:`22525` is fixed:: sage: l = [sin, cos, sec, csc, cot, tan, asin, acos, atan, acot, acsc, asec, arcsin, arccos, arctan, arccot, arccsc, arcsec] sage: [f(x)._fricas_().sage().subs(x=0.9) for f in l] @@ -1555,13 +1555,13 @@ def _sage_expression(fricas_InputForm): 0.467145308103262, 0.957800449200672] - Check that :trac:`23782` is fixed:: + Check that :issue:`23782` is fixed:: sage: s = '((3*n^10-25*n^9+50*n^8+62*n^7-229*n^6-25*n^5+320*n^4-12*n^3-144*n^2)/11520)::EXPR INT' sage: fricas(s).sage() 1/3840*n^10 - 5/2304*n^9 + 5/1152*n^8 + 31/5760*n^7 - 229/11520*n^6 - 5/2304*n^5 + 1/36*n^4 - 1/960*n^3 - 1/80*n^2 - Some checks for digamma and polygamma (:trac:`31853`):: + Some checks for digamma and polygamma (:issue:`31853`):: sage: fricas.digamma(1.0) - 0.5772156649_0153286061 @@ -1579,7 +1579,7 @@ def _sage_expression(fricas_InputForm): sage: fricas(laplace(log(x), x, w)).sage() -(euler_gamma + log(w))/w - Check that :trac:`25224` is fixed:: + Check that :issue:`25224` is fixed:: sage: integrate(log(x)/(1-x),x,algorithm='fricas') dilog(-x + 1) @@ -1590,12 +1590,12 @@ def _sage_expression(fricas_InputForm): sage: dilog(1.0) 1.64493406684823 - Check that :trac:`25987` is fixed:: + Check that :issue:`25987` is fixed:: sage: integrate(lambert_w(x), x, algorithm="fricas") (x*lambert_w(x)^2 - x*lambert_w(x) + x)/lambert_w(x) - Check that :trac:`25838` is fixed:: + Check that :issue:`25838` is fixed:: sage: F = function('f'); f = SR.var('f') sage: FF = fricas(F(f)); FF @@ -1605,7 +1605,7 @@ def _sage_expression(fricas_InputForm): sage: bool(FF.D(f).integrate(f).sage() == F(f)) True - Check that :trac:`25602` is fixed:: + Check that :issue:`25602` is fixed:: sage: r = fricas.integrate(72000/(1+x^5), x).sage() sage: abs(n(r.subs(x=5) - r.subs(x=3)) - 193.020947266210) <= 0.1 @@ -1650,7 +1650,7 @@ def _sage_expression(fricas_InputForm): sage: f.sage() sum(factorial(_... + 1), _..., 0, n - 1) - Check that :trac:`26746` is fixed:: + Check that :issue:`26746` is fixed:: sage: _ = var('x, y, z') sage: f = sin(x^2) + y^z @@ -1667,18 +1667,18 @@ def _sage_expression(fricas_InputForm): sage: fricas("fresnelC(1.0)") 0.7798934003_7682282947_42 - Check that :trac:`17908` is fixed:: + Check that :issue:`17908` is fixed:: sage: fricas(abs(x)).sage().subs(x=-1783) 1783 - Check that :trac:`27310` is fixed:: + Check that :issue:`27310` is fixed:: sage: fricas.set("F", "operator 'f") sage: fricas("eval(D(F(x,y), [x, y], [2, 1]), x=x+y)").sage() D[0, 0, 1](f)(x + y, y) - Conversion of hypergeometric functions (:trac:`31298`):: + Conversion of hypergeometric functions (:issue:`31298`):: sage: a,b,c = var("a b c") sage: A = hypergeometric([a, b], [c], x) @@ -1687,7 +1687,7 @@ def _sage_expression(fricas_InputForm): sage: fricas(A).D(x).sage() - diff(A, x) 0 - Check that :trac:`31858` is fixed:: + Check that :issue:`31858` is fixed:: sage: fricas.Gamma(3/2).sage() 1/2*sqrt(pi) @@ -1697,7 +1697,7 @@ def _sage_expression(fricas_InputForm): gamma(3, 2) - Check that :trac:`32133` is fixed:: + Check that :issue:`32133` is fixed:: sage: var("y") y diff --git a/src/sage/interfaces/frobby.py b/src/sage/interfaces/frobby.py index 7eb5e53becd..75e6da5b4d9 100644 --- a/src/sage/interfaces/frobby.py +++ b/src/sage/interfaces/frobby.py @@ -274,7 +274,7 @@ def irreducible_decomposition(self, monomial_ideal): We now try the special case of the zero ideal in different rings. We should also try PolynomialRing(QQ, names=[]), but it has a bug - which makes that impossible (see :trac:`3028`). :: + which makes that impossible (see :issue:`3028`). :: sage: # optional - frobby sage: rings = [ZZ['x'], CC['x,y']] diff --git a/src/sage/interfaces/gap.py b/src/sage/interfaces/gap.py index 4b9e619ae3d..ee5861ac785 100644 --- a/src/sage/interfaces/gap.py +++ b/src/sage/interfaces/gap.py @@ -500,7 +500,7 @@ def eval(self, x, newlines=False, strip=True, split_lines=True, **kwds): TESTS: Whitespace is not stripped from the front of the result - (:trac:`28439`):: + (:issue:`28439`):: sage: gap.eval(r'Print(" -\n\\\\- ")') ' -\n\\\\-' @@ -662,7 +662,7 @@ def _eval_line(self, line, allow_use_file=True, wait_for_prompt=True, restart_if sage: rc = gap.interrupt(timeout=1) sage: gap._eval_using_file_cutoff = cutoff - The following tests against a bug fixed at :trac:`10296`:: + The following tests against a bug fixed at :issue:`10296`:: sage: gap(3) 3 @@ -1257,7 +1257,7 @@ def save_workspace(self): TESTS: - We make sure that :trac:`9938` (GAP does not start if the path + We make sure that :issue:`9938` (GAP does not start if the path to the GAP workspace file contains more than 82 characters) is fixed:: @@ -1498,7 +1498,7 @@ def gap_reset_workspace(max_workspace_size=None, verbose=False): TESTS: - Check that the race condition from :trac:`14242` has been fixed. + Check that the race condition from :issue:`14242` has been fixed. We temporarily need to change the worksheet filename, and to set ``first_try=True`` to ensure that the new workspace is created:: @@ -1688,7 +1688,7 @@ def gfq_gap_to_sage(x, F): TESTS: - Check that :trac:`18048` is fixed:: + Check that :issue:`18048` is fixed:: sage: K. = GF(16) sage: b = a^2 + a diff --git a/src/sage/interfaces/gap3.py b/src/sage/interfaces/gap3.py index d403dc8b9dc..e73308e014e 100644 --- a/src/sage/interfaces/gap3.py +++ b/src/sage/interfaces/gap3.py @@ -12,7 +12,7 @@ The experimental package for GAP3 is Jean Michel's pre-packaged GAP3, which is a minimal GAP3 distribution containing packages that have - no equivalent in GAP4, see :trac:`20107` and also + no equivalent in GAP4, see :issue:`20107` and also https://webusers.imj-prg.fr/~jean.michel/gap3/ @@ -37,7 +37,7 @@ .. WARNING:: - There is a bug in the pexpect module (see :trac:`8471`) that + There is a bug in the pexpect module (see :issue:`8471`) that prevents the following from working correctly. For now, just make sure that ``gap3`` is in your ``PATH``. @@ -350,7 +350,7 @@ def _start(self): sage: gap3.is_running() True - Check that :trac:`23142` is fixed:: + Check that :issue:`23142` is fixed:: sage: # optional - gap3 sage: gap3.eval("1+1") @@ -600,7 +600,7 @@ def _install_hints(self): have GAP3 installed, or because it is not configured correctly. - If you do not have GAP3 installed, then you must either install - the optional package, see :trac:`20107`, or you download and + the optional package, see :issue:`20107`, or you download and install it yourself. Here are two other ways to obtain GAP3: diff --git a/src/sage/interfaces/genus2reduction.py b/src/sage/interfaces/genus2reduction.py index eeb63fcb939..28d9d58473d 100644 --- a/src/sage/interfaces/genus2reduction.py +++ b/src/sage/interfaces/genus2reduction.py @@ -10,7 +10,7 @@ - William Stein (2006-03-05): wrote Sage interface to genus2reduction - Jeroen Demeyer (2014-09-17): replace genus2reduction program by PARI - library call (:trac:`15808`) + library call (:issue:`15808`) ACKNOWLEDGMENT: (From Liu's website:) Many thanks to Henri Cohen who started writing this program. After this program is available, many people pointed out @@ -399,7 +399,7 @@ def __call__(self, Q, P): (potential) stable reduction: (II), j=57 reduction at p: [I{2-0-0}] page 170, (2), f=1 - Verify that we fix :trac:`5573`:: + Verify that we fix :issue:`5573`:: sage: genus2reduction(x^3 + x^2 + x,-2*x^5 + 3*x^4 - x^3 - x^2 - 6*x - 2) Reduction data about this proper smooth genus 2 curve: diff --git a/src/sage/interfaces/giac.py b/src/sage/interfaces/giac.py index 39be37be0e7..9c4a3b5e1c1 100644 --- a/src/sage/interfaces/giac.py +++ b/src/sage/interfaces/giac.py @@ -214,7 +214,7 @@ TESTS: -Test that conversion of symbolic functions with latex names works (:trac:`31047`):: +Test that conversion of symbolic functions with latex names works (:issue:`31047`):: sage: var('phi') phi @@ -1107,12 +1107,12 @@ def _sage_(self, locals=None): TESTS: - Check conversion of Booleans (:trac:`28705`):: + Check conversion of Booleans (:issue:`28705`):: sage: giac('true')._sage_(), giac('false')._sage_() (True, False) - Check that variables and constants are not mixed up (:trac:`30133`):: + Check that variables and constants are not mixed up (:issue:`30133`):: sage: ee, ii, pp = SR.var('e,i,pi') sage: giac(ee * ii * pp).sage().variables() diff --git a/src/sage/interfaces/gp.py b/src/sage/interfaces/gp.py index 456007de9e3..60a21533614 100644 --- a/src/sage/interfaces/gp.py +++ b/src/sage/interfaces/gp.py @@ -438,7 +438,7 @@ def _eval_line(self, line, allow_use_file=True, wait_for_prompt=True, restart_if TESTS: - We verify that :trac:`11617` is fixed:: + We verify that :issue:`11617` is fixed:: sage: gp._eval_line('a='+str(list(range(2*10^5))))[:70] '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,' diff --git a/src/sage/interfaces/interface.py b/src/sage/interfaces/interface.py index fa6dd7d5854..6d9fd80970b 100644 --- a/src/sage/interfaces/interface.py +++ b/src/sage/interfaces/interface.py @@ -273,7 +273,7 @@ def __call__(self, x, name=None): TESTS: - Check conversion of Booleans (:trac:`28705`):: + Check conversion of Booleans (:issue:`28705`):: sage: giac(True) true @@ -341,7 +341,7 @@ def _coerce_impl(self, x, use_special=True): TESTS: - Check that python type ``complex`` can be converted (:trac:`31775`):: + Check that python type ``complex`` can be converted (:issue:`31775`):: sage: giac(complex(I))**2 # should not return `j^2` -1 @@ -955,7 +955,7 @@ def _richcmp_(self, other, op): Here, GAP fails to compare, and so ``False`` is returned. In previous Sage versions, this example actually resulted - in an error; compare :trac:`5962`. + in an error; compare :issue:`5962`. :: sage: gap('DihedralGroup(8)')==gap('DihedralGroup(8)') @@ -1187,7 +1187,7 @@ def _repr_(self): TESTS: - In :trac:`22501`, several string representation methods have been + In :issue:`22501`, several string representation methods have been removed in favour of using the default implementation. The corresponding tests have been moved here:: @@ -1341,7 +1341,7 @@ def __bool__(self): TESTS: By default this returns ``True`` for elements that are considered to be - not ``False`` by the interface (:trac:`28705`):: + not ``False`` by the interface (:issue:`28705`):: sage: bool(giac('"a"')) True diff --git a/src/sage/interfaces/macaulay2.py b/src/sage/interfaces/macaulay2.py index 0125a2273db..c4ab0b9fd1f 100644 --- a/src/sage/interfaces/macaulay2.py +++ b/src/sage/interfaces/macaulay2.py @@ -285,7 +285,7 @@ def _post_process_from_file(self, s): r""" TESTS: - Check that evaluating using a file gives the same result as without (:trac:`25903`):: + Check that evaluating using a file gives the same result as without (:issue:`25903`):: sage: from sage.interfaces.macaulay2 import remove_output_labels sage: s1 = macaulay2._eval_line_using_file('ZZ^2') # indirect doctest, optional - macaulay2 @@ -438,7 +438,7 @@ def set(self, var, value): TESTS: Check that internal expect variables do not acquire their global - variable name and that ``use`` is invoked (:trac:`28303`):: + variable name and that ``use`` is invoked (:issue:`28303`):: sage: # optional - macaulay2 sage: R = macaulay2('QQ[x, y]') # indirect doctest @@ -766,7 +766,7 @@ def help(self, s): TESTS: Check that help also works for Macaulay2 keywords and variables - (:trac:`28565`):: + (:issue:`28565`):: sage: from sage.repl.interpreter import get_test_shell sage: shell = get_test_shell() @@ -1184,7 +1184,7 @@ def __bool__(self): TESTS: - Check that :trac:`28705` is fixed:: + Check that :issue:`28705` is fixed:: sage: # optional - macaulay2 sage: t = macaulay2(True); t @@ -1744,7 +1744,7 @@ def _matrix_(self, R): TESTS: - Check that degenerate matrix dimensions are preserved (:trac:`28591`):: + Check that degenerate matrix dimensions are preserved (:issue:`28591`):: sage: m = macaulay2('matrix {{},{}}') # optional - macaulay2 sage: matrix(ZZ, m).dimensions() # optional - macaulay2 @@ -1786,7 +1786,7 @@ def _instancedoc_(self): TESTS: Check that detex is disabled, so that the output does not get - reformatted (:trac:`28565`):: + reformatted (:issue:`28565`):: sage: from sage.repl.interpreter import get_test_shell sage: shell = get_test_shell() @@ -1824,7 +1824,7 @@ def _instancedoc_(self): """ TESTS: - Since :trac:`28565`, the help output includes all documentation nodes + Since :issue:`28565`, the help output includes all documentation nodes that can take ``self._obj`` as first argument. This also checks that detex is disabled, so that the output does not get reformatted. :: diff --git a/src/sage/interfaces/magma.py b/src/sage/interfaces/magma.py index 5ca84438ea7..55f96488923 100644 --- a/src/sage/interfaces/magma.py +++ b/src/sage/interfaces/magma.py @@ -533,7 +533,7 @@ def eval(self, x, strip=True, **kwds): sage: magma.eval("a := %s;"%(10^10000)) # optional - magma '' - Verify that :trac:`9705` is fixed:: + Verify that :issue:`9705` is fixed:: sage: nl=chr(10) # newline character sage: magma.eval( # optional - magma @@ -544,7 +544,7 @@ def eval(self, x, strip=True, **kwds): ....: "print \"success\";") 'success' - Verify that :trac:`11401` is fixed:: + Verify that :issue:`11401` is fixed:: sage: nl=chr(10) # newline character sage: magma.eval("a:=3;"+nl+"b:=5;") == nl # optional - magma @@ -2078,7 +2078,7 @@ def _sage_(self): TESTS: - Tests for :trac:`30341`:: + Tests for :issue:`30341`:: sage: P. = PolynomialRing(QQ) sage: l = [-27563611963/4251528, -48034411/104976, -257/54, 1] @@ -2657,7 +2657,7 @@ def __bool__(self): TESTS: - Verify that :trac:`32602` is fixed:: + Verify that :issue:`32602` is fixed:: sage: magma("1 eq 0").bool() # optional - magma False diff --git a/src/sage/interfaces/mathematica.py b/src/sage/interfaces/mathematica.py index c77a142ff74..99b531e80eb 100644 --- a/src/sage/interfaces/mathematica.py +++ b/src/sage/interfaces/mathematica.py @@ -353,7 +353,7 @@ TESTS: Check that numerical approximations via Mathematica's `N[]` function work -correctly (:trac:`18888`, :trac:`28907`):: +correctly (:issue:`18888`, :issue:`28907`):: sage: # optional - mathematica sage: mathematica('Pi/2').N(10) @@ -367,7 +367,7 @@ -0.5 + 3.14159 x Check that Mathematica's `E` exponential symbol is correctly backtranslated -as Sage's `e` (:trac:`29833`):: +as Sage's `e` (:issue:`29833`):: sage: x = var('x') sage: (e^x)._mathematica_().sage() # optional -- mathematica @@ -376,7 +376,7 @@ e^x Check that all trig/hyperbolic functions and their reciprocals are correctly -translated to Mathematica (:trac:`34087`):: +translated to Mathematica (:issue:`34087`):: sage: # optional - mathematica sage: x=var('x') @@ -481,7 +481,7 @@ def __init__(self, maxread=None, script_subdirectory=None, logfile=None, server= r""" TESTS: - Test that :trac:`28075` is fixed:: + Test that :issue:`28075` is fixed:: sage: repr(mathematica.eval("Print[1]; Print[2]; Print[3]")) # optional - mathematica '1\n2\n3' @@ -831,7 +831,7 @@ def _sage_(self, locals={}): TESTS: - Check that :trac:`28814` is fixed:: + Check that :issue:`28814` is fixed:: sage: mathematica('Exp[1000.0]').sage() # optional - mathematica 1.97007111401700e434 @@ -979,7 +979,7 @@ def _rich_repr_(self, display_manager, **kwds): sage: P = mathematica('Plot[Sin[x],{x,-2Pi,4Pi}]') # optional - mathematica The following test requires a working X display on Linux so that the - Mathematica frontend can do the rendering (:trac:`23112`):: + Mathematica frontend can do the rendering (:issue:`23112`):: sage: P._rich_repr_(dm) # optional - mathematica mathematicafrontend OutputImagePng container @@ -1025,7 +1025,7 @@ def show(self, ImageSize=600): Sin[x*Cos[y]]/Sqrt[1 - x^2] The following example starts a Mathematica frontend to do the rendering - (:trac:`28819`):: + (:issue:`28819`):: sage: P = mathematica('Plot[Sin[x],{x,-2Pi,4Pi}]') # optional - mathematica sage: show(P) # optional - mathematica mathematicafrontend diff --git a/src/sage/interfaces/mathics.py b/src/sage/interfaces/mathics.py index c03472ecf5e..48328d1b083 100644 --- a/src/sage/interfaces/mathics.py +++ b/src/sage/interfaces/mathics.py @@ -347,7 +347,7 @@ AUTHORS: -- Sebastian Oehms (2021): first version from a copy of the Mathematica interface (see :trac:`31778`). +- Sebastian Oehms (2021): first version from a copy of the Mathematica interface (see :issue:`31778`). Thanks to Rocky Bernstein and Juan Mauricio Matera for their support. For further acknowledgments see `this list `__. @@ -358,7 +358,7 @@ TESTS: Check that numerical approximations via Mathics's `N[]` function work -correctly (:trac:`18888`, :trac:`28907`):: +correctly (:issue:`18888`, :issue:`28907`):: sage: # optional - mathics sage: mathics('Pi/2').N(10) @@ -371,7 +371,7 @@ '-0.5 + 3.14159 x ^ 2.' Check that Mathics's `E` exponential symbol is correctly backtranslated -as Sage's `e` (:trac:`29833`):: +as Sage's `e` (:issue:`29833`):: sage: (e^x)._mathics_().sage() # optional -- mathics e^x @@ -1078,7 +1078,7 @@ def _sage_(self, locals={}): if hasattr(s, '_sage_'): try: return s._sage_() - except NotImplementedError: # see :trac:`33584` + except NotImplementedError: # see :issue:`33584` pass p = self.to_python() if self is not p and p is not None: @@ -1159,7 +1159,7 @@ def _rich_repr_(self, display_manager, **kwds): sage: P = mathics('Plot[Sin[x],{x,-2Pi,4Pi}]') # optional - mathics The following test requires a working X display on Linux so that the - Mathematica frontend can do the rendering (:trac:`23112`):: + Mathematica frontend can do the rendering (:issue:`23112`):: sage: P._rich_repr_(dm) # optional - mathics OutputImageSvg container diff --git a/src/sage/interfaces/maxima.py b/src/sage/interfaces/maxima.py index 5526e2c6458..efcecf9464a 100644 --- a/src/sage/interfaces/maxima.py +++ b/src/sage/interfaces/maxima.py @@ -448,14 +448,14 @@ sage: maxima._eval_line('((((((((((0) + ((1) / ((n0) ^ (0)))) + ((1) / ((n1) ^ (1)))) + ((1) / ((n2) ^ (2)))) + ((1) / ((n3) ^ (3)))) + ((1) / ((n4) ^ (4)))) + ((1) / ((n5) ^ (5)))) + ((1) / ((n6) ^ (6)))) + ((1) / ((n7) ^ (7)))) + ((1) / ((n8) ^ (8)))) + ((1) / ((n9) ^ (9)));') '1/n9^9+1/n8^8+1/n7^7+1/n6^6+1/n5^5+1/n4^4+1/n3^3+1/n2^2+1/n1+1' -Test that Maxima gracefully handles this syntax error (:trac:`17667`):: +Test that Maxima gracefully handles this syntax error (:issue:`17667`):: sage: maxima.eval("1 == 1;") Traceback (most recent call last): ... TypeError: ...incorrect syntax: = is not a prefix operator... -Test that conversion of symbolic functions with latex names works (:trac:`31047`):: +Test that conversion of symbolic functions with latex names works (:issue:`31047`):: sage: var('phi') phi @@ -467,7 +467,7 @@ sage: test.operator()._latex_() == 'C_+' True -Test that the output is parseable (:trac:`31796`):: +Test that the output is parseable (:issue:`31796`):: sage: foo = maxima('a and (b or c)') ; foo a and (b or c) @@ -542,7 +542,7 @@ def __init__(self, script_subdirectory=None, logfile=None, server=None, sage: maxima == loads(dumps(m)) True - We make sure labels are turned off (see :trac:`6816`):: + We make sure labels are turned off (see :issue:`6816`):: sage: 'nolabels : true' in maxima._Expect__init_code True diff --git a/src/sage/interfaces/maxima_abstract.py b/src/sage/interfaces/maxima_abstract.py index 5f45d2b1eac..430a4139bd7 100644 --- a/src/sage/interfaces/maxima_abstract.py +++ b/src/sage/interfaces/maxima_abstract.py @@ -1245,14 +1245,14 @@ def _sage_(self): TESTS: - Check if :trac:`7661` is fixed:: + Check if :issue:`7661` is fixed:: sage: var('delta') delta sage: (2*delta).simplify() 2*delta - Check conversion of Booleans (:trac:`28705`):: + Check conversion of Booleans (:issue:`28705`):: sage: maxima('true')._sage_(), maxima('false')._sage_() (True, False) diff --git a/src/sage/interfaces/maxima_lib.py b/src/sage/interfaces/maxima_lib.py index ea40cf4ed8a..3efeed0bbee 100644 --- a/src/sage/interfaces/maxima_lib.py +++ b/src/sage/interfaces/maxima_lib.py @@ -68,7 +68,7 @@ sage: maxima_calculus("besselexpand:true") true -The output is parseable (i. e. :trac:`31796` is fixed):: +The output is parseable (i. e. :issue:`31796` is fixed):: sage: foo = maxima_calculus('a and (b or c)') ; foo a and (b or c) @@ -79,7 +79,7 @@ TESTS: -Check our workaround for a race in ecl works, see :trac:`26968`. +Check our workaround for a race in ecl works, see :issue:`26968`. We use a temporary `MAXIMA_USERDIR` so it's empty; we place it in `DOT_SAGE` since we expect it to have more latency than `/tmp`. @@ -149,7 +149,7 @@ try: ecl_eval("(set-pathnames)") except RuntimeError: - # Recover from :trac:`26968` by creating `*maxima-objdir*` here. + # Recover from :issue:`26968` by creating `*maxima-objdir*` here. # This cannot be done before calling `(set-pathnames)` since # `*maxima-objdir*` is computed there. # We use python `os.makedirs()` which is immune to the race. @@ -375,7 +375,7 @@ def __init__(self): sage: maxima_lib == loads(dumps(maxima_lib)) True - We make sure labels are turned off (see :trac:`6816`):: + We make sure labels are turned off (see :issue:`6816`):: sage: 'nolabels : true' in maxima_lib._MaximaLib__init_code True @@ -743,7 +743,7 @@ def sr_integral(self, *args): [] Make sure the abs_integrate package is being used, - :trac:`11483`. The following are examples from the Maxima + :issue:`11483`. The following are examples from the Maxima abs_integrate documentation:: sage: integrate(abs(x), x) @@ -755,7 +755,7 @@ def sr_integral(self, *args): abs(x - 1) + abs(x) This is a known bug in Sage symbolic limits code, see - :trac:`17892` and https://sourceforge.net/p/maxima/bugs/3237/ :: + :issue:`17892` and https://sourceforge.net/p/maxima/bugs/3237/ :: sage: integrate(1 / (1 + abs(x-5)), x, -5, 6) # not tested -- known bug log(11) + log(2) @@ -781,7 +781,7 @@ def sr_integral(self, *args): sage: integrate(f, x, -Infinity, Infinity) # known bug -erf(1/2*sqrt(2)) - From :trac:`8624`:: + From :issue:`8624`:: sage: integral(abs(cos(x))*sin(x),(x,pi/2,pi)) 1/2 @@ -791,20 +791,20 @@ def sr_integral(self, *args): sage: integrate(sqrt(x + sqrt(x)), x).canonicalize_radical() # known bug 1/12*((8*x - 3)*x^(1/4) + 2*x^(3/4))*sqrt(sqrt(x) + 1) + 1/8*log(sqrt(sqrt(x) + 1) + x^(1/4)) - 1/8*log(sqrt(sqrt(x) + 1) - x^(1/4)) - And :trac:`11594`:: + And :issue:`11594`:: sage: integrate(abs(x^2 - 1), x, -2, 2) # known bug 4 This definite integral returned zero (incorrectly) in at least - Maxima 5.23. The correct answer is now given (:trac:`11591`):: + Maxima 5.23. The correct answer is now given (:issue:`11591`):: sage: f = (x^2)*exp(x) / (1+exp(x))^2 sage: integrate(f, (x, -infinity, infinity)) 1/3*pi^2 The following integral was computed incorrectly in versions of - Maxima before 5.27 (see :trac:`12947`):: + Maxima before 5.27 (see :issue:`12947`):: sage: a = integrate(x*cos(x^3),(x,0,1/2)).n() sage: a.real() @@ -834,7 +834,7 @@ def sr_sum(self, *args): TESTS: - Check that :trac:`16224` is fixed:: + Check that :issue:`16224` is fixed:: sage: k = var('k') sage: sum(x^(2*k)/factorial(2*k), k, 0, oo).canonicalize_radical() @@ -869,7 +869,7 @@ def sr_sum(self, *args): Taking the sum of all natural numbers informs us that the sum is divergent. Maxima (before 5.29.1) used to ask questions - about `m`, leading to a different error (see :trac:`11990`):: + about `m`, leading to a different error (see :issue:`11990`):: sage: m = var('m') sage: sum(m, m, 0, infinity) @@ -878,21 +878,21 @@ def sr_sum(self, *args): ValueError: Sum is divergent. An error with an infinite sum in Maxima (before 5.30.0, - see :trac:`13712`):: + see :issue:`13712`):: sage: n = var('n') sage: sum(1/((2*n-1)^2*(2*n+1)^2*(2*n+3)^2), n, 0, oo) 3/256*pi^2 Maxima correctly detects division by zero in a symbolic sum - (see :trac:`11894`):: + (see :issue:`11894`):: sage: sum(1/(m^4 + 2*m^3 + 3*m^2 + 2*m)^2, m, 0, infinity) Traceback (most recent call last): ... RuntimeError: ECL says: Zero to negative power computed. - Similar situation for :trac:`12410`:: + Similar situation for :issue:`12410`:: sage: x = var('x') sage: sum(1/x*(-1)^x, x, 0, oo) @@ -990,7 +990,7 @@ def sr_limit(self, expr, v, a, dir=None): [] The second limit below was computed incorrectly prior to - Maxima 5.24 (:trac:`10868`):: + Maxima 5.24 (:issue:`10868`):: sage: f(n) = 2 + 1/factorial(n) sage: limit(f(n), n=infinity) @@ -999,7 +999,7 @@ def sr_limit(self, expr, v, a, dir=None): 1/2 The limit below was computed incorrectly prior to Maxima 5.30 - (see :trac:`13526`):: + (see :issue:`13526`):: sage: n = var('n') sage: l = (3^n + (-2)^n) / (3^(n+1) + (-2)^(n+1)) @@ -1007,7 +1007,7 @@ def sr_limit(self, expr, v, a, dir=None): 1/3 The following limit computation used to incorrectly return 0 - or infinity, depending on the domain (see :trac:`15033`):: + or infinity, depending on the domain (see :issue:`15033`):: sage: m = sage.calculus.calculus.maxima sage: _ = m.eval('domain: real') # much faster than 'domain: complex' @@ -1629,7 +1629,7 @@ def sr_to_max(expr): TESTS: We should be able to convert derivatives evaluated at a point, - :trac:`12796`:: + :issue:`12796`:: sage: from sage.interfaces.maxima_lib import sr_to_max, max_to_sr sage: f = function('f') diff --git a/src/sage/interfaces/mwrank.py b/src/sage/interfaces/mwrank.py index 92a9081eb4c..ba909519c82 100644 --- a/src/sage/interfaces/mwrank.py +++ b/src/sage/interfaces/mwrank.py @@ -243,7 +243,7 @@ def __call__(self, cmd): TESTS: - Invalid input raises an ValueError (see :trac:`10108`); this includes + Invalid input raises an ValueError (see :issue:`10108`); this includes syntactically valid input which defines a singular curve:: sage: mwrank(10) diff --git a/src/sage/interfaces/octave.py b/src/sage/interfaces/octave.py index 10e8457aa0f..faef5722c78 100644 --- a/src/sage/interfaces/octave.py +++ b/src/sage/interfaces/octave.py @@ -173,7 +173,7 @@ class Octave(Expect): TESTS: - We check that the interface can handle large inputs (see :trac:`940`):: + We check that the interface can handle large inputs (see :issue:`940`):: sage: t = '"{}"'.format(10^10000) sage: a = octave(t) # optional - octave diff --git a/src/sage/interfaces/polymake.py b/src/sage/interfaces/polymake.py index c31052ee4d0..a34c90402db 100644 --- a/src/sage/interfaces/polymake.py +++ b/src/sage/interfaces/polymake.py @@ -567,7 +567,7 @@ def set(self, var, value): sage: polymake.get('$myvar[0]') # optional - jupymake 'Polymake::polytope::Polytope__Rational=ARRAY(...)' - The following tests against :trac:`22658`:: + The following tests against :issue:`22658`:: sage: P = polymake.new_object("Polytope", FACETS=[[12, -2, -3, -5, -8, -13, -21, -34, -55], # optional - jupymake ....: [0, 1, 0, 0, 0, 0, 0, 0, 0], diff --git a/src/sage/interfaces/psage.py b/src/sage/interfaces/psage.py index 4466dba10fd..ec583218c1e 100644 --- a/src/sage/interfaces/psage.py +++ b/src/sage/interfaces/psage.py @@ -97,7 +97,7 @@ def is_locked(self) -> bool: if fobj.read() != '__locked__': return False except FileNotFoundError: - # Directory may have already been deleted :trac:`30730` + # Directory may have already been deleted :issue:`30730` return False # looks like we are locked, but check health first try: @@ -111,7 +111,7 @@ def __del__(self): """ TESTS: - Check that :trac:`29989` is fixed:: + Check that :issue:`29989` is fixed:: sage: PSage().__del__() """ diff --git a/src/sage/interfaces/qepcad.py b/src/sage/interfaces/qepcad.py index 01ae082cca6..6aa5b008859 100644 --- a/src/sage/interfaces/qepcad.py +++ b/src/sage/interfaces/qepcad.py @@ -826,7 +826,7 @@ def __init__(self, formula, sage: Qepcad(x^2 - 1 == 0) # optional - qepcad QEPCAD object in phase 'Before Normalization' - To check that :trac:`20126` is fixed:: + To check that :issue:`20126` is fixed:: sage: (x, y, z) = var('x, y, z') sage: conds = [-z < 0, -y + z < 0, x^2 + x*y + 2*x*z + 2*y*z - x < 0, \ diff --git a/src/sage/interfaces/r.py b/src/sage/interfaces/r.py index a37b9230554..afba18e7c7b 100644 --- a/src/sage/interfaces/r.py +++ b/src/sage/interfaces/r.py @@ -550,7 +550,7 @@ def _coerce_impl(self, x, use_special=True): """ TESTS: - Check conversion of Booleans (:trac:`28705`):: + Check conversion of Booleans (:issue:`28705`):: sage: repr(r(True)) == r._true_symbol() # indirect doctest # optional - rpy2 True @@ -1431,7 +1431,7 @@ def chdir(self, dir): Check that ``tmpdir`` and ``r.getwd()`` refer to the same directory. We need to use ``realpath()`` in case ``$TMPDIR`` - (by default ``/tmp``) is a symbolic link (see :trac:`10264`). + (by default ``/tmp``) is a symbolic link (see :issue:`10264`). :: diff --git a/src/sage/interfaces/sage0.py b/src/sage/interfaces/sage0.py index 11ece30ac56..8c95637d3c0 100644 --- a/src/sage/interfaces/sage0.py +++ b/src/sage/interfaces/sage0.py @@ -356,7 +356,7 @@ def clear(self, var): Clear the variable named var. Note that the exact format of the NameError for a cleared variable - is slightly platform dependent, see :trac:`10539`. + is slightly platform dependent, see :issue:`10539`. EXAMPLES:: diff --git a/src/sage/interfaces/sagespawn.pyx b/src/sage/interfaces/sagespawn.pyx index 497efc74bba..f146fa01ddb 100644 --- a/src/sage/interfaces/sagespawn.pyx +++ b/src/sage/interfaces/sagespawn.pyx @@ -5,10 +5,10 @@ the ptyprocess's ``PtyProcess`` class. AUTHOR: -- Jeroen Demeyer (2015-02-01): initial version, see :trac:`17686`. +- Jeroen Demeyer (2015-02-01): initial version, see :issue:`17686`. - Jeroen Demeyer (2015-12-04): add support for pexpect 4 + ptyprocess, - see :trac:`10295`. + see :issue:`10295`. """ # *************************************************************************** diff --git a/src/sage/interfaces/singular.py b/src/sage/interfaces/singular.py index 9c9b8ffb8b9..dedbebab99c 100644 --- a/src/sage/interfaces/singular.py +++ b/src/sage/interfaces/singular.py @@ -280,12 +280,12 @@ Create a ring over GF(9) to check that ``gftables`` has been installed, -see :trac:`11645`:: +see :issue:`11645`:: sage: singular.eval("ring testgf9 = (9,x),(a,b,c,d,e,f),(M((1,2,3,0)),wp(2,3),lp);") '' -Verify that :trac:`17720` is fixed:: +Verify that :issue:`17720` is fixed:: sage: R.

= QQ[] sage: K.

= QQ.extension(p^2 - p - 1) @@ -1751,7 +1751,7 @@ def sage_poly(self, R=None, kcache=None): sage: singular('z^4') (-z3-z2-z-1) - Test that :trac:`25297` is fixed:: + Test that :issue:`25297` is fixed:: sage: R. = QQ[] sage: SE. = R.quotient(x^2 + y^2 - 1) @@ -1760,7 +1760,7 @@ def sage_poly(self, R=None, kcache=None): sage: P2.0.lift().parent() Multivariate Polynomial Ring in x, y over Rational Field - Test that :trac:`29396` is fixed:: + Test that :issue:`29396` is fixed:: sage: Rxz. = RR[] sage: f = x**3 + x*z + 1 @@ -2018,7 +2018,7 @@ def _sage_(self, R=None): sage: singular('x^2+y').sage().parent() Quotient of Multivariate Polynomial Ring in x, y, z over Finite Field in a of size 3^2 by the ideal (y^4 - y^2*z^3 + z^6, x + y^2 + z^3) - Test that :trac:`18848` is fixed:: + Test that :issue:`18848` is fixed:: sage: singular(5).sage() 5 @@ -2776,7 +2776,7 @@ def singular_gb_standard_options(func): sage: "basis" in sage_getsource(J.interreduced_basis) #indirect doctest True - The following tests against a bug that was fixed in :trac:`11298`:: + The following tests against a bug that was fixed in :issue:`11298`:: sage: from sage.misc.sageinspect import sage_getsourcelines, sage_getargspec sage: P. = QQ[] diff --git a/src/sage/interfaces/sympy.py b/src/sage/interfaces/sympy.py index 0735691d279..d291727ee0e 100644 --- a/src/sage/interfaces/sympy.py +++ b/src/sage/interfaces/sympy.py @@ -28,12 +28,12 @@ TESTS: -Check that :trac:`24212` is fixed:: +Check that :issue:`24212` is fixed:: sage: integrate(sin(x^2), x, algorithm='sympy') 3/8*sqrt(2)*sqrt(pi)*fresnel_sin(sqrt(2)*x/sqrt(pi))*gamma(3/4)/gamma(7/4) -Test that conversion of symbolic functions with latex names works (:trac:`31047`):: +Test that conversion of symbolic functions with latex names works (:issue:`31047`):: sage: var('phi') phi @@ -550,7 +550,7 @@ def _sympysage_derivative(self): TESTS: - Check that :trac:`28964` is fixed:: + Check that :issue:`28964` is fixed:: sage: f = function('f') sage: _ = var('x,t') diff --git a/src/sage/interfaces/tests.py b/src/sage/interfaces/tests.py index 13f755b4d11..a2afded9ac1 100644 --- a/src/sage/interfaces/tests.py +++ b/src/sage/interfaces/tests.py @@ -23,7 +23,7 @@ Singular Test that write errors to stderr are handled gracefully by GAP -(see :trac:`13211`) and other interfaces:: +(see :issue:`13211`) and other interfaces:: sage: import subprocess sage: try: diff --git a/src/sage/interfaces/tides.py b/src/sage/interfaces/tides.py index 1b00f52df54..3dd4d07be23 100644 --- a/src/sage/interfaces/tides.py +++ b/src/sage/interfaces/tides.py @@ -438,7 +438,7 @@ def genfiles_mintides(integrator, driver, f, ics, initial, final, delta, '\ttolrel = 9.9999999999999998e-17 ;\n' sage: shutil.rmtree(tempdir) - Check that issue :trac:`17179` is fixed (handle expressions like `\\pi`):: + Check that issue :issue:`17179` is fixed (handle expressions like `\\pi`):: sage: from sage.interfaces.tides import genfiles_mintides sage: import os @@ -719,7 +719,7 @@ def genfiles_mpfr(integrator, driver, f, ics, initial, final, delta, '\tmp_tides_delta(function_iteration, NULL, nvar, npar, nfun, v, p, tini, dt, nipt, tolrel, tolabs, NULL, fd);\n' sage: shutil.rmtree(tempdir) - Check that issue :trac:`17179` is fixed (handle expressions like `\\pi`):: + Check that issue :issue:`17179` is fixed (handle expressions like `\\pi`):: sage: from sage.interfaces.tides import genfiles_mpfr sage: import os diff --git a/src/sage/knots/knotinfo.py b/src/sage/knots/knotinfo.py index 2cc94c795fb..18587bd8cf0 100644 --- a/src/sage/knots/knotinfo.py +++ b/src/sage/knots/knotinfo.py @@ -217,7 +217,7 @@ AUTHORS: - Sebastian Oehms August 2020: initial version -- Sebastian Oehms June 2022: add :meth:`conway_polynomial` and :meth:`khovanov_polynomial` (:trac:`33969`) +- Sebastian Oehms June 2022: add :meth:`conway_polynomial` and :meth:`khovanov_polynomial` (:issue:`33969`) Thanks to Chuck Livingston and Allison Moore for their support. For further acknowledgments see the correspondig hompages. """ @@ -649,7 +649,7 @@ def braid_notation(self, original=False): TESTS: - Check that :trac:`33966` is fixed:: + Check that :issue:`33966` is fixed:: sage: KnotInfo.K0_1.braid_notation() (1,) diff --git a/src/sage/knots/link.py b/src/sage/knots/link.py index 36f6e22c6c8..d39cb97c862 100644 --- a/src/sage/knots/link.py +++ b/src/sage/knots/link.py @@ -40,7 +40,7 @@ - Sebastian Oehms (October 2020, add :meth:`get_knotinfo` and :meth:`is_isotopic`) - Sebastian Oehms (May 2022): add :meth:`links_gould_polynomial` - Sebastian Oehms (May 2023): change the convention about the ``pd_code`` from - clockwise to anti-clockwise (see :trac:`35665`). + clockwise to anti-clockwise (see :issue:`35665`). """ # **************************************************************************** @@ -326,7 +326,7 @@ def __init__(self, data): ... ValueError: invalid input: data must be either a list or a braid - Verify that :trac:`29692` is fixed:: + Verify that :issue:`29692` is fixed:: sage: B = BraidGroup(5) sage: L = Link(B([3,4,3,-4])) @@ -658,7 +658,7 @@ def braid(self, remove_loops=False): sage: L.braid() 1 - Check that :trac:`25050` is solved:: + Check that :issue:`25050` is solved:: sage: A = Link([[[1, 2, -2, -1, -3, -4, 4, 3]], [1, 1, 1, 1]]) sage: A.braid() @@ -1258,7 +1258,7 @@ def khovanov_homology(self, ring=ZZ, height=None, degree=None): TESTS: - Check that :trac:`31001` is fixed:: + Check that :issue:`31001` is fixed:: sage: L = Link([]) sage: L.khovanov_homology() @@ -2187,7 +2187,7 @@ def is_alternating(self): TESTS: - Check that :trac:`31001` is fixed:: + Check that :issue:`31001` is fixed:: sage: L = Knot([]) sage: L.is_alternating() @@ -2266,7 +2266,7 @@ def seifert_circles(self): TESTS: - Check that :trac:`25050` is solved:: + Check that :issue:`25050` is solved:: sage: A = Link([[[1, 2, -2, -1, -3, -4, 4, 3]], [1, 1, 1, 1]]) sage: A.seifert_circles() @@ -2500,7 +2500,7 @@ def mirror_image(self): TESTS: - check that :trac:`30997` is fixed:: + check that :issue:`30997` is fixed:: sage: L = Link([[6, 2, 7, 1], [5, 13, 6, 12], [8, 3, 9, 4], ....: [2, 13, 3, 14], [14, 8, 15, 7], [11, 17, 12, 16], @@ -2772,7 +2772,7 @@ def jones_polynomial(self, variab=None, skein_normalization=False, algorithm='jo ... ValueError: bad value of algorithm - Check that :trac:`31001` is fixed:: + Check that :issue:`31001` is fixed:: sage: L.jones_polynomial() 1 @@ -3026,7 +3026,7 @@ def homfly_polynomial(self, var1=None, var2=None, normalization='lm'): sage: L2.homfly_polynomial('ν', 'ζ', 'vz') -ν*ζ^-1 + ν^-1*ζ^-1 - Check that :trac:`30346` is fixed:: + Check that :issue:`30346` is fixed:: sage: L = Link([]) sage: L.homfly_polynomial() @@ -3547,7 +3547,7 @@ def plot(self, gap=0.1, component_gap=0.5, solver=None, TESTS: - Check that :trac:`20315` is fixed:: + Check that :issue:`20315` is fixed:: sage: L = Link([[2,1,4,5], [5,6,7,3], [6,4,1,9], [9,2,3,7]]) sage: L.plot(solver='GLPK') diff --git a/src/sage/lfunctions/dokchitser.py b/src/sage/lfunctions/dokchitser.py index 16119d20815..45660009d02 100644 --- a/src/sage/lfunctions/dokchitser.py +++ b/src/sage/lfunctions/dokchitser.py @@ -422,7 +422,7 @@ def init_coeffs(self, v, cutoff=1, 0.9985830631627461 Illustrate that one can give a list of complex numbers for v - (see :trac:`10937`):: + (see :issue:`10937`):: sage: L2 = Dokchitser(conductor=1, gammaV=[0,1], weight=12, eps=1) sage: L2.init_coeffs(list(delta_qexp(1000))[1:]) @@ -432,7 +432,7 @@ def init_coeffs(self, v, cutoff=1, TESTS: Verify that setting the `w` parameter does not raise an error - (see :trac:`10937`). Note that the meaning of `w` does not seem to + (see :issue:`10937`). Note that the meaning of `w` does not seem to be documented anywhere in Dokchitser's package yet, so there is no claim that the example below is meaningful! :: @@ -602,13 +602,13 @@ def taylor_series(self, a=0, k=6, var='z'): sage: L.taylor_series(1,3) ...e-82 + (...e-82)*z + 0.75931650028842677023019260789472201907809751649492435158581*z^2 + O(z^3) - Check that :trac:`25402` is fixed:: + Check that :issue:`25402` is fixed:: sage: L = EllipticCurve("24a1").modular_form().lseries() sage: L.taylor_series(-1, 3) 0.000000000000000 - 0.702565506265199*z + 0.638929001045535*z^2 + O(z^3) - Check that :trac:`25965` is fixed:: + Check that :issue:`25965` is fixed:: sage: L2 = EllipticCurve("37a1").modular_form().lseries(); L2 L-series associated to the cusp form q - 2*q^2 - 3*q^3 + 2*q^4 - 2*q^5 + O(q^6) diff --git a/src/sage/lfunctions/pari.py b/src/sage/lfunctions/pari.py index 694f3ad123e..732eb115584 100644 --- a/src/sage/lfunctions/pari.py +++ b/src/sage/lfunctions/pari.py @@ -145,7 +145,7 @@ def init_coeffs(self, v, cutoff=None, w=1): 0.9985830631627461 Illustrate that one can give a list of complex numbers for v - (see :trac:`10937`):: + (see :issue:`10937`):: sage: l2 = lfun_generic(conductor=1, gammaV=[0, 1], weight=12, eps=1) sage: l2.init_coeffs(list(delta_qexp(1000))[1:]) @@ -156,7 +156,7 @@ def init_coeffs(self, v, cutoff=None, w=1): TESTS: Verify that setting the `w` parameter does not raise an error - (see :trac:`10937`):: + (see :issue:`10937`):: sage: L2 = lfun_generic(conductor=1, gammaV=[0, 1], weight=12, eps=1) sage: L2.init_coeffs(list(delta_qexp(1000))[1:], w=[1..1000]) @@ -711,7 +711,7 @@ def taylor_series(self, s, k=6, var='z'): sage: L.taylor_series(1, 3) 2...e-63 + (...e-63)*z + 0.75931650028842677023019260789472201907809751649492435158581*z^2 + O(z^3) - Check that :trac:`25402` is fixed:: + Check that :issue:`25402` is fixed:: sage: L = EllipticCurve("24a1").modular_form().lseries() sage: L.taylor_series(-1, 3) diff --git a/src/sage/libs/coxeter3/coxeter_group.py b/src/sage/libs/coxeter3/coxeter_group.py index fd5f93ad506..2707b5b9d82 100644 --- a/src/sage/libs/coxeter3/coxeter_group.py +++ b/src/sage/libs/coxeter3/coxeter_group.py @@ -436,7 +436,7 @@ def __init__(self, parent, x): sage: W([2,1,2]) [1, 2, 1] - Check that :trac:`32266` is fixed:: + Check that :issue:`32266` is fixed:: sage: A3 = CoxeterGroup('A3', implementation='coxeter3') sage: s1,s2,s3 = A3.simple_reflections() diff --git a/src/sage/libs/eclib/constructor.py b/src/sage/libs/eclib/constructor.py index d8881077a75..7c1c21377d0 100644 --- a/src/sage/libs/eclib/constructor.py +++ b/src/sage/libs/eclib/constructor.py @@ -62,7 +62,7 @@ def CremonaModularSymbols(level, sign=0, cuspidal=False, verbose=0): ... ValueError: sign (= -2) is not supported; use 0, +1 or -1 - We do allow -1 as a sign (see :trac:`9476`):: + We do allow -1 as a sign (see :issue:`9476`):: sage: CremonaModularSymbols(10, sign = -1) Cremona Modular Symbols space of dimension 0 for Gamma_0(10) of weight 2 with sign -1 diff --git a/src/sage/libs/eclib/homspace.pyx b/src/sage/libs/eclib/homspace.pyx index 735de8787e2..723bdc8c30e 100644 --- a/src/sage/libs/eclib/homspace.pyx +++ b/src/sage/libs/eclib/homspace.pyx @@ -259,7 +259,7 @@ cdef class ModularSymbols: sage: print(T == U.change_ring(GF(7))) True - This concerns an issue reported on :trac:`21303`:: + This concerns an issue reported on :issue:`21303`:: sage: C = CremonaModularSymbols(45, cuspidal=True,sign=-1) sage: T2a = C.hecke_matrix(2).sage_matrix_over_ZZ() diff --git a/src/sage/libs/eclib/interface.py b/src/sage/libs/eclib/interface.py index 419c23cbd70..7b2b07b1f3f 100644 --- a/src/sage/libs/eclib/interface.py +++ b/src/sage/libs/eclib/interface.py @@ -295,7 +295,7 @@ def two_descent(self, TESTS: - See :trac:`7992`:: + See :issue:`7992`:: sage: EllipticCurve([0, prod(prime_range(10))]).mwrank_curve().two_descent() Basic pair: I=0, J=-5670 @@ -331,7 +331,7 @@ def two_descent(self, RuntimeError: A 2-descent did not complete successfully. Calling this method twice does not cause a segmentation fault - (see :trac:`10665`):: + (see :issue:`10665`):: sage: E = EllipticCurve([1, 1, 0, 0, 528]) sage: E.two_descent(verbose=False) @@ -556,7 +556,7 @@ def saturate(self, bound=-1, lower=2): sage: E.gens() [[-1001107, -4004428, 1]] - Check that :trac:`18031` is fixed:: + Check that :issue:`18031` is fixed:: sage: E = EllipticCurve([0,-1,1,-266,968]) sage: Q1 = E([-1995,3674,125]) diff --git a/src/sage/libs/eclib/newforms.pyx b/src/sage/libs/eclib/newforms.pyx index 210c1d9e2c0..a1dffcbe1e3 100644 --- a/src/sage/libs/eclib/newforms.pyx +++ b/src/sage/libs/eclib/newforms.pyx @@ -161,7 +161,7 @@ cdef class ECModularSymbol: TESTS: - This one is from :trac:`8042`:: + This one is from :issue:`8042`:: sage: from sage.libs.eclib.newforms import ECModularSymbol sage: E = EllipticCurve('858k2') @@ -169,7 +169,7 @@ cdef class ECModularSymbol: Modular symbol with sign 1 over Rational Field attached to Elliptic Curve defined by y^2 + x*y = x^3 + 16353089*x - 335543012233 over Rational Field We allow a-invariants which are larger than 64 bits - (:trac:`16977`):: + (:issue:`16977`):: sage: E = EllipticCurve([-25194941007454971, -1539281792450963687794218]) # non-minimal model of 21758k3 sage: ECModularSymbol(E) # long time @@ -317,7 +317,7 @@ cdef class ECModularSymbol: ... ValueError: impossible to evaluate both symbols on a plus space - TESTS (see :trac:`11211`):: + TESTS (see :issue:`11211`):: sage: from sage.libs.eclib.newforms import ECModularSymbol sage: E = EllipticCurve('11a') diff --git a/src/sage/libs/flint/flint_sage.pyx b/src/sage/libs/flint/flint_sage.pyx index a3c2e40a09b..4098afb9891 100644 --- a/src/sage/libs/flint/flint_sage.pyx +++ b/src/sage/libs/flint/flint_sage.pyx @@ -13,7 +13,7 @@ Import this module:: sage: import sage.libs.flint.flint_sage -We verify that :trac:`6919` is correctly fixed:: +We verify that :issue:`6919` is correctly fixed:: sage: R. = PolynomialRing(ZZ) sage: A = 2^(2^17+2^15) diff --git a/src/sage/libs/flint/nmod_poly_linkage.pxi b/src/sage/libs/flint/nmod_poly_linkage.pxi index 303cb6472fe..9fb164b8ddf 100644 --- a/src/sage/libs/flint/nmod_poly_linkage.pxi +++ b/src/sage/libs/flint/nmod_poly_linkage.pxi @@ -533,7 +533,7 @@ cdef inline int celement_pow(nmod_poly_t res, nmod_poly_t x, long e, nmod_poly_t sage: f^5 % g 7231*x + 17274 - Make sure that exponentiation can be interrupted, see :trac:`17470`:: + Make sure that exponentiation can be interrupted, see :issue:`17470`:: sage: n = 2^23 sage: alarm(0.2); x^n; cancel_alarm() diff --git a/src/sage/libs/gap/element.pyx b/src/sage/libs/gap/element.pyx index ab9a2860cb4..b2b0681c052 100644 --- a/src/sage/libs/gap/element.pyx +++ b/src/sage/libs/gap/element.pyx @@ -293,7 +293,7 @@ cdef GapElement make_any_gap_element(parent, Obj obj) noexcept: sage: t.sage() ['aa', 'ab', 'ac', 'bb', 'bc', 'cc'] - Check that :trac:`18158` is fixed:: + Check that :issue:`18158` is fixed:: sage: S = SymmetricGroup(5) sage: irr = libgap.Irr(S)[3] @@ -901,7 +901,7 @@ cdef class GapElement(RingElement): sage: F1 < F2 or F1 > F2 True - Check that :trac:`26388` is fixed:: + Check that :issue:`26388` is fixed:: sage: 1 > libgap(1) False @@ -1343,7 +1343,7 @@ cdef class GapElement(RingElement): TESTS: - Check :trac:`30496`:: + Check :issue:`30496`:: sage: x = libgap.Integers.Indeterminate("x") @@ -1542,7 +1542,7 @@ cdef class GapElement_Integer(GapElement): r""" TESTS: - Check that gap integers can be used as indices (:trac:`23878`):: + Check that gap integers can be used as indices (:issue:`23878`):: sage: s = 'abcd' sage: s[libgap(1)] @@ -1827,7 +1827,7 @@ cdef class GapElement_FiniteField(GapElement): sage: n.sage(ring=GF(2^8, 'a')) a^7 + a^6 + a^4 + a^2 + a + 1 - Check that :trac:`23153` is fixed:: + Check that :issue:`23153` is fixed:: sage: n = libgap.eval('Z(2^4)^2 + Z(2^4)^1 + Z(2^4)^0') sage: n.sage(ring=GF(2^4, 'a')) @@ -1937,7 +1937,7 @@ cdef class GapElement_Cyclotomic(GapElement): TESTS: - Check that :trac:`15204` is fixed:: + Check that :issue:`15204` is fixed:: sage: libgap.E(3).sage(ring=UniversalCyclotomicField()) E(3) diff --git a/src/sage/libs/gap/libgap.pyx b/src/sage/libs/gap/libgap.pyx index 17a7aca9003..328a5096160 100644 --- a/src/sage/libs/gap/libgap.pyx +++ b/src/sage/libs/gap/libgap.pyx @@ -360,7 +360,7 @@ class Gap(Parent): TESTS: - We gracefully handle the case that the conversion fails (:trac:`18039`):: + We gracefully handle the case that the conversion fails (:issue:`18039`):: sage: F. = GF(9, modulus="first_lexicographic") # needs sage.rings.finite_rings sage: libgap(Matrix(F, [[a]])) # needs sage.rings.finite_rings diff --git a/src/sage/libs/gap/test.py b/src/sage/libs/gap/test.py index bee6f17ba84..eee697218ee 100644 --- a/src/sage/libs/gap/test.py +++ b/src/sage/libs/gap/test.py @@ -10,7 +10,7 @@ def test_write_to_file(): """ Test that libgap can write to files - See :trac:`16502`, :trac:`15833`. + See :issue:`16502`, :issue:`15833`. EXAMPLES:: diff --git a/src/sage/libs/giac/giac.pyx b/src/sage/libs/giac/giac.pyx index c5f738eadc0..3096e00f8af 100644 --- a/src/sage/libs/giac/giac.pyx +++ b/src/sage/libs/giac/giac.pyx @@ -1057,7 +1057,7 @@ cdef class Pygen(GiacMethods_base): sage: [ i for i in l ] == list(range(10^6)) True - Check for :trac:`18841`:: + Check for :issue:`18841`:: sage: L = libgiac(range(10)) sage: next(iter(L)) @@ -1545,7 +1545,7 @@ cdef class Pygen(GiacMethods_base): TESTS: - Check that variables and constants are not mixed up (:trac:`30133`):: + Check that variables and constants are not mixed up (:issue:`30133`):: sage: ee, ii, pp = SR.var('e,i,pi') sage: libgiac(ee * ii * pp).sage().variables() diff --git a/src/sage/libs/glpk/error.pyx b/src/sage/libs/glpk/error.pyx index da5595a7709..b3db031043a 100644 --- a/src/sage/libs/glpk/error.pyx +++ b/src/sage/libs/glpk/error.pyx @@ -94,7 +94,7 @@ def setup_glpk_error_handler(): GLPKError: glp_term_out: flag = 12345; invalid parameter Error detected in file env/stdout.c at line ... - Check that normal terminal output still works, see :trac:`20832`:: + Check that normal terminal output still works, see :issue:`20832`:: sage: def verbose_GLPK(): ....: from sage.numerical.backends.generic_backend import get_solver diff --git a/src/sage/libs/gmp/pylong.pyx b/src/sage/libs/gmp/pylong.pyx index 406f2703c1f..202008f4587 100644 --- a/src/sage/libs/gmp/pylong.pyx +++ b/src/sage/libs/gmp/pylong.pyx @@ -8,10 +8,10 @@ AUTHORS: - Gonzalo Tornaria (2006): initial version - David Harvey (2007-08-18): added ``mpz_get_pyintlong`` function - (:trac:`440`) + (:issue:`440`) - Jeroen Demeyer (2015-02-24): moved from c_lib, rewritten using - ``mpz_export`` and ``mpz_import`` (:trac:`17853`) + ``mpz_export`` and ``mpz_import`` (:issue:`17853`) """ #***************************************************************************** diff --git a/src/sage/libs/linkages/padics/unram_shared.pxi b/src/sage/libs/linkages/padics/unram_shared.pxi index b23168e0eb2..7ffbebc5f52 100644 --- a/src/sage/libs/linkages/padics/unram_shared.pxi +++ b/src/sage/libs/linkages/padics/unram_shared.pxi @@ -50,7 +50,7 @@ def frobenius_unram(self, arithmetic=True): TESTS: - We check that :trac:`23575` is resolved:: + We check that :issue:`23575` is resolved:: sage: x = R.random_element() sage: x.frobenius(arithmetic=false).frobenius() == x @@ -131,7 +131,7 @@ def norm_unram(self, base = None): TESTS: - Check that :trac:`11586` has been resolved:: + Check that :issue:`11586` has been resolved:: sage: R. = QQ[] sage: f = x^2 + 3*x + 1 @@ -144,7 +144,7 @@ def norm_unram(self, base = None): sage: b*b.frobenius() 4*7^2 + 7^3 + O(7^22) - Check that :trac:`31845` is fixed:: + Check that :issue:`31845` is fixed:: sage: R. = Zq(4) sage: (a - a).norm() @@ -223,7 +223,7 @@ def trace_unram(self, base = None): sage: (a+b).trace() 4*5 + 5^2 + 5^3 + 2*5^4 - Check that :trac:`31845` is fixed:: + Check that :issue:`31845` is fixed:: sage: R. = Zq(4) sage: (a - a).trace() diff --git a/src/sage/libs/mpmath/ext_impl.pyx b/src/sage/libs/mpmath/ext_impl.pyx index aa69f6e0409..1827b85b948 100644 --- a/src/sage/libs/mpmath/ext_impl.pyx +++ b/src/sage/libs/mpmath/ext_impl.pyx @@ -4,7 +4,7 @@ floating-point arithmetic. Operations are done in-place. TESTS: -See if :trac:`15118` is fixed:: +See if :issue:`15118` is fixed:: sage: import mpmath sage: mpmath.mpf(0)^(-2) diff --git a/src/sage/libs/mpmath/ext_main.pyx b/src/sage/libs/mpmath/ext_main.pyx index 4b717bb3860..347712e6cab 100644 --- a/src/sage/libs/mpmath/ext_main.pyx +++ b/src/sage/libs/mpmath/ext_main.pyx @@ -2508,7 +2508,7 @@ cdef class mpc(mpnumber): TESTS: - Check that :trac:`31676` is fixed:: + Check that :issue:`31676` is fixed:: sage: from mpmath import mpc sage: hash(mpc(1, -1)) == hash(mpc(-1, -1)) # should not return OverflowError: Python int too large to convert to C ssize_t diff --git a/src/sage/libs/mpmath/utils.pyx b/src/sage/libs/mpmath/utils.pyx index 7265c0bf7a7..15286fa830b 100644 --- a/src/sage/libs/mpmath/utils.pyx +++ b/src/sage/libs/mpmath/utils.pyx @@ -409,12 +409,12 @@ def call(func, *args, **kwargs): sage: type(_) - Check that :trac:`11885` is fixed:: + Check that :issue:`11885` is fixed:: sage: a.call(a.ei, 1.0r, parent=float) 1.8951178163559366 - Check that :trac:`14984` is fixed:: + Check that :issue:`14984` is fixed:: sage: a.call(a.log, -1.0r, parent=float) 3.141592653589793j diff --git a/src/sage/libs/ntl/error.pyx b/src/sage/libs/ntl/error.pyx index 54443c13597..c729cd4c1fb 100644 --- a/src/sage/libs/ntl/error.pyx +++ b/src/sage/libs/ntl/error.pyx @@ -11,10 +11,10 @@ NTL error handler AUTHOR: -- Jeroen Demeyer (2015-02-15): initial version, see :trac:`17784` +- Jeroen Demeyer (2015-02-15): initial version, see :issue:`17784` - Jeroen Demeyer (2015-07-09): use standard NTL ``ErrorMsgCallback``, - see :trac:`18875` + see :issue:`18875` """ #***************************************************************************** diff --git a/src/sage/libs/ntl/ntl_ZZ_pEX_linkage.pxi b/src/sage/libs/ntl/ntl_ZZ_pEX_linkage.pxi index 36c87c75efa..b0497eb3630 100644 --- a/src/sage/libs/ntl/ntl_ZZ_pEX_linkage.pxi +++ b/src/sage/libs/ntl/ntl_ZZ_pEX_linkage.pxi @@ -337,7 +337,7 @@ cdef inline int celement_pow(ZZ_pEX_c* res, ZZ_pEX_c* x, long e, ZZ_pEX_c *modul TESTS: - Check that :trac:`15777` is fixed:: + Check that :issue:`15777` is fixed:: sage: k. = GF(5**5) sage: x = polygen(k) diff --git a/src/sage/libs/pari/convert_flint.pyx b/src/sage/libs/pari/convert_flint.pyx index c8e1ddb00cf..eaf063a0f61 100644 --- a/src/sage/libs/pari/convert_flint.pyx +++ b/src/sage/libs/pari/convert_flint.pyx @@ -6,7 +6,7 @@ Utility function to convert PARI ``GEN``s to/from flint types. AUTHORS: - Luca De Feo (2016-09-06): Separate Sage-specific components from - generic C-interface in ``Pari`` (:trac:`20241`) + generic C-interface in ``Pari`` (:issue:`20241`) """ # **************************************************************************** diff --git a/src/sage/libs/pari/convert_gmp.pyx b/src/sage/libs/pari/convert_gmp.pyx index 8be1dad5cb9..728729b89d1 100644 --- a/src/sage/libs/pari/convert_gmp.pyx +++ b/src/sage/libs/pari/convert_gmp.pyx @@ -7,7 +7,7 @@ Utility function to convert PARI ``GEN``s to/from the GMP types AUTHORS: - Luca De Feo (2016-09-06): Separate Sage-specific components from - generic C-interface in ``Pari`` (:trac:`20241`) + generic C-interface in ``Pari`` (:issue:`20241`) """ #***************************************************************************** @@ -40,7 +40,7 @@ cdef Gen new_gen_from_mpz_t(mpz_t value) noexcept: TESTS: Check that the hash of an integer does not depend on existing - garbage on the stack (:trac:`11611`):: + garbage on the stack (:issue:`11611`):: sage: foo = pari(2^(32*1024)) # Create large integer to put PARI stack in known state sage: a5 = pari(5) @@ -92,7 +92,7 @@ cdef Gen new_gen_from_mpq_t(mpq_t value) noexcept: TESTS: Check that the hash of a rational does not depend on existing - garbage on the stack (:trac:`11854`):: + garbage on the stack (:issue:`11854`):: sage: foo = pari(2^(32*1024)) # Create large integer to put PARI stack in known state sage: a5 = pari(5/7) diff --git a/src/sage/libs/pari/convert_sage_complex_double.pyx b/src/sage/libs/pari/convert_sage_complex_double.pyx index b97c3831c75..1c162c12e55 100644 --- a/src/sage/libs/pari/convert_sage_complex_double.pyx +++ b/src/sage/libs/pari/convert_sage_complex_double.pyx @@ -21,7 +21,7 @@ cpdef ComplexDoubleElement pari_to_cdf(Gen g) noexcept: TESTS: - Check that we handle PARI errors gracefully, see :trac:`17329`:: + Check that we handle PARI errors gracefully, see :issue:`17329`:: sage: CDF(-151.386325246 + 992.34771962*I).zeta() Traceback (most recent call last): diff --git a/src/sage/libs/pari/tests.py b/src/sage/libs/pari/tests.py index 5605d232d9e..43018a338d6 100644 --- a/src/sage/libs/pari/tests.py +++ b/src/sage/libs/pari/tests.py @@ -1,7 +1,7 @@ r""" Tests for the Sage <-> PARI interface -The default precision is 64 bits, see :trac:`21425`:: +The default precision is 64 bits, see :issue:`21425`:: sage: pari("bitprecision(Pi)") 64 @@ -16,14 +16,14 @@ x^2 - 3 The following example caused Sage to crash before -:trac:`20630`:: +:issue:`20630`:: sage: R. = QQ[] sage: K. = NumberField(theta^2 + 1) # needs sage.rings.number_field sage: K.absolute_polynomial().galois_group(pari_group=True) # needs sage.groups sage.rings.number_field PARI group [2, -1, 1, "S2"] of degree 2 -Before :trac:`15654`, this used to take a very long time. +Before :issue:`15654`, this used to take a very long time. Now it takes much less than a second:: sage: pari.allocatemem(200000) @@ -33,7 +33,7 @@ sage: pari(pol).poldisc() # needs sage.rings.padics 2*3 + 3^4 + 2*3^6 + 3^7 + 2*3^8 + 2*3^9 + O(3^10) -This used to give the wrong answer before :trac:`23259`:: +This used to give the wrong answer before :issue:`23259`:: sage: R. = QQ[] sage: f = pari(x^12 + x^7 - 1/5*x^6 - 3*x^5 + 13/5*x^4 + 11/5*x^3 + 2/5*x^2 + 2/5*x + 1/5) diff --git a/src/sage/libs/singular/function.pyx b/src/sage/libs/singular/function.pyx index ac4bde0c20b..834ffd163d8 100644 --- a/src/sage/libs/singular/function.pyx +++ b/src/sage/libs/singular/function.pyx @@ -928,7 +928,7 @@ cdef class Converter(SageObject): sage: freerank(I, true) [-1, [x^2*y - x*y^2 - x^2*z + y^2*z + x*z^2 - y*z^2]] - Singular's genus function is prone to crashing, see :trac:`12851` and :trac:`19750` :: + Singular's genus function is prone to crashing, see :issue:`12851` and :issue:`19750` :: sage: sing_genus = sage.libs.singular.function_factory.ff.normal__lib.genus # known bug sage: sing_genus(I) # known bug @@ -1274,7 +1274,7 @@ cdef class SingularFunction(SageObject): The input is no groebner basis. leaving triang.lib::triangL (0) - Flush any stray output -- see :trac:`28622`:: + Flush any stray output -- see :issue:`28622`:: sage: sys.stdout.flush() ... diff --git a/src/sage/libs/singular/groebner_strategy.pyx b/src/sage/libs/singular/groebner_strategy.pyx index 40a0a0f939d..ceda88c6362 100644 --- a/src/sage/libs/singular/groebner_strategy.pyx +++ b/src/sage/libs/singular/groebner_strategy.pyx @@ -93,7 +93,7 @@ cdef class GroebnerStrategy(SageObject): ... NotImplementedError: Only coefficient fields are implemented so far. - Check that :trac:`27508` is fixed:: + Check that :issue:`27508` is fixed:: sage: R2. = PolynomialRing(QQ, 2, order="lex") sage: I2 = R2.ideal(["x^2 - x", "y^2 - y"]) diff --git a/src/sage/libs/singular/polynomial.pyx b/src/sage/libs/singular/polynomial.pyx index d208aa9a37c..43a5b7b1be0 100644 --- a/src/sage/libs/singular/polynomial.pyx +++ b/src/sage/libs/singular/polynomial.pyx @@ -468,7 +468,7 @@ cdef object singular_polynomial_latex(poly *p, ring *r, object base, object late 10 x^{2} + \frac{1}{2} y Demonstrate that coefficients over non-atomic representated rings are - properly parenthesized (:trac:`11186`):: + properly parenthesized (:issue:`11186`):: sage: x = var('x') sage: K. = QQ.extension(x^2 + x + 1) @@ -477,7 +477,7 @@ cdef object singular_polynomial_latex(poly *p, ring *r, object base, object late \left(z + 1\right) v w - z w^{2} + z v + \left(-z - 1\right) w + z + 1 Demonstrate that there are no extra blanks in latex expression of multivariate - polynomial (:trac:`12908`):: + polynomial (:issue:`12908`):: sage: R. = ZZ[] sage: latex(X-Y) diff --git a/src/sage/libs/singular/ring.pyx b/src/sage/libs/singular/ring.pyx index 494fd2c0caf..cad4d27c49f 100644 --- a/src/sage/libs/singular/ring.pyx +++ b/src/sage/libs/singular/ring.pyx @@ -139,7 +139,7 @@ cdef ring *singular_ring_new(base_ring, n, names, term_order) except NULL: TESTS: Check that ``degneglex`` and ``degrevlex`` are the same up to reversal of - variables (:trac:`29635`):: + variables (:issue:`29635`):: sage: R = PolynomialRing(QQ, 'x', 4, order='degrevlex') sage: S = PolynomialRing(QQ, tuple(reversed(R.gens())), order='degneglex') diff --git a/src/sage/libs/singular/singular.pyx b/src/sage/libs/singular/singular.pyx index cf0124e0a35..051e1dea01c 100644 --- a/src/sage/libs/singular/singular.pyx +++ b/src/sage/libs/singular/singular.pyx @@ -1721,7 +1721,7 @@ cdef int overflow_check(unsigned long e, ring *_ring) except -1: Whether an overflow occurs or not partially depends on the number of variables in the ring. See github issue - :trac:`11856`. With Singular 4, it is by default optimized + :issue:`11856`. With Singular 4, it is by default optimized for at least 4 variables on 64-bit and 2 variables on 32-bit, which in both cases makes a maximal default exponent of 2^16-1. diff --git a/src/sage/libs/singular/standard_options.py b/src/sage/libs/singular/standard_options.py index 5d74da3ce3a..341650fa6ba 100644 --- a/src/sage/libs/singular/standard_options.py +++ b/src/sage/libs/singular/standard_options.py @@ -111,7 +111,7 @@ def libsingular_gb_standard_options(func): sage: "basis.reduced" in sage_getsource(J.interreduced_basis) True - The following tests against a bug that was fixed in :trac:`11298`:: + The following tests against a bug that was fixed in :issue:`11298`:: sage: from sage.misc.sageinspect import sage_getsourcelines, sage_getargspec sage: P. = QQ[] diff --git a/src/sage/logic/boolformula.py b/src/sage/logic/boolformula.py index d28faa87b8d..28b1094e766 100644 --- a/src/sage/logic/boolformula.py +++ b/src/sage/logic/boolformula.py @@ -1548,7 +1548,7 @@ def length(self): return len(flatten(self.full_tree())) # For backward compatibility, we allow `self.length()` to be called as - # `len(self)`, but this may be deprecated in the future (see :trac:`32148`): + # `len(self)`, but this may be deprecated in the future (see :issue:`32148`): __len__ = length diff --git a/src/sage/logic/logic.py b/src/sage/logic/logic.py index b07a8d0edd8..058da0ff633 100644 --- a/src/sage/logic/logic.py +++ b/src/sage/logic/logic.py @@ -171,7 +171,7 @@ def truthtable(self, statement, start=0, end=-1): TESTS: - Verify that :trac:`32676` is fixed:: + Verify that :issue:`32676` is fixed:: sage: s = log.statement("a&b|!(c|a)") sage: copy_s2 = copy(s[2]) @@ -243,7 +243,7 @@ def print_table(self, table): TESTS: - Verify that :trac:`32676` is fixed:: + Verify that :issue:`32676` is fixed:: sage: table = log.truthtable(log.statement("A->B")) sage: table_copy = table.copy() diff --git a/src/sage/manifolds/chart.py b/src/sage/manifolds/chart.py index e625299a6cc..2bd980fb465 100644 --- a/src/sage/manifolds/chart.py +++ b/src/sage/manifolds/chart.py @@ -345,7 +345,7 @@ def __init__(self, domain, coordinates, calc_method=None, periods=None, [] sage: TestSuite(X).run() - Check that :trac:`32112` has been fixed:: + Check that :issue:`32112` has been fixed:: sage: M = Manifold(2, 'M', structure='topological') sage: U = M.open_subset('U') @@ -2386,7 +2386,7 @@ def restrict(self, subset, restrictions=None): TESTS: - Check that :trac:`32929` is fixed:: + Check that :issue:`32929` is fixed:: sage: M = Manifold(2, 'M') sage: X. = M.chart(r"x:(0,+oo) y:(0,2):periodic") @@ -3726,7 +3726,7 @@ def set_inverse(self, *transformations, **kwds): TESTS: - Check that :trac:`31923` is fixed:: + Check that :issue:`31923` is fixed:: sage: X1_to_X2.inverse().inverse() is X1_to_X2 True diff --git a/src/sage/manifolds/continuous_map.py b/src/sage/manifolds/continuous_map.py index b6404a9bd94..dc9f9b5d12c 100644 --- a/src/sage/manifolds/continuous_map.py +++ b/src/sage/manifolds/continuous_map.py @@ -1001,7 +1001,7 @@ def _init_derived(self): ``_extensions_graph`` and ``_restrictions_graph`` were not originally derived quantities, but this induced a bug when dealing with other - derived quantities (see :trac:`26012`):: + derived quantities (see :issue:`26012`):: sage: M = Manifold(2, 'M') sage: C. = M.chart() diff --git a/src/sage/manifolds/differentiable/diff_form.py b/src/sage/manifolds/differentiable/diff_form.py index d5d817ab404..0fc837b8cc4 100644 --- a/src/sage/manifolds/differentiable/diff_form.py +++ b/src/sage/manifolds/differentiable/diff_form.py @@ -21,7 +21,7 @@ - Eric Gourgoulhon, Michal Bejger (2013, 2014): initial version - Joris Vankerschaver (2010): developed a previous class, - ``DifferentialForm`` (cf. :trac:`24444`), which inspired the storage of the + ``DifferentialForm`` (cf. :issue:`24444`), which inspired the storage of the non-zero components as a dictionary whose keys are the indices. - Travis Scrimshaw (2016): review tweaks @@ -1653,7 +1653,7 @@ def interior_product(self, qvect): TESTS: - Check that :trac:`33780` is fixed:: + Check that :issue:`33780` is fixed:: sage: v = X.frame()[1] # vector field d/dx sage: f = X.coframe()[2] # 1-form dy diff --git a/src/sage/manifolds/differentiable/diff_form_module.py b/src/sage/manifolds/differentiable/diff_form_module.py index e11a32d2131..b10de21c07c 100644 --- a/src/sage/manifolds/differentiable/diff_form_module.py +++ b/src/sage/manifolds/differentiable/diff_form_module.py @@ -802,7 +802,7 @@ def _element_constructor_(self, comp=[], frame=None, name=None, sage: A(0) is A.zero() True - Check that :trac:`27658` is fixed:: + Check that :issue:`27658` is fixed:: sage: f = M.scalar_field(x) sage: f in A diff --git a/src/sage/manifolds/differentiable/diff_map.py b/src/sage/manifolds/differentiable/diff_map.py index a6f960c76f8..8a64694b38b 100644 --- a/src/sage/manifolds/differentiable/diff_map.py +++ b/src/sage/manifolds/differentiable/diff_map.py @@ -936,7 +936,7 @@ def pullback(self, tensor_or_codomain_subset, name=None, latex_name=None): TESTS: - Check that :trac:`31904` is fixed:: + Check that :issue:`31904` is fixed:: sage: E. = EuclideanSpace() sage: polar. = E.polar_coordinates() diff --git a/src/sage/manifolds/differentiable/examples/real_line.py b/src/sage/manifolds/differentiable/examples/real_line.py index 10a44c7e149..5ff4f969b49 100644 --- a/src/sage/manifolds/differentiable/examples/real_line.py +++ b/src/sage/manifolds/differentiable/examples/real_line.py @@ -306,7 +306,7 @@ def __classcall_private__(cls, lower, upper, ambient_interval=None, TESTS: - Check whether :trac:`30830` is fixed:: + Check whether :issue:`30830` is fixed:: sage: I = manifolds.OpenInterval(0,2) sage: J = manifolds.OpenInterval(0,1, ambient_interval=I, coordinate='t') diff --git a/src/sage/manifolds/differentiable/integrated_curve.py b/src/sage/manifolds/differentiable/integrated_curve.py index fe2a6dcb3cc..b0dd12bc744 100644 --- a/src/sage/manifolds/differentiable/integrated_curve.py +++ b/src/sage/manifolds/differentiable/integrated_curve.py @@ -417,7 +417,7 @@ def __init__(self, parent, equations_rhs, velocities, manifold M sage: TestSuite(c).run() - Check that :trac:`28669` is fixed:: + Check that :issue:`28669` is fixed:: sage: E. = EuclideanSpace(coordinates='polar') sage: p = E((1, 0)) # the initial point diff --git a/src/sage/manifolds/differentiable/mixed_form.py b/src/sage/manifolds/differentiable/mixed_form.py index 7c6872c594b..4ca5cf56c49 100644 --- a/src/sage/manifolds/differentiable/mixed_form.py +++ b/src/sage/manifolds/differentiable/mixed_form.py @@ -305,7 +305,7 @@ def _repr_(self): 'Mixed differential form F on the 3-dimensional differentiable manifold M' - Check whether :trac:`31784` is fixed:: + Check whether :issue:`31784` is fixed:: sage: E3 = EuclideanSpace(3) sage: S2 = E3.sphere() diff --git a/src/sage/manifolds/differentiable/multivectorfield.py b/src/sage/manifolds/differentiable/multivectorfield.py index 87f68f8b1f0..9a4b03fb369 100644 --- a/src/sage/manifolds/differentiable/multivectorfield.py +++ b/src/sage/manifolds/differentiable/multivectorfield.py @@ -1173,7 +1173,7 @@ def interior_product(self, form): TESTS: - Check that :trac:`33780` is fixed:: + Check that :issue:`33780` is fixed:: sage: v = X.frame()[0] # vector field d/dt sage: f = X.coframe()[1] # 1-form dx diff --git a/src/sage/manifolds/differentiable/tensorfield.py b/src/sage/manifolds/differentiable/tensorfield.py index 8188eff3584..e8f36026bc7 100644 --- a/src/sage/manifolds/differentiable/tensorfield.py +++ b/src/sage/manifolds/differentiable/tensorfield.py @@ -776,7 +776,7 @@ def _init_components(self, *comp, **kwargs): TESTS: - Check that :trac:`29639` is fixed:: + Check that :issue:`29639` is fixed:: sage: v = M.vector_field() sage: v._init_components(1/2, -1) diff --git a/src/sage/manifolds/differentiable/vectorfield_module.py b/src/sage/manifolds/differentiable/vectorfield_module.py index ea7307f810d..78cc259ca41 100644 --- a/src/sage/manifolds/differentiable/vectorfield_module.py +++ b/src/sage/manifolds/differentiable/vectorfield_module.py @@ -17,7 +17,7 @@ AUTHORS: - Eric Gourgoulhon, Michal Bejger (2014-2015): initial version -- Travis Scrimshaw (2016): structure of Lie algebroid (:trac:`20771`) +- Travis Scrimshaw (2016): structure of Lie algebroid (:issue:`20771`) REFERENCES: diff --git a/src/sage/manifolds/differentiable/vectorframe.py b/src/sage/manifolds/differentiable/vectorframe.py index a02d69da5d0..539c08b8050 100644 --- a/src/sage/manifolds/differentiable/vectorframe.py +++ b/src/sage/manifolds/differentiable/vectorframe.py @@ -26,7 +26,7 @@ - Eric Gourgoulhon, Michal Bejger (2013-2015): initial version - Travis Scrimshaw (2016): review tweaks - Eric Gourgoulhon (2018): some refactoring and more functionalities in the - choice of symbols for vector frame elements (:trac:`24792`) + choice of symbols for vector frame elements (:issue:`24792`) REFERENCES: diff --git a/src/sage/manifolds/manifold_homset.py b/src/sage/manifolds/manifold_homset.py index 492e460ab47..71773c5d3ce 100644 --- a/src/sage/manifolds/manifold_homset.py +++ b/src/sage/manifolds/manifold_homset.py @@ -164,7 +164,7 @@ def __init__(self, domain, codomain, name=None, latex_name=None): Real Field with 53 bits of precision sage: TestSuite(E).run() - Check whether :trac:`31233` is solved:: + Check whether :issue:`31233` is solved:: sage: S1 = manifolds.Sphere(1) sage: iota = S1.embedding() diff --git a/src/sage/manifolds/scalarfield.py b/src/sage/manifolds/scalarfield.py index 102de8caf3c..1cc865564fc 100644 --- a/src/sage/manifolds/scalarfield.py +++ b/src/sage/manifolds/scalarfield.py @@ -2418,7 +2418,7 @@ def common_charts(self, other): TESTS: - Check that :trac:`28072` has been fixed:: + Check that :issue:`28072` has been fixed:: sage: c_ab. = W.chart() sage: xy_to_ab = c_xy_W.transition_map(c_ab, (3*y, x-y)) diff --git a/src/sage/manifolds/subset.py b/src/sage/manifolds/subset.py index cd98b143037..d6de3069a6f 100644 --- a/src/sage/manifolds/subset.py +++ b/src/sage/manifolds/subset.py @@ -2482,7 +2482,7 @@ def label(element): sage: M.union(a) is M True - Check that :trac:`30401` is fixed:: + Check that :issue:`30401` is fixed:: sage: d = a.subset('D') sage: e = a.subset('E') diff --git a/src/sage/manifolds/utilities.py b/src/sage/manifolds/utilities.py index c15a98ebbce..20bac910900 100644 --- a/src/sage/manifolds/utilities.py +++ b/src/sage/manifolds/utilities.py @@ -949,7 +949,7 @@ def _repr_(self): sage: ExpressionNice(fun) y*(z - d(h)/dz)^2 + x*d^2(f)/dxdy - Check that :trac:`33399` is fixed:: + Check that :issue:`33399` is fixed:: sage: ExpressionNice(function('f')(x+y, x-y).diff(y)) d(f)/d(x + y) - d(f)/d(x - y) @@ -1047,7 +1047,7 @@ def _latex_(self): sage: latex(ExpressionNice(fun)) \frac{\partial\,{\cal F}}{\partial y} - Check that :trac:`33399` is fixed:: + Check that :issue:`33399` is fixed:: sage: latex(ExpressionNice(function('f')(x+y, x-y).diff(y))) \frac{\partial\,f}{\partial \left( x + y \right)} diff --git a/src/sage/matrix/action.pyx b/src/sage/matrix/action.pyx index 43a4ecbc5b0..4bb1f4bbe2a 100644 --- a/src/sage/matrix/action.pyx +++ b/src/sage/matrix/action.pyx @@ -6,7 +6,7 @@ Actions used by the coercion model for matrix and vector multiplications The class :class:`MatrixMulAction` and its descendants extends the class :class:`Action`. As a consequence objects from these classes only keep weak references to the underlying sets which are acted upon. This decision was - made in :trac:`715` in order to allow garbage collection within the coercion + made in :issue:`715` in order to allow garbage collection within the coercion framework, where actions are mainly used, and avoid memory leaks. To ensure that the underlying set of such an object does not get garbage @@ -36,7 +36,7 @@ Actions used by the coercion model for matrix and vector multiplications EXAMPLES: An action requires a common parent for the base rings, so the following -doesn't work (see :trac:`17859`):: +doesn't work (see :issue:`17859`):: sage: vector(QQ, [1]) * matrix(Zmod(2), [[1]]) Traceback (most recent call last): @@ -120,7 +120,7 @@ cdef class MatrixMatrixAction(MatrixMulAction): EXAMPLES: - By :trac:`715`, there only is a weak reference on the underlying set, + By :issue:`715`, there only is a weak reference on the underlying set, so that it can be garbage collected if only the action itself is explicitly referred to. Hence, we first assign the involved matrix spaces to a variable:: @@ -173,7 +173,7 @@ cdef class MatrixMatrixAction(MatrixMulAction): """ EXAMPLES: - By :trac:`715`, there only is a weak reference on the underlying set, + By :issue:`715`, there only is a weak reference on the underlying set, so that it can be garbage collected if only the action itself is explicitly referred to. Hence, we first assign the involved matrix spaces to a variable:: diff --git a/src/sage/matrix/args.pyx b/src/sage/matrix/args.pyx index b69db0fb5a6..6b247595059 100644 --- a/src/sage/matrix/args.pyx +++ b/src/sage/matrix/args.pyx @@ -854,7 +854,7 @@ cdef class MatrixArgs: ... TypeError: nonzero scalar matrix must be square - Check :trac:`19134`:: + Check :issue:`19134`:: sage: matrix(2, 3, []) Traceback (most recent call last): @@ -1241,7 +1241,7 @@ cdef class MatrixArgs: TESTS: - Check that :trac:`26655` is fixed:: + Check that :issue:`26655` is fixed:: sage: # needs sage.rings.finite_rings sage: F. = GF(9) diff --git a/src/sage/matrix/compute_J_ideal.py b/src/sage/matrix/compute_J_ideal.py index 62dc321a5b6..406e036871b 100644 --- a/src/sage/matrix/compute_J_ideal.py +++ b/src/sage/matrix/compute_J_ideal.py @@ -257,7 +257,7 @@ def p_part(f, p): TESTS: - Return value is supposed to be a polynomial, see :trac:`22402` + Return value is supposed to be a polynomial, see :issue:`22402` sage: g = p_part(X+1, 2) sage: g.parent() diff --git a/src/sage/matrix/constructor.pyx b/src/sage/matrix/constructor.pyx index 073b815d6ae..665ae4fbde9 100644 --- a/src/sage/matrix/constructor.pyx +++ b/src/sage/matrix/constructor.pyx @@ -573,12 +573,12 @@ def matrix(*args, **kwds): sage: matrix(vector(RR,[1,2,3])).parent() Full MatrixSpace of 1 by 3 dense matrices over Real Field with 53 bits of precision - Check :trac:`10158`:: + Check :issue:`10158`:: sage: matrix(ZZ, [[0] for i in range(10^5)]).is_zero() True - Check :trac:`24459`:: + Check :issue:`24459`:: sage: # needs sage.libs.linbox sage: Matrix(ZZ, sys.maxsize, sys.maxsize) @@ -638,11 +638,11 @@ def matrix(*args, **kwds): - Jason Grout (2008-03): almost a complete rewrite, with bits and pieces from the original implementation - - Jeroen Demeyer (2016-02-05): major clean up, see :trac:`20015` - and :trac:`20016` + - Jeroen Demeyer (2016-02-05): major clean up, see :issue:`20015` + and :issue:`20016` - Jeroen Demeyer (2018-02-20): completely rewritten using - :class:`MatrixArgs`, see :trac:`24742` + :class:`MatrixArgs`, see :issue:`24742` """ immutable = kwds.pop('immutable', False) M = MatrixArgs(*args, **kwds).matrix() diff --git a/src/sage/matrix/matrix0.pyx b/src/sage/matrix/matrix0.pyx index d6c1d911067..9eb3f9f4213 100644 --- a/src/sage/matrix/matrix0.pyx +++ b/src/sage/matrix/matrix0.pyx @@ -868,7 +868,7 @@ cdef class Matrix(sage.structure.element.Matrix): If we're given lists as arguments, we should throw an appropriate error when those lists do not contain valid - indices (:trac:`6569`):: + indices (:issue:`6569`):: sage: A = matrix(4, range(1,17)) sage: A[[1.5], [1]] @@ -884,7 +884,7 @@ cdef class Matrix(sage.structure.element.Matrix): ... IndexError: row indices must be integers - Before :trac:`6569` was fixed, sparse/dense matrices behaved + Before :issue:`6569` was fixed, sparse/dense matrices behaved differently due to implementation details. Given invalid indices, they should fail in the same manner. These tests just repeat the previous set with a sparse matrix:: @@ -1706,7 +1706,7 @@ cdef class Matrix(sage.structure.element.Matrix): sage: A._matrix_(QQ[['t']]).parent() Full MatrixSpace of 2 by 2 dense matrices over Power Series Ring in t over Rational Field - Check that :trac:`14314` is fixed:: + Check that :issue:`14314` is fixed:: sage: m = Matrix({(1,2):2}) sage: matrix(m) == m @@ -1922,7 +1922,7 @@ cdef class Matrix(sage.structure.element.Matrix): TESTS: - Prior to :trac:`11544` this could take a full minute to run (2011). :: + Prior to :issue:`11544` this could take a full minute to run (2011). :: sage: # needs sage.rings.number_field sage: A = matrix(QQ, 4, 4, [1, 2, -2, 2, 1, 0, -1, -1, 0, -1, 1, 1, -1, 2, 1/2, 0]) @@ -4619,7 +4619,7 @@ cdef class Matrix(sage.structure.element.Matrix): OUTPUT: a tuple of Python integers: the position of the first nonzero entry in each row of the echelon form. - This returns a tuple so it is immutable; see :trac:`10752`. + This returns a tuple so it is immutable; see :issue:`10752`. EXAMPLES:: @@ -4660,7 +4660,7 @@ cdef class Matrix(sage.structure.element.Matrix): TESTS: We should be able to compute the rank of a matrix whose - entries are polynomials over a finite field (:trac:`5014`):: + entries are polynomials over a finite field (:issue:`5014`):: sage: P. = PolynomialRing(GF(17)) sage: m = matrix(P, [[ 6*x^2 + 8*x + 12, 10*x^2 + 4*x + 11], @@ -5077,7 +5077,7 @@ cdef class Matrix(sage.structure.element.Matrix): TESTS: - Check that :trac:`8198` is fixed:: + Check that :issue:`8198` is fixed:: sage: # needs sage.rings.padics sage: R = Qp(5, 5) @@ -5112,7 +5112,7 @@ cdef class Matrix(sage.structure.element.Matrix): TESTS: - Check that :trac:`8198` is fixed:: + Check that :issue:`8198` is fixed:: sage: # needs sage.rings.padics sage: R = Qp(5, 5) @@ -5642,7 +5642,7 @@ cdef class Matrix(sage.structure.element.Matrix): sage: parent(~1) Rational Field - A matrix with 0 rows and 0 columns is invertible (see :trac:`3734`):: + A matrix with 0 rows and 0 columns is invertible (see :issue:`3734`):: sage: M = MatrixSpace(RR,0,0)(0); M [] @@ -5671,7 +5671,7 @@ cdef class Matrix(sage.structure.element.Matrix): [ 1 422550200076076467165567735125] [1267650600228229401496703205375 422550200076076467165567735126] - Matrices over p-adics. See :trac:`17272` :: + Matrices over p-adics. See :issue:`17272` :: sage: # needs sage.rings.padics sage: R = ZpCA(5, 5, print_mode='val-unit') @@ -5693,14 +5693,14 @@ cdef class Matrix(sage.structure.element.Matrix): ... ZeroDivisionError: input matrix must be nonsingular - Check to make sure that :trac:`2256` is still fixed:: + Check to make sure that :issue:`2256` is still fixed:: sage: M = MatrixSpace(CC, 2)(-1.10220440881763) sage: N = ~M sage: (N*M).norm() 0.9999999999999999 - Check that :trac:`28402` is fixed:: + Check that :issue:`28402` is fixed:: sage: B = matrix(RR, [[1/6, -1/24, -1/30, 1/120,1/12, 0, 0, 0, 0], ....: [-1/24,1/60,1/60, 1/420, -1/24, 0, 0, 0, 0], @@ -5825,7 +5825,7 @@ cdef class Matrix(sage.structure.element.Matrix): [(1, 1) (0, 0)] [(0, 0) (1, 1)] - Tests for :trac:`28570`:: + Tests for :issue:`28570`:: sage: P = posets.TamariLattice(7) # needs sage.graphs sage: M = P._hasse_diagram._leq_matrix # needs sage.graphs diff --git a/src/sage/matrix/matrix1.pyx b/src/sage/matrix/matrix1.pyx index 1193b0a6ca0..ef8aa35ce03 100644 --- a/src/sage/matrix/matrix1.pyx +++ b/src/sage/matrix/matrix1.pyx @@ -109,7 +109,7 @@ cdef class Matrix(Matrix0): True Particularly difficult is the case of matrices over cyclotomic - fields and general number fields. See :trac:`5618` and :trac:`8909`:: + fields and general number fields. See :issue:`5618` and :issue:`8909`:: sage: # needs sage.libs.gap sage.rings.number_field sage: K. = CyclotomicField(8) @@ -455,7 +455,7 @@ cdef class Matrix(Matrix0): TESTS: - Entries of the matrix get promoted to the base ring (:trac:`28566`):: + Entries of the matrix get promoted to the base ring (:issue:`28566`):: sage: R. = QQ[] sage: m = macaulay2(matrix(R, [[1, 2], [3, 4]])) # optional - macaulay2 @@ -463,7 +463,7 @@ cdef class Matrix(Matrix0): True Check that degenerate matrix dimensions are handled correctly - (:trac:`28591`):: + (:issue:`28591`):: sage: macaulay2(matrix(QQ, 2, 0)).numrows() # optional - macaulay2 2 @@ -1117,7 +1117,7 @@ cdef class Matrix(Matrix0): TESTS: - Check that the returned rows are immutable as per :trac:`14874`:: + Check that the returned rows are immutable as per :issue:`14874`:: sage: m = Mat(ZZ,3,3)(range(9)) sage: v = m.dense_columns() @@ -1171,7 +1171,7 @@ cdef class Matrix(Matrix0): TESTS: - Check that the returned rows are immutable as per :trac:`14874`:: + Check that the returned rows are immutable as per :issue:`14874`:: sage: m = Mat(ZZ,3,3)(range(9)) sage: v = m.dense_rows() @@ -1219,7 +1219,7 @@ cdef class Matrix(Matrix0): TESTS: - Columns of sparse matrices having no columns were fixed on :trac:`10714`:: + Columns of sparse matrices having no columns were fixed on :issue:`10714`:: sage: m = matrix(10, 0, sparse=True) sage: m.ncols() @@ -1227,7 +1227,7 @@ cdef class Matrix(Matrix0): sage: m.columns() [] - Check that the returned columns are immutable as per :trac:`14874`:: + Check that the returned columns are immutable as per :issue:`14874`:: sage: m = Mat(ZZ,3,3,sparse=True)(range(9)) sage: v = m.sparse_columns() @@ -1301,7 +1301,7 @@ cdef class Matrix(Matrix0): TESTS: - Rows of sparse matrices having no rows were fixed on :trac:`10714`:: + Rows of sparse matrices having no rows were fixed on :issue:`10714`:: sage: m = matrix(0, 10, sparse=True) sage: m.nrows() @@ -1309,7 +1309,7 @@ cdef class Matrix(Matrix0): sage: m.rows() [] - Check that the returned rows are immutable as per :trac:`14874`:: + Check that the returned rows are immutable as per :issue:`14874`:: sage: m = Mat(ZZ,3,3,sparse=True)(range(9)) sage: v = m.sparse_rows() @@ -1672,7 +1672,7 @@ cdef class Matrix(Matrix0): sage: P.is_sparse() True - One can stack matrices over different rings (:trac:`16399`). :: + One can stack matrices over different rings (:issue:`16399`). :: sage: M = Matrix(ZZ, 2, 3, range(6)) sage: N = Matrix(QQ, 1, 3, [10,11,12]) @@ -1707,7 +1707,7 @@ cdef class Matrix(Matrix0): - Rob Beezer (2011-03-19): rewritten to mirror code for :meth:`augment` - - Jeroen Demeyer (2015-01-06): refactor, see :trac:`16399`. + - Jeroen Demeyer (2015-01-06): refactor, see :issue:`16399`. Put all boilerplate in one place (here) and put the actual type-dependent implementation in ``_stack_impl``. """ @@ -2596,7 +2596,7 @@ cdef class Matrix(Matrix0): ([1, 2], [2]) Ensure we can compute the correct dense matrix even if the - dict items are ETuples (see :trac:`17658`):: + dict items are ETuples (see :issue:`17658`):: sage: from sage.rings.polynomial.polydict import ETuple sage: matrix(GF(5^2, "z"), {ETuple((1, 1)): 2}).dense_matrix() # needs sage.rings.finite_rings diff --git a/src/sage/matrix/matrix2.pyx b/src/sage/matrix/matrix2.pyx index 3f0ddb6d84a..47a836a0952 100644 --- a/src/sage/matrix/matrix2.pyx +++ b/src/sage/matrix/matrix2.pyx @@ -30,7 +30,7 @@ AUTHORS: - Miguel Marco (2010-06-19): modified eigenvalues and eigenvectors functions to allow the option ``extend=False`` -- Thierry Monteil (2010-10-05): bugfix for :trac:`10063`, so that the +- Thierry Monteil (2010-10-05): bugfix for :issue:`10063`, so that the determinant is computed even for rings for which the ``is_field`` method is not implemented. @@ -41,7 +41,7 @@ AUTHORS: ``_gram_schmidt_noscale``, ``is_similar`` methods - Moritz Minzlaff (2011-03-17): corrected ``_echelon_form_PID`` method for - matrices of one row, fixed in :trac:`9053` + matrices of one row, fixed in :issue:`9053` - Rob Beezer (2011-06-09): added ``is_normal``, ``is_diagonalizable``, ``LU``, ``cyclic_subspace``, ``zigzag_form``, ``rational_form`` methods @@ -56,7 +56,7 @@ AUTHORS: - Rob Beezer (2015-05-25): modified ``is_similar`` method - Samuel Lelièvre (2020-09-18): improved method ``LLL_gram`` based on a patch - by William Stein posted at :trac:`5178`, moving the method from its initial + by William Stein posted at :issue:`5178`, moving the method from its initial location in ``sage.matrix.integer_matrix_dense`` - Michael Jung (2020-10-02): added Bär-Faddeev-LeVerrier algorithm for the @@ -130,7 +130,7 @@ cdef class Matrix(Matrix1): Check that a pair consisting of a matrix and its echelon form is pickled correctly (this used to give a wrong answer due to a Python - bug, see :trac:`17527`):: + bug, see :issue:`17527`):: sage: K. = FractionField(QQ['x']) sage: m = Matrix([[1], [x]]) @@ -195,7 +195,7 @@ cdef class Matrix(Matrix1): The parent of the newly created matrix might be different from the initial one. It depends on what the method ``.subs`` does on - coefficients (see :trac:`19045`):: + coefficients (see :issue:`19045`):: sage: x = polygen(ZZ) sage: m = matrix([[x]]) @@ -416,7 +416,7 @@ cdef class Matrix(Matrix1): ... TypeError: no common canonical parent for objects with parents: ... - Check that coercions work correctly (:trac:`17405`):: + Check that coercions work correctly (:issue:`17405`):: sage: # needs sage.rings.complex_double sage.symbolic sage: A = matrix(RDF, 2, range(4)) @@ -429,7 +429,7 @@ cdef class Matrix(Matrix1): Over the inexact ring ``SR``, we can still verify the solution if all of the elements involved were exact to begin with; if any are inexact, however, the ``check`` is still skipped - (:trac:`29729` and :trac:`33159`):: + (:issue:`29729` and :issue:`33159`):: sage: A = matrix(SR, [[1, 1]]) # needs sage.symbolic sage: b = vector(SR, [2, 3]) # needs sage.symbolic @@ -740,7 +740,7 @@ cdef class Matrix(Matrix1): TESTS: Check that the arguments are coerced to a suitable parent - (:trac:`12406`):: + (:issue:`12406`):: sage: A = matrix(QQ, 2, [1, 2, 3, 4]) sage: b = vector(RDF, [pi, e]) # needs sage.symbolic @@ -764,7 +764,7 @@ cdef class Matrix(Matrix1): True Check that the coercion mechanism gives consistent results - (:trac:`12406`):: + (:issue:`12406`):: sage: A = matrix(ZZ, [[1, 2, 3], [2, 0, 2], [3, 2, 5]]) sage: b = vector(RDF, [1, 1, 1]) @@ -808,7 +808,7 @@ cdef class Matrix(Matrix1): ... TypeError: no common canonical parent for objects with parents: ... - Check that coercions work correctly (:trac:`17405`):: + Check that coercions work correctly (:issue:`17405`):: sage: # needs sage.rings.complex_double sage.symbolic sage: A = matrix(RDF, 2, range(4)) @@ -827,7 +827,7 @@ cdef class Matrix(Matrix1): TypeError: the second argument must be a vector or a matrix Over inexact rings, the ``check`` parameter is ignored as the result is - only an approximate solution (:trac:`13932`):: + only an approximate solution (:issue:`13932`):: sage: RF = RealField(52) sage: B = matrix(RF, 2, 2, 1) @@ -838,7 +838,7 @@ cdef class Matrix(Matrix1): Over the inexact ring ``SR``, we can still verify the solution if all of the elements involved were exact to begin with; if any are inexact, however, the ``check`` is still skipped - (:trac:`29729` and :trac:`33159`):: + (:issue:`29729` and :issue:`33159`):: sage: m = matrix(SR, [0]) # needs sage.symbolic sage: b = vector(SR, [1]) # needs sage.symbolic @@ -1953,7 +1953,7 @@ cdef class Matrix(Matrix1): 5*x0*x1^2 + x0*x1*x2 - x1*x2, 5*x0*x1 + x0*x2 - x1*x2 - 16*x1] - This test addresses an issue raised at :trac:`20512`:: + This test addresses an issue raised at :issue:`20512`:: sage: A.minors(0)[0].parent() == P True @@ -2051,20 +2051,20 @@ cdef class Matrix(Matrix1): sage: A.det() - B.det() # needs sage.libs.pari 0 - We verify that :trac:`5569` is resolved (otherwise the following + We verify that :issue:`5569` is resolved (otherwise the following would hang for hours):: sage: d = random_matrix(GF(next_prime(10^20)), 50).det() # needs sage.rings.finite_rings sage: d = random_matrix(Integers(10^50), 50).det() # needs sage.rings.finite_rings - We verify that :trac:`7704` is resolved:: + We verify that :issue:`7704` is resolved:: sage: matrix(ZZ, {(0,0):1,(1,1):2,(2,2):3,(3,3):4}).det() 24 sage: matrix(QQ, {(0,0):1,(1,1):2,(2,2):3,(3,3):4}).det() 24 - We verify that :trac:`10063` is resolved:: + We verify that :issue:`10063` is resolved:: sage: # needs sage.libs.singular sage: A = GF(2)['x,y,z'] @@ -2762,7 +2762,7 @@ cdef class Matrix(Matrix1): sage: m.apply_map(lambda x: x*x, sparse=True).parent() Full MatrixSpace of 0 by 0 sparse matrices over Integer Ring - Check that :trac:`19920` is fixed:: + Check that :issue:`19920` is fixed:: sage: matrix.ones(2).apply_map(lambda x: int(-3)) [-3 -3] @@ -3041,7 +3041,7 @@ cdef class Matrix(Matrix1): sage: u.charpoly('x') x^3 - c*x^2 - b*x - a - A test case from :trac:`6442`. Prior to :trac:`12292`, the + A test case from :issue:`6442`. Prior to :issue:`12292`, the call to ``A.det()`` would attempt to use the cached charpoly, and crash if an empty dictionary was cached. We don't cache dictionaries anymore, but this test should still pass:: @@ -3059,7 +3059,7 @@ cdef class Matrix(Matrix1): 3 + O(5) The cached polynomial should be independent of the ``var`` - argument (:trac:`12292`). We check (indirectly) that the + argument (:issue:`12292`). We check (indirectly) that the second call uses the cached value by noting that its result is not cached:: @@ -3162,7 +3162,7 @@ cdef class Matrix(Matrix1): sage: A._charpoly_df() x - 23 - Test that :trac:`27937` is fixed:: + Test that :issue:`27937` is fixed:: sage: R = FreeAbelianMonoid('u,v').algebra(QQ) # needs sage.combinat sage: matrix(4, 4, lambda i, j: R.an_element())._charpoly_df() # needs sage.combinat @@ -5236,7 +5236,7 @@ cdef class Matrix(Matrix1): sage: ker.0 * k (0, 0, 0, 0) - Test that :trac:`9425` is fixed. + Test that :issue:`9425` is fixed. :: @@ -6399,7 +6399,7 @@ cdef class Matrix(Matrix1): TESTS: - We make sure that :trac:`13308` is fixed. :: + We make sure that :issue:`13308` is fixed. :: sage: M = ModularSymbols(Gamma1(23), sign=1) # needs sage.modular sage: m = M.cuspidal_subspace().hecke_matrix(2) # needs sage.modular @@ -6916,7 +6916,7 @@ cdef class Matrix(Matrix1): See https://github.com/sagemath/sage/issues/29243 for details. [] - Check :trac:`30518`:: + Check :issue:`30518`:: sage: # needs sage.rings.number_field sage: K. = QuadraticField(-1) @@ -7182,7 +7182,7 @@ cdef class Matrix(Matrix1): [ 0.8978787322617111 0.27843403682172374 -0.3410106586182631] [ 0.4082482904638625 -0.8164965809277263 0.40824829046386324] - The following example shows that :trac:`20439` has been resolved:: + The following example shows that :issue:`20439` has been resolved:: sage: # needs sage.rings.complex_double sage.symbolic sage: A = matrix(CDF, [[-2.53634347567, 2.04801738686, -0.0, -62.166145304], @@ -7193,7 +7193,7 @@ cdef class Matrix(Matrix1): sage: (P*A - D*P).norm() < 10^(-2) True - The following example shows that the fix for :trac:`20439` (conjugating + The following example shows that the fix for :issue:`20439` (conjugating eigenvectors rather than eigenvalues) is the correct one:: sage: # needs sage.rings.complex_double sage.symbolic @@ -7205,7 +7205,7 @@ cdef class Matrix(Matrix1): For some symbolic matrices, the Maxima backend fails to correctly compute some eigenvectors, returning either none or more vectors than the algebraic multiplicity. The following examples show that these - cases are detected (:trac:`27842`):: + cases are detected (:issue:`27842`):: sage: # needs sage.symbolic sage: A = matrix(SR, [(225/548, 0, -175/274*sqrt(193/1446)), @@ -7226,7 +7226,7 @@ cdef class Matrix(Matrix1): RuntimeError: failed to compute eigenvectors for eigenvalue ..., check eigenvectors_left() for partial results - The following example shows that :trac:`12595` has been resolved:: + The following example shows that :issue:`12595` has been resolved:: sage: # needs sage.rings.complex_double sage: m = Matrix(CDF, 8, [[-1, -1, -1, -1, 1, -3, -1, -1], @@ -7410,7 +7410,7 @@ cdef class Matrix(Matrix1): [ 0.5057744759005657 0.10420578771917821 -0.8164965809277261] [ 0.8467851345188293 -0.5912880876735089 0.4082482904638632] - The following example shows that :trac:`20439` has been resolved:: + The following example shows that :issue:`20439` has been resolved:: sage: # needs scipy sage.rings.complex_double sage: A = matrix(CDF, [[-2.53634347567, 2.04801738686, -0.0, -62.166145304], @@ -7421,7 +7421,7 @@ cdef class Matrix(Matrix1): sage: (A*P - P*D).norm() < 10^(-2) True - The following example shows that the fix for :trac:`20439` (conjugating + The following example shows that the fix for :issue:`20439` (conjugating eigenvectors rather than eigenvalues) is the correct one:: sage: # needs scipy sage.rings.complex_double sage.symbolic @@ -7623,7 +7623,7 @@ cdef class Matrix(Matrix1): TESTS: - Check that :trac:`11558` is fixed:: + Check that :issue:`11558` is fixed:: sage: matrix(ZZ, [[1,2],[4,6]], sparse=False).echelon_form(transformation=True) ( @@ -7769,7 +7769,7 @@ cdef class Matrix(Matrix1): [ 0 0] We check that the echelon form works for matrices over p-adics. - See :trac:`17272`:: + See :issue:`17272`:: sage: # needs sage.rings.padics sage: R = ZpCA(5,5,print_mode='val-unit') @@ -7816,7 +7816,7 @@ cdef class Matrix(Matrix1): TESTS:: - Check that :trac:`34724` is fixed (indirect doctest):: + Check that :issue:`34724` is fixed (indirect doctest):: sage: a = 6.12323399573677e-17 sage: m = matrix(RR,[[-a, -1.72508242466029], [ 0.579682446302195, a]]) @@ -8490,7 +8490,7 @@ cdef class Matrix(Matrix1): sage: all(M.with_permuted_rows_and_columns(*i) == M for i in A) # needs sage.graphs sage.groups True - Check that :trac:`25426` is fixed:: + Check that :issue:`25426` is fixed:: sage: j = matrix([(3, 2, 1, 0, 0), ....: (2, 2, 0, 1, 0), @@ -9031,7 +9031,7 @@ cdef class Matrix(Matrix1): sage: M.subdivision(2,4) [37 41 43 47] - Indices do not need to be in the right order (:trac:`14064`):: + Indices do not need to be in the right order (:issue:`14064`):: sage: M.subdivide([4, 2], [3, 1]); M # needs sage.libs.pari [ 2| 3 5| 7 11] @@ -9380,7 +9380,7 @@ cdef class Matrix(Matrix1): TESTS: Check that `m \times 0` and `0 \times m` matrices work - (:trac:`22769`):: + (:issue:`22769`):: sage: m1 = matrix(QQ, 1, 0, []) sage: m2 = matrix(QQ, 2, 2, [1, 2, 3, 4]) @@ -9994,7 +9994,7 @@ cdef class Matrix(Matrix1): TESTS: - Test :trac:`17341`:: + Test :issue:`17341`:: sage: random_matrix(GF(2), 8, 586, sparse=True).visualize_structure() # needs pillow 512x6px 24-bit RGB image @@ -10118,7 +10118,7 @@ cdef class Matrix(Matrix1): sage: matrix().inverse() [] - Test :trac:`27473`:: + Test :issue:`27473`:: sage: F. = LaurentSeriesRing(GF(2)) sage: M = Matrix([[t,1], [0,t]]) @@ -10274,7 +10274,7 @@ cdef class Matrix(Matrix1): Ensure proper computation of the adjugate matrix even in the presence of non-integral powers of the variable `x` - (:trac:`14403`):: + (:issue:`14403`):: sage: x = var('x') # needs sage.symbolic sage: Matrix([[sqrt(x),x], [1,0]]).adjugate() # needs sage.symbolic @@ -10654,7 +10654,7 @@ cdef class Matrix(Matrix1): columns but rank 3, so the orthogonal set has just 3 vectors as well. Orthogonality comes from the Hermitian inner product so we need to check with the conjugate-transpose. This - example verifies that the bug on :trac:`10791` is fixed. :: + example verifies that the bug on :issue:`10791` is fixed. :: sage: # needs sage.rings.number_field sage: F. = QuadraticField(-5) @@ -10906,7 +10906,7 @@ cdef class Matrix(Matrix1): sage: G.row_space() == A.row_space() True - After :trac:`14047`, the matrix can also be over the algebraic reals + After :issue:`14047`, the matrix can also be over the algebraic reals ``AA``:: sage: # needs sage.rings.number_field @@ -11176,7 +11176,7 @@ cdef class Matrix(Matrix1): ValueError: Jordan normal form not implemented over inexact rings. Here we need to specify a field, since the eigenvalues are not defined - in the smallest ring containing the matrix entries (:trac:`14508`):: + in the smallest ring containing the matrix entries (:issue:`14508`):: sage: c = matrix([[0,1,0], [0,0,1], [1,0,0]]) sage: c.jordan_form(CyclotomicField(3)) # needs sage.combinat sage.rings.number_field @@ -11247,7 +11247,7 @@ cdef class Matrix(Matrix1): sage: jf == ~P*m*P True - We verify that the bug from :trac:`6942` is fixed:: + We verify that the bug from :issue:`6942` is fixed:: sage: # needs sage.combinat sage.libs.pari sage: M = Matrix(GF(2), [[1,0,1,0,0,0,1], [1,0,0,1,1,1,0], [1,1,0,1,1,1,1], @@ -11272,7 +11272,7 @@ cdef class Matrix(Matrix1): sage: M.rank() 7 - We verify that the bug from :trac:`6932` is fixed:: + We verify that the bug from :issue:`6932` is fixed:: sage: M = Matrix(1, 1, [1]) sage: M.jordan_form(transformation=True) # needs sage.combinat @@ -11379,7 +11379,7 @@ cdef class Matrix(Matrix1): sage: T.rank() 10 - Verify that we smoothly move to QQ from ZZ (:trac:`12693`), i.e. + Verify that we smoothly move to QQ from ZZ (:issue:`12693`), i.e. we work in the vector space over the field:: sage: # needs sage.combinat sage.libs.pari @@ -11436,7 +11436,7 @@ cdef class Matrix(Matrix1): ... ValueError: Matrix entries must be from a field, not Ring of integers modulo 6 - Test for :trac:`10563`:: + Test for :issue:`10563`:: sage: R = FractionField(PolynomialRing(RationalField(), 'a')) sage: a = R.gen() @@ -12908,7 +12908,7 @@ cdef class Matrix(Matrix1): TESTS: - This verifies that :trac:`11274` is resolved:: + This verifies that :issue:`11274` is resolved:: sage: E = matrix(QQ, [[2, 1], [1, 1]]) sage: E.is_symmetric() @@ -12922,7 +12922,7 @@ cdef class Matrix(Matrix1): [0.7071067811865475? 0.7071067811865475?] We check that if the input is a real matrix then the output is real as - well (:trac:`18381`):: + well (:issue:`18381`):: sage: E = matrix(QQ, [[4, 2], [2, 10/9]]) sage: E.cholesky().base_ring() @@ -12933,7 +12933,7 @@ cdef class Matrix(Matrix1): Algebraic Real Field Check that sparse floating-point matrices can be factored - using a toy example reported as part of :trac:`13674`:: + using a toy example reported as part of :issue:`13674`:: sage: A = matrix(RDF, [[1, 1], [1, 2]], sparse=True) sage: A.cholesky() @@ -12944,7 +12944,7 @@ cdef class Matrix(Matrix1): [ 1.0 0.0] [-1.0*I 1.0] - Try the trivial case (:trac:`33107`):: + Try the trivial case (:issue:`33107`):: sage: all( matrix(R,[]).cholesky() == matrix(R,[]) # needs sage.rings.number_field ....: for R in (RR,CC,RDF,CDF,ZZ,QQ,AA,QQbar) ) @@ -13524,7 +13524,7 @@ cdef class Matrix(Matrix1): True Partial pivoting is based on the absolute values of entries - of a column. :trac:`12208` shows that the return value of the + of a column. :issue:`12208` shows that the return value of the absolute value must be handled carefully. This tests that situation in the case of cyclotomic fields. :: @@ -13536,7 +13536,7 @@ cdef class Matrix(Matrix1): sage: C == P*L*U True - Check that :trac:`32736` is solved:: + Check that :issue:`32736` is solved:: sage: M = Matrix(FiniteField(11), [[2,3],[4,5]]) sage: P, L, U = M.LU() @@ -13812,7 +13812,7 @@ cdef class Matrix(Matrix1): sage: isinstance(ds, tuple), isinstance(dh, tuple) (True, True) - We check that :trac:`16633` is fixed:: + We check that :issue:`16633` is fixed:: sage: A = matrix(QQ, [[ 4, -2, 4, 2], ....: [-2, 10, -2, -7], @@ -15428,7 +15428,7 @@ cdef class Matrix(Matrix1): TESTS: - Check that a sparse zero matrix is handled (:trac:`29214`):: + Check that a sparse zero matrix is handled (:issue:`29214`):: sage: matrix(CDF, 2, 2, sparse=True).norm(1) 0.0 @@ -15525,7 +15525,7 @@ cdef class Matrix(Matrix1): [0.857142857142857 0.875000000000000 0.888888888888889] [0.900000000000000 0.909090909090909 0.916666666666667] - We check that :trac:`29700` is fixed:: + We check that :issue:`29700` is fixed:: sage: M = matrix(3, [1,1,1,1,0,0,0,1,0]) sage: A, B = M.diagonalization(QQbar) # needs sage.rings.number_field @@ -15654,8 +15654,8 @@ cdef class Matrix(Matrix1): TESTS: - Sparse matrices are handled correctly (:trac:`28935`), but may - require a patched version of maxima (:trac:`32898`) for now:: + Sparse matrices are handled correctly (:issue:`28935`), but may + require a patched version of maxima (:issue:`32898`) for now:: sage: matrix.diagonal([0], sparse=True).exp() # not tested # needs sage.symbolic [1] @@ -15664,7 +15664,7 @@ cdef class Matrix(Matrix1): [ 0 1.000000000000000] """ if self.is_sparse(): - # exp is only implemented for dense matrices (:trac:`28935`) + # exp is only implemented for dense matrices (:issue:`28935`) return self.dense_matrix().exp().sparse_matrix() from sage.symbolic.ring import SR return self.change_ring(SR).exp() @@ -16339,7 +16339,7 @@ cdef class Matrix(Matrix1): sage: r * m == s and r.det() == 1 True - We verify that :trac:`9053` is resolved:: + We verify that :issue:`9053` is resolved:: sage: R. = GF(7)[] sage: A = R^3 @@ -18596,7 +18596,7 @@ def _matrix_power_symbolic(A, n): [ 1/2*2^(2*n + 1) + 1/2*kronecker_delta(0, 2*n + 1) -1/2*2^(2*n + 1) + 1/2*kronecker_delta(0, 2*n + 1)] [-1/2*2^(2*n + 1) + 1/2*kronecker_delta(0, 2*n + 1) 1/2*2^(2*n + 1) + 1/2*kronecker_delta(0, 2*n + 1)] - Check if :trac:`23215` is fixed:: + Check if :issue:`23215` is fixed:: sage: a, b, k = var('a, b, k') # needs sage.symbolic sage: (matrix(2, [a, b, -b, a])^k).list() # needs sage.symbolic @@ -18605,7 +18605,7 @@ def _matrix_power_symbolic(A, n): 1/2*I*(a + I*b)^k - 1/2*I*(a - I*b)^k, 1/2*(a + I*b)^k + 1/2*(a - I*b)^k] - Check if :trac:`36838` is fixed:Checking symbolic power of + Check if :issue:`36838` is fixed:Checking symbolic power of nilpotent matrix:: sage: A = matrix([[0,1],[0,0]]); A diff --git a/src/sage/matrix/matrix_cdv.pyx b/src/sage/matrix/matrix_cdv.pyx index 73ae9d3552d..a53ae777f20 100644 --- a/src/sage/matrix/matrix_cdv.pyx +++ b/src/sage/matrix/matrix_cdv.pyx @@ -54,7 +54,7 @@ cpdef hessenbergize_cdvf(Matrix_generic_dense H) noexcept: sage: M.charpoly()[0] == M.determinant() # needs sage.rings.padics True - We check that :trac:`31753` is resolved:: + We check that :issue:`31753` is resolved:: sage: R. = GF(5)[[]] sage: M = matrix(3, 3, [ 1, t + O(t^3), t^2, diff --git a/src/sage/matrix/matrix_cyclo_dense.pyx b/src/sage/matrix/matrix_cyclo_dense.pyx index 84587321426..abca6a4524d 100644 --- a/src/sage/matrix/matrix_cyclo_dense.pyx +++ b/src/sage/matrix/matrix_cyclo_dense.pyx @@ -625,14 +625,14 @@ cdef class Matrix_cyclo_dense(Matrix_dense): sage: N1*N2 [ 0 -1 -zeta6 zeta6 zeta6 - 1] - Verify that a degenerate case bug reported at :trac:`5974` is fixed. + Verify that a degenerate case bug reported at :issue:`5974` is fixed. sage: K.=CyclotomicField(6); matrix(K,1,2) * matrix(K,2,[0, 1, 0, -2*zeta6, 0, 0, 1, -2*zeta6 + 1]) [0 0 0 0] TESTS: - This is from :trac:`8666`:: + This is from :issue:`8666`:: sage: K. = CyclotomicField(4) sage: m = matrix(K, [125]) @@ -1596,14 +1596,14 @@ cdef class Matrix_cyclo_dense(Matrix_dense): [ 1 0 -1] [ 0 1 2] - A case that checks the bug in :trac:`3500`:: + A case that checks the bug in :issue:`3500`:: sage: cf4 = CyclotomicField(4) ; z4 = cf4.0 sage: A = Matrix(cf4, 1, 2, [-z4, 1]) sage: A.echelon_form() [ 1 zeta4] - Verify that the matrix on :trac:`10281` works:: + Verify that the matrix on :issue:`10281` works:: sage: K. = CyclotomicField(106) sage: coeffs = [(18603/107*rho^51 - 11583/107*rho^50 - 19907/107*rho^49 - 13588/107*rho^48 - 8722/107*rho^47 + 2857/107*rho^46 - 19279/107*rho^45 - 16666/107*rho^44 - 11327/107*rho^43 + 3802/107*rho^42 + 18998/107*rho^41 - 10798/107*rho^40 + 16210/107*rho^39 - 13768/107*rho^38 + 15063/107*rho^37 - 14433/107*rho^36 - 19434/107*rho^35 - 12606/107*rho^34 + 3786/107*rho^33 - 17996/107*rho^32 + 12341/107*rho^31 - 15656/107*rho^30 - 19092/107*rho^29 + 8382/107*rho^28 - 18147/107*rho^27 + 14024/107*rho^26 + 18751/107*rho^25 - 8301/107*rho^24 - 20112/107*rho^23 - 14483/107*rho^22 + 4715/107*rho^21 + 20065/107*rho^20 + 15293/107*rho^19 + 10072/107*rho^18 + 4775/107*rho^17 - 953/107*rho^16 - 19782/107*rho^15 - 16020/107*rho^14 + 5633/107*rho^13 - 17618/107*rho^12 - 18187/107*rho^11 + 7492/107*rho^10 + 19165/107*rho^9 - 9988/107*rho^8 - 20042/107*rho^7 + 10109/107*rho^6 - 17677/107*rho^5 - 17723/107*rho^4 - 12489/107*rho^3 - 6321/107*rho^2 - 4082/107*rho - 1378/107, 1, 4*rho + 1), (0, 1, rho + 4)] @@ -1904,7 +1904,7 @@ cdef class Matrix_cyclo_dense(Matrix_dense): True Check that `m \times 0` and `0 \times m` matrices work - (:trac:`22769`):: + (:issue:`22769`):: sage: m1 = matrix(C, 1, 0, []) sage: m2 = matrix(C, 2, 2, [1, 2, 3, 4]) diff --git a/src/sage/matrix/matrix_dense.pyx b/src/sage/matrix/matrix_dense.pyx index 29b6f4faae2..b04fc7248af 100644 --- a/src/sage/matrix/matrix_dense.pyx +++ b/src/sage/matrix/matrix_dense.pyx @@ -72,7 +72,7 @@ cdef class Matrix_dense(matrix.Matrix): TESTS: - Check :trac:`27629`:: + Check :issue:`27629`:: sage: # needs sage.symbolic sage: var('x') diff --git a/src/sage/matrix/matrix_double_dense.pyx b/src/sage/matrix/matrix_double_dense.pyx index ffd385039ee..ede06f07f7f 100644 --- a/src/sage/matrix/matrix_double_dense.pyx +++ b/src/sage/matrix/matrix_double_dense.pyx @@ -235,12 +235,12 @@ cdef class Matrix_double_dense(Matrix_numpy_dense): TESTS: - Check that :trac:`31234` is fixed:: + Check that :issue:`31234` is fixed:: sage: matrix.identity(QQ, 4) * matrix(RDF, 4, 0) [] - Check that an empty matrix is initialized correctly; see :trac:`27366`: + Check that an empty matrix is initialized correctly; see :issue:`27366`: sage: A = matrix(RDF, 3, 0) sage: A*A.transpose() @@ -927,7 +927,7 @@ cdef class Matrix_double_dense(Matrix_numpy_dense): The computation of this matrix inverse can be accomplished quickly with just a transpose as the matrix is orthogonal/unitary. - For details see :trac:`18365`. + For details see :issue:`18365`. EXAMPLES:: @@ -946,7 +946,7 @@ cdef class Matrix_double_dense(Matrix_numpy_dense): sage: (P*m - L*U).norm() < 1e-14 False - :trac:`10839` made this routine available for rectangular matrices. :: + :issue:`10839` made this routine available for rectangular matrices. :: sage: A = matrix(RDF, 5, 6, range(30)); A [ 0.0 1.0 2.0 3.0 4.0 5.0] @@ -1498,7 +1498,7 @@ cdef class Matrix_double_dense(Matrix_numpy_dense): TESTS: - The following example shows that :trac:`20439` has been resolved:: + The following example shows that :issue:`20439` has been resolved:: sage: A = matrix(CDF, [[-2.53634347567, 2.04801738686, -0.0, -62.166145304], ....: [ 0.7, -0.6, 0.0, 0.0], @@ -1509,7 +1509,7 @@ cdef class Matrix_double_dense(Matrix_numpy_dense): ....: for i in range(A.nrows())) True - The following example shows that the fix for :trac:`20439` (conjugating + The following example shows that the fix for :issue:`20439` (conjugating eigenvectors rather than eigenvalues) is the correct one:: sage: A = Matrix(CDF,[[I,0],[0,1]]) @@ -1656,7 +1656,7 @@ cdef class Matrix_double_dense(Matrix_numpy_dense): TESTS: - The following example shows that :trac:`20439` has been resolved:: + The following example shows that :issue:`20439` has been resolved:: sage: A = matrix(CDF, [[-2.53634347567, 2.04801738686, -0.0, -62.166145304], ....: [ 0.7, -0.6, 0.0, 0.0], @@ -1667,7 +1667,7 @@ cdef class Matrix_double_dense(Matrix_numpy_dense): ....: for i in range(A.nrows())) True - The following example shows that the fix for :trac:`20439` (conjugating + The following example shows that the fix for :issue:`20439` (conjugating eigenvectors rather than eigenvalues) is the correct one:: sage: A = Matrix(CDF,[[I,0],[0,1]]) @@ -2163,7 +2163,7 @@ cdef class Matrix_double_dense(Matrix_numpy_dense): Trivial cases return trivial results of the correct size, and we check ``Q`` itself in one case, verifying a fix for - :trac:`10795`. :: + :issue:`10795`. :: sage: A = zero_matrix(RDF, 0, 10) sage: Q, R = A.QR() diff --git a/src/sage/matrix/matrix_generic_dense.pyx b/src/sage/matrix/matrix_generic_dense.pyx index a4d0615971d..96094f5646b 100644 --- a/src/sage/matrix/matrix_generic_dense.pyx +++ b/src/sage/matrix/matrix_generic_dense.pyx @@ -66,7 +66,7 @@ cdef class Matrix_generic_dense(matrix_dense.Matrix_dense): TESTS: - We check that the problem related to :trac:`9049` is not an issue any + We check that the problem related to :issue:`9049` is not an issue any more:: sage: # needs sage.rings.number_field diff --git a/src/sage/matrix/matrix_generic_sparse.pyx b/src/sage/matrix/matrix_generic_sparse.pyx index bd1f860c167..59fffe388d2 100644 --- a/src/sage/matrix/matrix_generic_sparse.pyx +++ b/src/sage/matrix/matrix_generic_sparse.pyx @@ -96,7 +96,7 @@ cdef class Matrix_generic_sparse(matrix_sparse.Matrix_sparse): .. NOTE:: The datastructure can potentially be optimized. Firstly, as noticed in - :trac:`17663`, we lose time in using 2-tuples to store indices. + :issue:`17663`, we lose time in using 2-tuples to store indices. Secondly, there is no fast way to access non-zero elements in a given row/column. """ diff --git a/src/sage/matrix/matrix_gf2e_dense.pyx b/src/sage/matrix/matrix_gf2e_dense.pyx index 16306fd8d8b..e77965612fc 100644 --- a/src/sage/matrix/matrix_gf2e_dense.pyx +++ b/src/sage/matrix/matrix_gf2e_dense.pyx @@ -1231,7 +1231,7 @@ cdef class Matrix_gf2e_dense(matrix_dense.Matrix_dense): sage: M.stack(N) [] - Check that we can stack a vector (:trac:`31708`):: + Check that we can stack a vector (:issue:`31708`):: sage: R. = GF(2^3) sage: M = matrix(R, [[1,1],[0,a+1]]) @@ -1285,7 +1285,7 @@ cdef class Matrix_gf2e_dense(matrix_dense.Matrix_dense): sage: A[1:200,1:200] == A.submatrix(1,1,199,199) True - TESTS for handling of default arguments (:trac:`18761`):: + TESTS for handling of default arguments (:issue:`18761`):: sage: A.submatrix(17,15) == A.submatrix(17,15,183,185) True @@ -1358,7 +1358,7 @@ cdef class Matrix_gf2e_dense(matrix_dense.Matrix_dense): sage: f(*s) == A True - See :trac:`21669`:: + See :issue:`21669`:: sage: all(f(*s) == B ....: for r,c in [(0,0),(0,1),(1,0)] @@ -1530,7 +1530,7 @@ def unpickle_matrix_gf2e_dense_v0(Matrix_mod2_dense a, base_ring, nrows, ncols): sage: f(*s) == A True - We can still unpickle pickles from before :trac:`19240`:: + We can still unpickle pickles from before :issue:`19240`:: sage: old_pickle = b'x\x9c\x85RKo\xd3@\x10\xae\xdd$$\xdb&\xe5U\x1e-\x8f\xc2\xc9\x12RD#$\xce\xa0\xb4\x80\x07\xa2\xca\xc2\x07\x0e\xd5\xe2:\x1b\xdb\x8acg\x1c\xa7J\x85*!\xa4\x90\xe6\x07p\xe0\xc4\x01q\xe5\xc4\x19\xf5\xd0?\xc1\x81\xdf\x80\xb8q\x0b\xb3\x8eMS\xa1\x82V;;\xb3\xdf\xce\xf7\xcd\x8e\xe6\xb5j\xf7,GT;V\x1cy\x83\xf4\xe0\x9d\xb0Y\x13\xbc)\x82\x9e`\xfd\xa0\xeb\xd9m_\xf0\xbf1\xbe{\x97\xa1\xa2\x9d\xc6\xf0\x0f\x82,\x7f\x9d\xa1\xaa\x81\n\xb9m\x9c\xd7\xf4\xf1d2\x81-h\xc0#(\x03\x83\x15\xdas\xc9*\xc3\x13x\x0cu0\xd28\x97\x9e*(0\x9f\xfa\x1b\xd0\xd2\x7fH\x82\xb5\xf4\xa2@TO\xe19\x01I\xac\x136\x991\x9f\xa4\xf9&\xcd\x07i\xbe\xcb\xd4ib\t\xba\xa4\xf6\x02zIT\xd1\x8f2(u\x15\xfd\x9d<\xee@\x05V\xd3\x94E*\xb0\x0e\x0fH\xad\xa8\xbf\x97\xa0\r\x03\xfd\xf0\xb8\x1aU\xff\x92\x90\xe8?\xa5\xd6\x814_\xa5\xf9(\xcd\xafc\xe99\xe2\xd9\xa0\x06\xd4\xf5\xcf\xf2\xf2!\xbc\xd4\xdf\x90#\xc0\x8f\r\xccM\x1b\xdd\x8b\xa3\xbe\x1d\xf7#QmYv\x1cF{\xcc\x11\x81\x88<\x9b\xa71\xcf:\xce0\xaf\x9d\x96\xe3\x87a\xbb\xdf\xe5\x8e\x1f\xeeX>\xc3\x82\xb9\xb0\xe9\x05^,6=\xe17\xf1\xcc\xd0\xc0"u\xb0d\xe6wDl\xdd\x1fa)e\x8a\xbc\xc0\xe9U\xbd \x16\x8e\x88X\xc7j\x0b\x9e\x05\xc8L\xe5\x1e%.\x98\x8a5\xc4\xc5\xd9\xf7\xdd\xd0\xdf\x0b\xc2\x8eg\xf93.wZ\xb5\xc1\x94B\xf8\xa2#\x82\x98a\xf9\xffY\x12\xe3v\x18L\xff\x14Fl\xeb\x0ff\x10\xc4\xb0\xa2\xb9y\xcd-\xba%\xcd\xa5\x8ajT\xd1\x92\xa9\x0c\x86x\xb6a\xe6h\xf8\x02 = GF(3^3) sage: M = matrix(R, [[1,1],[0,a+1]]) @@ -1293,7 +1293,7 @@ cdef class Matrix_gfpn_dense(Matrix_dense): TESTS: - Make sure that :trac:`25076` remains fixed:: + Make sure that :issue:`25076` remains fixed:: sage: M == M*int(4) == int(4)*M True @@ -1837,7 +1837,7 @@ def mtx_unpickle(f, int nr, int nc, data, bint m): TESTS: We test that a pickle created by one machine can be understood - by other machines with different architecture (see :trac:`23411`). + by other machines with different architecture (see :issue:`23411`). Internally, a row is stored in a memory block of length a multiple of ``sizeof(long)``, which may be machine dependent, but in a pickle, only the bytes actually containing data of the row are stored, which diff --git a/src/sage/matrix/matrix_integer_dense.pyx b/src/sage/matrix/matrix_integer_dense.pyx index 2ad9c008731..b197ba8825e 100644 --- a/src/sage/matrix/matrix_integer_dense.pyx +++ b/src/sage/matrix/matrix_integer_dense.pyx @@ -13,12 +13,12 @@ AUTHORS: - Robert Bradshaw -- Marc Masdeu (August 2014). Implemented using FLINT, see :trac:`16803`. +- Marc Masdeu (August 2014). Implemented using FLINT, see :issue:`16803`. -- Jeroen Demeyer (October 2014): lots of fixes, see :trac:`17090` and - :trac:`17094`. +- Jeroen Demeyer (October 2014): lots of fixes, see :issue:`17090` and + :issue:`17094`. -- Vincent Delecroix (February 2015): make it faster, see :trac:`17822`. +- Vincent Delecroix (February 2015): make it faster, see :issue:`17822`. - Vincent Delecroix (May 2017): removed duplication of entries and cleaner linbox interface @@ -736,7 +736,7 @@ cdef class Matrix_integer_dense(Matrix_dense): TESTS: - This fixes a bug found in :trac:`17094`:: + This fixes a bug found in :issue:`17094`:: sage: A = identity_matrix(ZZ, 3) sage: A._multiply_linbox(A) @@ -1305,7 +1305,7 @@ cdef class Matrix_integer_dense(Matrix_dense): TESTS: The cached polynomial should be independent of the ``var`` - argument (:trac:`12292`). We check (indirectly) that the + argument (:issue:`12292`). We check (indirectly) that the second call uses the cached value by noting that its result is not cached:: @@ -1583,7 +1583,7 @@ cdef class Matrix_integer_dense(Matrix_dense): """ TESTS: - Check that bug discovered in :trac:`29839` is fixed:: + Check that bug discovered in :issue:`29839` is fixed:: sage: M = Matrix(ZZ, [[0,1],[0,1]]) sage: M._mod_int(2).transpose() @@ -1935,7 +1935,7 @@ cdef class Matrix_integer_dense(Matrix_dense): TESTS: - This example illustrated :trac:`2398`:: + This example illustrated :issue:`2398`:: sage: a = matrix([(0, 0, 3), (0, -2, 2), (0, 1, 2), (0, -2, 5)]) sage: a.hermite_form() @@ -1944,7 +1944,7 @@ cdef class Matrix_integer_dense(Matrix_dense): [0 0 0] [0 0 0] - Check that :trac:`12280` is fixed:: + Check that :issue:`12280` is fixed:: sage: m = matrix([(-2, 1, 9, 2, -8, 1, -3, -1, -4, -1), ....: (5, -2, 0, 1, 0, 4, -1, 1, -2, 0), @@ -1975,7 +1975,7 @@ cdef class Matrix_integer_dense(Matrix_dense): [ 0 0 0 0 0 0 0 0 200 0] [ 0 0 0 0 0 0 0 0 0 200] - Check that the output is correct in corner cases, see :trac:`18613`:: + Check that the output is correct in corner cases, see :issue:`18613`:: sage: m = matrix(2, 0) sage: m.parent() @@ -2436,7 +2436,7 @@ cdef class Matrix_integer_dense(Matrix_dense): [0 2] [0 0] - Empty matrices are handled sensibly (see :trac:`3068`):: + Empty matrices are handled sensibly (see :issue:`3068`):: sage: m = MatrixSpace(ZZ, 2,0)(0); d,u,v = m.smith_form(); u*m*v == d True @@ -3450,7 +3450,7 @@ cdef class Matrix_integer_dense(Matrix_dense): TESTS: - Check that :trac:`9345` is fixed:: + Check that :issue:`9345` is fixed:: sage: A = random_matrix(ZZ, 3, 3) sage: A.rational_reconstruction(0) @@ -4404,7 +4404,7 @@ cdef class Matrix_integer_dense(Matrix_dense): ... ArithmeticError: B's number of rows must match self's number of columns - Check that this can be interrupted properly (:trac:`15453`):: + Check that this can be interrupted properly (:issue:`15453`):: sage: A = random_matrix(ZZ, 2000, 2000) sage: B = random_matrix(ZZ, 2000, 2000) @@ -4570,7 +4570,7 @@ cdef class Matrix_integer_dense(Matrix_dense): ... ArithmeticError: B's number of rows must match self's number of columns - Check that this can be interrupted properly (:trac:`15453`):: + Check that this can be interrupted properly (:issue:`15453`):: sage: A = random_matrix(ZZ, 2000, 2000) sage: B = random_matrix(ZZ, 2000, 2000) @@ -5055,7 +5055,7 @@ cdef class Matrix_integer_dense(Matrix_dense): EXAMPLES: A ``ValueError`` is raised if the matrix is not square, - fixing :trac:`5548`:: + fixing :issue:`5548`:: sage: random_matrix(ZZ,16,4)._hnf_mod(100) Traceback (most recent call last): @@ -5862,7 +5862,7 @@ cdef class Matrix_integer_dense(Matrix_dense): [1 2 3] [0 3 6] - Check that :trac:`12346` is fixed:: + Check that :issue:`12346` is fixed:: sage: pari('mathnf(Mat([0,1]), 4)') [Mat(1), [1, 0; 0, 1]] diff --git a/src/sage/matrix/matrix_integer_dense_saturation.py b/src/sage/matrix/matrix_integer_dense_saturation.py index 66f56608def..65d3cc66495 100644 --- a/src/sage/matrix/matrix_integer_dense_saturation.py +++ b/src/sage/matrix/matrix_integer_dense_saturation.py @@ -316,7 +316,7 @@ def index_in_saturation(A, proof=True): sage: W.index_in(S) 18 - For any zero matrix the index in its saturation is 1 (see :trac:`13034`):: + For any zero matrix the index in its saturation is 1 (see :issue:`13034`):: sage: m = matrix(ZZ, 3) sage: m diff --git a/src/sage/matrix/matrix_integer_sparse.pyx b/src/sage/matrix/matrix_integer_sparse.pyx index 979dbf50c4e..15afd03c179 100644 --- a/src/sage/matrix/matrix_integer_sparse.pyx +++ b/src/sage/matrix/matrix_integer_sparse.pyx @@ -414,7 +414,7 @@ cdef class Matrix_integer_sparse(Matrix_sparse): TESTS: - Check that :trac:`9345` is fixed:: + Check that :issue:`9345` is fixed:: sage: A = random_matrix(ZZ, 3, 3, sparse=True) sage: A.rational_reconstruction(0) @@ -642,7 +642,7 @@ cdef class Matrix_integer_sparse(Matrix_sparse): [0 2] [0 0] - The examples above show that :trac:`10626` has been implemented. + The examples above show that :issue:`10626` has been implemented. .. SEEALSO:: @@ -732,7 +732,7 @@ cdef class Matrix_integer_sparse(Matrix_sparse): This method is much slower than converting to a dense matrix and computing the determinant there. There is not much point in making - it available. See :trac:`28318`. + it available. See :issue:`28318`. EXAMPLES:: diff --git a/src/sage/matrix/matrix_mod2_dense.pyx b/src/sage/matrix/matrix_mod2_dense.pyx index f56d05101b9..5b6cb343ec1 100644 --- a/src/sage/matrix/matrix_mod2_dense.pyx +++ b/src/sage/matrix/matrix_mod2_dense.pyx @@ -154,7 +154,7 @@ cdef class Matrix_mod2_dense(matrix_dense.Matrix_dense): # dense or sparse """ TESTS: - See :trac:`10858`:: + See :issue:`10858`:: sage: matrix(GF(2),0,[]) * vector(GF(2),0,[]) () @@ -589,7 +589,7 @@ cdef class Matrix_mod2_dense(matrix_dense.Matrix_dense): # dense or sparse TESTS: - Check that :trac:`19378` is fixed:: + Check that :issue:`19378` is fixed:: sage: m = matrix(GF(2), 11, 0) sage: v = vector(GF(2), 0) @@ -1511,7 +1511,7 @@ cdef class Matrix_mod2_dense(matrix_dense.Matrix_dense): # dense or sparse sage: M.augment(N) [] - Check that :trac:`19165` is solved:: + Check that :issue:`19165` is solved:: sage: m = matrix(GF(2), 2, range(4)) sage: m.augment(matrix(GF(2), 2, range(4), sparse=True)) @@ -1657,7 +1657,7 @@ cdef class Matrix_mod2_dense(matrix_dense.Matrix_dense): # dense or sparse sage: A[1:200,1:200] == A.submatrix(1,1,199,199) True - TESTS for handling of default arguments (:trac:`18761`):: + TESTS for handling of default arguments (:issue:`18761`):: sage: A.submatrix(17,15) == A.submatrix(17,15,183,185) True @@ -1712,7 +1712,7 @@ cdef class Matrix_mod2_dense(matrix_dense.Matrix_dense): # dense or sparse TESTS: - Check that :trac:`24589` is fixed:: + Check that :issue:`24589` is fixed:: sage: A = random_matrix(GF(2),10,10) sage: loads(dumps(A)).is_immutable() @@ -2003,7 +2003,7 @@ def unpickle_matrix_mod2_dense_v2(r, c, data, size, immutable=False): TESTS: - Check that old pickles before :trac:`24589` still work:: + Check that old pickles before :issue:`24589` still work:: sage: s = (b"x\x9ck`J.NLO\xd5\xcbM,)\xca\xac\x80R\xf1\xb9\xf9)F\xf1)\xa9y" ....: b"\xc5\xa9\\\xa5y\x05\x99\xc9\xd99\xa9\xf1\x18R\xf1e\x86\\\x85" diff --git a/src/sage/matrix/matrix_modn_dense_template.pxi b/src/sage/matrix/matrix_modn_dense_template.pxi index 14df7a38884..c85176d583b 100644 --- a/src/sage/matrix/matrix_modn_dense_template.pxi +++ b/src/sage/matrix/matrix_modn_dense_template.pxi @@ -1367,7 +1367,7 @@ cdef class Matrix_modn_dense_template(Matrix_dense): TESTS: The cached polynomial should be independent of the ``var`` - argument (:trac:`12292`). We check (indirectly) that the + argument (:issue:`12292`). We check (indirectly) that the second call uses the cached value by noting that its result is not cached. The polynomial here is not unique, so we only check the polynomial's variable. diff --git a/src/sage/matrix/matrix_modn_sparse.pyx b/src/sage/matrix/matrix_modn_sparse.pyx index f6c505b5965..3be3c6b0fc5 100644 --- a/src/sage/matrix/matrix_modn_sparse.pyx +++ b/src/sage/matrix/matrix_modn_sparse.pyx @@ -290,7 +290,7 @@ cdef class Matrix_modn_sparse(Matrix_sparse): TESTS: - The following shows that :trac:`23669` has been addressed:: + The following shows that :issue:`23669` has been addressed:: sage: p = next_prime(2**15) sage: M = Matrix(GF(p), 1,3, lambda i,j: -1, sparse=True); M diff --git a/src/sage/matrix/matrix_mpolynomial_dense.pyx b/src/sage/matrix/matrix_mpolynomial_dense.pyx index e3de9bbdb57..be6654e7929 100644 --- a/src/sage/matrix/matrix_mpolynomial_dense.pyx +++ b/src/sage/matrix/matrix_mpolynomial_dense.pyx @@ -570,7 +570,7 @@ cdef class Matrix_mpolynomial_dense(Matrix_generic_dense): sage: m.det() 0 - Check :trac:`23535` is fixed:: + Check :issue:`23535` is fixed:: sage: x = polygen(QQ) sage: K. = NumberField([x^2 - 2, x^2 - 5]) diff --git a/src/sage/matrix/matrix_numpy_dense.pyx b/src/sage/matrix/matrix_numpy_dense.pyx index 78cf21022f3..3e33599bf70 100644 --- a/src/sage/matrix/matrix_numpy_dense.pyx +++ b/src/sage/matrix/matrix_numpy_dense.pyx @@ -306,7 +306,7 @@ cdef class Matrix_numpy_dense(Matrix_dense): TESTS: - Complex entries are supported (:trac:`27831`). :: + Complex entries are supported (:issue:`27831`). :: sage: a = matrix(CDF, [(21, 0.6 + 18.5*i), (0.6 - 18.5*i, 21)]) # needs sage.symbolic sage: a.is_symmetric() # needs sage.symbolic diff --git a/src/sage/matrix/matrix_polynomial_dense.pyx b/src/sage/matrix/matrix_polynomial_dense.pyx index 996e061f485..f50c454ccf8 100644 --- a/src/sage/matrix/matrix_polynomial_dense.pyx +++ b/src/sage/matrix/matrix_polynomial_dense.pyx @@ -779,7 +779,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): 2021), it would be highly beneficial to use conversions and rely on polynomials with matrix coefficients when the matrix size is "large" and the degree "small", see - :trac:`31472#comment:5`. + :issue:`31472#comment:5`. """ if d <= 0: raise ValueError("the precision must be positive") diff --git a/src/sage/matrix/matrix_rational_dense.pyx b/src/sage/matrix/matrix_rational_dense.pyx index 6a039b077e3..15e48149306 100644 --- a/src/sage/matrix/matrix_rational_dense.pyx +++ b/src/sage/matrix/matrix_rational_dense.pyx @@ -1005,7 +1005,7 @@ cdef class Matrix_rational_dense(Matrix_dense): TESTS: The cached polynomial should be independent of the ``var`` - argument (:trac:`12292`). We check (indirectly) that the + argument (:issue:`12292`). We check (indirectly) that the second call uses the cached value by noting that its result is not cached:: @@ -1548,7 +1548,7 @@ cdef class Matrix_rational_dense(Matrix_dense): TESTS: Echelonizing a matrix in place throws away the cache of - the old matrix (:trac:`14506`):: + the old matrix (:issue:`14506`):: sage: for algo in ["flint", "padic", "multimodular", "classical"]: ....: a = Matrix(QQ, [[1,2],[3,4]]) @@ -1617,7 +1617,7 @@ cdef class Matrix_rational_dense(Matrix_dense): [ 0 0 0 0] The result is an immutable matrix, so if you want to modify the result - then you need to make a copy. This checks that :trac:`10543` is + then you need to make a copy. This checks that :issue:`10543` is fixed.:: sage: A = matrix(QQ, 2, range(6)) @@ -2329,7 +2329,7 @@ cdef class Matrix_rational_dense(Matrix_dense): TESTS: - Check that the option ``nonzero`` is meaningful (:trac:`22970`):: + Check that the option ``nonzero`` is meaningful (:issue:`22970`):: sage: a = matrix(QQ, 10, 10, 1) sage: b = a.__copy__() @@ -2339,7 +2339,7 @@ cdef class Matrix_rational_dense(Matrix_dense): sage: any(b[i,j].is_zero() for i in range(10) for j in range(10)) False - Check that :trac:`34103` is fixed:: + Check that :issue:`34103` is fixed:: sage: a = matrix(QQ, 10, 10, 1) sage: a.randomize(nonzero=True, distribution='1/n') diff --git a/src/sage/matrix/matrix_rational_sparse.pyx b/src/sage/matrix/matrix_rational_sparse.pyx index fcdc75b43d1..96d2402dd83 100644 --- a/src/sage/matrix/matrix_rational_sparse.pyx +++ b/src/sage/matrix/matrix_rational_sparse.pyx @@ -507,7 +507,7 @@ cdef class Matrix_rational_sparse(Matrix_sparse): [ 0 0 1 238/157] [ 0 0 0 0] - :trac:`10319` has been fixed:: + :issue:`10319` has been fixed:: sage: m = Matrix(QQ, [1], sparse=True); m.echelonize() sage: m = Matrix(QQ, [1], sparse=True); m.echelonize(); m diff --git a/src/sage/matrix/matrix_space.py b/src/sage/matrix/matrix_space.py index 2744af3efd0..7f93cceb6ad 100644 --- a/src/sage/matrix/matrix_space.py +++ b/src/sage/matrix/matrix_space.py @@ -36,7 +36,7 @@ import sys import operator -# Sage matrix imports see :trac:`34283` +# Sage matrix imports see :issue:`34283` # Sage imports import sage.structure.coerce_actions @@ -568,7 +568,7 @@ def __classcall__(cls, base_ring, nrows, ncols=None, sparse=False, implementatio ... ValueError: unknown matrix implementation 'foobar' over Integer Ring - Check that :trac:`29466` is fixed:: + Check that :issue:`29466` is fixed:: sage: class MyMatrixSpace(MatrixSpace): ....: @staticmethod @@ -665,7 +665,7 @@ def __init__(self, base_ring, nrows, ncols, sparse, implementation): We test that in the real or complex double dense case, conversion from the base ring is done by a call morphism. - Note that by :trac:`9138`, other algebras usually + Note that by :issue:`9138`, other algebras usually get a conversion map by multiplication with the one element. :: @@ -680,7 +680,7 @@ def __init__(self, base_ring, nrows, ncols, sparse, implementation): From: Complex Double Field To: Full MatrixSpace of 2 by 2 dense matrices over Complex Double Field - We check that :trac:`10095` is fixed:: + We check that :issue:`10095` is fixed:: sage: M = Matrix(QQ, [[1 for dummy in range(125)]]) sage: V = M.right_kernel() @@ -698,7 +698,7 @@ def __init__(self, base_ring, nrows, ncols, sparse, implementation): sage: # needs numpy (otherwise timeout) sage: C = A * B - We check that :trac:`18186` is fixed:: + We check that :issue:`18186` is fixed:: sage: MatrixSpace(ZZ,0,3) in FiniteSets() True @@ -911,7 +911,7 @@ def _element_constructor_(self, entries, **kwds): TESTS: - Ensure that :trac:`12020` is fixed:: + Ensure that :issue:`12020` is fixed:: sage: rings = [ZZ, QQ, RDF] sage: rings.extend([RealField(100), ComplexField(100)]) # needs sage.rings.real_mpfr @@ -929,7 +929,7 @@ def _element_constructor_(self, entries, **kwds): ....: A = MatrixSpace(R, 60, 30, sparse=True)(0) ....: B = A.augment(A) - Check that :trac:`13012` is fixed:: + Check that :issue:`13012` is fixed:: sage: m = zero_matrix(2, 3) sage: m @@ -949,7 +949,7 @@ def _element_constructor_(self, entries, **kwds): ... ValueError: inconsistent number of rows: should be 3 but got 2 - Check that :trac:`15110` is fixed:: + Check that :issue:`15110` is fixed:: sage: S. = LaurentSeriesRing(ZZ) sage: MS = MatrixSpace(S,1,1) @@ -962,7 +962,7 @@ def _element_constructor_(self, entries, **kwds): Calling a matrix space `M` with a matrix in `M` as argument returns the original matrix unless ``copy=True`` is specified - (:trac:`31078`):: + (:issue:`31078`):: sage: m = Matrix([[0, 1], [2, 3]]) sage: M = m.parent() @@ -1183,7 +1183,7 @@ def _coerce_map_from_(self, S): TESTS: - Check that :trac:`22091` is fixed:: + Check that :issue:`22091` is fixed:: sage: A = Zmod(4) sage: R = MatrixSpace(A, 2) @@ -2045,7 +2045,7 @@ def matrix(self, x=None, **kwds): Note that the last "flip" cannot be performed if ``x`` is a matrix, no matter what is ``rows`` (it used to be possible but - was fixed by :trac:`10793`):: + was fixed by :issue:`10793`):: sage: projection = matrix(ZZ,[[1,0,0],[0,1,0]]) sage: projection @@ -2073,7 +2073,7 @@ def matrix(self, x=None, **kwds): TESTS: The following corner cases were problematic while working on - :trac:`10628`:: + :issue:`10628`:: sage: MS = MatrixSpace(ZZ,2,1) sage: MS([[1],[2]]) @@ -2088,8 +2088,8 @@ def matrix(self, x=None, **kwds): [ 1.00000000000000] [0.000000000000000] - :trac:`10628` allowed to provide the data as lists of matrices, but - :trac:`13012` prohibited it:: + :issue:`10628` allowed to provide the data as lists of matrices, but + :issue:`13012` prohibited it:: sage: MS = MatrixSpace(ZZ,4,2) sage: MS0 = MatrixSpace(ZZ,2) @@ -2105,7 +2105,7 @@ def matrix(self, x=None, **kwds): ... TypeError: unable to coerce to an integer - Check that :trac:`13302` is fixed:: + Check that :issue:`13302` is fixed:: sage: MatrixSpace(Qp(3), 1,1)([Qp(3).zero()]) # needs sage.rings.padics [0] @@ -2113,7 +2113,7 @@ def matrix(self, x=None, **kwds): [3^-1 + 1 + O(3^19)] One-rowed matrices over combinatorial free modules used to break - the constructor (:trac:`17124`). Check that this is fixed:: + the constructor (:issue:`17124`). Check that this is fixed:: sage: # needs sage.combinat sage: Sym = SymmetricFunctions(ZZ) @@ -2125,7 +2125,7 @@ def matrix(self, x=None, **kwds): [h[2]] Converting sparse to dense matrices used to be too slow - (:trac:`20470`). Check that this is fixed:: + (:issue:`20470`). Check that this is fixed:: sage: m = identity_matrix(GF(2), 2000, sparse=True) sage: MS = MatrixSpace(GF(2), 2000, sparse=False) @@ -2501,7 +2501,7 @@ def _test_trivial_matrices_inverse(ring, sparse=True, implementation=None, check .. TODO:: This must be adapted to category check framework when ready - (see :trac:`5274`). + (see :issue:`5274`). TESTS:: diff --git a/src/sage/matrix/matrix_sparse.pyx b/src/sage/matrix/matrix_sparse.pyx index ef707ebe3f8..0648f488f98 100644 --- a/src/sage/matrix/matrix_sparse.pyx +++ b/src/sage/matrix/matrix_sparse.pyx @@ -757,7 +757,7 @@ cdef class Matrix_sparse(matrix.Matrix): [4|1] When applying a map to a sparse zero matrix, the codomain is determined - from the image of zero (:trac:`29214`):: + from the image of zero (:issue:`29214`):: sage: matrix(RR, 2, 2, sparse=True).apply_map(floor).base_ring() is ZZ True @@ -1010,7 +1010,7 @@ cdef class Matrix_sparse(matrix.Matrix): TESTS: - One can stack matrices over different rings (:trac:`16399`). :: + One can stack matrices over different rings (:issue:`16399`). :: sage: M = Matrix(ZZ, 2, 3, range(6), sparse=True) sage: N = Matrix(QQ, 1, 3, [10,11,12], sparse=True) @@ -1087,7 +1087,7 @@ cdef class Matrix_sparse(matrix.Matrix): TESTS: - Verify that :trac:`12689` is fixed:: + Verify that :issue:`12689` is fixed:: sage: A = identity_matrix(QQ, 2, sparse=True) sage: B = identity_matrix(ZZ, 2, sparse=True) @@ -1176,7 +1176,7 @@ cdef class Matrix_sparse(matrix.Matrix): sage: (m * v).parent() is m.column(0).parent() True - Check that the bug in :trac:`13854` has been fixed:: + Check that the bug in :issue:`13854` has been fixed:: sage: # needs sage.combinat sage.libs.singular sage: A. = FreeAlgebra(QQ, 2) diff --git a/src/sage/matrix/matrix_symbolic_dense.pyx b/src/sage/matrix/matrix_symbolic_dense.pyx index e69d977a117..7a0dab316d8 100644 --- a/src/sage/matrix/matrix_symbolic_dense.pyx +++ b/src/sage/matrix/matrix_symbolic_dense.pyx @@ -144,7 +144,7 @@ Conversion to Maxima:: TESTS: -Check that :trac:`12778` is fixed:: +Check that :issue:`12778` is fixed:: sage: M = Matrix([[1, 0.9, 1/5, x^2], [2, 1.9, 2/5, x^3], [3, 2.9, 3/5, x^4]]); M [ 1 0.900000000000000 1/5 x^2] @@ -197,7 +197,7 @@ cdef class Matrix_symbolic_dense(Matrix_generic_dense): TESTS: - Check for :trac:`31700`:: + Check for :issue:`31700`:: sage: m = matrix([[cos(pi/5), sin(pi/5)], [-sin(pi/5), cos(pi/5)]]) sage: t = linear_transformation(m) @@ -303,7 +303,7 @@ cdef class Matrix_symbolic_dense(Matrix_generic_dense): NotImplementedError: generalized eigenvector decomposition is implemented for RDF and CDF, but not for Symbolic Ring - Check that :trac:`23332` is fixed:: + Check that :issue:`23332` is fixed:: sage: matrix([[x, x^2], [1, 0]]).eigenvectors_left() [(-1/2*x*(sqrt(5) - 1), [(1, -1/2*x*(sqrt(5) + 1))], 1), @@ -368,7 +368,7 @@ cdef class Matrix_symbolic_dense(Matrix_generic_dense): NotImplementedError: generalized eigenvector decomposition is implemented for RDF and CDF, but not for Symbolic Ring - Check that :trac:`23332` is fixed:: + Check that :issue:`23332` is fixed:: sage: matrix([[x, x^2], [1, 0]]).eigenvectors_right() [(-1/2*x*(sqrt(5) - 1), [(1, -1/2*(sqrt(5) + 1)/x)], 1), @@ -403,7 +403,7 @@ cdef class Matrix_symbolic_dense(Matrix_generic_dense): [1/2*(e^(2*x) - 1)*e^(-x) 1/2*(e^(2*x) + 1)*e^(-x)] Exponentiation works on 0x0 and 1x1 matrices, but the 1x1 example - requires a patched version of maxima (:trac:`32898`) for now:: + requires a patched version of maxima (:issue:`32898`) for now:: sage: m = matrix(SR,0,[]); m [] @@ -492,7 +492,7 @@ cdef class Matrix_symbolic_dense(Matrix_generic_dense): TESTS: The cached polynomial should be independent of the ``var`` - argument (:trac:`12292`). We check (indirectly) that the + argument (:issue:`12292`). We check (indirectly) that the second call uses the cached value by noting that its result is not cached:: @@ -508,17 +508,17 @@ cdef class Matrix_symbolic_dense(Matrix_generic_dense): x^2 - 3*x - 2 Ensure the variable name of the polynomial does not conflict - with variables used within the matrix (:trac:`14403`):: + with variables used within the matrix (:issue:`14403`):: sage: Matrix(SR, [[sqrt(x), x],[1,x]]).charpoly().list() [x^(3/2) - x, -x - sqrt(x), 1] - Test that :trac:`13711` is fixed:: + Test that :issue:`13711` is fixed:: sage: matrix([[sqrt(2), -1], [pi, e^2]]).charpoly() x^2 + (-sqrt(2) - e^2)*x + pi + sqrt(2)*e^2 - Test that :trac:`26427` is fixed:: + Test that :issue:`26427` is fixed:: sage: M = matrix(SR, 7, 7, SR.var('a', 49)) sage: M.charpoly().degree() # long time diff --git a/src/sage/matrix/matrix_symbolic_sparse.pyx b/src/sage/matrix/matrix_symbolic_sparse.pyx index 69c36e764fb..680e36c5c6c 100644 --- a/src/sage/matrix/matrix_symbolic_sparse.pyx +++ b/src/sage/matrix/matrix_symbolic_sparse.pyx @@ -144,7 +144,7 @@ Conversion to Maxima:: TESTS: -Check that :trac:`12778` is fixed:: +Check that :issue:`12778` is fixed:: sage: M = Matrix([[1, 0.9, 1/5, x^2], [2, 1.9, 2/5, x^3], [3, 2.9, 3/5, x^4]], sparse=True); M [ 1 0.900000000000000 1/5 x^2] @@ -203,7 +203,7 @@ cdef class Matrix_symbolic_sparse(Matrix_generic_sparse): TESTS: - Check for :trac:`31700`:: + Check for :issue:`31700`:: sage: m = matrix([[cos(pi/5), sin(pi/5)], [-sin(pi/5), cos(pi/5)]], sparse=True) sage: t = linear_transformation(m) @@ -309,7 +309,7 @@ cdef class Matrix_symbolic_sparse(Matrix_generic_sparse): NotImplementedError: generalized eigenvector decomposition is implemented for RDF and CDF, but not for Symbolic Ring - Check that :trac:`23332` is fixed:: + Check that :issue:`23332` is fixed:: sage: matrix([[x, x^2], [1, 0]], sparse=True).eigenvectors_left() [(-1/2*x*(sqrt(5) - 1), [(1, -1/2*x*(sqrt(5) + 1))], 1), @@ -374,7 +374,7 @@ cdef class Matrix_symbolic_sparse(Matrix_generic_sparse): NotImplementedError: generalized eigenvector decomposition is implemented for RDF and CDF, but not for Symbolic Ring - Check that :trac:`23332` is fixed:: + Check that :issue:`23332` is fixed:: sage: matrix([[x, x^2], [1, 0]], sparse=True).eigenvectors_right() [(-1/2*x*(sqrt(5) - 1), [(1, -1/2*(sqrt(5) + 1)/x)], 1), @@ -409,7 +409,7 @@ cdef class Matrix_symbolic_sparse(Matrix_generic_sparse): [1/2*(e^(2*x) - 1)*e^(-x) 1/2*(e^(2*x) + 1)*e^(-x)] Exponentiation works on 0x0 and 1x1 matrices, but the 1x1 example - requires a patched version of maxima (:trac:`32898`) for now:: + requires a patched version of maxima (:issue:`32898`) for now:: sage: m = matrix(SR,0,[], sparse=True); m [] @@ -499,7 +499,7 @@ cdef class Matrix_symbolic_sparse(Matrix_generic_sparse): TESTS: The cached polynomial should be independent of the ``var`` - argument (:trac:`12292`). We check (indirectly) that the + argument (:issue:`12292`). We check (indirectly) that the second call uses the cached value by noting that its result is not cached:: @@ -515,17 +515,17 @@ cdef class Matrix_symbolic_sparse(Matrix_generic_sparse): x^2 - 3*x - 2 Ensure the variable name of the polynomial does not conflict - with variables used within the matrix (:trac:`14403`):: + with variables used within the matrix (:issue:`14403`):: sage: Matrix(SR, [[sqrt(x), x],[1,x]], sparse=True).charpoly().list() [x^(3/2) - x, -x - sqrt(x), 1] - Test that :trac:`13711` is fixed:: + Test that :issue:`13711` is fixed:: sage: matrix([[sqrt(2), -1], [pi, e^2]], sparse=True).charpoly() x^2 + (-sqrt(2) - e^2)*x + pi + sqrt(2)*e^2 - Test that :trac:`26427` is fixed:: + Test that :issue:`26427` is fixed:: sage: M = matrix(SR, 7, 7, SR.var('a', 49), sparse=True) sage: M.charpoly().degree() # long time diff --git a/src/sage/matrix/misc.pyx b/src/sage/matrix/misc.pyx index 9a51efc1038..5ff93f4accb 100644 --- a/src/sage/matrix/misc.pyx +++ b/src/sage/matrix/misc.pyx @@ -47,7 +47,7 @@ def matrix_integer_sparse_rational_reconstruction(Matrix_integer_sparse A, Integ TESTS: - Check that :trac:`9345` is fixed:: + Check that :issue:`9345` is fixed:: sage: A = random_matrix(ZZ, 3, sparse=True) sage: sage.matrix.misc.matrix_integer_sparse_rational_reconstruction(A, 0) diff --git a/src/sage/matrix/misc_flint.pyx b/src/sage/matrix/misc_flint.pyx index d5ca017f73a..3e829df4d22 100644 --- a/src/sage/matrix/misc_flint.pyx +++ b/src/sage/matrix/misc_flint.pyx @@ -40,7 +40,7 @@ def matrix_integer_dense_rational_reconstruction(Matrix_integer_dense A, Integer TESTS: - Check that :trac:`9345` is fixed:: + Check that :issue:`9345` is fixed:: sage: A = random_matrix(ZZ, 3) sage: matrix_integer_dense_rational_reconstruction(A, 0) diff --git a/src/sage/matrix/special.py b/src/sage/matrix/special.py index 7233892ce2f..5c851c6fac3 100644 --- a/src/sage/matrix/special.py +++ b/src/sage/matrix/special.py @@ -2842,7 +2842,7 @@ def random_subspaces_matrix(parent, rank=None): sage: all(x in ZZ for x in B_expanded.list()) True - Check that we fixed :trac:`10543` (echelon forms should be immutable):: + Check that we fixed :issue:`10543` (echelon forms should be immutable):: sage: B_expanded.is_immutable() True diff --git a/src/sage/matrix/strassen.pyx b/src/sage/matrix/strassen.pyx index 3d083fa6859..d45e5216747 100644 --- a/src/sage/matrix/strassen.pyx +++ b/src/sage/matrix/strassen.pyx @@ -44,7 +44,7 @@ def strassen_window_multiply(C, A,B, cutoff): AUTHORS: - David Harvey - - Simon King (2011-07): Improve memory efficiency; :trac:`11610` + - Simon King (2011-07): Improve memory efficiency; :issue:`11610` """ strassen_window_multiply_c(C, A, B, cutoff) diff --git a/src/sage/matroids/basis_exchange_matroid.pyx b/src/sage/matroids/basis_exchange_matroid.pyx index 4839fd6c9d9..bfa13b44c02 100644 --- a/src/sage/matroids/basis_exchange_matroid.pyx +++ b/src/sage/matroids/basis_exchange_matroid.pyx @@ -2127,7 +2127,7 @@ cdef class BasisExchangeMatroid(Matroid): TESTS: - Check that :trac:`23300` was fixed:: + Check that :issue:`23300` was fixed:: sage: def f(X): ....: return min(len(X), 2) @@ -2193,7 +2193,7 @@ cdef class BasisExchangeMatroid(Matroid): TESTS: - Check that :trac:`23300` was fixed:: + Check that :issue:`23300` was fixed:: sage: def f(X): ....: return min(len(X), 2) @@ -2365,7 +2365,7 @@ cdef class BasisExchangeMatroid(Matroid): TESTS: - Verify that :trac:`20172` was fixed:: + Verify that :issue:`20172` was fixed:: sage: M = Matroid(groundset='1234', bases=['12','13','23','34']) sage: M.is_valid() diff --git a/src/sage/matroids/database_matroids.py b/src/sage/matroids/database_matroids.py index 0a75ce22283..a5dc9d3de73 100644 --- a/src/sage/matroids/database_matroids.py +++ b/src/sage/matroids/database_matroids.py @@ -1884,7 +1884,7 @@ def Uniform(r, n): sage: M.is_valid() True - Check that bug :trac:`15292` was fixed:: + Check that bug :issue:`15292` was fixed:: sage: M = matroids.Uniform(4,4) sage: len(M.circuit_closures()) diff --git a/src/sage/matroids/graphic_matroid.py b/src/sage/matroids/graphic_matroid.py index ae4ff256096..e0d0b792f0a 100644 --- a/src/sage/matroids/graphic_matroid.py +++ b/src/sage/matroids/graphic_matroid.py @@ -1990,7 +1990,7 @@ def regular_matroid(self): TESTS: - Check that :trac:`28482` is fixed:: + Check that :issue:`28482` is fixed:: sage: G = Graph([[3, 4], [4, 1], [1, 2], [2, 3], [3, 5], [5, 6], [6, 3]]) sage: M = Matroid(G) diff --git a/src/sage/matroids/linear_matroid.pyx b/src/sage/matroids/linear_matroid.pyx index 84ee68cf996..bd277d891eb 100644 --- a/src/sage/matroids/linear_matroid.pyx +++ b/src/sage/matroids/linear_matroid.pyx @@ -4014,7 +4014,7 @@ cdef class BinaryMatroid(LinearMatroid): TESTS: - Check that :trac:`23437` is fixed:: + Check that :issue:`23437` is fixed:: sage: M = matroids.catalog.Fano().dual() sage: B = list(M.bases()) @@ -4905,7 +4905,7 @@ cdef class TernaryMatroid(LinearMatroid): TESTS: - Check that :trac:`23437` is fixed:: + Check that :issue:`23437` is fixed:: sage: from sage.matroids.advanced import * sage: X_bin = matroids.catalog.Fano().representation() @@ -5630,7 +5630,7 @@ cdef class QuaternaryMatroid(LinearMatroid): TESTS: - Check that :trac:`23437` is fixed:: + Check that :issue:`23437` is fixed:: sage: from sage.matroids.advanced import QuaternaryMatroid sage: X_bin = matroids.catalog.Fano().representation() @@ -6110,7 +6110,7 @@ cdef class RegularMatroid(LinearMatroid): sage: M1._is_isomorphic(M2.delete('a'), certificate=True) (True, {0: 'g', 1: 'b', 2: 'c', 3: 'e', 4: 'd', 5: 'f'}) - Check that :trac:`17316` was fixed:: + Check that :issue:`17316` was fixed:: sage: from sage.matroids.advanced import * sage: Mnew = RegularMatroid(groundset=range(12), matrix=Matrix(ZZ, @@ -6195,7 +6195,7 @@ cdef class RegularMatroid(LinearMatroid): TESTS: - Check that :trac:`22263` was fixed:: + Check that :issue:`22263` was fixed:: sage: m1 = Matroid(graph='H?ABC~}') # needs sage.graphs sage: m2 = Matroid(graph='H?ACNr}') # needs sage.graphs diff --git a/src/sage/matroids/matroid.pyx b/src/sage/matroids/matroid.pyx index 2338c144190..0dac14e135d 100644 --- a/src/sage/matroids/matroid.pyx +++ b/src/sage/matroids/matroid.pyx @@ -7607,7 +7607,7 @@ cdef class Matroid(SageObject): .. TODO:: Make implementation more efficient, e.g. generalizing the - approach from :trac:`1314` from graphs to matroids. + approach from :issue:`1314` from graphs to matroids. EXAMPLES:: diff --git a/src/sage/matroids/set_system.pyx b/src/sage/matroids/set_system.pyx index d6342d3ad89..b02326eea55 100644 --- a/src/sage/matroids/set_system.pyx +++ b/src/sage/matroids/set_system.pyx @@ -722,7 +722,7 @@ cdef class SetSystem: sage: S._equivalence(lambda self, other, morph:True, T) {1: 'c', 2: 'd', 3: 'b', 4: 'a'} - Check that :trac:`15189` is fixed:: + Check that :issue:`15189` is fixed:: sage: M = Matroid(ring=GF(5), reduced_matrix=[[1,0,3],[0,1,1],[1,1,0]]) sage: N = Matroid(ring=GF(5), reduced_matrix=[[1,0,1],[0,1,1],[1,1,0]]) diff --git a/src/sage/misc/binary_tree.pyx b/src/sage/misc/binary_tree.pyx index 6287753a335..a566c17d752 100644 --- a/src/sage/misc/binary_tree.pyx +++ b/src/sage/misc/binary_tree.pyx @@ -190,7 +190,7 @@ cdef class BinaryTree: """ TESTS: - We test that :trac:`18897` is fixed:: + We test that :issue:`18897` is fixed:: sage: def test(): ....: from sage.rings.polynomial.polynomial_compiled import CompiledPolynomialFunction diff --git a/src/sage/misc/bindable_class.py b/src/sage/misc/bindable_class.py index 9213db6008e..8739bab3002 100644 --- a/src/sage/misc/bindable_class.py +++ b/src/sage/misc/bindable_class.py @@ -191,7 +191,7 @@ class BoundClass(functools.partial): sage: c.__class__.__init__.__doc__ Make sure classes which inherit from :class:`functools.partial` have the correct - syntax, see :trac:`14748`:: + syntax, see :issue:`14748`:: sage: import warnings sage: warnings.simplefilter('error', DeprecationWarning) diff --git a/src/sage/misc/c3.pyx b/src/sage/misc/c3.pyx index 47fed790dfe..bab29641115 100644 --- a/src/sage/misc/c3.pyx +++ b/src/sage/misc/c3.pyx @@ -29,14 +29,14 @@ cpdef list C3_algorithm(object start, str bases, str attribute, bint proper) noe resolution order for new style classes involving multiple inheritance. - After :trac:`11943` this implementation was used to compute the + After :issue:`11943` this implementation was used to compute the list of super categories of a category; see :meth:`~sage.categories.category.Category.all_super_categories`. The purpose is to ensure that list of super categories matches with the method resolution order of the parent or element classes of a category. - Since :trac:`13589`, this implementation is superseded by that in + Since :issue:`13589`, this implementation is superseded by that in :mod:`sage.misc.c3_controlled`, that puts the ``C3`` algorithm under control of some total order on categories. This guarantees that ``C3`` always finds a consistent Method Resolution Order. For @@ -121,7 +121,7 @@ cpdef list C3_algorithm(object start, str bases, str attribute, bint proper) noe TESTS: - Regression test for bug #1 of :trac:`13501`:: + Regression test for bug #1 of :issue:`13501`:: sage: class C(): pass sage: class F(): pass @@ -143,7 +143,7 @@ cpdef list C3_algorithm(object start, str bases, str attribute, bint proper) noe sage: A._all_bases [A, B, C, D, E, F, G] - Regression test for bug #2 of :trac:`13501`. The following should + Regression test for bug #2 of :issue:`13501`. The following should fail since ``A`` asks for ``B`` to come before ``C``, where as ``B`` is a super class of ``C``:: @@ -163,7 +163,7 @@ cpdef list C3_algorithm(object start, str bases, str attribute, bint proper) noe ... ValueError: Cannot merge the items B, C, B. - Since :trac:`11943`, the following consistency tests are part + Since :issue:`11943`, the following consistency tests are part of the test suites of categories (except for hom categories):: sage: C = Category.join([HopfAlgebrasWithBasis(QQ), FiniteEnumeratedSets()]) diff --git a/src/sage/misc/c3_controlled.pyx b/src/sage/misc/c3_controlled.pyx index b32d493659f..2b334565fdc 100644 --- a/src/sage/misc/c3_controlled.pyx +++ b/src/sage/misc/c3_controlled.pyx @@ -415,7 +415,7 @@ cdef class CmpKey: is a facade set. The second bit is set if ``self`` is finite. And so on. The choice of the flags is adhoc and was primarily crafted so that the order between categories would not change - too much upon integration of :trac:`13589` and would be + too much upon integration of :issue:`13589` and would be reasonably session independent. The number ``i`` is there to resolve ambiguities; it is session dependent, and is assigned increasingly when new categories are created. diff --git a/src/sage/misc/cachefunc.pyx b/src/sage/misc/cachefunc.pyx index 20b3b5acbe4..ed0ef518dda 100644 --- a/src/sage/misc/cachefunc.pyx +++ b/src/sage/misc/cachefunc.pyx @@ -15,7 +15,7 @@ AUTHORS: EXAMPLES: -By :trac:`11115`, cached functions and methods are now also +By :issue:`11115`, cached functions and methods are now also available in Cython code. The following examples cover various ways of usage. @@ -31,7 +31,7 @@ Python functions:: True In some cases, one would only want to keep the result in cache as long -as there is any other reference to the result. By :trac:`12215`, this is +as there is any other reference to the result. By :issue:`12215`, this is enabled for :class:`~sage.structure.unique_representation.UniqueRepresentation`, which is used to create unique parents: If an algebraic structure, such as a finite field, is only temporarily used, then it will not stay in @@ -41,7 +41,7 @@ that behaves the same as ``cached_function``, except that it uses a Cython cdef functions do not allow arbitrary decorators. However, one can wrap a Cython function and turn it into -a cached function, by :trac:`11115`. We need to provide +a cached function, by :issue:`11115`. We need to provide the name that the wrapped method or function should have, since otherwise the name of the original function would be used:: @@ -61,9 +61,9 @@ be used:: We can proceed similarly for cached methods of Cython classes, provided that they allow attribute assignment or have a public attribute ``_cached_methods`` of type ````. Since -:trac:`11115`, this is the case for all classes inheriting from +:issue:`11115`, this is the case for all classes inheriting from :class:`~sage.structure.parent.Parent`. See below for a more explicit -example. By :trac:`12951`, cached methods of extension classes can +example. By :issue:`12951`, cached methods of extension classes can be defined by simply using the decorator. However, an indirect approach is still needed for cpdef methods:: @@ -97,7 +97,7 @@ approach is still needed for cpdef methods:: True In some cases, one would only want to keep the result in cache as long -as there is any other reference to the result. By :trac:`12215`, this is +as there is any other reference to the result. By :issue:`12215`, this is enabled for :class:`~sage.structure.unique_representation.UniqueRepresentation`, which is used to create unique parents: If an algebraic structure, such as a finite field, is only temporarily used, then it will not stay in @@ -105,7 +105,7 @@ cache forever. That behaviour is implemented using ``weak_cached_function``, that behaves the same as ``cached_function``, except that it uses a :class:`~sage.misc.weak_dict.CachedWeakValueDictionary` for storing the results. -By :trac:`11115`, even if a parent does not allow attribute +By :issue:`11115`, even if a parent does not allow attribute assignment, it can inherit a cached method from the parent class of a category (previously, the cache would have been broken):: @@ -300,7 +300,7 @@ ought to be chosen. A typical example is sage: type(I.groebner_basis) -By :trac:`12951`, the cached_method decorator is also supported on non-c(p)def +By :issue:`12951`, the cached_method decorator is also supported on non-c(p)def methods of extension classes, as long as they either support attribute assignment or have a public attribute of type ```` called ``_cached_methods``. The latter is easy:: @@ -872,7 +872,7 @@ cdef class CachedFunction(): Return the reduced Groebner basis of this ideal. ... - Test that :trac:`15184` is fixed:: + Test that :issue:`15184` is fixed:: sage: from sage.misc.sageinspect import sage_getfile sage: type(I.groebner_basis) @@ -880,7 +880,7 @@ cdef class CachedFunction(): sage: os.path.exists(sage_getfile(I.groebner_basis)) True - Test that :trac:`18064` is fixed:: + Test that :issue:`18064` is fixed:: sage: @cached_function ....: def f(): @@ -945,7 +945,7 @@ cdef class CachedFunction(): """ Return the argspec of the wrapped function or method. - This was implemented in :trac:`11115`. + This was implemented in :issue:`11115`. EXAMPLES:: @@ -980,7 +980,7 @@ cdef class CachedFunction(): sage: a is number_of_partitions(10^5) True - Check that :trac:`16316` has been fixed, i.e., caching works for + Check that :issue:`16316` has been fixed, i.e., caching works for immutable unhashable objects which define :meth:`sage.structure.sage_object.SageObject._cache_key`:: @@ -1062,7 +1062,7 @@ cdef class CachedFunction(): TESTS: - Check that :trac:`16316` has been fixed, i.e., caching works for + Check that :issue:`16316` has been fixed, i.e., caching works for immutable unhashable objects which define :meth:`sage.structure.sage_object.SageObject._cache_key`:: @@ -1108,7 +1108,7 @@ cdef class CachedFunction(): TESTS: - Check that :trac:`16316` has been fixed, i.e., caching works for + Check that :issue:`16316` has been fixed, i.e., caching works for immutable unhashable objects which define :meth:`sage.structure.sage_object.SageObject._cache_key`:: @@ -1335,7 +1335,7 @@ cdef class WeakCachedFunction(CachedFunction): TESTS: - Check that :trac:`16316` has been fixed, i.e., caching works for + Check that :issue:`16316` has been fixed, i.e., caching works for immutable unhashable objects which define :meth:`sage.structure.sage_object.SageObject._cache_key`:: @@ -1380,7 +1380,7 @@ cdef class WeakCachedFunction(CachedFunction): sage: f.is_in_cache(5) False - Check that :trac:`16316` has been fixed, i.e., caching works for + Check that :issue:`16316` has been fixed, i.e., caching works for immutable unhashable objects which define :meth:`sage.structure.sage_object.SageObject._cache_key`:: @@ -1407,7 +1407,7 @@ cdef class WeakCachedFunction(CachedFunction): sage: f(5) Integer Ring - Check that :trac:`16316` has been fixed, i.e., caching works for + Check that :issue:`16316` has been fixed, i.e., caching works for immutable unhashable objects which define :meth:`sage.structure.sage_object.SageObject._cache_key`:: @@ -1459,7 +1459,7 @@ class CachedMethodPickle(): .. NOTE:: - Since :trac:`8611`, a cached method is an attribute + Since :issue:`8611`, a cached method is an attribute of the instance (provided that it has a ``__dict__``). Hence, when pickling the instance, it would be attempted to pickle that attribute as well, but this is a problem, @@ -1500,7 +1500,7 @@ class CachedMethodPickle(): TESTS: - Since :trac:`11115`, there is a special implementation for + Since :issue:`11115`, there is a special implementation for cached methods that don't take arguments:: sage: class A: @@ -1691,7 +1691,7 @@ cdef class CachedMethodCaller(CachedFunction): .. NOTE:: - Since :trac:`11115`, there is a special implementation + Since :issue:`11115`, there is a special implementation :class:`CachedMethodCallerNoArgs` for methods that do not take arguments. @@ -1711,7 +1711,7 @@ cdef class CachedMethodCaller(CachedFunction): TESTS: - As of :trac:`15692` the contents of the cache are not pickled anymore:: + As of :issue:`15692` the contents of the cache are not pickled anymore:: sage: import __main__ sage: __main__.A = A @@ -1913,7 +1913,7 @@ cdef class CachedMethodCaller(CachedFunction): sage: Foo.g(a, y=1,x=5) is a.f(5) True - We test that :trac:`5843` is fixed:: + We test that :issue:`5843` is fixed:: sage: class Foo: ....: def __init__(self, x): @@ -1926,7 +1926,7 @@ cdef class CachedMethodCaller(CachedFunction): sage: a.f(b.f) 2 - Check that :trac:`16316` has been fixed, i.e., caching works for + Check that :issue:`16316` has been fixed, i.e., caching works for immutable unhashable objects which define :meth:`sage.structure.sage_object.SageObject._cache_key`:: @@ -2046,7 +2046,7 @@ cdef class CachedMethodCaller(CachedFunction): sage: b2 = Bar() The :class:`CachedMethod` is replaced by an instance - of :class:`CachedMethodCaller` that (by :trac:`8611`) + of :class:`CachedMethodCaller` that (by :issue:`8611`) is set as an attribute. Hence, we have:: sage: b1.f is b1.f @@ -2069,10 +2069,10 @@ cdef class CachedMethodCaller(CachedFunction): True An extension class can inherit a cached method from the - parent or element class of a category (:trac:`11115`). + parent or element class of a category (:issue:`11115`). See :class:`CachedMethodCaller` for examples. - Verify that :trac:`16337` has been resolved:: + Verify that :issue:`16337` has been resolved:: sage: class Foo: ....: @cached_method(key=lambda self,y: y+1) @@ -2181,7 +2181,7 @@ cdef class CachedMethodCallerNoArgs(CachedFunction): TESTS: - As of :trac:`15692` the contents of the cache are not pickled anymore:: + As of :issue:`15692` the contents of the cache are not pickled anymore:: sage: class A: ....: @cached_method @@ -2618,7 +2618,7 @@ cdef class CachedMethod(): sage: len(b.f.cache) 1 - Cached methods cannot be copied like usual methods, see :trac:`12603`. + Cached methods cannot be copied like usual methods, see :issue:`12603`. Copying them can lead to very surprising results:: sage: class A: @@ -2805,7 +2805,7 @@ cdef class CachedMethod(): sage: type(a.g) - By :trac:`8611`, it is attempted to set the + By :issue:`8611`, it is attempted to set the CachedMethodCaller as an attribute of the instance ``a``, replacing the original cached attribute. Therefore, the ``__get__`` method will be used only once, which saves much @@ -2816,7 +2816,7 @@ cdef class CachedMethod(): sage: a.g is a.g True - Verify that :trac:`16337` has been resolved:: + Verify that :issue:`16337` has been resolved:: sage: class Foo: ....: @cached_method(key=lambda self, x:x+1) @@ -2915,7 +2915,7 @@ cdef class CachedSpecialMethod(CachedMethod): The hash is computed only once, subsequent calls will use the value from - the cache. This was implemented in :trac:`12601`. + the cache. This was implemented in :issue:`12601`. :: @@ -2946,7 +2946,7 @@ cdef class CachedSpecialMethod(CachedMethod): sage: hash(c) 5 - Verify that :trac:`16337` has been resolved:: + Verify that :issue:`16337` has been resolved:: sage: class Foo: ....: @cached_method(key=lambda self, x:x+1) @@ -3068,7 +3068,7 @@ def cached_method(f, name=None, key=None, do_pickle=None): 8 Using cached methods for the hash and other special methods was - implemented in :trac:`12601`, by means of :class:`CachedSpecialMethod`. We + implemented in :issue:`12601`, by means of :class:`CachedSpecialMethod`. We show that it is used behind the scenes:: sage: cached_method(c.__hash__) @@ -3175,7 +3175,7 @@ cdef class CachedInParentMethod(CachedMethod): For speeding up internal computations, this dictionary is also accessible as an attribute of the CachedMethodCaller - (by :trac:`8611`):: + (by :issue:`8611`):: sage: a.parent()._cache__element_f is a.f.cache True diff --git a/src/sage/misc/call.py b/src/sage/misc/call.py index 979497b43f9..6de02981882 100644 --- a/src/sage/misc/call.py +++ b/src/sage/misc/call.py @@ -135,7 +135,7 @@ def __hash__(self): Note: a missing ``__hash__`` method here used to break the unique representation of parents taking ``attrcall`` objects - as input; see :trac:`8911`. + as input; see :issue:`8911`. """ return hash((self.args, tuple(sorted(self.kwds.items())))) diff --git a/src/sage/misc/callable_dict.pyx b/src/sage/misc/callable_dict.pyx index 9b5ca3d78eb..b1f93240a6a 100644 --- a/src/sage/misc/callable_dict.pyx +++ b/src/sage/misc/callable_dict.pyx @@ -25,8 +25,8 @@ cdef class CallableDict(dict): that this object is not picklable. When this feature is desired, a :class:`CallableDict` can be used instead. Note however that, with the current implementation, :class:`CallableDict` is slightly - slower than ``d.__getitem__`` (see :trac:`6484` for benchmarks, and - :trac:`18330` for potential for improvement). + slower than ``d.__getitem__`` (see :issue:`6484` for benchmarks, and + :issue:`18330` for potential for improvement). EXAMPLES:: diff --git a/src/sage/misc/cython.py b/src/sage/misc/cython.py index 081d0562d05..93ce994c537 100644 --- a/src/sage/misc/cython.py +++ b/src/sage/misc/cython.py @@ -122,10 +122,10 @@ def cython(filename, verbose=0, compile_message=False, TESTS: - Before :trac:`12975`, it would have been needed to write ``#clang c++``, + Before :issue:`12975`, it would have been needed to write ``#clang c++``, but upper case ``C++`` has resulted in an error. Using pkgconfig to find the libraries, headers and macros. This is a - work around while waiting for :trac:`22461` which will offer a better + work around while waiting for :issue:`22461` which will offer a better solution:: sage: code = [ @@ -151,7 +151,7 @@ def cython(filename, verbose=0, compile_message=False, ....: "cdef vector[int] * v = new vector[int](4)\n") Check that compiling C++ code works when creating a local C file, - first moving to a tempdir to avoid clutter. Before :trac:`22113`, + first moving to a tempdir to avoid clutter. Before :issue:`22113`, the create_local_c_file argument was not tested for C++ code:: sage: orig_cwd = os.getcwd() @@ -210,7 +210,7 @@ def cython(filename, verbose=0, compile_message=False, ... RuntimeError: ... - As of :trac:`29139` the default is ``cdivision=True``:: + As of :issue:`29139` the default is ``cdivision=True``:: sage: cython(''' ....: cdef size_t foo = 3/2 @@ -227,7 +227,7 @@ def cython(filename, verbose=0, compile_message=False, ....: ''') In Cython 0.29.33 using `from PACKAGE cimport MODULE` is broken - when `PACKAGE` is a namespace package, see :trac:`35322`:: + when `PACKAGE` is a namespace package, see :issue:`35322`:: sage: cython(''' ....: from sage.misc cimport cachefunc @@ -466,7 +466,7 @@ def cython_lambda(vars, expr, verbose=0, **kwds): .. warning:: - Accessing ``globals()`` doesn't actually work, see :trac:`12446`. + Accessing ``globals()`` doesn't actually work, see :issue:`12446`. EXAMPLES: diff --git a/src/sage/misc/decorators.py b/src/sage/misc/decorators.py index a13f1523c74..9ded4260e3b 100644 --- a/src/sage/misc/decorators.py +++ b/src/sage/misc/decorators.py @@ -77,7 +77,7 @@ def sage_wraps(wrapped, assigned=WRAPPER_ASSIGNMENTS, updated=WRAPPER_UPDATES): Demonstrate that the argument description are retained from the decorated function through the special method (when left - unchanged) (see :trac:`9976`):: + unchanged) (see :issue:`9976`):: sage: def diff_arg_dec(f): ....: @sage_wraps(f) @@ -124,7 +124,7 @@ def sage_wraps(wrapped, assigned=WRAPPER_ASSIGNMENTS, updated=WRAPPER_UPDATES): True Demonstrate that sage_wraps works for non-function callables - (:trac:`9919`):: + (:issue:`9919`):: sage: def square_for_met(f): ....: @sage_wraps(f) @@ -142,7 +142,7 @@ def sage_wraps(wrapped, assigned=WRAPPER_ASSIGNMENTS, updated=WRAPPER_UPDATES): sage: t.g.__doc__ 'My little method' - The bug described in :trac:`11734` is fixed:: + The bug described in :issue:`11734` is fixed:: sage: def square(f): ....: @sage_wraps(f) @@ -390,7 +390,7 @@ def __call__(self, func): [('arrow_options', {'size': 5})] Demonstrate that the introspected argument specification of the - wrapped function is updated (see :trac:`9976`):: + wrapped function is updated (see :issue:`9976`):: sage: from sage.misc.sageinspect import sage_getargspec sage: sage_getargspec(f) @@ -454,7 +454,7 @@ def __init__(self, **options): {'rgbcolor': (0, 0, 1)} Demonstrate that the introspected argument specification of the wrapped - function is updated (see :trac:`9976`):: + function is updated (see :issue:`9976`):: sage: from sage.misc.decorators import options sage: o = options(rgbcolor=(0,0,1)) diff --git a/src/sage/misc/dev_tools.py b/src/sage/misc/dev_tools.py index 3ece7db2894..c323fad538b 100644 --- a/src/sage/misc/dev_tools.py +++ b/src/sage/misc/dev_tools.py @@ -488,14 +488,14 @@ def import_statements(*objects, **kwds): ... ValueError: no import statement found for '5'. - We test that it behaves well with lazy imported objects (:trac:`14767`):: + We test that it behaves well with lazy imported objects (:issue:`14767`):: sage: import_statements(NN) from sage.rings.semirings.non_negative_integer_semiring import NN sage: import_statements('NN') from sage.rings.semirings.non_negative_integer_semiring import NN - Deprecated lazy imports are ignored (see :trac:`17458`):: + Deprecated lazy imports are ignored (see :issue:`17458`):: sage: lazy_import('sage.all', 'RR', 'deprecated_RR', namespace=sage.__dict__, deprecation=17458) sage: import_statements('deprecated_RR') @@ -506,7 +506,7 @@ def import_statements(*objects, **kwds): sage: import_statements('RR') from sage.rings.real_mpfr import RR - The following were fixed with :trac:`15351`:: + The following were fixed with :issue:`15351`:: sage: import_statements('Rationals') from sage.rings.rational_field import RationalField as Rationals @@ -524,7 +524,7 @@ def import_statements(*objects, **kwds): import sage.graphs.graph_decompositions Check that a name from the global namespace is properly found (see - :trac:`23779`):: + :issue:`23779`):: sage: import_statements('log') from sage.misc.functional import log diff --git a/src/sage/misc/dist.py b/src/sage/misc/dist.py index 5570bb5926b..b7c59ee77f3 100644 --- a/src/sage/misc/dist.py +++ b/src/sage/misc/dist.py @@ -65,7 +65,7 @@ def install_scripts(directory=None, ignore_existing=False): - Arthur Gaer: design - - John Palmieri: revision, 2011-07 (:trac:`11602`) + - John Palmieri: revision, 2011-07 (:issue:`11602`) EXAMPLES:: diff --git a/src/sage/misc/edit_module.py b/src/sage/misc/edit_module.py index 82496752609..58a3ab15a2a 100644 --- a/src/sage/misc/edit_module.py +++ b/src/sage/misc/edit_module.py @@ -78,7 +78,7 @@ def file_and_line(obj): sage: edit_module.file_and_line(sage.cpython) ('...sage/cpython/__init__.py', 0) - The following tests against a bug that was fixed in :trac:`11298`:: + The following tests against a bug that was fixed in :issue:`11298`:: sage: edit_module.file_and_line(x) # needs sage.symbolic ('...sage/symbolic/expression...pyx', ...) diff --git a/src/sage/misc/fast_methods.pyx b/src/sage/misc/fast_methods.pyx index 370cefc46a0..ce7f918cccd 100644 --- a/src/sage/misc/fast_methods.pyx +++ b/src/sage/misc/fast_methods.pyx @@ -166,7 +166,7 @@ cdef class WithEqualityById: sage: a == AlwaysEqual() True - Check that :trac:`19628` is fixed:: + Check that :issue:`19628` is fixed:: sage: from sage.misc.lazy_import import LazyImport sage: lazyQQ = LazyImport('sage.rings.rational_field', 'QQ') diff --git a/src/sage/misc/functional.py b/src/sage/misc/functional.py index 11d11dc291c..42d9913ba41 100644 --- a/src/sage/misc/functional.py +++ b/src/sage/misc/functional.py @@ -155,7 +155,7 @@ def characteristic_polynomial(x, var='x'): Ensure the variable name of the polynomial does not conflict with variables used within the matrix, and that non-integral powers of - variables do not confuse the computation (:trac:`14403`):: + variables do not confuse the computation (:issue:`14403`):: sage: # needs sage.libs.pari sage.symbolic sage: y = var('y') @@ -518,7 +518,7 @@ def symbolic_sum(expression, *args, **kwds): sage: sum(2^(-k)/(k*(k+1)), k, 1, oo) # needs sage.symbolic -log(2) + 1 - Another binomial identity (:trac:`7952`):: + Another binomial identity (:issue:`7952`):: sage: t, k, i = var('t,k,i') # needs sage.symbolic sage: sum(binomial(i + t, t), i, 0, k) # needs sage.symbolic @@ -566,7 +566,7 @@ def symbolic_sum(expression, *args, **kwds): sage: sum(binomial(n, k) * x^k, k, 0, n, algorithm='maple') # optional - maple, needs sage.symbolic (x + 1)^n - Python ints should work as limits of summation (:trac:`9393`):: + Python ints should work as limits of summation (:issue:`9393`):: sage: sum(x, x, 1r, 5r) # needs sage.symbolic 15 @@ -579,7 +579,7 @@ def symbolic_sum(expression, *args, **kwds): TESTS: - Check that :trac:`34007` is fixed:: + Check that :issue:`34007` is fixed:: sage: sum([1, 2], start=1) 4 @@ -708,14 +708,14 @@ def integral(x, *args, **kwds): TESTS: - A symbolic integral from :trac:`11445` that was incorrect in + A symbolic integral from :issue:`11445` that was incorrect in earlier versions of Maxima:: sage: f = abs(x - 1) + abs(x + 1) - 2*abs(x) # needs sage.symbolic sage: integrate(f, (x, -Infinity, Infinity)) # needs sage.symbolic 2 - Another symbolic integral, from :trac:`11238`, that used to return + Another symbolic integral, from :issue:`11238`, that used to return zero incorrectly; with Maxima 5.26.0 one gets ``1/2*sqrt(pi)*e^(1/4)``, whereas with 5.29.1, and even more so with 5.33.0, the expression is less pleasant, but still has the @@ -736,21 +736,21 @@ def integral(x, *args, **kwds): sage: sage.calculus.calculus.maxima('domain: complex') complex - An integral which used to return -1 before maxima 5.28. See :trac:`12842`:: + An integral which used to return -1 before maxima 5.28. See :issue:`12842`:: sage: f = e^(-2*x)/sqrt(1-e^(-2*x)) # needs sage.symbolic sage: integrate(f, x, 0, infinity) # needs sage.symbolic 1 This integral would cause a stack overflow in earlier versions of - Maxima, crashing sage. See :trac:`12377`. We don't care about the + Maxima, crashing sage. See :issue:`12377`. We don't care about the result here, just that the computation completes successfully:: sage: y = (x^2)*exp(x) / (1 + exp(x))^2 # needs sage.symbolic sage: _ = integrate(y, x, -1000, 1000) # needs sage.symbolic When SymPy cannot solve an integral it gives it back, so we must - be able to convert SymPy's ``Integral`` (:trac:`14723`):: + be able to convert SymPy's ``Integral`` (:issue:`14723`):: sage: # needs sage.symbolic sage: x, y, z = var('x,y,z') @@ -777,7 +777,7 @@ def integral(x, *args, **kwds): integrate(integrate(integrate(f(x, y, z), x), y), z) Ensure that the following integral containing a signum term from - :trac:`11590` can be integrated:: + :issue:`11590` can be integrated:: sage: x = SR.symbol('x', domain='real') # needs sage.symbolic sage: result = integrate(x * sgn(x^2 - 1/4), x, -1, 0) # needs sage.symbolic @@ -1164,7 +1164,7 @@ def log(*args, **kwds): TESTS: - Check if :trac:`10136` is fixed:: + Check if :issue:`10136` is fixed:: sage: ln(x).operator() is ln # needs sage.symbolic True @@ -1193,7 +1193,7 @@ def log(*args, **kwds): ... TypeError: log takes at most 2 arguments (3 given) - Check if :trac:`29164` is fixed:: + Check if :issue:`29164` is fixed:: sage: log(0, 2) -Infinity @@ -1551,7 +1551,7 @@ def numerical_approx(x, prec=None, digits=None, algorithm=None): TypeError: cannot approximate to a precision of 53 bits, use at most 24 bits As an exceptional case, ``digits=1`` usually leads to 2 digits (one - significant) in the decimal output (see :trac:`11647`):: + significant) in the decimal output (see :issue:`11647`):: sage: # needs sage.symbolic sage: N(pi, digits=1) @@ -1585,7 +1585,7 @@ def numerical_approx(x, prec=None, digits=None, algorithm=None): sage: type(numerical_approx(CC(1/2))) # needs sage.rings.real_mpfr - The following tests :trac:`10761`, in which ``n()`` would break when + The following tests :issue:`10761`, in which ``n()`` would break when called on complex-valued algebraic numbers. :: sage: E = matrix(3, [3,1,6,5,2,9,7,3,13]).eigenvalues(); E # needs sage.modules sage.rings.number_field @@ -1596,7 +1596,7 @@ def numerical_approx(x, prec=None, digits=None, algorithm=None): [18.1681536508882, -0.0840768254441065 - 0.219026148480291*I, -0.0840768254441065 + 0.219026148480291*I] Make sure we've rounded up log(10,2) enough to guarantee - sufficient precision (:trac:`10164`):: + sufficient precision (:issue:`10164`):: sage: ks = 4*10**5, 10**6 sage: check_str_length = lambda k: len(str(numerical_approx(1+10**-k,digits=k+1)))-1 >= k+1 @@ -1604,7 +1604,7 @@ def numerical_approx(x, prec=None, digits=None, algorithm=None): sage: all(check_str_length(k) and check_precision(k) for k in ks) # needs sage.rings.real_mpfr True - Testing we have sufficient precision for the golden ratio (:trac:`12163`), note + Testing we have sufficient precision for the golden ratio (:issue:`12163`), note that the decimal point adds 1 to the string length:: sage: len(str(n(golden_ratio, digits=5000))) # needs sage.symbolic @@ -1612,7 +1612,7 @@ def numerical_approx(x, prec=None, digits=None, algorithm=None): sage: len(str(n(golden_ratio, digits=5000000))) # long time (4s on sage.math, 2012), needs sage.symbolic 5000001 - Check that :trac:`14778` is fixed:: + Check that :issue:`14778` is fixed:: sage: n(0, algorithm='foo') # needs sage.rings.real_mpfr 0.000000000000000 @@ -1743,7 +1743,7 @@ def round(x, ndigits=0): sage: round(b) 5 - This example addresses :trac:`23502`:: + This example addresses :issue:`23502`:: sage: n = round(6); type(n) @@ -1997,7 +1997,7 @@ def sqrt(x, *args, **kwds): ... TypeError: ..._do_sqrt() got an unexpected keyword argument 'hold' - This illustrates that the bug reported in :trac:`6171` has been fixed:: + This illustrates that the bug reported in :issue:`6171` has been fixed:: sage: a = 1.1 sage: a.sqrt(prec=100) # this is supposed to fail diff --git a/src/sage/misc/inherit_comparison.pyx b/src/sage/misc/inherit_comparison.pyx index aa97f664496..394044d8a9a 100644 --- a/src/sage/misc/inherit_comparison.pyx +++ b/src/sage/misc/inherit_comparison.pyx @@ -22,7 +22,7 @@ methods anyway. AUTHOR: -- Jeroen Demeyer (2015-05-22): initial version, see :trac:`18329` +- Jeroen Demeyer (2015-05-22): initial version, see :issue:`18329` """ #***************************************************************************** diff --git a/src/sage/misc/latex.py b/src/sage/misc/latex.py index f409dacbddc..db573d16e66 100644 --- a/src/sage/misc/latex.py +++ b/src/sage/misc/latex.py @@ -112,7 +112,7 @@ def tuple_function(x, combine_all=False): sage: tuple_function((1,2,3)) '\\left(1, 2, 3\\right)' - Check that :trac:`11775` is fixed:: + Check that :issue:`11775` is fixed:: sage: tuple_function((1,2,3), combine_all=True) '1 2 3' @@ -298,7 +298,7 @@ def float_function(x): TESTS: - Check that :trac:`7356` is fixed:: + Check that :issue:`7356` is fixed:: sage: latex(float(2e-13)) 2 \times 10^{-13} @@ -865,7 +865,7 @@ def __call__(self, x, combine_all=False): sage: print(latex([x, 2])) # needs sage.symbolic \left[x, 2\right] - Check that :trac:`11775` is fixed:: + Check that :issue:`11775` is fixed:: sage: latex((x,2), combine_all=True) # needs sage.symbolic x 2 @@ -1338,7 +1338,7 @@ def check_file(self, file_name, more_info=""): Warning: `some_inexistent_file.sty` is not part of this computer's TeX installation. This file is required for blah. It can be downloaded from: http://blah.org/ - This test checks that the bug in :trac:`9091` is fixed:: + This test checks that the bug in :issue:`9091` is fixed:: sage: latex.check_file("article.cls", "The article class is really critical.") # optional - latex """ @@ -2019,13 +2019,13 @@ def repr_lincomb(symbols, coeffs): sage: repr_lincomb(['a', 'b'], [1,1]) '\\text{\\texttt{a}} + \\text{\\texttt{b}}' - Verify that a certain corner case works (see :trac:`5707` and - :trac:`5766`):: + Verify that a certain corner case works (see :issue:`5707` and + :issue:`5766`):: sage: repr_lincomb([1,5,-3],[2,8/9,7]) '2\\cdot 1 + \\frac{8}{9}\\cdot 5 + 7\\cdot -3' - Verify that :trac:`17299` (latex representation of modular symbols) + Verify that :issue:`17299` (latex representation of modular symbols) is fixed:: sage: x = EllipticCurve('64a1').modular_symbol_space(sign=1).basis()[0] # needs sage.schemes diff --git a/src/sage/misc/latex_standalone.py b/src/sage/misc/latex_standalone.py index c24b076d805..c21bdefb643 100644 --- a/src/sage/misc/latex_standalone.py +++ b/src/sage/misc/latex_standalone.py @@ -1595,7 +1595,7 @@ def from_graph(cls, graph, merge_multiedges=True, sage: _ = tikz.pdf() # not tested Using subgraphs clusters (broken when using labels, see - :trac:`22070`):: + :issue:`22070`):: sage: S = FiniteSetMaps(5) sage: I = S((0,1,2,3,4)) diff --git a/src/sage/misc/lazy_attribute.pyx b/src/sage/misc/lazy_attribute.pyx index 74c3756a004..e2dee7b58ac 100644 --- a/src/sage/misc/lazy_attribute.pyx +++ b/src/sage/misc/lazy_attribute.pyx @@ -62,7 +62,7 @@ cdef class _lazy_attribute(): TESTS: - We check that :trac:`9251` is solved:: + We check that :issue:`9251` is solved:: sage: Parent.element_class @@ -345,7 +345,7 @@ class lazy_attribute(_lazy_attribute): sage: A().len 5 - Since :trac:`11115`, extension classes derived from + Since :issue:`11115`, extension classes derived from :class:`~sage.structure.parent.Parent` can inherit a lazy attribute, such as ``element_class``:: diff --git a/src/sage/misc/lazy_import.pyx b/src/sage/misc/lazy_import.pyx index c9b09dc1ef5..70a914528b9 100644 --- a/src/sage/misc/lazy_import.pyx +++ b/src/sage/misc/lazy_import.pyx @@ -327,7 +327,7 @@ cdef class LazyImport(): TESTS: - Check that :trac:`19475` is fixed:: + Check that :issue:`19475` is fixed:: sage: 'A subset of the real line' in RealSet.__doc__ True diff --git a/src/sage/misc/lazy_string.pyx b/src/sage/misc/lazy_string.pyx index 4777c44a7a2..040999c84d6 100644 --- a/src/sage/misc/lazy_string.pyx +++ b/src/sage/misc/lazy_string.pyx @@ -313,7 +313,7 @@ cdef class _LazyString(): Return the file system representation of ``self``, assuming that ``self`` is a path. - This is for Python 3 compatibility: see :trac:`24046`, and also + This is for Python 3 compatibility: see :issue:`24046`, and also :pep:`519` and https://docs.python.org/3/library/os.html#os.fspath diff --git a/src/sage/misc/misc.py b/src/sage/misc/misc.py index 4f60a11b780..39a6ecffd14 100644 --- a/src/sage/misc/misc.py +++ b/src/sage/misc/misc.py @@ -12,7 +12,7 @@ TESTS: -The following test, verifying that :trac:`16181` has been resolved, needs +The following test, verifying that :issue:`16181` has been resolved, needs to stay at the beginning of this file so that its context is not poisoned by other tests:: @@ -20,7 +20,7 @@ sage: a 0 -Check the fix from :trac:`8323`:: +Check the fix from :issue:`8323`:: sage: 'name' in globals() False diff --git a/src/sage/misc/misc_c.pyx b/src/sage/misc/misc_c.pyx index b60794c32d0..e5ceb3e1ad3 100644 --- a/src/sage/misc/misc_c.pyx +++ b/src/sage/misc/misc_c.pyx @@ -735,7 +735,7 @@ def cyflush(): Starting with Python 3, some output from external libraries (like FLINT) is not flushed, and so if a doctest produces such output, the output may not appear until a later doctest. See - :trac:`28649`. + :issue:`28649`. Use this function after a doctest which produces potentially unflushed output to force it to be flushed. diff --git a/src/sage/misc/mrange.py b/src/sage/misc/mrange.py index 1c93c811b2e..47cf9d32e81 100644 --- a/src/sage/misc/mrange.py +++ b/src/sage/misc/mrange.py @@ -114,7 +114,7 @@ def _xmrange_iter(iter_list, typ=list): sage: l1 is l2 # eeek, this is freaky! True - We check that :trac:`14285` has been resolved:: + We check that :issue:`14285` has been resolved:: sage: iter = sage.misc.mrange._xmrange_iter([ZZ,[]]) sage: next(iter) @@ -122,7 +122,7 @@ def _xmrange_iter(iter_list, typ=list): ... StopIteration - We check that :trac:`28521` is fixed:: + We check that :issue:`28521` is fixed:: sage: next(sage.misc.mrange._xmrange_iter([[], [1]])) Traceback (most recent call last): @@ -209,7 +209,7 @@ def mrange_iter(iter_list, typ=list): sage: mrange_iter([range(5), range(3), range(-2)]) [] - This example is not empty, and should not be. See :trac:`6561`. + This example is not empty, and should not be. See :issue:`6561`. :: @@ -292,7 +292,7 @@ class xmrange_iter: sage: list(xmrange_iter([range(5),range(3),range(0)])) [] - This example is not empty, and should not be. See :trac:`6561`. + This example is not empty, and should not be. See :issue:`6561`. :: @@ -460,7 +460,7 @@ def mrange(sizes, typ=list): sage: mrange([5,3,0]) [] - This example is not empty, and should not be. See :trac:`6561`. + This example is not empty, and should not be. See :issue:`6561`. :: @@ -545,7 +545,7 @@ class xmrange: sage: list(xmrange([5,3,0])) [] - This example is not empty, and should not be. See :trac:`6561`. + This example is not empty, and should not be. See :issue:`6561`. :: @@ -617,7 +617,7 @@ def cartesian_product_iterator(X): TESTS: - Check that :trac:`28521` is fixed:: + Check that :issue:`28521` is fixed:: sage: list(cartesian_product_iterator([[], [1]])) [] @@ -708,7 +708,7 @@ def cantor_product(*args, **kwds): [(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (0, 4), (2, 3), (1, 4), (2, 4), (3, 4)] - Check that :trac:`24897` is fixed:: + Check that :issue:`24897` is fixed:: sage: from sage.misc.mrange import cantor_product sage: list(cantor_product([1])) diff --git a/src/sage/misc/nested_class.pyx b/src/sage/misc/nested_class.pyx index e397b356c22..a2625c039ef 100644 --- a/src/sage/misc/nested_class.pyx +++ b/src/sage/misc/nested_class.pyx @@ -152,7 +152,7 @@ cpdef modify_for_nested_pickle(cls, str name_prefix, module, first_run=True) noe TESTS: The following is a real life example, that was enabled by the internal - use of the``first_run`` in :trac:`9107`:: + use of the``first_run`` in :issue:`9107`:: sage: cython_code = [ ....: "from sage.structure.unique_representation import UniqueRepresentation", @@ -164,7 +164,7 @@ cpdef modify_for_nested_pickle(cls, str name_prefix, module, first_run=True) noe sage: import os sage: cython(os.linesep.join(cython_code)) # needs sage.misc.cython - Before :trac:`9107`, the name of ``A1.B1.C1`` would have been wrong:: + Before :issue:`9107`, the name of ``A1.B1.C1`` would have been wrong:: sage: # needs sage.misc.cython sage: A1.B1.C1.__name__ diff --git a/src/sage/misc/package.py b/src/sage/misc/package.py index d64c53ac3e8..11337739442 100644 --- a/src/sage/misc/package.py +++ b/src/sage/misc/package.py @@ -87,7 +87,7 @@ def pip_remote_version(pkg, pypi_url=DEFAULT_PYPI, ignore_URLError=False): EXAMPLES: The following test does fail if there is no TLS support (see e.g. - :trac:`19213`):: + :issue:`19213`):: sage: from sage.misc.package import pip_remote_version sage: pip_remote_version('beautifulsoup4') # optional - internet # not tested diff --git a/src/sage/misc/parser.pyx b/src/sage/misc/parser.pyx index 5f975a5e9f6..14896ce763c 100644 --- a/src/sage/misc/parser.pyx +++ b/src/sage/misc/parser.pyx @@ -168,7 +168,7 @@ cdef class Tokenizer: TESTS: - Check support for unicode characters (:trac:`29280`):: + Check support for unicode characters (:issue:`29280`):: sage: Tokenizer("λ+α_β0 Γ^ω").test() ['NAME(λ)', '+', 'NAME(α_β0)', 'NAME(Γ)', '^', 'NAME(ω)'] diff --git a/src/sage/misc/persist.pyx b/src/sage/misc/persist.pyx index ade86328454..b6f4bb220f7 100644 --- a/src/sage/misc/persist.pyx +++ b/src/sage/misc/persist.pyx @@ -269,7 +269,7 @@ def save(obj, filename, compress=True, **kwargs): TESTS: - Check that :trac:`11577` is fixed:: + Check that :issue:`11577` is fixed:: sage: import tempfile sage: with tempfile.NamedTemporaryFile(suffix=".bar") as f: @@ -729,7 +729,7 @@ class SagePickler(_BasePickler): - Further arguments are passed to :func:`pickle.load`, where in Python-3 Sage sets the default ``encoding='latin1'``. This is essential to make pickles readable in Python-3 that were created in Python-2. See - :trac:`28444` for details. + :issue:`28444` for details. .. _pickling and unpickling external objects: https://docs.python.org/2.7/library/pickle.html#pickling-and-unpickling-external-objects @@ -780,7 +780,7 @@ class SagePickler(_BasePickler): sage: type(g), g.bar (, '\x80\x07') - The following line demonstrates what would happen without :trac:`28444`:: + The following line demonstrates what would happen without :issue:`28444`:: sage: loads(b'x\x9ck`J\x8e\x8f\xcfM\xcc\xcc\x8b\x8f\xe7r\xcb\xcf\xe7*d\x0cej`/dj\r*d\xd6\x03\x00\x89\xc5\x08{', encoding='ASCII') Traceback (most recent call last): @@ -950,7 +950,7 @@ def loads(s, compress=True, **kwargs): The next example demonstrates that Sage strives to avoid data loss in the transition from Python-2 to Python-3. The problem is that Python-3 by default would not be able to unpickle a non-ASCII Python-2 string appearing - in a pickle. See :trac:`28444` for details. + in a pickle. See :issue:`28444` for details. :: sage: class Foo(): @@ -970,7 +970,7 @@ def loads(s, compress=True, **kwargs): sage: type(g), g.bar (, '\x80\x07') - The following line demonstrates what would happen without :trac:`28444`:: + The following line demonstrates what would happen without :issue:`28444`:: sage: loads(b'x\x9ck`J\x8e\x8f\xcfM\xcc\xcc\x8b\x8f\xe7r\xcb\xcf\xe7*d\x0cej`/dj\r*d\xd6\x03\x00\x89\xc5\x08{', encoding='ASCII') Traceback (most recent call last): diff --git a/src/sage/misc/randstate.pyx b/src/sage/misc/randstate.pyx index 5c883c928b4..b918b153883 100644 --- a/src/sage/misc/randstate.pyx +++ b/src/sage/misc/randstate.pyx @@ -480,7 +480,7 @@ cdef class randstate: TESTS: - The following used to segfault (see :trac:`10113`). Now, + The following used to segfault (see :issue:`10113`). Now, there is a proper type error:: sage: seed(1,2) # indirect doctest diff --git a/src/sage/misc/repr.py b/src/sage/misc/repr.py index ae873edea95..e6dc42d56a3 100644 --- a/src/sage/misc/repr.py +++ b/src/sage/misc/repr.py @@ -129,7 +129,7 @@ def repr_lincomb(terms, is_latex=False, scalar_mult="*", strip_one=False, TESTS: - Verify that :trac:`31672` is fixed:: + Verify that :issue:`31672` is fixed:: sage: # needs sage.symbolic sage: alpha = var("alpha") diff --git a/src/sage/misc/reset.pyx b/src/sage/misc/reset.pyx index 23cad11fb77..f0e1f07a90d 100644 --- a/src/sage/misc/reset.pyx +++ b/src/sage/misc/reset.pyx @@ -55,7 +55,7 @@ def reset(vars=None, attached=False): TESTS: - Confirm that assumptions don't survive a reset (:trac:`10855`):: + Confirm that assumptions don't survive a reset (:issue:`10855`):: sage: # needs sage.symbolic sage: assume(x > 3) diff --git a/src/sage/misc/sage_unittest.py b/src/sage/misc/sage_unittest.py index da99c3ea92d..9d3ce5db1e8 100644 --- a/src/sage/misc/sage_unittest.py +++ b/src/sage/misc/sage_unittest.py @@ -553,7 +553,7 @@ def some_elements(self, S=None, repeat=None): sage: all(s in srange(8) and t in srange(8) for s,t in tester.some_elements(repeat=2)) True - Test for :trac:`15919`, :trac:`16244`:: + Test for :issue:`15919`, :issue:`16244`:: sage: Z = IntegerModRing(25) # random.sample, which was used pre #16244, has a threshold at 21! sage: Z[1] # since #8389, indexed access is used for ring extensions diff --git a/src/sage/misc/sagedoc.py b/src/sage/misc/sagedoc.py index 2632d0c4359..61cabbd1e79 100644 --- a/src/sage/misc/sagedoc.py +++ b/src/sage/misc/sagedoc.py @@ -16,7 +16,7 @@ TESTS: Check that argspecs of extension function/methods appear correctly, -see :trac:`12849`:: +see :issue:`12849`:: sage: from sage.env import SAGE_DOC sage: docfilename = os.path.join(SAGE_DOC, 'html', 'en', 'reference', 'calculus', 'sage', 'symbolic', 'expression.html') @@ -338,7 +338,7 @@ def skip_TESTS_block(docstring): sage: skip_TESTS_block(start + test + another_fake).rstrip() == start.rstrip() True - Double colons ``::`` are also not considered as headers (:trac:`27896`):: + Double colons ``::`` are also not considered as headers (:issue:`27896`):: sage: colons = ' ::\n\n sage: 2+2\n 4\n\n' sage: skip_TESTS_block(start + test2 + colons).rstrip() == start.rstrip() @@ -502,11 +502,11 @@ def process_dollars(s): return s -# Sage github issue shortcuts. For example, :trac:`7549` . +# Sage github issue shortcuts. For example, :issue:`7549` . pythonversion = sys.version.split(' ')[0] extlinks = { 'python': (f'https://docs.python.org/release/{pythonversion}/%s', None), - 'trac': ('https://github.com/sagemath/sage/issues/%s', 'github issue #%s'), # support :trac: for backward compatibility + 'trac': ('https://github.com/sagemath/sage/issues/%s', 'github issue #%s'), # support :issue: for backward compatibility 'issue': ('https://github.com/sagemath/sage/issues/%s', 'github issue #%s'), 'wikipedia': ('https://en.wikipedia.org/wiki/%s', 'Wikipedia article %s'), 'arxiv': ('https://arxiv.org/abs/%s', 'arXiv %s'), @@ -541,7 +541,7 @@ def process_extlinks(s, embedded=False): EXAMPLES:: sage: from sage.misc.sagedoc import process_extlinks - sage: process_extlinks('See :trac:`1234`, :wikipedia:`Wikipedia `, and :trac:`4321` ...') + sage: process_extlinks('See :issue:`1234`, :wikipedia:`Wikipedia `, and :issue:`4321` ...') 'See https://github.com/sagemath/sage/issues/1234, https://en.wikipedia.org/wiki/Sage_(mathematics_software), and https://github.com/sagemath/sage/issues/4321 ...' sage: process_extlinks('See :issue:`1234` for more information.', embedded=True) 'See :issue:`1234` for more information.' @@ -684,7 +684,7 @@ def format(s, embedded=False): " Returns ... Todo: add tests as in combinat::rankers\n" In the following use case, the ``nodetex`` directive would have been ignored prior - to :trac:`11815`:: + to :issue:`11815`:: sage: cython_code = ["def testfunc(x):", ....: " '''", @@ -704,7 +704,7 @@ def format(s, embedded=False): We check that the ``noreplace`` directive works, even combined with - ``nodetex`` (see :trac:`11817`):: + ``nodetex`` (see :issue:`11817`):: sage: print(format('''nodetex, noreplace\n<<>>`\\not= 0`''')) <<>>`\not= 0` @@ -722,7 +722,7 @@ def format(s, embedded=False): Return the n x n identity matrix over the given ring. ... - Check that backslashes are preserved in code blocks (:trac:`29140`):: + Check that backslashes are preserved in code blocks (:issue:`29140`):: sage: format('::\n' # needs sphinx ....: '\n' diff --git a/src/sage/misc/sageinspect.py b/src/sage/misc/sageinspect.py index d6c5fa75e9c..aff47ef96bb 100644 --- a/src/sage/misc/sageinspect.py +++ b/src/sage/misc/sageinspect.py @@ -102,7 +102,7 @@ sage: sage_getdef(str.find, 'find') 'find(*args, **kwds)' -By :trac:`9976` and :trac:`14017`, introspection also works for interactively +By :issue:`9976` and :issue:`14017`, introspection also works for interactively defined Cython code, and with rather tricky argument lines:: sage: # needs sage.misc.cython @@ -260,7 +260,7 @@ def _extract_embedded_position(docstring): TESTS: - The following has been fixed in :trac:`13916`:: + The following has been fixed in :issue:`13916`:: sage: cython('''cpdef test_funct(x,y): return''') # needs sage.misc.cython sage: func_doc = inspect.getdoc(test_funct) # needs sage.misc.cython @@ -271,7 +271,7 @@ def _extract_embedded_position(docstring): Ensure that the embedded filename of the compiled function is correct. In particular it should be relative to ``spyx_tmp()`` in order for certain documentation functions to work properly. See - :trac:`24097`:: + :issue:`24097`:: sage: from sage.env import DOT_SAGE sage: from sage.misc.sage_ostools import restore_cwd @@ -330,7 +330,7 @@ def _extract_embedded_signature(docstring, name): If docstring starts with the embedded of a method called ``name``, return a tuple (original_docstring, argspec). If not, return (docstring, None). - See :trac:`17814`. + See :issue:`17814`. INPUT: ``docstring`` (string) @@ -1003,7 +1003,7 @@ def _split_syntactical_unit(s): TESTS: - The following was fixed in :trac:`16309`:: + The following was fixed in :issue:`16309`:: sage: _split_syntactical_unit('()): pass') ('()', '): pass') @@ -1364,19 +1364,19 @@ def sage_getfile(obj): sage: sage_getfile(x) # needs sage.symbolic '...sage/symbolic/expression.pyx' - The following tests against some bugs fixed in :trac:`9976`:: + The following tests against some bugs fixed in :issue:`9976`:: sage: obj = sage.combinat.partition_algebra.SetPartitionsAk # needs sage.combinat sage.modules sage: sage_getfile(obj) # needs sage.combinat sage.modules '...sage/combinat/partition_algebra.py' - And here is another bug, fixed in :trac:`11298`:: + And here is another bug, fixed in :issue:`11298`:: sage: P. = QQ[] sage: sage_getfile(P) # needs sage.libs.singular '...sage/rings/polynomial/multi_polynomial_libsingular...' - A problem fixed in :trac:`16309`:: + A problem fixed in :issue:`16309`:: sage: cython( # needs sage.misc.cython ....: ''' @@ -1388,7 +1388,7 @@ def sage_getfile(obj): sage: sage_getfile(Foo) # needs sage.misc.cython '...pyx' - By :trac:`18249`, we return an empty string for Python builtins. In that + By :issue:`18249`, we return an empty string for Python builtins. In that way, there is no error when the user types, for example, ``range?``:: sage: sage_getfile(range) @@ -1526,7 +1526,7 @@ def sage_getargspec(obj): kwonlyargs=[], kwonlydefaults=None, annotations={}) The following tests against various bugs that were fixed in - :trac:`9976`:: + :issue:`9976`:: sage: from sage.rings.polynomial.real_roots import bernstein_polynomial_factory_ratlist # needs sage.modules sage: sage_getargspec(bernstein_polynomial_factory_ratlist.coeffs_bitsize) # needs sage.modules @@ -1559,7 +1559,7 @@ def sage_getargspec(obj): TESTS: - By :trac:`9976`, rather complicated cases work. In the + By :issue:`9976`, rather complicated cases work. In the following example, we dynamically create an extension class that returns some source code, and the example shows that the source code is taken for granted, i.e., the argspec of @@ -1603,14 +1603,14 @@ def foo(x, a='\')"', b={not (2+1==3):'bar'}): return defaults=('\')"', {False: 'bar'}), kwonlyargs=[], kwonlydefaults=None, annotations={}) - The following produced a syntax error before the patch at :trac:`11913`, - see also :trac:`26906`:: + The following produced a syntax error before the patch at :issue:`11913`, + see also :issue:`26906`:: sage: sage.misc.sageinspect.sage_getargspec(r.lm) # optional - rpy2 FullArgSpec(args=['self'], varargs='args', varkw='kwds', defaults=None, kwonlyargs=[], kwonlydefaults=None, annotations={}) - The following was fixed in :trac:`16309`:: + The following was fixed in :issue:`16309`:: sage: # needs sage.misc.cython sage: cython( @@ -1630,20 +1630,20 @@ def foo(x, a='\')"', b={not (2+1==3):'bar'}): return sage: sage_getargspec(Bar.meet) FullArgSpec(args=['categories', 'as_list', 'ignore_axioms', 'axioms'], varargs=None, varkw=None, defaults=(False, (), ()), kwonlyargs=[], kwonlydefaults=None, annotations={}) - Test that :trac:`17009` is fixed:: + Test that :issue:`17009` is fixed:: sage: sage_getargspec(gap) # needs sage.libs.gap FullArgSpec(args=['self', 'x', 'name'], varargs=None, varkw=None, defaults=(None,), kwonlyargs=[], kwonlydefaults=None, annotations={}) - By :trac:`17814`, the following gives the correct answer (previously, the + By :issue:`17814`, the following gives the correct answer (previously, the defaults would have been found ``None``):: sage: from sage.misc.nested_class import MainClass sage: sage_getargspec(MainClass.NestedClass.NestedSubClass.dummy) FullArgSpec(args=['self', 'x', 'r'], varargs='args', varkw='kwds', defaults=((1, 2, 3.4),), kwonlyargs=[], kwonlydefaults=None, annotations={}) - In :trac:`18249` was decided to return a generic signature for Python + In :issue:`18249` was decided to return a generic signature for Python builtin functions, rather than to raise an error (which is what Python's inspect module does):: @@ -1651,7 +1651,7 @@ def foo(x, a='\')"', b={not (2+1==3):'bar'}): return sage: sage_getargspec(range) FullArgSpec(args=[], varargs='args', varkw='kwds', defaults=None, kwonlyargs=[], kwonlydefaults=None, annotations={}) - Test that :trac:`28524` is fixed:: + Test that :issue:`28524` is fixed:: sage: from sage.repl.interpreter import get_test_shell sage: shell = get_test_shell() @@ -1906,7 +1906,7 @@ def sage_getdef(obj, obj_name=''): sage: sage_getdef(identity_matrix, 'identity_matrix') # needs sage.modules 'identity_matrix(ring, n=0, sparse=False)' - Check that :trac:`6848` has been fixed:: + Check that :issue:`6848` has been fixed:: sage: sage_getdef(RDF.random_element) '(min=-1, max=1)' @@ -1961,7 +1961,7 @@ def _sage_getdoc_unformatted(obj): TESTS: - Test that we suppress useless built-in output (:trac:`3342`):: + Test that we suppress useless built-in output (:issue:`3342`):: sage: from sage.misc.sageinspect import _sage_getdoc_unformatted sage: _sage_getdoc_unformatted(isinstance.__class__) @@ -1969,7 +1969,7 @@ def _sage_getdoc_unformatted(obj): Construct an object raising an exception when accessing the ``__doc__`` attribute. This should not give an error in - ``_sage_getdoc_unformatted``, see :trac:`19671`:: + ``_sage_getdoc_unformatted``, see :issue:`19671`:: sage: class NoSageDoc(): ....: @property @@ -2036,7 +2036,7 @@ def sage_getdoc_original(obj): If the class does not have a docstring, the docstring of the ``__init__`` method is used, but not the ``__init__`` method - of the base class (this was fixed in :trac:`24936`):: + of the base class (this was fixed in :issue:`24936`):: sage: from sage.categories.category import Category sage: class A(Category): @@ -2209,7 +2209,7 @@ class ParentMethods: TESTS: - The following was fixed in :trac:`16309`:: + The following was fixed in :issue:`16309`:: sage: # needs sage.misc.cython sage: cython( @@ -2367,7 +2367,7 @@ def sage_getsourcelines(obj): (['cpdef test_funct(x,y): return\n'], 1) The following tests that an instance of ``functools.partial`` is correctly - dealt with (see :trac:`9976`):: + dealt with (see :issue:`9976`):: sage: from sage.tests.functools_partial_src import test_func sage: sage_getsourcelines(test_func) @@ -2375,7 +2375,7 @@ def sage_getsourcelines(obj): ... ' return x\n'], 7) - Here are some cases that were covered in :trac:`11298`; + Here are some cases that were covered in :issue:`11298`; note that line numbers may easily change, and therefore we do not test them:: @@ -2399,7 +2399,7 @@ def sage_getsourcelines(obj): sage: lines[-1] # last line # needs sage.symbolic ' return S\n' - We show some enhancements provided by :trac:`11768`. First, we + We show some enhancements provided by :issue:`11768`. First, we use a dummy parent class that has defined an element class by a nested class definition:: @@ -2429,7 +2429,7 @@ class Element(): sage: sage_getsourcelines(HC) ([' class Homsets(HomsetsCategory):\n', ...], ...) - Testing against a bug that has occurred during work on :trac:`11768`:: + Testing against a bug that has occurred during work on :issue:`11768`:: sage: P. = QQ[] sage: I = P*[x,y] @@ -2648,7 +2648,7 @@ def __internal_tests(): sage: sage_getdef(sage.rings.integer.Integer.factor, obj_name='factor') "factor(algorithm='pari', proof=None, limit=None, int_=False, verbose=0)" - This used to be problematic, but was fixed in :trac:`10094`:: + This used to be problematic, but was fixed in :issue:`10094`:: sage: sage_getsource(sage.rings.integer.Integer.__init__) ' def __init__(self, x=None, base=0):\n...' diff --git a/src/sage/misc/superseded.py b/src/sage/misc/superseded.py index e33b6cc046b..4c4cddddc5c 100644 --- a/src/sage/misc/superseded.py +++ b/src/sage/misc/superseded.py @@ -255,7 +255,7 @@ def __init__(self, issue_number, stacklevel=4): The following test works together with the doc-test for :meth:`__experimental_self_test` to demonstrate that warnings are issued only - once, even in doc-tests (see :trac:`20601`). + once, even in doc-tests (see :issue:`20601`). :: sage: from sage.misc.superseded import __experimental_self_test @@ -321,7 +321,7 @@ def wrapper(*args, **kwds): class __experimental_self_test(): r""" This is a class only to demonstrate with a doc-test that the @experimental - decorator only issues a warning message once (see :trac:`20601`). + decorator only issues a warning message once (see :issue:`20601`). The test below does not issue a warning message because that warning has already been issued by a previous doc-test in the @experimental code. Note @@ -357,7 +357,7 @@ def __init__(self, issue_number, func, module, instance=None, unbound=None): sage: g = deprecated_function_alias(13109, number_of_partitions) # needs sage.combinat sage: from sage.misc.superseded import deprecated_function_alias sage: g.__doc__ # needs sage.combinat - 'Deprecated: Use :func:`number_of_partitions` instead.\nSee :trac:`13109` for details.\n\n' + 'Deprecated: Use :func:`number_of_partitions` instead.\nSee :issue:`13109` for details.\n\n' """ _check_issue_number(issue_number) try: @@ -375,7 +375,7 @@ def __init__(self, issue_number, func, module, instance=None, unbound=None): sphinxrole = "meth" doc = 'Deprecated: ' doc += 'Use :' + sphinxrole + ':`' + self.func.__name__ + '` instead.\n' - doc += 'See :trac:`' + str(self.issue_number) + '` for details.\n\n' + doc += 'See :issue:`' + str(self.issue_number) + '` for details.\n\n' self.__doc__ = doc @lazy_attribute @@ -469,7 +469,7 @@ def __get__(self, inst, cls=None): sage: obj.old_meth.instance is obj True - :trac:`19125`:: + :issue:`19125`:: sage: from sage.misc.superseded import deprecated_function_alias sage: class A: @@ -533,7 +533,7 @@ def deprecated_function_alias(issue_number, func): See https://github.com/sagemath/sage/issues/13109 for details. 42 - :trac:`11585`:: + :issue:`11585`:: sage: def a(): pass sage: b = deprecated_function_alias(13109, a) diff --git a/src/sage/misc/table.py b/src/sage/misc/table.py index e0145407e87..33532ee2610 100644 --- a/src/sage/misc/table.py +++ b/src/sage/misc/table.py @@ -510,7 +510,7 @@ def _str_table_row(self, row, header_row=False, last_row=False): sage: T._str_table_row([1,2,3], False) '│ 1 ║ 2 | 3 |\n├────╫─────┼───────┤\n' - Check that :trac:`14601` has been fixed:: + Check that :issue:`14601` has been fixed:: sage: table([['111111', '222222', '333333']])._str_table_row([False,True,None], False) ' False True None\n' diff --git a/src/sage/misc/temporary_file.py b/src/sage/misc/temporary_file.py index 308867afe69..daf3cbac8e7 100644 --- a/src/sage/misc/temporary_file.py +++ b/src/sage/misc/temporary_file.py @@ -4,13 +4,13 @@ AUTHORS: - Volker Braun, Jeroen Demeyer (2012-10-18): move these functions here - from sage/misc/misc.py and make them secure, see :trac:`13579`. + from sage/misc/misc.py and make them secure, see :issue:`13579`. - Jeroen Demeyer (2013-03-17): add :class:`atomic_write`, - see :trac:`14292`. + see :issue:`14292`. - Sebastian Oehms (2021-08-07): add :class:`atomic_dir`, - see :trac:`32344` + see :issue:`32344` """ # **************************************************************************** # Copyright (C) 2012 Volker Braun diff --git a/src/sage/misc/trace.py b/src/sage/misc/trace.py index 6807cfb1940..0c9210bfd19 100644 --- a/src/sage/misc/trace.py +++ b/src/sage/misc/trace.py @@ -46,7 +46,7 @@ def trace(code, preparse=True): TESTS: - For tests we disable garbage collection, see :trac:`21258` :: + For tests we disable garbage collection, see :issue:`21258` :: sage: import gc sage: gc.disable() diff --git a/src/sage/misc/weak_dict.pyx b/src/sage/misc/weak_dict.pyx index 1d4e9f24093..d806335d0e9 100644 --- a/src/sage/misc/weak_dict.pyx +++ b/src/sage/misc/weak_dict.pyx @@ -104,7 +104,7 @@ Note that Sage's weak value dictionary is actually an instance of sage: issubclass(sage.misc.weak_dict.WeakValueDictionary, dict) True -See :trac:`13394` for a discussion of some of the design considerations. +See :issue:`13394` for a discussion of some of the design considerations. """ # **************************************************************************** # Copyright (C) 2013 Simon King @@ -267,7 +267,7 @@ cdef class WeakValueDictionary(dict): TESTS: The following reflects the behaviour of the callback on weak dict values, - as discussed on :trac:`13394`. :: + as discussed on :issue:`13394`. :: sage: from sage.misc.weak_dict import WeakValueDictionary sage: V = [set(range(n)) for n in range(5)] @@ -460,7 +460,7 @@ cdef class WeakValueDictionary(dict): TESTS: - Check that :trac:`15956` has been fixed, i.e., a ``TypeError`` is + Check that :issue:`15956` has been fixed, i.e., a ``TypeError`` is raised for unhashable objects:: sage: D = sage.misc.weak_dict.WeakValueDictionary() @@ -535,7 +535,7 @@ cdef class WeakValueDictionary(dict): sage: list(D.items()) [(2, Integer Ring)] - Check that :trac:`15956` has been fixed, i.e., a ``TypeError`` is + Check that :issue:`15956` has been fixed, i.e., a ``TypeError`` is raised for unhashable objects:: sage: D = sage.misc.weak_dict.WeakValueDictionary() @@ -581,7 +581,7 @@ cdef class WeakValueDictionary(dict): TESTS: - Check that :trac:`15956` has been fixed, i.e., a ``TypeError`` is + Check that :issue:`15956` has been fixed, i.e., a ``TypeError`` is raised for unhashable objects:: sage: D = sage.misc.weak_dict.WeakValueDictionary() @@ -659,7 +659,7 @@ cdef class WeakValueDictionary(dict): TESTS: - Check that :trac:`15956` has been fixed, i.e., a ``TypeError`` is + Check that :issue:`15956` has been fixed, i.e., a ``TypeError`` is raised for unhashable objects:: sage: # needs sage.libs.pari @@ -700,7 +700,7 @@ cdef class WeakValueDictionary(dict): sage: D[int(10)] Integer Ring - Check that :trac:`15956` has been fixed, i.e., a ``TypeError`` is + Check that :issue:`15956` has been fixed, i.e., a ``TypeError`` is raised for unhashable objects:: sage: D = sage.misc.weak_dict.WeakValueDictionary() @@ -744,7 +744,7 @@ cdef class WeakValueDictionary(dict): sage: 3 in D False - Check that :trac:`15956` has been fixed, i.e., a ``TypeError`` is + Check that :issue:`15956` has been fixed, i.e., a ``TypeError`` is raised for unhashable objects:: sage: D = sage.misc.weak_dict.WeakValueDictionary() diff --git a/src/sage/modular/abvar/abvar.py b/src/sage/modular/abvar/abvar.py index f47e1fc7448..bbed4bd69ea 100644 --- a/src/sage/modular/abvar/abvar.py +++ b/src/sage/modular/abvar/abvar.py @@ -944,7 +944,7 @@ def intersection(self, other): When the intersection is infinite, the output is ``(G, A)``, where ``G`` surjects onto the component group. This choice of ``G`` is not - canonical (see :trac:`26189`). In this following example, ``B`` is a + canonical (see :issue:`26189`). In this following example, ``B`` is a subvariety of ``J``:: sage: d1 = J0(11).degeneracy_map(22, 1) @@ -1074,7 +1074,7 @@ def __add__(self, other): TESTS: - This exposed a bug in HNF (see :trac:`4527`):: + This exposed a bug in HNF (see :issue:`4527`):: sage: A = J0(206).new_subvariety().decomposition()[3] ; A # long time Simple abelian subvariety 206d(1,206) of dimension 4 of J0(206) @@ -1410,7 +1410,7 @@ def _quotient_by_finite_subgroup(self, G): True Quotienting by the identity should return the original variety and the - identity morphism. :trac:`6392` :: + identity morphism. :issue:`6392` :: sage: J = J0(22) sage: G = J.zero_subgroup() @@ -3106,7 +3106,7 @@ def finite_subgroup(self, X, field_of_definition=None, check=True): Finite subgroup with invariants [5] over QQ of Abelian variety J0(33) of dimension 3 This method gives a way of changing the ambient abelian variety of a - finite subgroup. This caused an issue in :trac:`6392` but should be + finite subgroup. This caused an issue in :issue:`6392` but should be fixed now. :: sage: A, B = J0(43) @@ -5146,7 +5146,7 @@ def simple_factorization_of_modsym_space(M, simple=True): TESTS: - Check that :trac:`21799` is fixed:: + Check that :issue:`21799` is fixed:: sage: JH(28, [15]).decomposition() [ diff --git a/src/sage/modular/abvar/homspace.py b/src/sage/modular/abvar/homspace.py index 97c6b1f6701..e914e11cc8e 100644 --- a/src/sage/modular/abvar/homspace.py +++ b/src/sage/modular/abvar/homspace.py @@ -268,7 +268,7 @@ def _matrix_space(self): During unpickling, the domain and codomain may be unable to provide the necessary information. This is why this is a lazy - attribute. See :trac:`14793`. + attribute. See :issue:`14793`. EXAMPLES:: @@ -784,12 +784,12 @@ def __init__(self, A, gens=None, category=None): TESTS: The following tests against a problem on 32 bit machines that - occurred while working on :trac:`9944`:: + occurred while working on :issue:`9944`:: sage: sage.modular.abvar.homspace.EndomorphismSubring(J1(12345)) Endomorphism ring of Abelian variety J1(12345) of dimension 5405473 - :trac:`16275` removed the custom ``__reduce__`` method, since + :issue:`16275` removed the custom ``__reduce__`` method, since :meth:`Homset.__reduce__` already implements appropriate unpickling by construction:: diff --git a/src/sage/modular/arithgroup/arithgroup_element.pyx b/src/sage/modular/arithgroup/arithgroup_element.pyx index 86f2e550d18..52c6a692866 100644 --- a/src/sage/modular/arithgroup/arithgroup_element.pyx +++ b/src/sage/modular/arithgroup/arithgroup_element.pyx @@ -180,7 +180,7 @@ cdef class ArithmeticSubgroupElement(MultiplicativeGroupElement): sage: x != y True - This once caused a segfault (see :trac:`5443`):: + This once caused a segfault (see :issue:`5443`):: sage: r,s,t,u,v = map(SL2Z, [[1, 1, 0, 1], [-1, 0, 0, -1], [1, -1, 0, 1], [1, -1, 2, -1], [-1, 1, -2, 1]]) sage: v == s*u @@ -216,7 +216,7 @@ cdef class ArithmeticSubgroupElement(MultiplicativeGroupElement): sage: x.parent() Modular Group SL(2,Z) - We check that :trac:`5048` is fixed:: + We check that :issue:`5048` is fixed:: sage: a = Gamma0(10).1 * Gamma0(5).2; a # random sage: a.parent() diff --git a/src/sage/modular/arithgroup/arithgroup_generic.py b/src/sage/modular/arithgroup/arithgroup_generic.py index c647f8d0e50..c7c45e813ff 100644 --- a/src/sage/modular/arithgroup/arithgroup_generic.py +++ b/src/sage/modular/arithgroup/arithgroup_generic.py @@ -202,7 +202,7 @@ def __hash__(self): TESTS: - We test that :trac:`18743` is fixed:: + We test that :issue:`18743` is fixed:: sage: G1 = GammaH(37,[4]); G1 Congruence Subgroup Gamma_H(37) with H generated by [4] diff --git a/src/sage/modular/arithgroup/congroup_gamma.py b/src/sage/modular/arithgroup/congroup_gamma.py index 47d5390b8f4..fee74dcce8e 100644 --- a/src/sage/modular/arithgroup/congroup_gamma.py +++ b/src/sage/modular/arithgroup/congroup_gamma.py @@ -241,7 +241,7 @@ def reduce_cusp(self, c): sage: all(c == G.reduce_cusp(c) for c in G.cusps()) True - We test that :trac:`36163` is fixed:: + We test that :issue:`36163` is fixed:: sage: Gamma(7).reduce_cusp(Cusp(6,7)) Infinity diff --git a/src/sage/modular/arithgroup/congroup_gamma1.py b/src/sage/modular/arithgroup/congroup_gamma1.py index c8bc6fb0320..0e417904b0e 100644 --- a/src/sage/modular/arithgroup/congroup_gamma1.py +++ b/src/sage/modular/arithgroup/congroup_gamma1.py @@ -368,7 +368,7 @@ def dimension_modular_forms(self, k=2, eps=None, algorithm="CohenOesterle"): TESTS: - Check that :trac:`18436` is fixed:: + Check that :issue:`18436` is fixed:: sage: # needs sage.rings.number_field sage: x = polygen(ZZ, 'x') diff --git a/src/sage/modular/arithgroup/congroup_gammaH.py b/src/sage/modular/arithgroup/congroup_gammaH.py index 02794c269ad..0b97c83ecf7 100644 --- a/src/sage/modular/arithgroup/congroup_gammaH.py +++ b/src/sage/modular/arithgroup/congroup_gammaH.py @@ -694,7 +694,7 @@ def _reduce_coset(self, uu, vv): sage: len(v) 361 - This demonstrates the problem underlying :trac:`1220`:: + This demonstrates the problem underlying :issue:`1220`:: sage: G = GammaH(99, [67]) sage: G._reduce_coset(11,-3) diff --git a/src/sage/modular/arithgroup/congroup_sl2z.py b/src/sage/modular/arithgroup/congroup_sl2z.py index e0bc3abe12e..d870f207b38 100644 --- a/src/sage/modular/arithgroup/congroup_sl2z.py +++ b/src/sage/modular/arithgroup/congroup_sl2z.py @@ -3,7 +3,7 @@ AUTHORS: -- Niles Johnson (2010-08): :trac:`3893`: ``random_element()`` should pass on ``*args`` and ``**kwds``. +- Niles Johnson (2010-08): :issue:`3893`: ``random_element()`` should pass on ``*args`` and ``**kwds``. """ diff --git a/src/sage/modular/arithgroup/farey_symbol.pyx b/src/sage/modular/arithgroup/farey_symbol.pyx index 27cbeafd9fc..34546c082da 100644 --- a/src/sage/modular/arithgroup/farey_symbol.pyx +++ b/src/sage/modular/arithgroup/farey_symbol.pyx @@ -418,13 +418,13 @@ cdef class Farey: sage: g == g1 True - Check that it works for GammaH as well (:trac:`19660`):: + Check that it works for GammaH as well (:issue:`19660`):: sage: G = GammaH(147, [8]) sage: G.farey_symbol().word_problem(G([1,1,0,1])) (1,) - Check that :trac:`20347` is solved:: + Check that :issue:`20347` is solved:: sage: from sage.misc.misc_c import prod sage: G = ArithmeticSubgroup_Permutation(S2="(1,2)(3,4)",S3="(1,2,3)") diff --git a/src/sage/modular/btquotients/pautomorphicform.py b/src/sage/modular/btquotients/pautomorphicform.py index 656c1f42d89..069433bb4c5 100644 --- a/src/sage/modular/btquotients/pautomorphicform.py +++ b/src/sage/modular/btquotients/pautomorphicform.py @@ -564,7 +564,7 @@ def modular_form(self, z=None, level=0): TESTS: - Check that :trac:`22634` is fixed:: + Check that :issue:`22634` is fixed:: sage: X = BruhatTitsQuotient(7,2) sage: H = X.harmonic_cocycles(4,20) diff --git a/src/sage/modular/cusps.py b/src/sage/modular/cusps.py index 39d72a71209..263eb61308a 100644 --- a/src/sage/modular/cusps.py +++ b/src/sage/modular/cusps.py @@ -150,7 +150,7 @@ def __init__(self, a, b=None, parent=None, check=True): ... TypeError: unable to convert (Infinity, +Infinity) to a cusp - Conversion from PARI is supported (see :trac:`32091`):: + Conversion from PARI is supported (see :issue:`32091`):: sage: Cusp(pari.oo()) Infinity @@ -937,7 +937,7 @@ def galois_action(self, t, N): TESTS: Here we check that the Galois action is indeed a permutation on the - cusps of Gamma1(48) and check that :trac:`13253` is fixed. :: + cusps of Gamma1(48) and check that :issue:`13253` is fixed. :: sage: # needs sage.libs.pari sage: G = Gamma1(48) @@ -946,7 +946,7 @@ def galois_action(self, t, N): ....: C_permuted = [G.reduce_cusp(c.galois_action(i,48)) for c in C] ....: assert len(set(C_permuted))==len(C) - We test that Gamma1(19) has 9 rational cusps and check that :trac:`8998` + We test that Gamma1(19) has 9 rational cusps and check that :issue:`8998` is fixed. :: sage: # needs sage.libs.pari diff --git a/src/sage/modular/dims.py b/src/sage/modular/dims.py index ab1f9cbc268..b8b83e87b57 100644 --- a/src/sage/modular/dims.py +++ b/src/sage/modular/dims.py @@ -291,7 +291,7 @@ def dimension_new_cusp_forms(X, k=2, p=0): sage: dimension_new_cusp_forms(Gamma1(30),3) 12 - Check that :trac:`12640` is fixed:: + Check that :issue:`12640` is fixed:: sage: dimension_new_cusp_forms(DirichletGroup(1)(1), 12) 1 @@ -388,7 +388,7 @@ def dimension_cusp_forms(X, k=2): sage: dimension_cusp_forms(e^2,2) 1 - Check that :trac:`12640` is fixed:: + Check that :issue:`12640` is fixed:: sage: dimension_cusp_forms(DirichletGroup(1)(1), 12) 1 diff --git a/src/sage/modular/dirichlet.py b/src/sage/modular/dirichlet.py index b8d988b3112..4b3dda06010 100644 --- a/src/sage/modular/dirichlet.py +++ b/src/sage/modular/dirichlet.py @@ -235,7 +235,7 @@ def __init__(self, parent, x, check=True): sage: TestSuite(G[1]).run() It is checked that the orders of the elements in `x` are - admissible (see :trac:`17283`):: + admissible (see :issue:`17283`):: sage: k. = CyclotomicField(4) sage: G = DirichletGroup(192) @@ -370,7 +370,7 @@ def change_ring(self, R): ... TypeError: Unable to coerce zeta12 to a rational - We test the case where `R` is a map (:trac:`18072`):: + We test the case where `R` is a map (:issue:`18072`):: sage: K. = QuadraticField(-1) sage: chi = DirichletGroup(5, K)[1] @@ -539,7 +539,7 @@ def _repr_(self): TESTS: Dirichlet characters modulo 1 and 2 are printed correctly (see - :trac:`17338`):: + :issue:`17338`):: sage: DirichletGroup(1)[0] Dirichlet character modulo 1 of conductor 1 @@ -570,7 +570,7 @@ def _latex_(self): TESTS: Dirichlet characters modulo 1 and 2 are printed correctly (see - :trac:`17338`):: + :issue:`17338`):: sage: latex(DirichletGroup(1)[0]) \hbox{Dirichlet character modulo } 1 \hbox{ of conductor } 1 @@ -676,7 +676,7 @@ def bernoulli(self, k, algorithm='recurrence', cache=True, **opts): TESTS: - Check that :trac:`17586` is fixed:: + Check that :issue:`17586` is fixed:: sage: DirichletGroup(1)[0].bernoulli(1) 1/2 @@ -1328,13 +1328,13 @@ def gauss_sum(self, a=1): TESTS: - The field of algebraic numbers is supported (:trac:`19056`):: + The field of algebraic numbers is supported (:issue:`19056`):: sage: G = DirichletGroup(7, QQbar) sage: G[1].gauss_sum() -2.440133358345538? + 1.022618791871794?*I - Check that :trac:`19060` is fixed:: + Check that :issue:`19060` is fixed:: sage: K. = CyclotomicField(8) sage: G = DirichletGroup(13, K) @@ -1342,7 +1342,7 @@ def gauss_sum(self, a=1): sage: chi.gauss_sum() zeta52^22 + zeta52^21 + zeta52^19 - zeta52^16 + zeta52^15 + zeta52^14 + zeta52^12 - zeta52^11 - zeta52^10 - zeta52^7 - zeta52^5 + zeta52^4 - Check that :trac:`25127` is fixed:: + Check that :issue:`25127` is fixed:: sage: G = DirichletGroup(1) sage: chi = G.one() @@ -1427,7 +1427,7 @@ def gauss_sum_numerical(self, prec=53, a=1): TESTS: - The field of algebraic numbers is supported (:trac:`19056`):: + The field of algebraic numbers is supported (:issue:`19056`):: sage: G = DirichletGroup(7, QQbar) sage: G[1].gauss_sum_numerical() @@ -1523,7 +1523,7 @@ def jacobi_sum(self, char, check=True): sage: sum([g(x)*g(1-x) for x in IntegerModRing(N)]) 11 - And sums where exactly one character is nontrivial (see :trac:`6393`):: + And sums where exactly one character is nontrivial (see :issue:`6393`):: sage: G = DirichletGroup(5); X = G.list(); Y=X[0]; Z=X[1] sage: Y.jacobi_sum(Z) @@ -1547,7 +1547,7 @@ def jacobi_sum(self, char, check=True): TESTS: - This shows that :trac:`6393` has been fixed:: + This shows that :issue:`6393` has been fixed:: sage: G = DirichletGroup(5); X = G.list(); Y = X[0]; Z = X[1] sage: # Y is trivial and Z is quartic @@ -1889,14 +1889,14 @@ def minimize_base_ring(self): TESTS: - Check that :trac:`18479` is fixed:: + Check that :issue:`18479` is fixed:: sage: f = Newforms(Gamma1(25), names='a')[1] sage: eps = f.character() sage: eps.minimize_base_ring() == eps True - A related bug (see :trac:`18086`):: + A related bug (see :issue:`18086`):: sage: K. = NumberField([x^2 + 1, x^2 - 3]) sage: chi = DirichletGroup(7, K).0 @@ -2057,7 +2057,7 @@ def values(self): TESTS: - Test that :trac:`11783` and :trac:`14368` are fixed:: + Test that :issue:`11783` and :issue:`14368` are fixed:: sage: chi = DirichletGroup(1).list()[0] sage: chi.values() @@ -2675,7 +2675,7 @@ def change_ring(self, R, zeta=None, zeta_order=None): TESTS: - We test the case where `R` is a map (:trac:`18072`):: + We test the case where `R` is a map (:issue:`18072`):: sage: # needs sage.rings.number_field sage: K. = QuadraticField(-1) @@ -2741,7 +2741,7 @@ def base_extend(self, R): TypeError: no coercion map from Rational Field to Integer Ring is defined Base-extended Dirichlet groups do not silently get roots of - unity with smaller order than expected (:trac:`6018`):: + unity with smaller order than expected (:issue:`6018`):: sage: G = DirichletGroup(10, QQ).base_extend(CyclotomicField(4)) sage: H = DirichletGroup(10, CyclotomicField(4)) diff --git a/src/sage/modular/etaproducts.py b/src/sage/modular/etaproducts.py index 27b2edd39a3..c4c1e365868 100644 --- a/src/sage/modular/etaproducts.py +++ b/src/sage/modular/etaproducts.py @@ -16,7 +16,7 @@ These are useful for obtaining explicit models of modular curves. -See :trac:`3934` for background. +See :issue:`3934` for background. AUTHOR: diff --git a/src/sage/modular/hecke/ambient_module.py b/src/sage/modular/hecke/ambient_module.py index 1ada75090e6..7805cd2d364 100644 --- a/src/sage/modular/hecke/ambient_module.py +++ b/src/sage/modular/hecke/ambient_module.py @@ -354,7 +354,7 @@ def degeneracy_map(self, codomain, t=1): Domain: Modular Symbols subspace of dimension 4 of Modular Symbols space ... Codomain: Modular Symbols space of dimension 4 for Gamma_0(5) of weight ... - We check for a subtle caching bug that came up in work on :trac:`10453`:: + We check for a subtle caching bug that came up in work on :issue:`10453`:: sage: loads(dumps(J0(33).decomposition()[0].modular_symbols())) Modular Symbols subspace of dimension 2 of Modular Symbols space of dimension 9 for Gamma_0(33) of weight 2 with sign 0 over Rational Field @@ -845,7 +845,7 @@ def old_submodule(self, p=None): sage: M.old_submodule() Modular Symbols subspace of dimension 3 of Modular Symbols space of dimension 4 and level 16, weight 3, character [-1, 1], sign 1, over Rational Field - Illustrate that :trac:`10664` is fixed:: + Illustrate that :issue:`10664` is fixed:: sage: ModularSymbols(DirichletGroup(42)[7], 6, sign=1).old_subspace(3) Modular Symbols subspace of dimension 0 of Modular Symbols space of dimension 40 and level 42, weight 6, character [-1, -1], sign 1, over Rational Field diff --git a/src/sage/modular/hecke/element.py b/src/sage/modular/hecke/element.py index d4ecd4b380a..f45a29f6b31 100644 --- a/src/sage/modular/hecke/element.py +++ b/src/sage/modular/hecke/element.py @@ -244,7 +244,7 @@ def is_cuspidal(self) -> bool: TESTS: - Verify that :trac:`21497` is fixed:: + Verify that :issue:`21497` is fixed:: sage: M = ModularSymbols(Gamma0(3),weight=22,sign=1) sage: N = next(S for S in M.decomposition(anemic=False) if S.hecke_matrix(3).trace()==-128844) diff --git a/src/sage/modular/hecke/homspace.py b/src/sage/modular/hecke/homspace.py index 1e6f55e0838..194162faba4 100644 --- a/src/sage/modular/hecke/homspace.py +++ b/src/sage/modular/hecke/homspace.py @@ -120,7 +120,7 @@ def __call__(self, A, name='', **kwds): TESTS: Make sure that the element is created correctly when the codomain is - not the full module (related to :trac:`21497`):: + not the full module (related to :issue:`21497`):: sage: M = ModularSymbols(Gamma0(3),weight=22,sign=1) sage: S = M.cuspidal_subspace() diff --git a/src/sage/modular/hecke/module.py b/src/sage/modular/hecke/module.py index 27b45c91447..65536b4a043 100644 --- a/src/sage/modular/hecke/module.py +++ b/src/sage/modular/hecke/module.py @@ -1270,7 +1270,7 @@ def eigenvalue(self, n, name='alpha'): TESTS: - This checks that :trac:`15201` is fixed:: + This checks that :issue:`15201` is fixed:: sage: M = ModularSymbols(5, 6, sign=1) sage: f = M.decomposition()[0] diff --git a/src/sage/modular/hecke/submodule.py b/src/sage/modular/hecke/submodule.py index 64791118387..5e9bf127496 100644 --- a/src/sage/modular/hecke/submodule.py +++ b/src/sage/modular/hecke/submodule.py @@ -506,7 +506,7 @@ def dual_free_module(self, bound=None, anemic=True, use_star=True): sage: S.dual_free_module().dimension() == S.dimension() True - We test that :trac:`5080` is fixed:: + We test that :issue:`5080` is fixed:: sage: EllipticCurve('128a').congruence_number() 32 diff --git a/src/sage/modular/hypergeometric_misc.pyx b/src/sage/modular/hypergeometric_misc.pyx index a930d2414bf..bac57fa01d2 100644 --- a/src/sage/modular/hypergeometric_misc.pyx +++ b/src/sage/modular/hypergeometric_misc.pyx @@ -26,7 +26,7 @@ cpdef hgm_coeffs(long long p, int f, int prec, gamma, m, int D, sage: hgm_coeffs(7, 1, 2, gamma, [0]*6, D, gtable, prec, False) [7, 2*7, 6*7, 7, 6, 4*7] - Check issue from :trac:`28404`:: + Check issue from :issue:`28404`:: sage: H = Hyp(cyclotomic=[[10,2],[1,1,1,1,1]]) sage: u = H.euler_factor(2,79) # indirect doctest diff --git a/src/sage/modular/hypergeometric_motive.py b/src/sage/modular/hypergeometric_motive.py index eb7dfaafe75..281ee7e11be 100644 --- a/src/sage/modular/hypergeometric_motive.py +++ b/src/sage/modular/hypergeometric_motive.py @@ -1308,7 +1308,7 @@ def padic_H_value(self, p, f, t, prec=None, cache_p=False): TESTS: - Check issue from :trac:`28404`:: + Check issue from :issue:`28404`:: sage: H1 = Hyp(cyclotomic=([1,1,1],[6,2])) sage: H2 = Hyp(cyclotomic=([6,2],[1,1,1])) @@ -1323,7 +1323,7 @@ def padic_H_value(self, p, f, t, prec=None, cache_p=False): sage: H.padic_H_value(101, 2, 2) -1560629 - Check issue from :trac:`29778`:: + Check issue from :issue:`29778`:: sage: H = Hyp(alpha_beta=([1/5,2/5,3/5,4/5,1/5,2/5,3/5,4/5], [1/4,3/4,1/7,2/7,3/7,4/7,5/7,6/7])) sage: try: @@ -1452,7 +1452,7 @@ def H_value(self, p, f, t, ring=None): sage: [H.H_value(5,i,-1, ComplexField(60)) for i in range(1,3)] [-4, 276] - Check issue from :trac:`28404`:: + Check issue from :issue:`28404`:: sage: H1 = Hyp(cyclotomic=([1,1,1],[6,2])) sage: H2 = Hyp(cyclotomic=([6,2],[1,1,1])) @@ -1463,7 +1463,7 @@ def H_value(self, p, f, t, ring=None): TESTS: - Check issue from :trac:`29778`:: + Check issue from :issue:`29778`:: sage: H = Hyp(alpha_beta=([1/5,2/5,3/5,4/5,1/5,2/5,3/5,4/5], [1/4,3/4,1/7,2/7,3/7,4/7,5/7,6/7])) sage: try: @@ -1559,7 +1559,7 @@ def sign(self, t, p): sage: [H.sign(1/t,p) for p in [11,13,17,19,23,29]] [-1, -1, -1, 1, 1, 1] - We check that :trac:`28404` is fixed:: + We check that :issue:`28404` is fixed:: sage: H = Hyp(cyclotomic=([1,1,1],[6,2])) sage: [H.sign(4,p) for p in [5,7,11,13,17,19]] @@ -1671,7 +1671,7 @@ def euler_factor(self, t, p, cache_p=False): sage: H.euler_factor(2, 11, cache_p=True) -T^4 + T^3 - T + 1 - Check issue from :trac:`29778`:: + Check issue from :issue:`29778`:: sage: H = Hyp(alpha_beta=([1/5,2/5,3/5,4/5,1/5,2/5,3/5,4/5], [1/4,3/4,1/7,2/7,3/7,4/7,5/7,6/7])) sage: try: diff --git a/src/sage/modular/local_comp/type_space.py b/src/sage/modular/local_comp/type_space.py index e3bf9c3bf1b..a808ef48743 100644 --- a/src/sage/modular/local_comp/type_space.py +++ b/src/sage/modular/local_comp/type_space.py @@ -371,7 +371,7 @@ def minimal_twist(self): sage: TypeSpace(g, 7).is_minimal() True - Test that :trac:`13158` is fixed:: + Test that :issue:`13158` is fixed:: sage: f = Newforms(256,names='a')[0] sage: T = TypeSpace(f,2) # long time diff --git a/src/sage/modular/modform/ambient.py b/src/sage/modular/modform/ambient.py index 825b572688d..dac59731ec5 100644 --- a/src/sage/modular/modform/ambient.py +++ b/src/sage/modular/modform/ambient.py @@ -609,7 +609,7 @@ def _dim_eisenstein(self): sage: m._dim_cuspidal() 6 - Test that :trac:`24030` is fixed:: + Test that :issue:`24030` is fixed:: sage: ModularForms(GammaH(40, [21]), 1).dimension() # indirect doctest 16 @@ -766,7 +766,7 @@ def _compute_hecke_matrix(self, n): [ 2 0] [ 0 12] - Check that :trac:`22780` is fixed:: + Check that :issue:`22780` is fixed:: sage: M = ModularForms(1, 12) sage: M._compute_hecke_matrix(2) diff --git a/src/sage/modular/modform/ambient_R.py b/src/sage/modular/modform/ambient_R.py index 64188bb3892..9f416f49169 100644 --- a/src/sage/modular/modform/ambient_R.py +++ b/src/sage/modular/modform/ambient_R.py @@ -93,7 +93,7 @@ def _compute_q_expansion_basis(self, prec=None): TESTS: - This checks that :trac:`13445` is fixed:: + This checks that :issue:`13445` is fixed:: sage: M = ModularForms(Gamma0(11), base_ring=GF(11)) sage: S = M.cuspidal_subspace() diff --git a/src/sage/modular/modform/ambient_g1.py b/src/sage/modular/modform/ambient_g1.py index 8c10c861cc0..40c6c579e2d 100644 --- a/src/sage/modular/modform/ambient_g1.py +++ b/src/sage/modular/modform/ambient_g1.py @@ -33,7 +33,7 @@ True -We check that :trac:`10453` is fixed:: +We check that :issue:`10453` is fixed:: sage: CuspForms(Gamma1(11), 2).old_submodule() Modular Forms subspace of dimension 0 of Modular Forms space of dimension 10 for Congruence Subgroup Gamma1(11) of weight 2 over Rational Field diff --git a/src/sage/modular/modform/constructor.py b/src/sage/modular/modform/constructor.py index 0a575af232f..02107b2f9d7 100644 --- a/src/sage/modular/modform/constructor.py +++ b/src/sage/modular/modform/constructor.py @@ -254,13 +254,13 @@ def ModularForms(group=1, sage: m.T(2).charpoly('x') x^4 - 917*x^2 - 42284 - This came up in a subtle bug (:trac:`5923`):: + This came up in a subtle bug (:issue:`5923`):: sage: ModularForms(gp(1), gap(12)) Modular Forms space of dimension 2 for Modular Group SL(2,Z) of weight 12 over Rational Field - This came up in another bug (related to :trac:`8630`):: + This came up in another bug (related to :issue:`8630`):: sage: chi = DirichletGroup(109, CyclotomicField(3)).0 sage: ModularForms(chi, 2, base_ring = CyclotomicField(15)) @@ -468,14 +468,14 @@ def Newforms(group, weight=2, base_ring=None, names=None): TESTS: - We test that :trac:`8630` is fixed:: + We test that :issue:`8630` is fixed:: sage: chi = DirichletGroup(109, CyclotomicField(3)).0 sage: CuspForms(chi, 2, base_ring = CyclotomicField(9)) Cuspidal subspace of dimension 8 of Modular Forms space of dimension 10, character [zeta3 + 1] and weight 2 over Cyclotomic Field of order 9 and degree 6 - Check that :trac:`15486` is fixed (this used to take over a day):: + Check that :issue:`15486` is fixed (this used to take over a day):: sage: N = Newforms(719, names='a'); len(N) # long time (3 s) 3 @@ -536,7 +536,7 @@ def parse_label(s): sage: sage.modular.modform.constructor.parse_label('11wG1') (Congruence Subgroup Gamma1(11), 22) - GammaH labels should also return the group and index (:trac:`20823`):: + GammaH labels should also return the group and index (:issue:`20823`):: sage: sage.modular.modform.constructor.parse_label('389cGH[16]') (Congruence Subgroup Gamma_H(389) with H generated by [16], 2) diff --git a/src/sage/modular/modform/cuspidal_submodule.py b/src/sage/modular/modform/cuspidal_submodule.py index 19cb7c65d9d..0bf53873ed3 100644 --- a/src/sage/modular/modform/cuspidal_submodule.py +++ b/src/sage/modular/modform/cuspidal_submodule.py @@ -288,7 +288,7 @@ def hecke_polynomial(self, n, var='x'): y^13 + 5*y^12 - 4*y^11 - 52*y^10 - 34*y^9 + 174*y^8 + 212*y^7 - 196*y^6 - 375*y^5 - 11*y^4 + 200*y^3 + 80*y^2 - Check that :trac:`21546` is fixed (this example used to take about 5 hours):: + Check that :issue:`21546` is fixed (this example used to take about 5 hours):: sage: CuspForms(1728, 2).hecke_polynomial(2) # long time (20 sec) x^253 + x^251 - 2*x^249 diff --git a/src/sage/modular/modform/eis_series.py b/src/sage/modular/modform/eis_series.py index 19bf574dec8..bb3e89697c2 100644 --- a/src/sage/modular/modform/eis_series.py +++ b/src/sage/modular/modform/eis_series.py @@ -83,12 +83,12 @@ def eisenstein_series_qexp(k, prec=10, K=QQ, var='q', normalization='linear'): TESTS: - Test that :trac:`5102` is fixed:: + Test that :issue:`5102` is fixed:: sage: eisenstein_series_qexp(10, 30, GF(17)) 15 + q + 3*q^2 + 15*q^3 + 7*q^4 + 13*q^5 + 11*q^6 + 11*q^7 + 15*q^8 + 7*q^9 + 5*q^10 + 7*q^11 + 3*q^12 + 14*q^13 + 16*q^14 + 8*q^15 + 14*q^16 + q^17 + 4*q^18 + 3*q^19 + 6*q^20 + 12*q^21 + 4*q^22 + 12*q^23 + 4*q^24 + 4*q^25 + 8*q^26 + 14*q^27 + 9*q^28 + 6*q^29 + O(q^30) - This shows that the bug reported at :trac:`8291` is fixed:: + This shows that the bug reported at :issue:`8291` is fixed:: sage: eisenstein_series_qexp(26, 10, GF(13)) 7 + q + 3*q^2 + 4*q^3 + 7*q^4 + 6*q^5 + 12*q^6 + 8*q^7 + 2*q^8 + O(q^10) @@ -124,7 +124,7 @@ def eisenstein_series_qexp(k, prec=10, K=QQ, var='q', normalization='linear'): - David Loeffler (2010-04-07): work around an integer overflow when `k` is large - David Loeffler (2012-03-15): add options for alternative normalizations - (motivated by :trac:`12043`) + (motivated by :issue:`12043`) """ # we use this to prevent computation if it would fail anyway. if k <= 0 or k % 2 == 1: diff --git a/src/sage/modular/modform/element.py b/src/sage/modular/modform/element.py index f3cab3dcfe4..999b8dc93b9 100644 --- a/src/sage/modular/modform/element.py +++ b/src/sage/modular/modform/element.py @@ -299,7 +299,7 @@ def __ne__(self, other): TESTS: - The following used to fail (see :trac:`18068`):: + The following used to fail (see :issue:`18068`):: sage: f != loads(dumps(f)) False @@ -937,7 +937,7 @@ def lseries(self, embedding=0, prec=53, max_imaginary_part=0, sage: L(1) 0.0374412812685155 - We check that :trac:`5262` is fixed:: + We check that :issue:`5262` is fixed:: sage: E = EllipticCurve('37b2') sage: h = Newforms(37)[1] @@ -948,7 +948,7 @@ def lseries(self, embedding=0, prec=53, max_imaginary_part=0, sage: CuspForms(1, 30).0.lseries().eps -1.00000000000000 - We check that :trac:`25369` is fixed:: + We check that :issue:`25369` is fixed:: sage: f5 = Newforms(Gamma1(4), 5, names='a')[0]; f5 q - 4*q^2 + 16*q^4 - 14*q^5 + O(q^6) @@ -1072,7 +1072,7 @@ def symsquare_lseries(self, chi=None, embedding=0, prec=53): sage: CuspForms(1, 12).0.symsquare_lseries(prec=1000)(22) # long time (20s) 0.999645711124771397835729622033153189549796658647254961493709341358991830134499267117001769570658192128781135161587571716303826382489492569725002840546129937149159065273765309218543427544527498868033604310899372849565046516553245752253255585377793879866297612679545029546953895098375829822346290125161 - Check that :trac:`23247` is fixed:: + Check that :issue:`23247` is fixed:: sage: F = Newforms(1,12)[0] sage: chi = DirichletGroup(7).0 @@ -1459,7 +1459,7 @@ def __eq__(self, other): False We test comparison of equal newforms with different parents - (see :trac:`18478`):: + (see :issue:`18478`):: sage: f = Newforms(Gamma1(11), 2)[0]; f q - 2*q^2 - q^3 + 2*q^4 + q^5 + O(q^6) @@ -1571,7 +1571,7 @@ def _compute(self, X): sage: f._compute([]) [] - Check that :trac:`20793` is fixed:: + Check that :issue:`20793` is fixed:: sage: f = Newforms(83, 2, names='a')[1]; f q + a1*q^2 + (1/2*a1^4 - 1/2*a1^3 - 7/2*a1^2 + 3/2*a1 + 4)*q^3 + (a1^2 - 2)*q^4 + (-1/2*a1^5 - 1/2*a1^4 + 9/2*a1^3 + 7/2*a1^2 - 8*a1 - 2)*q^5 + O(q^6) @@ -2065,14 +2065,14 @@ def atkin_lehner_eigenvalue(self, d=None, normalization='analytic', embedding=No TESTS: - Check that the bug reported at :trac:`18061` is fixed:: + Check that the bug reported at :issue:`18061` is fixed:: sage: K. = CyclotomicField(4) sage: f = Newforms(DirichletGroup(30, QQ).1, 2, K)[0] sage: f.atkin_lehner_eigenvalue(embedding=K.embeddings(QQbar)[1]) -0.8944271909999159? - 0.4472135954999580?*I - Check that :trac:`24086` is fixed:: + Check that :issue:`24086` is fixed:: sage: f = Newforms(24, 4)[0] sage: f.atkin_lehner_eigenvalue(8) @@ -2525,7 +2525,7 @@ def __mul__(self, other): TESTS: - This shows that the issue at :trac:`7548` is fixed:: + This shows that the issue at :issue:`7548` is fixed:: sage: M = CuspForms(Gamma0(5*3^2), 2) sage: f = M.basis()[0] diff --git a/src/sage/modular/modform/find_generators.py b/src/sage/modular/modform/find_generators.py index 72080237d56..3fb00a3f9af 100644 --- a/src/sage/modular/modform/find_generators.py +++ b/src/sage/modular/modform/find_generators.py @@ -1,6 +1,6 @@ # sage.doctest: needs sage.libs.flint r""" -This module is now called ``ring.py`` (see :trac:`31559`). Do not import from here as +This module is now called ``ring.py`` (see :issue:`31559`). Do not import from here as it will generate a deprecation warning. TESTS:: diff --git a/src/sage/modular/modform/half_integral.py b/src/sage/modular/modform/half_integral.py index eda22b15916..bf6c33e73a1 100644 --- a/src/sage/modular/modform/half_integral.py +++ b/src/sage/modular/modform/half_integral.py @@ -86,7 +86,7 @@ def half_integral_weight_modform_basis(chi, k, prec): q^4 - 2*q^5 - 2*q^6 + 4*q^7 + 4*q^9 + O(q^10), q^5 - 2*q^7 - 2*q^9 + O(q^10)] - This example once raised an error (see :trac:`5792`). + This example once raised an error (see :issue:`5792`). :: diff --git a/src/sage/modular/modform/hecke_operator_on_qexp.py b/src/sage/modular/modform/hecke_operator_on_qexp.py index 52de2f5c54b..33d26b5f43b 100644 --- a/src/sage/modular/modform/hecke_operator_on_qexp.py +++ b/src/sage/modular/modform/hecke_operator_on_qexp.py @@ -142,7 +142,7 @@ def _hecke_operator_on_basis(B, V, n, k, eps): [ 0 14348908] The following used to cause a segfault due to accidentally - transposed second and third argument (:trac:`2107`):: + transposed second and third argument (:issue:`2107`):: sage: B = victor_miller_basis(100,30) sage: t2 = hecke_operator_on_basis(B, 100, 2) @@ -202,14 +202,14 @@ def hecke_operator_on_basis(B, n, k, eps=None, already_echelonized=False): TESTS: - This shows that the problem with finite fields reported at :trac:`8281` is solved:: + This shows that the problem with finite fields reported at :issue:`8281` is solved:: sage: bas_mod5 = [f.change_ring(GF(5)) for f in victor_miller_basis(12, 20)] sage: hecke_operator_on_basis(bas_mod5, 2, 12) [4 0] [0 1] - This shows that empty input is handled sensibly (:trac:`12202`):: + This shows that empty input is handled sensibly (:issue:`12202`):: sage: # needs sage.rings.number_field sage: x = hecke_operator_on_basis([], 3, 12); x diff --git a/src/sage/modular/modform/numerical.py b/src/sage/modular/modform/numerical.py index e5444b25c22..362caee0038 100644 --- a/src/sage/modular/modform/numerical.py +++ b/src/sage/modular/modform/numerical.py @@ -210,7 +210,7 @@ def _eigenvectors(self): (ostensibly unique) are visible in the test, which should be independent of which eigenvectors are returned, but it does presume an ordering of these eigenvectors for the test to succeed. - This exercises a correction in :trac:`8018`. :: + This exercises a correction in :issue:`8018`. :: sage: n = numerical_eigenforms(61, eps=2.0) sage: evectors = n._eigenvectors() diff --git a/src/sage/modular/modform/ring.py b/src/sage/modular/modform/ring.py index d7008429b5f..c0a69717cfa 100644 --- a/src/sage/modular/modform/ring.py +++ b/src/sage/modular/modform/ring.py @@ -206,7 +206,7 @@ def __init__(self, group, base_ring=QQ): TESTS: - Check that :trac:`15037` is fixed:: + Check that :issue:`15037` is fixed:: sage: ModularFormsRing(3.4) Traceback (most recent call last): diff --git a/src/sage/modular/modform/space.py b/src/sage/modular/modform/space.py index bd01c29d84d..289119f9d37 100644 --- a/src/sage/modular/modform/space.py +++ b/src/sage/modular/modform/space.py @@ -1053,7 +1053,7 @@ def _element_constructor_(self, x, check=True): sage: f = q-24*q^2+O(q^3) ; S(f) q - 24*q^2 + 252*q^3 - 1472*q^4 + 4830*q^5 + O(q^6) - Test that :trac:`13156` is fixed:: + Test that :issue:`13156` is fixed:: sage: R. = QQ[[]] sage: ModularForms(1, 12)(R(0)) @@ -1069,7 +1069,7 @@ def _element_constructor_(self, x, check=True): sage: g.is_old() True - Test that :trac:`32168` is fixed:: + Test that :issue:`32168` is fixed:: sage: M0 = ModularForms(Gamma0(8), 10) sage: M1 = ModularForms(Gamma1(8), 10) @@ -1334,7 +1334,7 @@ def _compute_hecke_matrix(self, n): ... ArithmeticError: vector is not in free module - We check that :trac:`10450` is fixed:: + We check that :issue:`10450` is fixed:: sage: M = CuspForms(Gamma1(22), 2).new_submodule() # long time (3s on sage.math, 2011) sage: M.hecke_matrix(3) # long time @@ -1532,7 +1532,7 @@ def cuspidal_submodule(self): sage: N.cuspidal_submodule().dimension() 1 - We check that a bug noticed on :trac:`10450` is fixed:: + We check that a bug noticed on :issue:`10450` is fixed:: sage: M = ModularForms(6, 10) sage: W = M.span_of_basis(M.basis()[0:2]) @@ -1721,7 +1721,7 @@ def eisenstein_submodule(self): sage: M.eisenstein_submodule() Eisenstein subspace of dimension 1 of Modular Forms space of dimension 2 for Congruence Subgroup Gamma0(11) of weight 2 over Rational Field - We check that a bug noticed on :trac:`10450` is fixed:: + We check that a bug noticed on :issue:`10450` is fixed:: sage: M = ModularForms(6, 10) sage: W = M.span_of_basis(M.basis()[0:2]) diff --git a/src/sage/modular/modform/tests.py b/src/sage/modular/modform/tests.py index ec831dcc84e..9ca5b54a194 100644 --- a/src/sage/modular/modform/tests.py +++ b/src/sage/modular/modform/tests.py @@ -55,7 +55,7 @@ 24 True 25 True -We check that bug :trac:`8541` (traced to a linear algebra problem) is fixed:: +We check that bug :issue:`8541` (traced to a linear algebra problem) is fixed:: sage: f = CuspForms(DirichletGroup(5).0,5).0 sage: f[15] diff --git a/src/sage/modular/modform/vm_basis.py b/src/sage/modular/modform/vm_basis.py index 38e81409287..244a305e324 100644 --- a/src/sage/modular/modform/vm_basis.py +++ b/src/sage/modular/modform/vm_basis.py @@ -376,7 +376,7 @@ def delta_qexp(prec=10, var='q', K=ZZ) : TESTS: - Test algorithm with modular arithmetic (see also :trac:`11804`):: + Test algorithm with modular arithmetic (see also :issue:`11804`):: sage: delta_qexp(10^4).change_ring(GF(13)) == delta_qexp(10^4, K=GF(13)) True diff --git a/src/sage/modular/modsym/ambient.py b/src/sage/modular/modsym/ambient.py index 1ae1bb52174..00c97e59789 100644 --- a/src/sage/modular/modsym/ambient.py +++ b/src/sage/modular/modsym/ambient.py @@ -1439,7 +1439,7 @@ def _degeneracy_raising_matrix(self, M, t): [ 0 0 -1 3 -1 -1 1] [ 0 -1 -1 1 0 1 -1] - Check that :trac:`13198` is fixed:: + Check that :issue:`13198` is fixed:: sage: M22 = ModularSymbols(Gamma1(22), sign=1) sage: M2 = ModularSymbols(Gamma1(2)) @@ -2071,7 +2071,7 @@ def _compute_diamond_matrix(self, d): sage: [e(d) for d in [0..6]] [0, 1, 0, 1, 0, -1, 0] - We test that the sign issue at :trac:`8620` is fixed:: + We test that the sign issue at :issue:`8620` is fixed:: sage: M = Newforms(Gamma1(13),names = 'a')[0].modular_symbols(sign=0) sage: M.diamond_bracket_operator(4).matrix() diff --git a/src/sage/modular/modsym/boundary.py b/src/sage/modular/modsym/boundary.py index 2c2474ace27..fab48aab6a3 100644 --- a/src/sage/modular/modsym/boundary.py +++ b/src/sage/modular/modsym/boundary.py @@ -480,7 +480,7 @@ def rank(self): sage: B.rank() 16 - Test that :trac:`7837` is fixed:: + Test that :issue:`7837` is fixed:: sage: ModularSymbols(Gamma1(4),7).boundary_map().codomain().dimension() 2 @@ -987,7 +987,7 @@ def __init__(self, group, weight, sign, F): sage: B == loads(dumps(B)) True - A test case from :trac:`6072`:: + A test case from :issue:`6072`:: sage: ModularSymbols(GammaH(8,[5]), 3).boundary_map() Hecke module morphism boundary map defined by the matrix @@ -1120,7 +1120,7 @@ def _coerce_cusp(self, c): [1/11], -[1/11]] - Test that :trac:`6072` is fixed. :: + Test that :issue:`6072` is fixed. :: sage: G = GammaH(8,[3]) @@ -1139,7 +1139,7 @@ def _coerce_cusp(self, c): sage: B3.rank() 0 - Test that :trac:`25268` is fixed:: + Test that :issue:`25268` is fixed:: sage: G = GammaH(20, [13]) sage: A = ModularSymbols(G, 3) diff --git a/src/sage/modular/modsym/modsym.py b/src/sage/modular/modsym/modsym.py index 346500b8b86..51108d1e84a 100644 --- a/src/sage/modular/modsym/modsym.py +++ b/src/sage/modular/modsym/modsym.py @@ -57,7 +57,7 @@ sage: t2*t5 - t5*t2 == 0 True -This tests the bug reported in :trac:`1220`:: +This tests the bug reported in :issue:`1220`:: sage: G = GammaH(36, [13, 19]) sage: G.modular_symbols() @@ -75,7 +75,7 @@ and level 20, weight 3, character [1, -zeta4], sign 1, over Cyclotomic Field of order 4 and degree 2 -This tests the bugs reported in :trac:`20932`:: +This tests the bugs reported in :issue:`20932`:: sage: chi = kronecker_character(3*34603) sage: ModularSymbols(chi, 2, sign=1, base_ring=GF(3)) # not tested # long time (600 seconds) @@ -184,7 +184,7 @@ def ModularSymbols_clear_cache(): TESTS: - Make sure :trac:`10548` is fixed:: + Make sure :issue:`10548` is fixed:: sage: import gc sage: m = ModularSymbols(Gamma1(29)) diff --git a/src/sage/modular/modsym/p1list.pyx b/src/sage/modular/modsym/p1list.pyx index 0427ae068a3..9104181da05 100644 --- a/src/sage/modular/modsym/p1list.pyx +++ b/src/sage/modular/modsym/p1list.pyx @@ -305,7 +305,7 @@ cdef int c_p1_normalize_llong(int N, int u, int v, TESTS: - This test reflects :trac:`20932`:: + This test reflects :issue:`20932`:: sage: N = 3*61379 sage: import sage.modular.modsym.p1list as p1list @@ -460,7 +460,7 @@ def p1list_llong(int N): TESTS: - This test shows that :trac:`20932` has been resolved:: + This test shows that :issue:`20932` has been resolved:: sage: import sage.modular.modsym.p1list as p1list sage: [(i,j) for (i,j) in p1list.P1List(103809) if i != 1 and i != 3] # not tested -- too long diff --git a/src/sage/modular/modsym/space.py b/src/sage/modular/modsym/space.py index b8b7197bced..a097c1b0c8d 100644 --- a/src/sage/modular/modsym/space.py +++ b/src/sage/modular/modsym/space.py @@ -218,7 +218,7 @@ def compact_system_of_eigenvalues(self, v, names='alpha', nz=None): TESTS: - Verify that :trac:`12772` is fixed:: + Verify that :issue:`12772` is fixed:: sage: M = ModularSymbols(1,12,sign=1).cuspidal_subspace().new_subspace() sage: A = M.decomposition()[0] diff --git a/src/sage/modular/multiple_zeta.py b/src/sage/modular/multiple_zeta.py index cefcb3b3c65..a6eac6dbacb 100644 --- a/src/sage/modular/multiple_zeta.py +++ b/src/sage/modular/multiple_zeta.py @@ -640,7 +640,7 @@ class Multizetas(CombinatorialFreeModule): sage: (u*M((2,))+M((3,)))*M((2,)) 4*u*ζ(1,3) + 6*ζ(1,4) + 2*u*ζ(2,2) + 3*ζ(2,3) + ζ(3,2) - Check for :trac:`30925`:: + Check for :issue:`30925`:: sage: M = Multizetas(QQ) sage: l = [1,2,3] diff --git a/src/sage/modular/pollack_stevens/modsym.py b/src/sage/modular/pollack_stevens/modsym.py index 63b3264615a..914f0447992 100644 --- a/src/sage/modular/pollack_stevens/modsym.py +++ b/src/sage/modular/pollack_stevens/modsym.py @@ -776,7 +776,7 @@ def evaluate_twisted(self, a, chi): TESTS: - Check for :trac:`32878`:: + Check for :issue:`32878`:: sage: E = EllipticCurve('11a1') sage: L = E.padic_lseries(3, implementation="pollackstevens", precision=4) diff --git a/src/sage/modular/quasimodform/element.py b/src/sage/modular/quasimodform/element.py index c096973fadc..622152a9711 100644 --- a/src/sage/modular/quasimodform/element.py +++ b/src/sage/modular/quasimodform/element.py @@ -425,7 +425,7 @@ def polynomial(self, names=None): sage: (1/2 + QM.0 + 2*QM.1^2 + QM.0*QM.2).polynomial() E2*E6 + 2*E4^2 + E2 + 1/2 - Check that :trac:`34569` is fixed:: + Check that :issue:`34569` is fixed:: sage: QM = QuasiModularForms(Gamma1(3)) sage: QM.ngens() @@ -655,7 +655,7 @@ def serre_derivative(self): sage: F.serre_derivative().weight() 8 - Check that :trac:`34569` is fixed:: + Check that :issue:`34569` is fixed:: sage: QM = QuasiModularForms(Gamma1(3)) sage: E2 = QM.weight_2_eisenstein_series() diff --git a/src/sage/modular/quatalg/brandt.py b/src/sage/modular/quatalg/brandt.py index 76f9c99324a..985cfe72b5f 100644 --- a/src/sage/modular/quatalg/brandt.py +++ b/src/sage/modular/quatalg/brandt.py @@ -590,7 +590,7 @@ def monodromy_pairing(self, x): TESTS: - One check for :trac:`12866`:: + One check for :issue:`12866`:: sage: Br = BrandtModule(2,7) sage: g1, g2 = Br.basis() diff --git a/src/sage/modular/ssmod/ssmod.py b/src/sage/modular/ssmod/ssmod.py index 13b6d11fbb6..d2d2d717cbc 100644 --- a/src/sage/modular/ssmod/ssmod.py +++ b/src/sage/modular/ssmod/ssmod.py @@ -455,7 +455,7 @@ def free_module(self): sage: X.free_module() Ambient free module of rank 3 over the principal ideal domain Integer Ring - This illustrates the fix at :trac:`4306`:: + This illustrates the fix at :issue:`4306`:: sage: X = SupersingularModule(389) sage: X.basis() diff --git a/src/sage/modules/fg_pid/fgp_module.py b/src/sage/modules/fg_pid/fgp_module.py index cf6efb9ad8c..6965b4281b7 100644 --- a/src/sage/modules/fg_pid/fgp_module.py +++ b/src/sage/modules/fg_pid/fgp_module.py @@ -319,7 +319,7 @@ class FGP_Module_class(Module): TESTS: - Make sure that the problems in :trac:`7516` are fixed:: + Make sure that the problems in :issue:`7516` are fixed:: sage: V = FreeModule(QQ, 2) sage: W = V.submodule([V([1,1])]) @@ -541,11 +541,11 @@ def __ne__(self, other): True, it may be the case that ``M != N`` may also return True. In particular, for derived classes whose ``__init__`` methods just call the ``__init__`` method for this class need this. See - :trac:`9940` for illustrations. + :issue:`9940` for illustrations. EXAMPLES: - Make sure that the problems in :trac:`9940` are fixed:: + Make sure that the problems in :issue:`9940` are fixed:: sage: G = AdditiveAbelianGroup([0,0]) sage: H = AdditiveAbelianGroup([0,0]) @@ -1724,7 +1724,7 @@ def _Hom_(self, N, category=None): Category of modules over Integer Ring The category is correctly adjusted when constructing Hom sets - with more general codomains (see :trac:`16402`):: + with more general codomains (see :issue:`16402`):: sage: V = ZZ^2 sage: W = V.quotient(V.span([[1, 1]])) @@ -1824,7 +1824,7 @@ def __iter__(self): sage: len(z) 24 - We test that the trivial module is handled correctly (:trac:`6561`):: + We test that the trivial module is handled correctly (:issue:`6561`):: sage: A = (ZZ**1)/(ZZ**1); list(A) == [A(0)] True @@ -1914,7 +1914,7 @@ def annihilator(self): sage: Q.annihilator() Principal ideal (0) of Integer Ring - We check that :trac:`22720` is resolved:: + We check that :issue:`22720` is resolved:: sage: H = AdditiveAbelianGroup([]) sage: H.annihilator() diff --git a/src/sage/modules/free_module.py b/src/sage/modules/free_module.py index 7fe7ff4f02d..fac042af1eb 100644 --- a/src/sage/modules/free_module.py +++ b/src/sage/modules/free_module.py @@ -152,11 +152,11 @@ - David Kohel (2007, 2008) -- Niles Johnson (2010-08): (:trac:`3893`) ``random_element()`` should pass on ``*args`` and ``**kwds``. +- Niles Johnson (2010-08): (:issue:`3893`) ``random_element()`` should pass on ``*args`` and ``**kwds``. -- Simon King (2010-12): (:trac:`8800`) fixed a bug in ``denominator()``. +- Simon King (2010-12): (:issue:`8800`) fixed a bug in ``denominator()``. -- Simon King (2010-12), Peter Bruin (June 2014): (:trac:`10513`) new coercion model and category framework. +- Simon King (2010-12), Peter Bruin (June 2014): (:issue:`10513`) new coercion model and category framework. """ @@ -249,7 +249,7 @@ def create_object(self, version, key): sage: TestSuite(ZZ^6).run() sage: TestSuite(RDF^3).run() - Check that :trac:`34380` is fixed:: + Check that :issue:`34380` is fixed:: sage: R. = QQ[] sage: Q = R.quo(R.ideal([x^2 - y^2 - 1])) @@ -710,7 +710,7 @@ def span(gens, base_ring=None, check=True, already_echelonized=False): TypeError: The base_ring (= Ring of integers modulo 6) must be a principal ideal domain. - Fix :trac:`5575`:: + Fix :issue:`5575`:: sage: V = QQ^3 sage: span([V.0, V.1]) @@ -719,7 +719,7 @@ def span(gens, base_ring=None, check=True, already_echelonized=False): [1 0 0] [0 1 0] - Improve error message from :trac:`12541`:: + Improve error message from :issue:`12541`:: sage: span({0:vector([0,1])}, QQ) Traceback (most recent call last): @@ -1228,7 +1228,7 @@ def __richcmp__(self, other, op): sage: V <= M False - We test that :trac:`5525` is fixed:: + We test that :issue:`5525` is fixed:: sage: A = (QQ^1).span([[1/3]],ZZ); B = (QQ^1).span([[1]],ZZ) sage: A.intersection(B) @@ -1936,7 +1936,7 @@ class FreeModule_generic(Module_free_ambient): TESTS: - Check that :trac:`17576` is fixed:: + Check that :issue:`17576` is fixed:: sage: V = VectorSpace(RDF, 3) sage: v = vector(RDF, [1, 2, 3, 4]) @@ -2506,7 +2506,7 @@ def cardinality(self): TESTS: - Check that :trac:`22987` is fixed:: + Check that :issue:`22987` is fixed:: sage: VectorSpace(QQ, 0).cardinality() 1 @@ -2590,12 +2590,12 @@ def basis_matrix(self, ring=None): TESTS: - See :trac:`3699`:: + See :issue:`3699`:: sage: K = FreeModule(ZZ, 2000) sage: I = K.basis_matrix() - See :trac:`17585`:: + See :issue:`17585`:: sage: ((ZZ^2)*2).basis_matrix().parent() Full MatrixSpace of 2 by 2 dense matrices over Integer Ring @@ -3559,7 +3559,7 @@ def _mul_(self, other, switch_sides=False): TESTS: - Check that :trac:`17705` is fixed:: + Check that :issue:`17705` is fixed:: sage: V = GF(2)^2 sage: W = V.subspace([[1, 0]]) @@ -3852,7 +3852,7 @@ def intersection(self, other): TESTS: - Check that :trac:`24702` is fixed:: + Check that :issue:`24702` is fixed:: sage: L = FreeQuadraticModule(ZZ,2,matrix.identity(2)) sage: S1 = L.submodule([(1,0)]) @@ -4034,7 +4034,7 @@ def saturation(self): TESTS: - We check that :trac:`24702` is fixed:: + We check that :issue:`24702` is fixed:: sage: L = FreeQuadraticModule(ZZ,1,matrix.identity(1)) sage: S = 2*L @@ -4341,7 +4341,7 @@ def __init__(self, base_field, dimension, degree, sparse=False, category=None): Vector space of dimension 7 over Finite Field of size 2 We test that objects of this type are initialised correctly; - see :trac:`11166` (the failing ``repr`` is fine because this + see :issue:`11166` (the failing ``repr`` is fine because this is an abstract base class):: sage: from sage.modules.free_module import FreeModule_generic_field @@ -5339,7 +5339,7 @@ def __init__(self, base_ring, rank, sparse=False, coordinate_ring=None, category TESTS: We check that the creation of a submodule does not trigger - the construction of a basis of the ambient space. See :trac:`15953`:: + the construction of a basis of the ambient space. See :issue:`15953`:: sage: # needs sage.rings.finite_rings sage: F. = GF(4) @@ -5383,7 +5383,7 @@ def _coerce_map_from_(self, M): TESTS: - Make sure :trac:`10513` is fixed (no coercion from a quotient + Make sure :issue:`10513` is fixed (no coercion from a quotient vector space to an isomorphic abstract vector space):: sage: M = QQ^3 / [[1,2,3]] @@ -5523,7 +5523,7 @@ def _echelon_matrix_richcmp(self, other, op): sage: A._echelon_matrix_richcmp(V, op_LT) False - Comparison with a quotient module (see :trac:`10513`):: + Comparison with a quotient module (see :issue:`10513`):: sage: from sage.structure.richcmp import op_LT,op_LE,op_EQ,op_NE,op_GT,op_GE sage: M = QQ^3 / [[1,2,3]] @@ -5744,7 +5744,7 @@ def change_ring(self, R): TESTS: - Check for :trac:`29630`:: + Check for :issue:`29630`:: sage: V = VectorSpace(QQ, 2, sparse=True) sage: V.change_ring(RR).is_sparse() @@ -5981,7 +5981,7 @@ def gen(self, i=0): ... TypeError: unable to convert rational 4/3 to an integer - Check that :trac:`10262` and :trac:`13304` are fixed + Check that :issue:`10262` and :issue:`13304` are fixed (coercions involving :class:`FreeModule_ambient` used to take quadratic time and space in the rank of the module):: @@ -6482,7 +6482,7 @@ def __init__(self, ambient, basis, check=True, sage: W = M.span_of_basis([[1,2,3],[4,5,6]]) sage: TestSuite(W).run() - We test that the issue at :trac:`9502` is solved:: + We test that the issue at :issue:`9502` is solved:: sage: parent(W.basis()[0]) Free module of degree 3 and rank 2 over Integer Ring @@ -6495,8 +6495,8 @@ def __init__(self, ambient, basis, check=True, [1 2 3] [4 5 6] - Now we test that the issue introduced at :trac:`9502` and reported at - :trac:`10250` is solved as well:: + Now we test that the issue introduced at :issue:`9502` and reported at + :issue:`10250` is solved as well:: sage: V = (QQ^2).span_of_basis([[1,1]]) sage: w = sqrt(2) * V([1,1]) # needs sage.symbolic diff --git a/src/sage/modules/free_module_element.pyx b/src/sage/modules/free_module_element.pyx index 3492dbf2eb1..ff43d239493 100644 --- a/src/sage/modules/free_module_element.pyx +++ b/src/sage/modules/free_module_element.pyx @@ -12,7 +12,7 @@ AUTHORS: - Jeroen Demeyer (2015-02-24): Implement fast Cython methods ``get_unsafe`` and ``set_unsafe`` similar to other places in Sage - (:trac:`17562`) + (:issue:`17562`) EXAMPLES: We create a vector space over `\QQ` and a subspace of this space. @@ -98,7 +98,7 @@ TESTS:: sage: 2*p.row(0) # needs sage.libs.pari (168, 194, 110, 116, 102) -This is a test from :trac:`20211`:: +This is a test from :issue:`20211`:: sage: MatrixSpace(ZZ, 1, 1)(vector([1])) [1] @@ -376,7 +376,7 @@ def vector(arg0, arg1=None, arg2=None, sparse=None, immutable=False): If any of the arguments to vector have Python type int, real, or complex, they will first be coerced to the appropriate Sage - objects. This fixes :trac:`3847`. :: + objects. This fixes :issue:`3847`. :: sage: v = vector([int(0)]); v (0) @@ -392,7 +392,7 @@ def vector(arg0, arg1=None, arg2=None, sparse=None, immutable=False): Complex Double Field If the argument is a vector, it doesn't change the base ring. This - fixes :trac:`6643`:: + fixes :issue:`6643`:: sage: # needs sage.rings.number_field sage: K. = QuadraticField(3) @@ -470,7 +470,7 @@ def vector(arg0, arg1=None, arg2=None, sparse=None, immutable=False): TESTS: - We check that :trac:`31470` is fixed:: + We check that :issue:`31470` is fixed:: sage: k. = GF(5^3) # needs sage.rings.finite_rings sage: S. = k['x', k.frobenius_endomorphism()] # needs sage.rings.finite_rings @@ -664,7 +664,7 @@ def prepare(v, R, degree=None): sage: prepare(c, None) # needs sage.symbolic ([2.0, 3.0], Real Double Field) - This checks a bug listed at :trac:`10595`. Without good evidence + This checks a bug listed at :issue:`10595`. Without good evidence for a ring, the default is the integers. :: sage: prepare([], None) @@ -1298,7 +1298,7 @@ cdef class FreeModuleElement(Vector): # abstract base class These are some legacy doctests that were part of various specialized versions of the numerical approximation routine that were removed as - part of :trac:`12195`. :: + part of :issue:`12195`. :: sage: v = vector(ZZ, [1,2,3]) sage: v.n() @@ -1560,7 +1560,7 @@ cdef class FreeModuleElement(Vector): # abstract base class TESTS: - Check for :trac:`29630`:: + Check for :issue:`29630`:: sage: v = vector(QQ, 4, {0:1}, sparse=True) sage: v.change_ring(AA).is_sparse() # needs sage.rings.number_field @@ -1747,7 +1747,7 @@ cdef class FreeModuleElement(Vector): # abstract base class ... ValueError: 0.990000000000000 is not greater than or equal to 1 - Norm works with Python integers (see :trac:`13502`). :: + Norm works with Python integers (see :issue:`13502`). :: sage: v = vector(QQ, [1,2]) sage: v.norm(int(2)) # needs sage.symbolic @@ -1790,7 +1790,7 @@ cdef class FreeModuleElement(Vector): # abstract base class sage: vector(F, [0,0,0,0]) == vector(F, [0,2,0,y]) False - Verify that :trac:`33697` is fixed:: + Verify that :issue:`33697` is fixed:: sage: # needs sage.symbolic sage: v = vector(SR, [x]) @@ -2215,7 +2215,7 @@ cdef class FreeModuleElement(Vector): # abstract base class TESTS: - The following was fixed in :trac:`8800`:: + The following was fixed in :issue:`8800`:: sage: M = GF(5)^3 sage: v = M((4,0,2)) @@ -2609,7 +2609,7 @@ cdef class FreeModuleElement(Vector): # abstract base class ... ArithmeticError: degrees (2 and 3) must be the same - Check that vectors with different base rings play out nicely (:trac:`3103`):: + Check that vectors with different base rings play out nicely (:issue:`3103`):: sage: vector(CDF, [2, 2]) * vector(ZZ, [1, 3]) 8.0 @@ -2622,7 +2622,7 @@ cdef class FreeModuleElement(Vector): # abstract base class TESTS: - Check for :trac:`33814`:: + Check for :issue:`33814`:: sage: rings = [ZZ, QQ, RDF, ZZ['x']] sage: rings += [RR] # needs sage.rings.real_mpfr @@ -3948,7 +3948,7 @@ cdef class FreeModuleElement(Vector): # abstract base class sage: parent(vector(RDF, (), sparse=False).apply_map(lambda x: x, sparse=False)) Vector space of dimension 0 over Real Double Field - Check that the bug in :trac:`14558` has been fixed:: + Check that the bug in :issue:`14558` has been fixed:: sage: # needs sage.rings.finite_rings sage: F. = GF(9) @@ -4324,7 +4324,7 @@ cdef class FreeModuleElement_generic_dense(FreeModuleElement): sage: v # last entry did not change (-1.00000000000000, 0.000000000000000, 0.666666666666667, 3.14159265358979, +infinity) - Check that :trac:`11751` is fixed:: + Check that :issue:`11751` is fixed:: sage: K. = QQ[] sage: M = K^1 @@ -4750,7 +4750,7 @@ cdef class FreeModuleElement_generic_sparse(FreeModuleElement): TESTS: - Test that :trac:`11751` is fixed:: + Test that :issue:`11751` is fixed:: sage: K. = QQ[] sage: M = FreeModule(K, 1, sparse=True) @@ -4775,7 +4775,7 @@ cdef class FreeModuleElement_generic_sparse(FreeModuleElement): sage: R.basis()[0][0].parent() Univariate Polynomial Ring in x over Rational Field - Test that :trac:`17101` is fixed:: + Test that :issue:`17101` is fixed:: sage: # needs sage.rings.real_interval_field sage: v = vector([RIF(-1, 1)], sparse=True) @@ -4936,7 +4936,7 @@ cdef class FreeModuleElement_generic_sparse(FreeModuleElement): TESTS: - Check that :trac:`19377` is fixed:: + Check that :issue:`19377` is fixed:: sage: w = vector(ZZ, (1,2,3), sparse=False) sage: v = vector(ZZ, (1,2,3), sparse=True) @@ -4990,7 +4990,7 @@ cdef class FreeModuleElement_generic_sparse(FreeModuleElement): sage: w == v # needs sage.symbolic True - Check that the bug in :trac:`13929` has been fixed:: + Check that the bug in :issue:`13929` has been fixed:: sage: V = FreeModule(GF(3), 2, sparse=True) sage: a = V([0,1]) diff --git a/src/sage/modules/free_module_homspace.py b/src/sage/modules/free_module_homspace.py index d1bad17f001..f494e4aba36 100644 --- a/src/sage/modules/free_module_homspace.py +++ b/src/sage/modules/free_module_homspace.py @@ -45,7 +45,7 @@ sage: loads(dumps(H)) == H True -See :trac:`5886`:: +See :issue:`5886`:: sage: V = (ZZ^2).span_of_basis([[1,2],[3,4]]) sage: V.hom([V.0, V.1]) @@ -53,7 +53,7 @@ [1 0] [0 1]... -See :trac:`13321`:: +See :issue:`13321`:: sage: (GF(7)^2).hom([[20, 0], [0, 21]], ZZ^2) Traceback (most recent call last): @@ -158,7 +158,7 @@ def __call__(self, A, **kwds): True The following tests against a bug that was fixed in - :trac:`9944`. The method ``zero()`` calls this hom space with + :issue:`9944`. The method ``zero()`` calls this hom space with a function, not with a matrix, and that case had previously not been taken care of:: @@ -173,7 +173,7 @@ def __call__(self, A, **kwds): Codomain: Free module of degree 3 and rank 3 over Integer Ring Echelon ... - The following tests the bug fixed in :trac:`31818`. If there is no + The following tests the bug fixed in :issue:`31818`. If there is no coercion between base rings, one can only define the zero morphism, as morphism of additive groups. Before one could for example use an integer matrix to define a morphism from the rational numbers to the diff --git a/src/sage/modules/free_module_integer.py b/src/sage/modules/free_module_integer.py index c45a0b5c485..2d072679d66 100644 --- a/src/sage/modules/free_module_integer.py +++ b/src/sage/modules/free_module_integer.py @@ -760,7 +760,7 @@ def closest_vector(self, t): TESTS: - Check that the example from :trac:`29866` works:: + Check that the example from :issue:`29866` works:: sage: from sage.modules.free_module_integer import IntegerLattice sage: M = matrix(ZZ, [[20957228, -4966110], [9411844, 19625639]]) @@ -769,7 +769,7 @@ def closest_vector(self, t): sage: L.closest_vector(u) in L True - Check that the example, of non-maximal rank, from :trac:`32486` works:: + Check that the example, of non-maximal rank, from :issue:`32486` works:: from sage.modules.free_module_integer import IntegerLattice L = IntegerLattice([[-1, 0, 1],[1,0,2]]) diff --git a/src/sage/modules/free_module_morphism.py b/src/sage/modules/free_module_morphism.py index 6cf1add1f75..3c84527f8b7 100644 --- a/src/sage/modules/free_module_morphism.py +++ b/src/sage/modules/free_module_morphism.py @@ -295,7 +295,7 @@ def inverse_image(self, V): sage: phi(Y) == Z True - We test that :trac:`24590` is resolved:: + We test that :issue:`24590` is resolved:: sage: A = FreeQuadraticModule(ZZ,1,matrix([2])) sage: f = A.Hom(A).an_element() diff --git a/src/sage/modules/free_quadratic_module.py b/src/sage/modules/free_quadratic_module.py index f4942502ad1..0c0f688383c 100644 --- a/src/sage/modules/free_quadratic_module.py +++ b/src/sage/modules/free_quadratic_module.py @@ -122,7 +122,7 @@ def FreeQuadraticModule(base_ring, rank, inner_product_matrix, TESTS: - Check for :trac:`10577`:: + Check for :issue:`10577`:: sage: m = matrix.diagonal(GF(2), [1,1]) sage: V2 = VectorSpace(GF(2), 2, inner_product_matrix=m) @@ -295,7 +295,7 @@ class FreeQuadraticModule_generic(free_module.FreeModule_generic): sage: Q3zero == Q3 False - We test that :trac:`23915` is fixed:: + We test that :issue:`23915` is fixed:: sage: M1 = FreeQuadraticModule(ZZ,1,matrix.identity(1)) sage: M2 = FreeQuadraticModule(ZZ,1,matrix.identity(1)*2) @@ -1138,7 +1138,7 @@ def __init__(self, base_field, dimension, inner_product_matrix, sparse=False): TESTS: - Check for :trac:`10606`:: + Check for :issue:`10606`:: sage: D = matrix.diagonal(ZZ, [1,1]) sage: V = VectorSpace(GF(46349), 2, inner_product_matrix=D) # needs sage.rings.finite_rings @@ -1264,7 +1264,7 @@ def __init__(self, ambient, basis, inner_product_matrix, TESTS: - We test that :trac:`23703` is fixed:: + We test that :issue:`23703` is fixed:: sage: A = FreeQuadraticModule(ZZ, 1, matrix.identity(1)) sage: B = A.span([[1/2]]) diff --git a/src/sage/modules/free_quadratic_module_integer_symmetric.py b/src/sage/modules/free_quadratic_module_integer_symmetric.py index 60f3cc131f6..cac77eda355 100644 --- a/src/sage/modules/free_quadratic_module_integer_symmetric.py +++ b/src/sage/modules/free_quadratic_module_integer_symmetric.py @@ -811,7 +811,7 @@ def discriminant_group(self, s=0): Gram matrix of the quadratic form with values in Q/2Z: [] - Test that the memory leak in :trac:`31625` is fixed:: + Test that the memory leak in :issue:`31625` is fixed:: sage: import gc sage: gc.freeze() diff --git a/src/sage/modules/matrix_morphism.py b/src/sage/modules/matrix_morphism.py index 868da6f88a5..4624465f8dc 100644 --- a/src/sage/modules/matrix_morphism.py +++ b/src/sage/modules/matrix_morphism.py @@ -1050,7 +1050,7 @@ def _matrix_(self): EXAMPLES: Check that this works with the :func:`matrix` function - (:trac:`16844`):: + (:issue:`16844`):: sage: H = Hom(ZZ^2, ZZ^3) sage: x = H.an_element() @@ -1756,7 +1756,7 @@ def is_surjective(self): sage: H.is_surjective() True - This tests if :trac:`11552` is fixed. :: + This tests if :issue:`11552` is fixed. :: sage: V = ZZ^2 sage: m = matrix(ZZ, [[1,2],[0,2]]) diff --git a/src/sage/modules/misc.py b/src/sage/modules/misc.py index ac3994edb08..abcdfa01a20 100644 --- a/src/sage/modules/misc.py +++ b/src/sage/modules/misc.py @@ -62,7 +62,7 @@ def gram_schmidt(B): ([], []) Linearly dependent input leads to a zero dot product in a denominator. - This shows that :trac:`10791` is fixed. :: + This shows that :issue:`10791` is fixed. :: sage: from sage.modules.misc import gram_schmidt sage: V = [vector(ZZ,[1,1]), vector(ZZ,[2,2]), vector(ZZ,[1,2])] diff --git a/src/sage/modules/module.pyx b/src/sage/modules/module.pyx index ae0dc162520..8cf23ad3e76 100644 --- a/src/sage/modules/module.pyx +++ b/src/sage/modules/module.pyx @@ -105,7 +105,7 @@ cdef class Module(Parent): TESTS: - We check that :trac:`8119` has been resolved:: + We check that :issue:`8119` has been resolved:: sage: # needs sage.modules sage: M = ZZ^3 @@ -161,7 +161,7 @@ cdef class Module(Parent): TESTS: - Make sure :trac:`3638` is fixed:: + Make sure :issue:`3638` is fixed:: sage: vector(ZZ,[1,2,11]) == vector(Zmod(8),[1,2,3]) # needs sage.modules True diff --git a/src/sage/modules/quotient_module.py b/src/sage/modules/quotient_module.py index c917188b029..3cb75a7de96 100644 --- a/src/sage/modules/quotient_module.py +++ b/src/sage/modules/quotient_module.py @@ -571,7 +571,7 @@ def _coerce_map_from_(self, M): Basis matrix: [1 2] - Make sure :trac:`10513` is fixed (no coercion from an abstract + Make sure :issue:`10513` is fixed (no coercion from an abstract vector space to an isomorphic quotient vector space):: sage: V = QQ^3 / [[1,2,3]] diff --git a/src/sage/modules/torsion_quadratic_module.py b/src/sage/modules/torsion_quadratic_module.py index d6aea600270..f7be88a6000 100644 --- a/src/sage/modules/torsion_quadratic_module.py +++ b/src/sage/modules/torsion_quadratic_module.py @@ -1004,7 +1004,7 @@ def normal_form(self, partial=False): [1/2 0] [ 0 1/4] - We check that :trac:`24864` is fixed:: + We check that :issue:`24864` is fixed:: sage: L1 = IntegralLattice(matrix([[-4,0,0], [0,4,0], [0,0,-2]])) sage: AL1 = L1.discriminant_group() diff --git a/src/sage/modules/vector_mod2_dense.pyx b/src/sage/modules/vector_mod2_dense.pyx index 4137b594eec..94f63f35c56 100644 --- a/src/sage/modules/vector_mod2_dense.pyx +++ b/src/sage/modules/vector_mod2_dense.pyx @@ -155,7 +155,7 @@ cdef class Vector_mod2_dense(free_module_element.FreeModuleElement): TESTS: - Check that issue :trac:`8601` is fixed:: + Check that issue :issue:`8601` is fixed:: sage: VS = VectorSpace(GF(2), 3) sage: VS((-1,-2,-3)) @@ -166,7 +166,7 @@ cdef class Vector_mod2_dense(free_module_element.FreeModuleElement): sage: V([1,-3]) (1, 1) - Check integer overflow prior to :trac:`21746`:: + Check integer overflow prior to :issue:`21746`:: sage: VS = VectorSpace(GF(2),1) sage: VS([2**64]) diff --git a/src/sage/modules/vector_modn_dense.pyx b/src/sage/modules/vector_modn_dense.pyx index 57103bd48c4..c2155a68990 100644 --- a/src/sage/modules/vector_modn_dense.pyx +++ b/src/sage/modules/vector_modn_dense.pyx @@ -79,7 +79,7 @@ TESTS:: sage: isinstance(hash(w), int) True -Test that :trac:`28042` is fixed:: +Test that :issue:`28042` is fixed:: sage: # needs sage.rings.finite_rings sage: p = 193379 diff --git a/src/sage/modules/vector_rational_dense.pyx b/src/sage/modules/vector_rational_dense.pyx index bca39f51f5a..98424f3d3e1 100644 --- a/src/sage/modules/vector_rational_dense.pyx +++ b/src/sage/modules/vector_rational_dense.pyx @@ -101,7 +101,7 @@ cdef class Vector_rational_dense(free_module_element.FreeModuleElement): TESTS: - Check implicitly that :trac:`10257` works:: + Check implicitly that :issue:`10257` works:: sage: from sage.modules.vector_rational_dense import Vector_rational_dense sage: Vector_rational_dense(QQ^(sys.maxsize)) diff --git a/src/sage/modules/vector_symbolic_dense.py b/src/sage/modules/vector_symbolic_dense.py index 46ea21be585..58edfa5ccc8 100644 --- a/src/sage/modules/vector_symbolic_dense.py +++ b/src/sage/modules/vector_symbolic_dense.py @@ -22,7 +22,7 @@ TESTS: Check that the outcome of arithmetic with symbolic vectors is again -a symbolic vector (:trac:`11549`):: +a symbolic vector (:issue:`11549`):: sage: v = vector(SR, [1, 2]) sage: w = vector(SR, [sin(x), 0]) diff --git a/src/sage/modules/vector_symbolic_sparse.py b/src/sage/modules/vector_symbolic_sparse.py index ff53995021c..223e72d8609 100644 --- a/src/sage/modules/vector_symbolic_sparse.py +++ b/src/sage/modules/vector_symbolic_sparse.py @@ -24,7 +24,7 @@ TESTS: Check that the outcome of arithmetic with symbolic vectors is again -a symbolic vector (:trac:`11549`):: +a symbolic vector (:issue:`11549`):: sage: v = vector(SR, [1, 2], sparse=True) sage: w = vector(SR, [sin(x), 0], sparse=True) diff --git a/src/sage/modules/with_basis/indexed_element.pyx b/src/sage/modules/with_basis/indexed_element.pyx index f366fe1bdf1..5e875ef3929 100644 --- a/src/sage/modules/with_basis/indexed_element.pyx +++ b/src/sage/modules/with_basis/indexed_element.pyx @@ -146,7 +146,7 @@ cdef class IndexedFreeModuleElement(ModuleElement): .. TODO:: It would be desirable to make the hash value depend on the - hash value of the parent. See :trac:`15959`. + hash value of the parent. See :issue:`15959`. """ if not self._hash_set: self._hash = hash(frozenset(self._monomial_coefficients.items())) @@ -169,7 +169,7 @@ cdef class IndexedFreeModuleElement(ModuleElement): r""" For unpickling old ``CombinatorialFreeModuleElement`` classes. - See :trac:`22632` and ``register_unpickle_override`` below. + See :issue:`22632` and ``register_unpickle_override`` below. EXAMPLES:: @@ -433,7 +433,7 @@ cdef class IndexedFreeModuleElement(ModuleElement): ├┤ └┘ └┘ └┴┘ └┘ - The following test failed before :trac:`26850`:: + The following test failed before :issue:`26850`:: sage: unicode_art([M.zero()]) # indirect doctest # needs sage.combinat [ 0 ] @@ -619,7 +619,7 @@ cdef class IndexedFreeModuleElement(ModuleElement): Equality testing can be a bit tricky when the order of terms can vary because their indices are incomparable with - ``cmp``. The following test did fail before :trac:`12489` :: + ``cmp``. The following test did fail before :issue:`12489` :: sage: # needs sage.combinat sage: F = CombinatorialFreeModule(QQ, Subsets([1,2,3])) @@ -798,7 +798,7 @@ cdef class IndexedFreeModuleElement(ModuleElement): .. NOTE:: - :trac:`13406`: the current implementation has been optimized, at + :issue:`13406`: the current implementation has been optimized, at the price of breaking the encapsulation for FreeModule elements creation, with the following use case as metric, on a 2008' Macbook Pro:: @@ -868,7 +868,7 @@ cdef class IndexedFreeModuleElement(ModuleElement): None This also works when a coercion of the coefficient is needed, for - example with polynomials or fraction fields (:trac:`8832`):: + example with polynomials or fraction fields (:issue:`8832`):: sage: P. = QQ['q'] sage: V = CombinatorialFreeModule(P, Permutations()) diff --git a/src/sage/modules/with_basis/morphism.py b/src/sage/modules/with_basis/morphism.py index 81f453f8b1a..51250e70dab 100644 --- a/src/sage/modules/with_basis/morphism.py +++ b/src/sage/modules/with_basis/morphism.py @@ -93,11 +93,11 @@ - Jason Bandlow and Florent Hivert (2010): Triangular Morphisms -- Christian Stump (2010): :trac:`9648` module_morphism's to a wider class +- Christian Stump (2010): :issue:`9648` module_morphism's to a wider class of codomains -Before :trac:`8678`, this hierarchy of classes used to be in -sage.categories.modules_with_basis; see :trac:`8678` for the complete log. +Before :issue:`8678`, this hierarchy of classes used to be in +sage.categories.modules_with_basis; see :issue:`8678` for the complete log. """ # **************************************************************************** @@ -652,7 +652,7 @@ def __init__(self, triangular="upper", unitriangular=False, ....: inverse_on_support="compute") sage: TestSuite(phi).run(skip=["_test_pickling"]) - Pickling works in Python3 (:trac:`17957`):: + Pickling works in Python3 (:issue:`17957`):: sage: phi = X.module_morphism(lt, triangular="lower", codomain=X, ....: inverse_on_support="compute") @@ -1046,7 +1046,7 @@ def coreduced(self, y): ... NotImplementedError: coreduce for a triangular but not unitriangular morphism over a ring - .. NOTE:: Before :trac:`8678` this method used to be called co_reduced. + .. NOTE:: Before :issue:`8678` this method used to be called co_reduced. """ G = self.codomain() if G.base_ring() not in Fields() and not self._unitriangular: @@ -1313,7 +1313,7 @@ def __init__(self, domain, matrix, codomain=None, category=None, side="left"): True sage: TestSuite(phi).run(skip=["_test_pickling"]) - Pickling works (:trac:`17957`) in Python 3:: + Pickling works (:issue:`17957`) in Python 3:: sage: phi._on_basis diff --git a/src/sage/modules/with_basis/subquotient.py b/src/sage/modules/with_basis/subquotient.py index 0918c5a8b19..cd4698e71f4 100644 --- a/src/sage/modules/with_basis/subquotient.py +++ b/src/sage/modules/with_basis/subquotient.py @@ -54,7 +54,7 @@ class QuotientModuleWithBasis(CombinatorialFreeModule): elements of the ambient space. There is room for sharing more code between those two - implementations and generalizing them. See :trac:`18204`. + implementations and generalizing them. See :issue:`18204`. .. SEEALSO:: diff --git a/src/sage/monoids/automatic_semigroup.py b/src/sage/monoids/automatic_semigroup.py index b6e96688cf8..37d80ce9dff 100644 --- a/src/sage/monoids/automatic_semigroup.py +++ b/src/sage/monoids/automatic_semigroup.py @@ -884,7 +884,7 @@ def reduced_word(self): TESTS: - We check that :trac:`19631` is fixed:: + We check that :issue:`19631` is fixed:: sage: R = IntegerModRing(101) sage: M = AutomaticSemigroup(Family({1: R(3), 2: R(5)}), one=R.one()) diff --git a/src/sage/monoids/free_monoid.py b/src/sage/monoids/free_monoid.py index 12688312b9c..077f0a4f638 100644 --- a/src/sage/monoids/free_monoid.py +++ b/src/sage/monoids/free_monoid.py @@ -135,7 +135,7 @@ def __classcall_private__(cls, index_set=None, names=None, True Fix a bug when ``index_set`` is ``None`` and ``names`` is a - string (:trac:`26221`):: + string (:issue:`26221`):: sage: FreeMonoid(2, names=['a','b']) is FreeMonoid(names='a,b') True diff --git a/src/sage/monoids/free_monoid_element.py b/src/sage/monoids/free_monoid_element.py index 341a88a9ebe..e4881241d23 100644 --- a/src/sage/monoids/free_monoid_element.py +++ b/src/sage/monoids/free_monoid_element.py @@ -142,7 +142,7 @@ def _latex_(self): sage: latex(alpha*beta*gamma) \alpha \beta \gamma - Check that :trac:`14509` is fixed:: + Check that :issue:`14509` is fixed:: sage: K.< alpha,b > = FreeAlgebra(SR) sage: latex(alpha*b) diff --git a/src/sage/numerical/backends/cvxopt_backend.pyx b/src/sage/numerical/backends/cvxopt_backend.pyx index 045c661b9c8..01d4360d390 100644 --- a/src/sage/numerical/backends/cvxopt_backend.pyx +++ b/src/sage/numerical/backends/cvxopt_backend.pyx @@ -35,7 +35,7 @@ cdef class CVXOPTBackend(GenericBackend): TESTS: - :trac:`20332`:: + :issue:`20332`:: sage: p Mixed Integer Program (no objective, 0 variables, 0 constraints) diff --git a/src/sage/numerical/backends/generic_backend.pyx b/src/sage/numerical/backends/generic_backend.pyx index c5c7dadc4c1..ac4dc200cf6 100644 --- a/src/sage/numerical/backends/generic_backend.pyx +++ b/src/sage/numerical/backends/generic_backend.pyx @@ -180,7 +180,7 @@ cdef class GenericBackend: ... NotImplementedError - Flush any stray output -- see :trac:`28622`:: + Flush any stray output -- see :issue:`28622`:: sage: sys.stdout.flush() ... @@ -665,7 +665,7 @@ cdef class GenericBackend: ... NotImplementedError... - Flush any stray output -- see :trac:`28622`:: + Flush any stray output -- see :issue:`28622`:: sage: sys.stdout.flush() ... @@ -1553,7 +1553,7 @@ cdef class GenericBackend: @classmethod def _test_solve_trac_18572(cls, tester=None, **options): """ - Run tests regarding :trac:`18572`:: + Run tests regarding :issue:`18572`:: TESTS:: @@ -1806,7 +1806,7 @@ cpdef GenericBackend get_solver(constraint_generation=False, solver=None, base_r TESTS: - Test that it works when the default solver is a callable, see :trac:`28914`:: + Test that it works when the default solver is a callable, see :issue:`28914`:: sage: old_default = default_mip_solver() sage: from sage.numerical.backends.glpk_backend import GLPKBackend diff --git a/src/sage/numerical/backends/glpk_backend.pyx b/src/sage/numerical/backends/glpk_backend.pyx index 77cab0ff1b5..b24efb521ea 100644 --- a/src/sage/numerical/backends/glpk_backend.pyx +++ b/src/sage/numerical/backends/glpk_backend.pyx @@ -595,7 +595,7 @@ cdef class GLPKBackend(GenericBackend): TESTS: - This used to crash Sage, but was fixed in :trac:`19525`:: + This used to crash Sage, but was fixed in :issue:`19525`:: sage: p = MixedIntegerLinearProgram(solver="glpk") sage: q = MixedIntegerLinearProgram(solver="glpk") @@ -966,7 +966,7 @@ cdef class GLPKBackend(GenericBackend): .. WARNING:: GLPK's ``glp_intopt`` sometimes fails catastrophically - when given a system it cannot solve (:trac:`12309`). It + when given a system it cannot solve (:issue:`12309`). It can loop indefinitely, or just plain segfault. Upstream considers this behavior "essentially innate" to the current design, and suggests preprocessing with @@ -1062,7 +1062,7 @@ cdef class GLPKBackend(GenericBackend): True Below we test that GLPK backend can detect unboundedness in - "simplex_only" mode (:trac:`18838`). + "simplex_only" mode (:issue:`18838`). EXAMPLES:: @@ -1626,7 +1626,7 @@ cdef class GLPKBackend(GenericBackend): TESTS: - :trac:`14581`:: + :issue:`14581`:: sage: P = MixedIntegerLinearProgram(solver="GLPK") sage: x = P["x"] @@ -1634,7 +1634,7 @@ cdef class GLPKBackend(GenericBackend): sage: P.get_max(x) 0.0 - Check that :trac:`10232` is fixed:: + Check that :issue:`10232` is fixed:: sage: p = get_solver(solver="GLPK") sage: p.variable_upper_bound(2) @@ -1725,7 +1725,7 @@ cdef class GLPKBackend(GenericBackend): TESTS: - :trac:`14581`:: + :issue:`14581`:: sage: P = MixedIntegerLinearProgram(solver="GLPK") sage: x = P["x"] @@ -1734,7 +1734,7 @@ cdef class GLPKBackend(GenericBackend): sage: P.get_min(x) 0.0 - Check that :trac:`10232` is fixed:: + Check that :issue:`10232` is fixed:: sage: p = get_solver(solver="GLPK") sage: p.variable_lower_bound(2) diff --git a/src/sage/numerical/backends/ppl_backend.pyx b/src/sage/numerical/backends/ppl_backend.pyx index 0de85409c94..8bf18d7004b 100644 --- a/src/sage/numerical/backends/ppl_backend.pyx +++ b/src/sage/numerical/backends/ppl_backend.pyx @@ -7,7 +7,7 @@ AUTHORS: - Risan (2012-02): initial implementation - Jeroen Demeyer (2014-08-04) allow rational coefficients for - constraints and objective function (:trac:`16755`) + constraints and objective function (:issue:`16755`) """ # **************************************************************************** diff --git a/src/sage/numerical/backends/scip_backend.pyx b/src/sage/numerical/backends/scip_backend.pyx index 606b16190a8..30c0365c79d 100644 --- a/src/sage/numerical/backends/scip_backend.pyx +++ b/src/sage/numerical/backends/scip_backend.pyx @@ -962,7 +962,7 @@ cdef class SCIPBackend(GenericBackend): TESTS: - :trac:`14581`:: + :issue:`14581`:: sage: P = MixedIntegerLinearProgram(solver="SCIP") sage: x = P["x"] @@ -970,7 +970,7 @@ cdef class SCIPBackend(GenericBackend): sage: P.get_max(x) 0.0 - Check that :trac:`10232` is fixed:: + Check that :issue:`10232` is fixed:: sage: p = get_solver(solver="SCIP") sage: p.variable_upper_bound(2) @@ -1023,7 +1023,7 @@ cdef class SCIPBackend(GenericBackend): TESTS: - :trac:`14581`:: + :issue:`14581`:: sage: P = MixedIntegerLinearProgram(solver="SCIP") sage: x = P["x"] @@ -1032,7 +1032,7 @@ cdef class SCIPBackend(GenericBackend): sage: P.get_min(x) 0.0 - Check that :trac:`10232` is fixed:: + Check that :issue:`10232` is fixed:: sage: p = get_solver(solver="SCIP") sage: p.variable_lower_bound(2) diff --git a/src/sage/numerical/linear_functions.pyx b/src/sage/numerical/linear_functions.pyx index edeed1dfef7..21b1d80efae 100644 --- a/src/sage/numerical/linear_functions.pyx +++ b/src/sage/numerical/linear_functions.pyx @@ -67,7 +67,7 @@ inequalities as less or equal:: TESTS: -This was fixed in :trac:`24423`:: +This was fixed in :issue:`24423`:: sage: p. = MixedIntegerLinearProgram() sage: from sage.numerical.linear_functions import LinearFunctionsParent @@ -75,7 +75,7 @@ This was fixed in :trac:`24423`:: sage: 3 <= x[0] <= LF(4) 3 <= x_0 <= 4 -See :trac:`12091`:: +See :issue:`12091`:: sage: p = MixedIntegerLinearProgram() sage: b = p.new_variable() @@ -336,7 +336,7 @@ cdef class LinearFunctionOrConstraint(ModuleElement): sage: 1 >= x[0] x_0 <= 1 - This works with non-Sage types too, see :trac:`14540`:: + This works with non-Sage types too, see :issue:`14540`:: sage: p. = MixedIntegerLinearProgram() sage: int(1) <= b[0] <= int(2) diff --git a/src/sage/numerical/mip.pyx b/src/sage/numerical/mip.pyx index 803724bf29b..62a3e18649e 100644 --- a/src/sage/numerical/mip.pyx +++ b/src/sage/numerical/mip.pyx @@ -327,7 +327,7 @@ cdef class MixedIntegerLinearProgram(SageObject): TESTS: - Check that :trac:`16497` is fixed:: + Check that :issue:`16497` is fixed:: sage: for type in ["binary", "integer"]: ....: k = 3 @@ -406,7 +406,7 @@ cdef class MixedIntegerLinearProgram(SageObject): TESTS: Checks that the objects are deallocated without invoking the cyclic garbage - collector (cf. :trac:`12616`):: + collector (cf. :issue:`12616`):: sage: del p sage: def just_create_variables(): @@ -420,7 +420,7 @@ cdef class MixedIntegerLinearProgram(SageObject): sage: sum([1 for x in gc.get_objects() if isinstance(x,C)]) 0 - We now disable the cyclic garbage collector. Since :trac:`12616` avoids + We now disable the cyclic garbage collector. Since :issue:`12616` avoids a reference cycle, the mixed integer linear program created in ``just_create_variables()`` is removed even without the cyclic garbage collection:: @@ -1086,7 +1086,7 @@ cdef class MixedIntegerLinearProgram(SageObject): sage: P = p.polyhedron(); P A 3-dimensional polyhedron in RDF^3 defined as the convex hull of 1 vertex, 1 ray, 2 lines - A square (see :trac:`14395`) :: + A square (see :issue:`14395`) :: sage: p = MixedIntegerLinearProgram(solver='GLPK') sage: x,y = p['x'], p['y'] @@ -1110,7 +1110,7 @@ cdef class MixedIntegerLinearProgram(SageObject): TESTS: - Check if :trac:`23326` is fixed:: + Check if :issue:`23326` is fixed:: sage: p = MixedIntegerLinearProgram(solver='GLPK') sage: x, y = p['x'], p['y'] @@ -2088,7 +2088,7 @@ cdef class MixedIntegerLinearProgram(SageObject): x_0 is a continuous variable (min=-oo, max=+oo) x_1 is a continuous variable (min=-oo, max=+oo) - Catch ``True`` / ``False`` as INPUT (:trac:`13646`):: + Catch ``True`` / ``False`` as INPUT (:issue:`13646`):: sage: p = MixedIntegerLinearProgram(solver='GLPK') sage: x = p.new_variable(nonnegative=True) @@ -2368,7 +2368,7 @@ cdef class MixedIntegerLinearProgram(SageObject): TESTS: Removing no constraints does not make Sage crash, see - :trac:`34881`:: + :issue:`34881`:: sage: MixedIntegerLinearProgram().remove_constraints([]) @@ -3489,7 +3489,7 @@ cdef class MIPVariable(FiniteFamily): TESTS: - Test that :trac:`20462` is fixed:: + Test that :issue:`20462` is fixed:: sage: p. = MixedIntegerLinearProgram() sage: x[0], y[0] @@ -3526,7 +3526,7 @@ cdef class MIPVariable(FiniteFamily): TESTS: - Test that :trac:`20462` is fixed:: + Test that :issue:`20462` is fixed:: sage: p. = MixedIntegerLinearProgram() sage: x[0], y[0] diff --git a/src/sage/numerical/optimize.py b/src/sage/numerical/optimize.py index 9f973c6bd69..35c316e905d 100644 --- a/src/sage/numerical/optimize.py +++ b/src/sage/numerical/optimize.py @@ -76,13 +76,13 @@ def find_root(f, a, b, xtol=10e-13, rtol=2.0**-50, maxiter=100, full_output=Fals sage: plot(f,2,2.01) Graphics object consisting of 1 graphics primitive - The following example was added due to :trac:`4942` and demonstrates that + The following example was added due to :issue:`4942` and demonstrates that the function need not be defined at the endpoints:: sage: find_root(x^2*log(x,2)-1,0, 2) # abs tol 1e-6 1.41421356237 - The following is an example, again from :trac:`4942` where Brent's method + The following is an example, again from :issue:`4942` where Brent's method fails. Currently no other method is implemented, but at least we acknowledge the fact that the algorithm fails:: @@ -140,7 +140,7 @@ def find_root(f, a, b, xtol=10e-13, rtol=2.0**-50, maxiter=100, full_output=Fals raise RuntimeError("f appears to have no zero on the interval") a = s - # Fixing :trac:`4942` - if the answer on any of the endpoints is NaN, + # Fixing :issue:`4942` - if the answer on any of the endpoints is NaN, # we restrict to looking between minimum and maximum values in the segment # Note - this could be used in all cases, but it requires some more # computation @@ -158,7 +158,7 @@ def find_root(f, a, b, xtol=10e-13, rtol=2.0**-50, maxiter=100, full_output=Fals g = lambda x: float(f(x)) brentqRes = scipy.optimize.brentq(g, a, b, full_output=full_output, xtol=xtol, rtol=rtol, maxiter=maxiter) - # A check following :trac:`4942`, to ensure we actually found a root + # A check following :issue:`4942`, to ensure we actually found a root # Maybe should use a different tolerance here? # The idea is to take roughly the derivative and multiply by estimated # value of the root @@ -246,7 +246,7 @@ def find_local_minimum(f, a, b, tol=1.48e-08, maxfun=500): (-9.4772942594..., 9.5293344109...) Only local minima are found; if you enlarge the interval, the - returned minimum may be *larger*! See :trac:`2607`. + returned minimum may be *larger*! See :issue:`2607`. :: @@ -506,7 +506,7 @@ def minimize_constrained(func,cons,x0,gradient=None,algorithm='default', **args) TESTS: - Check if :trac:`6592` is fixed:: + Check if :issue:`6592` is fixed:: sage: # needs sage.symbolic sage: x, y = var('x y') @@ -518,7 +518,7 @@ def minimize_constrained(func,cons,x0,gradient=None,algorithm='default', **args) (805.985..., 1005.985...) If ``func`` is symbolic, its minimizer should be in the same order - as its arguments (:trac:`32511`):: + as its arguments (:issue:`32511`):: sage: # needs sage.symbolic sage: x,y = SR.var('x,y') diff --git a/src/sage/parallel/decorate.py b/src/sage/parallel/decorate.py index 5b8572d3f60..b8ea5e75bb3 100644 --- a/src/sage/parallel/decorate.py +++ b/src/sage/parallel/decorate.py @@ -172,7 +172,7 @@ def __get__(self, instance, owner): .. note:: - This is the key to fixing :trac:`11461`. + This is the key to fixing :issue:`11461`. EXAMPLES: diff --git a/src/sage/parallel/map_reduce.py b/src/sage/parallel/map_reduce.py index b71e695128b..2765764cddf 100644 --- a/src/sage/parallel/map_reduce.py +++ b/src/sage/parallel/map_reduce.py @@ -1126,7 +1126,7 @@ def setup_workers(self, max_proc=None, reduce_locally=True): self._active_tasks = ActiveTaskCounter(self._nprocess) self._done = mp.Lock() # We use lock=False here, as a compromise, to avoid deadlocking when a - # subprocess holding a lock is terminated. (:trac:`33236`) + # subprocess holding a lock is terminated. (:issue:`33236`) self._aborted = mp.Value(ctypes.c_bool, False, lock=False) sys.stdout.flush() sys.stderr.flush() diff --git a/src/sage/plot/animate.py b/src/sage/plot/animate.py index 0ce77981f34..071bcd92622 100644 --- a/src/sage/plot/animate.py +++ b/src/sage/plot/animate.py @@ -205,13 +205,13 @@ class Animation(WithEqualityById, SageObject): TESTS: - This illustrates that :trac:`2066` is fixed (setting axes + This illustrates that :issue:`2066` is fixed (setting axes ranges when an endpoint is 0):: sage: animate([plot(sin, -1,1)], xmin=0, ymin=0)._kwds['xmin'] 0 - We check that :trac:`7981` is fixed:: + We check that :issue:`7981` is fixed:: sage: x = SR.var("x") sage: a = animate([plot(sin(x + float(k)), (0, 2*pi), ymin=-5, ymax=5) @@ -269,7 +269,7 @@ def _combine_kwds(self, *kwds_tuple): sage: list(sorted(kwds.items())) [('a', 1), ('b', 3), ('xmax', 5), ('xmin', 0)] - Test that the bug reported in :trac:`12107` has been fixed:: + Test that the bug reported in :issue:`12107` has been fixed:: sage: kwds3 = {} sage: kwds4 = {'b':3, 'xmin':0, 'xmax':4} @@ -1159,7 +1159,7 @@ def save(self, filename=None, show_path=False, use_ffmpeg=False, **kwds): TESTS: Ensure that we can pass delay and iteration count to the saved - GIF image (see :trac:`18176`):: + GIF image (see :issue:`18176`):: sage: # long time, optional -- ImageMagick sage: a.save(td + 'wave.gif') diff --git a/src/sage/plot/arrow.py b/src/sage/plot/arrow.py index 324a87bd17b..74da7b4b4f7 100644 --- a/src/sage/plot/arrow.py +++ b/src/sage/plot/arrow.py @@ -339,7 +339,7 @@ def _render_on_subplot(self, subplot): The length of the ends (shrinkA and shrinkB) should not depend on the width of the arrow, because Matplotlib already takes - this into account. See :trac:`12836`:: + this into account. See :issue:`12836`:: sage: fig = Graphics().matplotlib() sage: sp = fig.add_subplot(1,1,1, label='axis1') @@ -352,7 +352,7 @@ def _render_on_subplot(self, subplot): sage: p1.shrinkB == p2.shrinkB True - Dashed arrows should have solid arrowheads, :trac:`12852`. We tried to + Dashed arrows should have solid arrowheads, :issue:`12852`. We tried to make up a test for this, which turned out to be fragile and hence was removed. In general, robust testing of graphics seems basically need a human eye or AI. @@ -475,7 +475,7 @@ def arrow(tailpoint=None, headpoint=None, **kwds): TESTS: - Check that :trac:`35031` is fixed:: + Check that :issue:`35031` is fixed:: sage: arrow((0,0), (0,0), linestyle='dashed') Graphics object consisting of 1 graphics primitive diff --git a/src/sage/plot/bezier_path.py b/src/sage/plot/bezier_path.py index a8bffed51ba..14958fbbba8 100644 --- a/src/sage/plot/bezier_path.py +++ b/src/sage/plot/bezier_path.py @@ -64,7 +64,7 @@ def __init__(self, path, options): TESTS: - Check :trac:`31646`:: + Check :issue:`31646`:: sage: from sage.plot.bezier_path import BezierPath sage: p2d = [[(3,0),(4,1),(2,1),(3,0)], [(2,2),(3,1),(2,1)]] @@ -387,7 +387,7 @@ def bezier_path(path, **options): TESTS: - We shouldn't modify our argument, :trac:`13822`:: + We shouldn't modify our argument, :issue:`13822`:: sage: bp = [[(1,1),(2,3),(3,3)], [(4,4),(5,5)]] sage: foo = bezier_path(bp) diff --git a/src/sage/plot/colors.py b/src/sage/plot/colors.py index 5eeddc373fd..3322c6cfdbc 100644 --- a/src/sage/plot/colors.py +++ b/src/sage/plot/colors.py @@ -1365,7 +1365,7 @@ def get_cmap(cmap): TESTS: - Check that :trac:`33491` is fixed:: + Check that :issue:`33491` is fixed:: sage: get_cmap('turbo') diff --git a/src/sage/plot/contour_plot.py b/src/sage/plot/contour_plot.py index fd175d5eceb..a0d9e2689f1 100644 --- a/src/sage/plot/contour_plot.py +++ b/src/sage/plot/contour_plot.py @@ -824,7 +824,7 @@ def f(x,y): return cos(x) + sin(y) sphinx_plot(g) If you are plotting a sole contour and if all of your data lie on - one side of it, then (as part of :trac:`21042`) a heuristic may be + one side of it, then (as part of :issue:`21042`) a heuristic may be used to improve the result; in that case, a warning is emitted:: sage: contour_plot(lambda x,y: abs(x^2-y^2), (-1,1), (-1,1), @@ -845,7 +845,7 @@ def f(x,y): return cos(x) + sin(y) sphinx_plot(g) Constant functions (with a single contour) can be plotted as well; - this was not possible before :trac:`21042`:: + this was not possible before :issue:`21042`:: sage: contour_plot(lambda x,y: 0, (-1,1), (-1,1), ....: contours=[0], fill=False, cmap=['blue']) @@ -862,7 +862,7 @@ def f(x,y): return cos(x) + sin(y) TESTS: - To check that :trac:`5221` is fixed, note that this has three curves, not + To check that :issue:`5221` is fixed, note that this has three curves, not two:: sage: x,y = var('x,y') @@ -870,12 +870,12 @@ def f(x,y): return cos(x) + sin(y) ....: contours=[-4,-2,0], fill=False) Graphics object consisting of 1 graphics primitive - Check that :trac:`18074` is fixed:: + Check that :issue:`18074` is fixed:: sage: contour_plot(0, (0,1), (0,1)) ...Graphics object consisting of 1 graphics primitive - Domain points in :trac:`11648` with complex output are now skipped:: + Domain points in :issue:`11648` with complex output are now skipped:: sage: x,y = SR.var('x,y', domain='real') sage: contour_plot(log(x) + log(y), (-1, 5), (-1, 5)) @@ -1339,7 +1339,7 @@ def f(x,y): ... ValueError: fill=5 is not supported - To check that :trac:`9654` is fixed:: + To check that :issue:`9654` is fixed:: sage: f(x,y) = x^2 + y^2 - 2 sage: implicit_plot(f, (-3,3), (-3,3), rgbcolor=(1,0,0)) @@ -1636,7 +1636,7 @@ def region_plot(f, xrange, yrange, **options): TESTS: - To check that :trac:`16907` is fixed:: + To check that :issue:`16907` is fixed:: sage: x, y = var('x, y') sage: disc1 = region_plot(x^2 + y^2 < 1, (x,-1,1), (y,-1,1), alpha=0.5) @@ -1644,7 +1644,7 @@ def region_plot(f, xrange, yrange, **options): sage: disc1 + disc2 Graphics object consisting of 2 graphics primitives - To check that :trac:`18286` is fixed:: + To check that :issue:`18286` is fixed:: sage: x, y = var('x, y') sage: region_plot([x == 0], (x,-1,1), (y,-1,1)) diff --git a/src/sage/plot/density_plot.py b/src/sage/plot/density_plot.py index e2ffbb6d453..ff27f2d126b 100644 --- a/src/sage/plot/density_plot.py +++ b/src/sage/plot/density_plot.py @@ -282,7 +282,7 @@ def f(x,y): return x**2 * cos(x*y) TESTS: - Check that :trac:`15315` is fixed, i.e., density_plot respects the + Check that :issue:`15315` is fixed, i.e., density_plot respects the ``aspect_ratio`` parameter. Without the fix, it looks like a thin line of width a few mm. With the fix it should look like a nice fat layered image:: @@ -295,7 +295,7 @@ def f(x,y): return x**2 * cos(x*y) sage: density_plot((x*y)^(1/2), (x,0,3), (y,0,500)) Graphics object consisting of 1 graphics primitive - Check that :trac:`17684` is fixed, i.e., symbolic values can be plotted:: + Check that :issue:`17684` is fixed, i.e., symbolic values can be plotted:: sage: def f(x,y): ....: return SR(x) diff --git a/src/sage/plot/disk.py b/src/sage/plot/disk.py index 3b2c72051b9..4219cf35155 100644 --- a/src/sage/plot/disk.py +++ b/src/sage/plot/disk.py @@ -159,7 +159,7 @@ def _render_on_subplot(self, subplot): sage: D = disk((2,-1), 2, (0, pi), color='black', thickness=3, fill=False); D Graphics object consisting of 1 graphics primitive - Save alpha information in pdf (see :trac:`13732`):: + Save alpha information in pdf (see :issue:`13732`):: sage: f = tmp_filename(ext='.pdf') sage: p = disk((0,0), 5, (0, pi/4), alpha=0.5) diff --git a/src/sage/plot/graphics.py b/src/sage/plot/graphics.py index b6465b8f9a9..8a61068887f 100644 --- a/src/sage/plot/graphics.py +++ b/src/sage/plot/graphics.py @@ -8,14 +8,14 @@ AUTHORS: -- Jeroen Demeyer (2012-04-19): split off this file from plot.py (:trac:`12857`) +- Jeroen Demeyer (2012-04-19): split off this file from plot.py (:issue:`12857`) -- Punarbasu Purkayastha (2012-05-20): Add logarithmic scale (:trac:`4529`) +- Punarbasu Purkayastha (2012-05-20): Add logarithmic scale (:issue:`4529`) - Emily Chen (2013-01-05): Add documentation for - :meth:`~sage.plot.graphics.Graphics.show` figsize parameter (:trac:`5956`) + :meth:`~sage.plot.graphics.Graphics.show` figsize parameter (:issue:`5956`) -- Eric Gourgoulhon (2015-03-19): Add parameter axes_labels_size (:trac:`18004`) +- Eric Gourgoulhon (2015-03-19): Add parameter axes_labels_size (:issue:`18004`) - Eric Gourgoulhon (2019-05-24): :class:`~sage.plot.multigraphics.GraphicsArray` moved to new module :mod:`~sage.plot.multigraphics`; various improvements and @@ -151,7 +151,7 @@ class Graphics(WithEqualityById, SageObject): TESTS: - From :trac:`4604`, ensure Graphics can handle 3d objects:: + From :issue:`4604`, ensure Graphics can handle 3d objects:: sage: g = Graphics() sage: g += sphere((1, 1, 1), 2) @@ -780,7 +780,7 @@ def axes_labels(self, l=None): TESTS: - Unicode strings are acceptable; see :trac:`13161`. Note that + Unicode strings are acceptable; see :issue:`13161`. Note that this does not guarantee that matplotlib will handle the strings properly, although it should. @@ -1164,7 +1164,7 @@ def __add__(self, other): sage: (g1+g2).aspect_ratio() 3.0 - As are legend options, :trac:`12936`:: + As are legend options, :issue:`12936`:: sage: # needs sage.symbolic sage: p1 = plot(x, x, 0, 1) @@ -1260,7 +1260,7 @@ def plot(self): sage: S.plot() is S True - It does not accept any argument (:trac:`19539`):: + It does not accept any argument (:issue:`19539`):: sage: S.plot(1) Traceback (most recent call last): @@ -1776,7 +1776,7 @@ def show(self, **kwds): sage: plot(sin(x), (x, -4, 4), transparent=True) # needs sage.symbolic Graphics object consisting of 1 graphics primitive - Prior to :trac:`19485`, legends by default had a shadowless gray + Prior to :issue:`19485`, legends by default had a shadowless gray background. This behavior can be recovered by passing in certain ``legend_options``:: @@ -2693,7 +2693,7 @@ def matplotlib(self, filename=None, TESTS: - We verify that :trac:`10291` is fixed:: + We verify that :issue:`10291` is fixed:: sage: # needs sage.symbolic sage: p = plot(sin(x), (x, -2*pi, 2*pi)) @@ -2704,7 +2704,7 @@ def matplotlib(self, filename=None, sage: axes_range == axes_range2 True - We verify that legend options are properly handled (:trac:`12960`). + We verify that legend options are properly handled (:issue:`12960`). First, we test with no options, and next with an incomplete set of options.:: @@ -2715,7 +2715,7 @@ def matplotlib(self, filename=None, sage: pm = p.matplotlib(legend_options={'font_size': 'small'}) The title should not overlap with the axes labels nor the frame in - the following plot (see :trac:`10512`):: + the following plot (see :issue:`10512`):: sage: plot(sin(x^2), (x, -3, 3), title='Plot of sin(x^2)', # needs sage.symbolic ....: axes_labels=['x','y'], frame=True) @@ -2729,7 +2729,7 @@ def matplotlib(self, filename=None, 'latex', or 'type1'; got 'garbage'. Graphics object consisting of 1 graphics primitive - We verify that numerical options are changed to float before saving (:trac:`14741`). + We verify that numerical options are changed to float before saving (:issue:`14741`). By default, Sage 5.10 changes float objects to the `RealLiteral` type. The patch changes them to float before creating `matplotlib` objects.:: @@ -3311,7 +3311,7 @@ def save(self, filename, **kwds): sage: plot(x^2 - 5, (x, 0, 5), ymin=0) # needs sage.symbolic Graphics object consisting of 1 graphics primitive - (This test verifies that :trac:`8632` is fixed.) + (This test verifies that :issue:`8632` is fixed.) TESTS: @@ -3325,8 +3325,8 @@ def save(self, filename, **kwds): sage: with tempfile.NamedTemporaryFile(suffix=".png") as f: ....: P.save(f.name) - This plot should save with the frame shown, showing :trac:`7524` - is fixed (same issue as :trac:`7981` and :trac:`8632`):: + This plot should save with the frame shown, showing :issue:`7524` + is fixed (same issue as :issue:`7981` and :issue:`8632`):: sage: var('x,y') # needs sage.symbolic (x, y) @@ -3335,7 +3335,7 @@ def save(self, filename, **kwds): sage: with tempfile.NamedTemporaryFile(suffix=".png") as f: # needs sage.symbolic ....: a.save(f.name) - The following plot should show the axes; fixes :trac:`14782` :: + The following plot should show the axes; fixes :issue:`14782` :: sage: plot(x^2, (x, 1, 2), ticks=[[], []]) # needs sage.symbolic Graphics object consisting of 1 graphics primitive @@ -3560,7 +3560,7 @@ def inset(self, graphics, pos=None, fontsize=None): # Deprecation notice for GraphicsArray import def GraphicsArray(*args, **kwargs): r""" - This is deprecated (see :trac:`28675`). + This is deprecated (see :issue:`28675`). Use :class:`sage.plot.multigraphics.GraphicsArray` instead. TESTS:: diff --git a/src/sage/plot/line.py b/src/sage/plot/line.py index 8e9cb97891f..1160ade0825 100644 --- a/src/sage/plot/line.py +++ b/src/sage/plot/line.py @@ -607,7 +607,7 @@ def line2d(points, **options): TESTS: - Check that :trac:`13690` is fixed. The legend label should have circles + Check that :issue:`13690` is fixed. The legend label should have circles as markers.:: sage: line(enumerate(range(2)), marker='o', legend_label='circle') diff --git a/src/sage/plot/matrix_plot.py b/src/sage/plot/matrix_plot.py index abaeb3e6fc4..96e966a6513 100644 --- a/src/sage/plot/matrix_plot.py +++ b/src/sage/plot/matrix_plot.py @@ -108,7 +108,7 @@ def get_minmax_data(self): TESTS: - We verify that :trac:`27891` is fixed:: + We verify that :issue:`27891` is fixed:: sage: p = matrix_plot(identity_matrix(5)) + point((2, 2), zorder=1) sage: sorted(p.get_minmax_data().items()) @@ -545,7 +545,7 @@ def matrix_plot(mat, xrange=None, yrange=None, **options): sage: matrix_plot(sparse, subdivisions=True, subdivision_boundaries=[[2,4],[6,8]]) Graphics object consisting of 1 graphics primitive - Test that matrix plots have aspect ratio one (see :trac:`15315`):: + Test that matrix plots have aspect ratio one (see :issue:`15315`):: sage: P = matrix_plot(random_matrix(RDF, 5)) sage: P.aspect_ratio() diff --git a/src/sage/plot/misc.py b/src/sage/plot/misc.py index fa06484c4cf..45494f45698 100644 --- a/src/sage/plot/misc.py +++ b/src/sage/plot/misc.py @@ -114,7 +114,7 @@ def setup_for_eval_on_grid(funcs, TESTS: Ensure that we can plot expressions with intermediate complex - terms as in :trac:`8450`:: + terms as in :issue:`8450`:: sage: x, y = SR.var('x y') sage: contour_plot(abs(x+i*y), (x,-1,1), (y,-1,1)) diff --git a/src/sage/plot/plot.py b/src/sage/plot/plot.py index b25ba785326..20a71ef8bd1 100644 --- a/src/sage/plot/plot.py +++ b/src/sage/plot/plot.py @@ -487,7 +487,7 @@ def f(x): return (x-3)*(x-5)*(x-7)+40 We test that ``imshow`` works as well, verifying that -:trac:`2900` is fixed (in Matplotlib). +:issue:`2900` is fixed (in Matplotlib). :: @@ -521,7 +521,7 @@ def f(x): return (x-3)*(x-5)*(x-7)+40 sage: os.system("sage -c \"if 'matplotlib' in sys.modules: sys.exit(1)\"") # long time 0 -Verify that :trac:`10980` is fixed:: +Verify that :issue:`10980` is fixed:: sage: plot(x,0,2,gridlines=([sqrt(2)],[])) Graphics object consisting of 1 graphics primitive @@ -559,11 +559,11 @@ def f(x): return (x-3)*(x-5)*(x-7)+40 - Jason Grout (2010-10): rewrote aspect ratio portions of the code -- Jeroen Demeyer (2012-04-19): move parts of this file to graphics.py (:trac:`12857`) +- Jeroen Demeyer (2012-04-19): move parts of this file to graphics.py (:issue:`12857`) - Aaron Lauve (2016-07-13): reworked handling of 'color' when passed a list of functions; now more in-line with other CAS's. Added list functionality - to linestyle and legend_label options as well. (:trac:`12962`) + to linestyle and legend_label options as well. (:issue:`12962`) - Eric Gourgoulhon (2019-04-24): add :func:`multi_graphics` and insets """ @@ -791,7 +791,7 @@ def xydata_from_point_list(points): ([0.0, 1.0], [0.0, 0.0]) This function should work for anything than can be turned into a - list, such as iterators and such (see :trac:`10478`):: + list, such as iterators and such (see :issue:`10478`):: sage: xydata_from_point_list(iter([(0,0), (sqrt(3), 2)])) ([0.0, 1.7320508075688772], [0.0, 2.0]) @@ -1318,7 +1318,7 @@ def plot(funcs, *args, **kwds): g = p1 + p2 sphinx_plot(g) - Prior to :trac:`19485`, legends by default had a shadowless gray + Prior to :issue:`19485`, legends by default had a shadowless gray background. This behavior can be recovered by setting the legend options on your plot object:: @@ -1970,14 +1970,14 @@ def f(x): return (floor(x)+0.5) / (1-(x-0.5)**2) ... ValueError: plot start point and end point must be different - We test that we can plot `f(x)=x` (see :trac:`10246`):: + We test that we can plot `f(x)=x` (see :issue:`10246`):: sage: f(x)=x; f x |--> x sage: plot(f,(x,-1,1)) Graphics object consisting of 1 graphics primitive - Check that :trac:`15030` is fixed:: + Check that :issue:`15030` is fixed:: sage: plot(abs(log(x)), x) Graphics object consisting of 1 graphics primitive @@ -1995,14 +1995,14 @@ def f(x): return (floor(x)+0.5) / (1-(x-0.5)**2) sage: set_verbose(0) - Legends can contain variables with long names, :trac:`13543`:: + Legends can contain variables with long names, :issue:`13543`:: sage: hello = var('hello') sage: label = '$' + latex(hello) + '$' sage: plot(x, x, 0, 1, legend_label=label) Graphics object consisting of 1 graphics primitive - Extra keywords should be saved if object has a plot method, :trac:`20924`:: + Extra keywords should be saved if object has a plot method, :issue:`20924`:: sage: G = graphs.PetersenGraph() sage: p = G.plot() @@ -2119,7 +2119,7 @@ def _plot(funcs, xrange, parametric=False, TESTS: Make sure that we get the right number of legend entries as the number of - functions varies (:trac:`10514`):: + functions varies (:issue:`10514`):: sage: p1 = plot(1*x, legend_label='1x') sage: p2 = plot(2*x, legend_label='2x', color='green') @@ -2144,7 +2144,7 @@ def _plot(funcs, xrange, parametric=False, Graphics object consisting of 2 graphics primitives Make sure that we don't get multiple legend labels for plot segments - (:trac:`11998`):: + (:issue:`11998`):: sage: p1 = plot(1/(x^2-1),(x,-2,2),legend_label="foo",detect_poles=True) sage: len(p1.matplotlib().axes[0].legend().texts) @@ -2152,12 +2152,12 @@ def _plot(funcs, xrange, parametric=False, sage: p1.show(ymin=-10,ymax=10) # should be one legend Parametric plots that get evaluated at invalid points should still - plot properly (:trac:`13246`):: + plot properly (:issue:`13246`):: sage: parametric_plot((x, arcsec(x)), (x, -2, 2)) Graphics object consisting of 1 graphics primitive - Verify that :trac:`31089` is fixed:: + Verify that :issue:`31089` is fixed:: sage: plot(x, -1, 1, detect_poles=True) Graphics object consisting of 1 graphics primitive @@ -2495,7 +2495,7 @@ def golden_rainbow(i,lightness=0.4): exclusion_point = excluded_points.pop() else: # default value of exclusion point must be outside the plot interval - # (see :trac:`31089`) + # (see :issue:`31089`) exclusion_point = xmax + 1 flag = True @@ -2725,7 +2725,7 @@ def parametric_plot(funcs, *args, **kwargs): ... ValueError: there are more variables than variable ranges - One test for :trac:`7165`:: + One test for :issue:`7165`:: sage: m = SR.var('m') sage: parametric_plot([real(exp(i*m)), imaginary(exp(i*m))], (m, 0, 7)) @@ -3084,7 +3084,7 @@ def list_plot(data, plotjoined=False, **kwargs): TESTS: We check to see whether elements of the Symbolic Ring are properly - handled; see :trac:`16378` :: + handled; see :issue:`16378` :: sage: list_plot([1+I, 2+I]) Graphics object consisting of 1 graphics primitive diff --git a/src/sage/plot/plot3d/base.pyx b/src/sage/plot/plot3d/base.pyx index b9dc7b310ca..66694f47a5f 100644 --- a/src/sage/plot/plot3d/base.pyx +++ b/src/sage/plot/plot3d/base.pyx @@ -2244,7 +2244,7 @@ end_scene""".format( """ Draw a 3D plot of this graphics object, which just returns this object since this is already a 3D graphics object. - Needed to support PLOT in docstrings, see :trac:`17498` + Needed to support PLOT in docstrings, see :issue:`17498` EXAMPLES:: @@ -2297,7 +2297,7 @@ class Graphics3dGroup(Graphics3d): sage: len(G.all) 10 - We check that :trac:`17258` is solved:: + We check that :issue:`17258` is solved:: sage: g = point3d([0,-2,-2]); g += point3d([2,-2,-2]) sage: len(g.all) @@ -2525,7 +2525,7 @@ class Graphics3dGroup(Graphics3d): TESTS: - Check that :trac:`23200` is fixed:: + Check that :issue:`23200` is fixed:: sage: G = sage.plot.plot3d.base.Graphics3dGroup() sage: G.texture_set() diff --git a/src/sage/plot/plot3d/implicit_plot3d.py b/src/sage/plot/plot3d/implicit_plot3d.py index 60a51a3dcbe..89512e2ae87 100644 --- a/src/sage/plot/plot3d/implicit_plot3d.py +++ b/src/sage/plot/plot3d/implicit_plot3d.py @@ -631,7 +631,7 @@ def metaball(x0, y0, z0): return 1 / ((x-x0)**2+(y-y0)**2+(z-z0)**2) TESTS: - Check for :trac:`10599`:: + Check for :issue:`10599`:: sage: var('x,y,z') (x, y, z) diff --git a/src/sage/plot/plot3d/index_face_set.pyx b/src/sage/plot/plot3d/index_face_set.pyx index 265bfc01513..dd7bfb2d38a 100644 --- a/src/sage/plot/plot3d/index_face_set.pyx +++ b/src/sage/plot/plot3d/index_face_set.pyx @@ -328,7 +328,7 @@ cdef class IndexFaceSet(PrimitiveObject): [(1.0, 0.0, 0.0), (0.0, 1.0, 0.0), (0.0, 0.0, 7.0)]] sage: S.show() - A simple example of colored IndexFaceSet (:trac:`12212`):: + A simple example of colored IndexFaceSet (:issue:`12212`):: sage: from sage.plot.plot3d.index_face_set import IndexFaceSet sage: from sage.plot.plot3d.texture import Texture @@ -1084,7 +1084,7 @@ cdef class IndexFaceSet(PrimitiveObject): TESTS: - One test for preservation of transparency :trac:`28783`:: + One test for preservation of transparency :issue:`28783`:: sage: # needs sage.symbolic sage: x,y,z = var('x,y,z') diff --git a/src/sage/plot/plot3d/list_plot3d.py b/src/sage/plot/plot3d/list_plot3d.py index 825c140f8ea..7bfd84f76a4 100644 --- a/src/sage/plot/plot3d/list_plot3d.py +++ b/src/sage/plot/plot3d/list_plot3d.py @@ -212,7 +212,7 @@ def list_plot3d(v, interpolation_type='default', point_list=None, **kwds): sphinx_plot(L) - Check that no NaNs are produced (see :trac:`13135`):: + Check that no NaNs are produced (see :issue:`13135`):: sage: any(math.isnan(c) for v in L.vertices() for c in v) False diff --git a/src/sage/plot/plot3d/parametric_plot3d.py b/src/sage/plot/plot3d/parametric_plot3d.py index afb2d6fa129..680cb187787 100644 --- a/src/sage/plot/plot3d/parametric_plot3d.py +++ b/src/sage/plot/plot3d/parametric_plot3d.py @@ -958,14 +958,14 @@ def g(x,y): return x, y+sin(y), x**2 + y**2 ValueError: range variables should be distinct, but there are duplicates - From :trac:`2858`:: + From :issue:`2858`:: sage: parametric_plot3d((u,-u,v), (u,-10,10),(v,-10,10)) Graphics3d Object sage: f(u)=u; g(v)=v^2; parametric_plot3d((g,f,f), (-10,10),(-10,10)) Graphics3d Object - From :trac:`5368`:: + From :issue:`5368`:: sage: x, y = var('x,y') sage: plot3d(x*y^2 - sin(x), (x,-1,1), (y,-1,1)) diff --git a/src/sage/plot/plot3d/parametric_surface.pyx b/src/sage/plot/plot3d/parametric_surface.pyx index 7399314961d..62e397030cd 100644 --- a/src/sage/plot/plot3d/parametric_surface.pyx +++ b/src/sage/plot/plot3d/parametric_surface.pyx @@ -357,7 +357,7 @@ cdef class ParametricSurface(IndexFaceSet): sage: print(s[0][:100]) {"vertices":[{"x":-2,"y":-2,"z":0},{"x":-2,"y":-1.89744,"z":0.399737},{"x":-1.89744,"y":-1.89744,"z" - One test for :trac:`22688`:: + One test for :issue:`22688`:: sage: P = spherical_plot3d(sqrt(x-pi/2),(x,0,pi),(y,0,2*pi)) sage: s = P.json_repr(P.default_render_params()) @@ -778,7 +778,7 @@ cdef class ParametricSurface(IndexFaceSet): """ Draw a 3D plot of this graphics object, which just returns this object since this is already a 3D graphics object. - Needed to support PLOT in doctrings, see :trac:`17498` + Needed to support PLOT in doctrings, see :issue:`17498` EXAMPLES:: diff --git a/src/sage/plot/plot3d/platonic.py b/src/sage/plot/plot3d/platonic.py index 94d15ab16ad..491179ede81 100644 --- a/src/sage/plot/plot3d/platonic.py +++ b/src/sage/plot/plot3d/platonic.py @@ -139,7 +139,7 @@ def prep(G, center, size, kwds): TESTS: Verify that scaling and moving the center work together properly, - and that keywords are passed (see :trac:`10796`):: + and that keywords are passed (see :issue:`10796`):: sage: octahedron(center=(2,0,0),size=2,color='red') Graphics3d Object @@ -385,7 +385,7 @@ def cube(center=(0, 0, 0), size=1, color=None, frame_thickness=0, sage: c.show(viewer='tachyon') - This shows :trac:`11272` has been fixed:: + This shows :issue:`11272` has been fixed:: sage: cube(center=(10, 10, 10), size=0.5).bounding_box() ((9.75, 9.75, 9.75), (10.25, 10.25, 10.25)) diff --git a/src/sage/plot/plot3d/plot3d.py b/src/sage/plot/plot3d/plot3d.py index fe8d4896426..2e027e87dd2 100644 --- a/src/sage/plot/plot3d/plot3d.py +++ b/src/sage/plot/plot3d/plot3d.py @@ -1063,7 +1063,7 @@ def plot3d(f, urange, vrange, adaptive=False, transformation=None, **kwds): ... ValueError: range variables should be distinct, but there are duplicates - Verify that :trac:`7423` is fixed:: + Verify that :issue:`7423` is fixed:: sage: f(x,y)=ln(x) sage: P=plot3d(f,(x,0,1),(y,0,1)) diff --git a/src/sage/plot/plot3d/plot_field3d.py b/src/sage/plot/plot3d/plot_field3d.py index a2c04f137a3..a18c49215be 100644 --- a/src/sage/plot/plot3d/plot_field3d.py +++ b/src/sage/plot/plot3d/plot_field3d.py @@ -123,7 +123,7 @@ def plot_vector_field3d(functions, xrange, yrange, zrange, TESTS: - This tests that :trac:`2100` is fixed in a way compatible with this command:: + This tests that :issue:`2100` is fixed in a way compatible with this command:: sage: plot_vector_field3d((x*cos(z),-y*cos(z),sin(z)), (x,0,pi), (y,0,pi), (z,0,pi),center_arrows=True,aspect_ratio=(1,2,1)) Graphics3d Object diff --git a/src/sage/plot/plot3d/shapes2.py b/src/sage/plot/plot3d/shapes2.py index 18e37bbfefe..96e4646bbc4 100644 --- a/src/sage/plot/plot3d/shapes2.py +++ b/src/sage/plot/plot3d/shapes2.py @@ -159,7 +159,7 @@ def tetra(col): sage: L = line3d(((0,0,0),(1,2,3))) This function should work for anything than can be turned into a - list, such as iterators and such (see :trac:`10478`):: + list, such as iterators and such (see :issue:`10478`):: sage: line3d(iter([(0,0,0), (sqrt(3), 2, 4)])) # needs sage.symbolic Graphics3d Object @@ -272,7 +272,7 @@ def bezier3d(path, **options): TESTS: - Check for :trac:`31640`:: + Check for :issue:`31640`:: sage: p2d = [[(3,0.0),(3,0.13),(2,0.2),(2,0.3)], ....: [(2.7,0.4),(2.6,0.5),(2.5,0.5)], [(2.3,0.5),(2.2,0.4),(2.1,0.3)]] @@ -1064,7 +1064,7 @@ class Line(PrimitiveObject): sage: Line([(0,0,0),(1,0,0),(2,1,0),(0,1,0)], corner_cutoff=0) Graphics3d Object - Make sure that the ``corner_cutoff`` keyword works (:trac:`3859`):: + Make sure that the ``corner_cutoff`` keyword works (:issue:`3859`):: sage: N = 11 sage: c = 0.4 @@ -1478,7 +1478,7 @@ def point3d(v, size=5, **kwds): import numpy sphinx_plot(point3d(numpy.array([[1,2,3], [4,5,6], [7,8,9]]))) - We check that iterators of points are accepted (:trac:`13890`):: + We check that iterators of points are accepted (:issue:`13890`):: sage: point3d(iter([(1,1,2),(2,3,4),(3,5,8)]), size=20, color='red') Graphics3d Object diff --git a/src/sage/plot/plot3d/tachyon.py b/src/sage/plot/plot3d/tachyon.py index 05cd9b13ab4..4e8184a7816 100644 --- a/src/sage/plot/plot3d/tachyon.py +++ b/src/sage/plot/plot3d/tachyon.py @@ -148,11 +148,11 @@ - Tom Boothby: 3d function plotting n'stuff -- Leif Hille: key idea for bugfix for texfunc issue (:trac:`799`) +- Leif Hille: key idea for bugfix for texfunc issue (:issue:`799`) - Marshall Hampton: improved doctests, rings, axis-aligned boxes. -- Paul Graham: Respect global verbosity settings (:trac:`16228`) +- Paul Graham: Respect global verbosity settings (:issue:`16228`) .. TODO:: @@ -316,7 +316,7 @@ class Tachyon(WithEqualityById, SageObject): If the optional parameter ``viewdir`` is not set, the camera center should not coincide with the point which - is looked at (see :trac:`7232`):: + is looked at (see :issue:`7232`):: sage: t = Tachyon(xres=80,yres=80, camera_position=(2,5,2), look_at=(2,5,2)) Traceback (most recent call last): diff --git a/src/sage/plot/plot_field.py b/src/sage/plot/plot_field.py index 9b2746c5a27..a54a6db185b 100644 --- a/src/sage/plot/plot_field.py +++ b/src/sage/plot/plot_field.py @@ -119,8 +119,8 @@ def _repr_(self): TESTS: - We check that :trac:`15052` is fixed - (note that in general :trac:`15002` should be fixed):: + We check that :issue:`15052` is fixed + (note that in general :issue:`15002` should be fixed):: sage: x,y=var('x,y') sage: P=plot_vector_field((sin(x), cos(y)), (x,-3,3), (y,-3,3), wrong_option='nonsense') @@ -335,7 +335,7 @@ def plot_slope_field(f, xrange, yrange, **kwds): TESTS: Verify that we're not getting warnings due to use of headless quivers - (:trac:`11208`):: + (:issue:`11208`):: sage: x,y = var('x y') sage: import numpy # bump warnings up to errors for testing purposes diff --git a/src/sage/plot/point.py b/src/sage/plot/point.py index 7e880ca3c1c..9377d2bec85 100644 --- a/src/sage/plot/point.py +++ b/src/sage/plot/point.py @@ -283,7 +283,7 @@ def _render_on_subplot(self, subplot): r""" TESTS: - We check to make sure that :trac:`2076` is fixed by verifying all + We check to make sure that :issue:`2076` is fixed by verifying all the points are red:: sage: point(((1, 1), (2, 2), (3, 3)), rgbcolor=hue(1), size=30) @@ -379,7 +379,7 @@ def point(points, **kwds): TESTS: - One can now use iterators (:trac:`13890`):: + One can now use iterators (:issue:`13890`):: sage: point(iter([(1, 1, 1)])) Graphics3d Object @@ -539,7 +539,7 @@ def point2d(points, **options): sphinx_plot(point([(1, 2),(2, 4),(3, 4),(4, 8),(4.5, 32)], scale='semilogy', base=2)) - Since Sage Version 4.4 (:trac:`8599`), the size of a 2d point can be + Since Sage Version 4.4 (:issue:`8599`), the size of a 2d point can be given by the argument ``size`` instead of ``pointsize``. The argument ``pointsize`` is still supported:: diff --git a/src/sage/probability/probability_distribution.pyx b/src/sage/probability/probability_distribution.pyx index 1f120cd6089..e2c71af9c25 100644 --- a/src/sage/probability/probability_distribution.pyx +++ b/src/sage/probability/probability_distribution.pyx @@ -205,7 +205,7 @@ cdef class SphericalDistribution(ProbabilityDistribution): TESTS: Make sure that repeated initializations are randomly seeded - (:trac:`9770`):: + (:issue:`9770`):: sage: Xs = [tuple(SphericalDistribution(2).get_random_element()) for _ in range(1000)] sage: len(set(Xs)) > 2^^32 @@ -228,7 +228,7 @@ cdef class SphericalDistribution(ProbabilityDistribution): TESTS: - Until :trac:`15089` a value of the ``seed`` keyword + Until :issue:`15089` a value of the ``seed`` keyword besides ``None`` was ignored. We check here that setting a seed is effective. :: @@ -561,7 +561,7 @@ cdef class RealDistribution(ProbabilityDistribution): TESTS: Make sure that repeated initializations are randomly seeded - (:trac:`9770`):: + (:issue:`9770`):: sage: Xs = [RealDistribution('gaussian', 1).get_random_element() for _ in range(1000)] sage: len(set(Xs)) > 2^^32 @@ -589,7 +589,7 @@ cdef class RealDistribution(ProbabilityDistribution): TESTS: - Until :trac:`15089` a value of the ``seed`` keyword + Until :issue:`15089` a value of the ``seed`` keyword besides ``None`` was ignored. We check here that setting a seed is effective. :: @@ -1083,7 +1083,7 @@ cdef class GeneralDiscreteDistribution(ProbabilityDistribution): TESTS: Make sure that repeated initializations are randomly seeded - (:trac:`9770`):: + (:issue:`9770`):: sage: P = [0.001] * 1000 sage: Xs = [GeneralDiscreteDistribution(P).get_random_element() for _ in range(1000)] @@ -1115,7 +1115,7 @@ cdef class GeneralDiscreteDistribution(ProbabilityDistribution): TESTS: - Until :trac:`15089` a value of the ``seed`` keyword + Until :issue:`15089` a value of the ``seed`` keyword besides ``None`` was ignored. We check here that setting a seed is effective. :: @@ -1131,7 +1131,7 @@ cdef class GeneralDiscreteDistribution(ProbabilityDistribution): sage: one == three False - Testing that :trac:`24416` is fixed for when entries are larger + Testing that :issue:`24416` is fixed for when entries are larger than `2^{1024}`:: sage: from collections import Counter diff --git a/src/sage/quadratic_forms/binary_qf.py b/src/sage/quadratic_forms/binary_qf.py index 555fe01b3ef..db36d9c7a3e 100755 --- a/src/sage/quadratic_forms/binary_qf.py +++ b/src/sage/quadratic_forms/binary_qf.py @@ -908,7 +908,7 @@ def reduced_form(self, transformation=False, algorithm="default"): TESTS: - Check for :trac:`34229`:: + Check for :issue:`34229`:: sage: BinaryQF([1,2,3]).reduced_form(transformation=True) # needs sage.libs.pari ( @@ -1118,7 +1118,7 @@ def cycle(self, proper=False): TESTS: - Check an example in :trac:`28989`:: + Check an example in :issue:`28989`:: sage: Q = BinaryQF(1, 1, -1) sage: Q.cycle(proper=True) @@ -1332,7 +1332,7 @@ def is_equivalent(self, other, proper=True): TESTS: - We check that :trac:`25888` is fixed:: + We check that :issue:`25888` is fixed:: sage: # needs sage.libs.pari sage: Q1 = BinaryQF(3, 4, -2) @@ -1344,7 +1344,7 @@ def is_equivalent(self, other, proper=True): sage: Q1.is_equivalent(Q2, proper=True) True - We check that the first part of :trac:`29028` is fixed:: + We check that the first part of :issue:`29028` is fixed:: sage: Q = BinaryQF(0, 2, 0) sage: Q.discriminant() @@ -1361,7 +1361,7 @@ def is_equivalent(self, other, proper=True): sage: Q1.is_equivalent(Q2, proper=False) # needs sage.libs.pari True - Test another part of :trac:`28989`:: + Test another part of :issue:`28989`:: sage: Q1, Q2 = BinaryQF(1, 1, -1), BinaryQF(-1, 1, 1) sage: Q1.is_equivalent(Q2, proper=True) # needs sage.libs.pari @@ -1692,7 +1692,7 @@ def solve_integer(self, n, *, algorithm="general"): sage: (xy is None) == (Q3.solve_integer(4*n) is None) True - Test for square discriminants specifically (:trac:`33026`):: + Test for square discriminants specifically (:issue:`33026`):: sage: n = randrange(-10^3, 10^3) sage: Q = BinaryQF([n, randrange(-10^3, 10^3), 0][::(-1)**randrange(2)]) @@ -1885,7 +1885,7 @@ def BinaryQF_reduced_representatives(D, primitive_only=False, proper=True): 4*x^2 + 6*x*y - 7*y^2, 6*x^2 + 2*x*y - 6*y^2] - Test another part of :trac:`29028`:: + Test another part of :issue:`29028`:: sage: BinaryQF_reduced_representatives(10^2, proper=False, primitive_only=False) [-4*x^2 + 10*x*y, diff --git a/src/sage/quadratic_forms/genera/genus.py b/src/sage/quadratic_forms/genera/genus.py index 8946683a988..7a09c5af83c 100644 --- a/src/sage/quadratic_forms/genera/genus.py +++ b/src/sage/quadratic_forms/genera/genus.py @@ -644,7 +644,7 @@ def canonical_2_adic_trains(genus_symbol_quintuple_list, compartments=None): sage: canonical_2_adic_trains(symbol) [[0, 1, 2, 3, 4, 5], [6], [7, 8, 9]] - Check that :trac:`24818` is fixed:: + Check that :issue:`24818` is fixed:: sage: symbol = [[0, 1, 1, 1, 1], [1, 3, 1, 1, 1]] sage: canonical_2_adic_trains(symbol) @@ -1311,7 +1311,7 @@ def __repr__(self): TESTS: - Check that :trac:`25776` is fixed:: + Check that :issue:`25776` is fixed:: sage: G = Genus(matrix.diagonal([2,2,64])) sage: G diff --git a/src/sage/quadratic_forms/qfsolve.py b/src/sage/quadratic_forms/qfsolve.py index ff91830874c..83720128bfc 100644 --- a/src/sage/quadratic_forms/qfsolve.py +++ b/src/sage/quadratic_forms/qfsolve.py @@ -11,7 +11,7 @@ - Nick Alexander (Sage interface) - Jeroen Demeyer (2014-09-23): use PARI instead of GP scripts, - return vectors instead of tuples (:trac:`16997`). + return vectors instead of tuples (:issue:`16997`). - Tyler Gaona (2015-11-14): added the `solve` method """ @@ -133,7 +133,7 @@ def solve(self, c=0): ALGORITHM: - Uses PARI's :pari:`qfsolve`. Algorithm described by Jeroen Demeyer; see comments on :trac:`19112` + Uses PARI's :pari:`qfsolve`. Algorithm described by Jeroen Demeyer; see comments on :issue:`19112` EXAMPLES:: diff --git a/src/sage/quadratic_forms/quadratic_form.py b/src/sage/quadratic_forms/quadratic_form.py index c15b8b1c1dc..b9a9767a54a 100644 --- a/src/sage/quadratic_forms/quadratic_form.py +++ b/src/sage/quadratic_forms/quadratic_form.py @@ -110,7 +110,7 @@ def quadratic_form_from_invariants(F, rk, det, P, sminus): TESTS: - This shows that :trac:`28955` is fixed:: + This shows that :issue:`28955` is fixed:: sage: quadratic_form_from_invariants(QQ,3,2,[2],2) # needs sage.rings.padics Quadratic form in 3 variables over Rational Field with coefficients: diff --git a/src/sage/quadratic_forms/quadratic_form__equivalence_testing.py b/src/sage/quadratic_forms/quadratic_form__equivalence_testing.py index 2bd4df8f890..89d4c281104 100644 --- a/src/sage/quadratic_forms/quadratic_form__equivalence_testing.py +++ b/src/sage/quadratic_forms/quadratic_form__equivalence_testing.py @@ -85,7 +85,7 @@ def is_globally_equivalent_to(self, other, return_matrix=False): TESTS: - :trac:`27749` is fixed:: + :issue:`27749` is fixed:: sage: Q = QuadraticForm(ZZ, 2, [2, 3, 5]) sage: P = QuadraticForm(ZZ, 2, [8, 6, 5]) diff --git a/src/sage/quivers/algebra.py b/src/sage/quivers/algebra.py index 98e05593177..393caa64f40 100644 --- a/src/sage/quivers/algebra.py +++ b/src/sage/quivers/algebra.py @@ -640,8 +640,8 @@ def homogeneous_components(self): .. WARNING:: - Backward incompatible change: since :trac:`12630` and - until :trac:`8678`, this feature was implemented under + Backward incompatible change: since :issue:`12630` and + until :issue:`8678`, this feature was implemented under the syntax ``list(A)`` by means of ``A.__iter__``. This was incorrect since ``A.__iter__``, when defined for a parent, should iterate through the elements of `A`. diff --git a/src/sage/quivers/morphism.py b/src/sage/quivers/morphism.py index 7fcbb501151..b2f3d33e0df 100644 --- a/src/sage/quivers/morphism.py +++ b/src/sage/quivers/morphism.py @@ -325,7 +325,7 @@ def _call_(self, x): sage: h(S.gens()[1]) == y True - The following was an issue during work on :trac:`12630`:: + The following was an issue during work on :issue:`12630`:: sage: Q = DiGraph({1: {}}).path_semigroup() sage: M = Q.I(GF(3), 1) diff --git a/src/sage/quivers/paths.pyx b/src/sage/quivers/paths.pyx index 38fdc03beba..12cd7b4ad1e 100644 --- a/src/sage/quivers/paths.pyx +++ b/src/sage/quivers/paths.pyx @@ -381,7 +381,7 @@ cdef class QuiverPath(MonoidElement): sage: list(range(6))[4:1] [] - The following was fixed in :trac:`22278`. A path slice of length + The following was fixed in :issue:`22278`. A path slice of length zero of course has a specific start- and endpoint. It is always the startpoint of the arrow corresponding to the first item of the range:: diff --git a/src/sage/repl/display/fancy_repr.py b/src/sage/repl/display/fancy_repr.py index 77949a4b578..1cfaf94c45f 100644 --- a/src/sage/repl/display/fancy_repr.py +++ b/src/sage/repl/display/fancy_repr.py @@ -316,7 +316,7 @@ def __call__(self, obj, p, cycle): sage: format_list([1, 2, identity_matrix(2)]) # needs sage.modules '[\n [1 0]\n1, 2, [0 1]\n]' - Check that :trac:`18743` is fixed:: + Check that :issue:`18743` is fixed:: sage: class Foo(): ....: def __repr__(self): diff --git a/src/sage/repl/display/pretty_print.py b/src/sage/repl/display/pretty_print.py index ec2aefbd7ad..95a5f86a520 100644 --- a/src/sage/repl/display/pretty_print.py +++ b/src/sage/repl/display/pretty_print.py @@ -87,7 +87,7 @@ def __init__(self, output, max_width, newline, max_seq_length=None): These are overridden in IPython in a way that we feel is somewhat confusing, and we prefer to print them like plain Python which is - more informative. See :trac:`14466` :: + more informative. See :issue:`14466` :: sage: 'this is a string' 'this is a string' diff --git a/src/sage/repl/inputhook.py b/src/sage/repl/inputhook.py index 7b88605682e..8d79110ebbf 100644 --- a/src/sage/repl/inputhook.py +++ b/src/sage/repl/inputhook.py @@ -57,7 +57,7 @@ def install(): sage: get_test_shell() - Run the function twice, to check it is idempotent (see :trac:`35235`):: + Run the function twice, to check it is idempotent (see :issue:`35235`):: sage: from sage.repl.inputhook import install sage: install() diff --git a/src/sage/repl/interpreter.py b/src/sage/repl/interpreter.py index 4ddb8aa94a3..abd2c4fcad1 100644 --- a/src/sage/repl/interpreter.py +++ b/src/sage/repl/interpreter.py @@ -100,7 +100,7 @@ sage: spt(["....: 2+2"]) ['2+2'] -This should strip multiple prompts: see :trac:`16297`:: +This should strip multiple prompts: see :issue:`16297`:: sage: spt(["sage: sage: 2+2"]) ['2+2'] @@ -122,7 +122,7 @@ sage: shell.run_cell('sage: a = [\n... 123]') # old-style multi-line sage: shell.run_cell('sage: a = [\n....: 123]') # new-style multi-line -We test that :trac:`16196` is resolved:: +We test that :issue:`16196` is resolved:: sage: shell.run_cell(' sage: 1+1') 2 @@ -434,7 +434,7 @@ def SagePreparseTransformer(lines): TESTS: Check that syntax errors in the preparser do not crash IPython, - see :trac:`14961`. :: + see :issue:`14961`. :: sage: preparser(True) sage: bad_syntax = "R. = QQ{]" @@ -451,7 +451,7 @@ def SagePreparseTransformer(lines): sage: shell.quit() Make sure the quote state is carried over across subsequent lines in order - to avoid interfering with multi-line strings, see :trac:`30417`. :: + to avoid interfering with multi-line strings, see :issue:`30417`. :: sage: SagePreparseTransformer(["'''\n", 'abc-1-2\n', "'''\n"]) ["'''\n", 'abc-1-2\n', "'''\n"] @@ -575,7 +575,7 @@ def preparse_imports_from_sage(self, line): sage: ift.preparse_imports_from_sage('2 + gap(a)') '2 + gap(a)' - Since :trac:`28439`, this also works with more complicated expressions + Since :issue:`28439`, this also works with more complicated expressions containing nested parentheses:: sage: # needs sage.libs.gap sage.symbolic @@ -637,7 +637,7 @@ def transform(self, line, continue_prompt): TESTS: Check that whitespace is not stripped and that special characters are - escaped (:trac:`28439`):: + escaped (:issue:`28439`):: sage: shell = interface_shell_embed(gap) # needs sage.libs.gap sage.symbolic sage: ift = InterfaceShellTransformer(shell=shell, config=shell.config, # needs sage.libs.gap sage.symbolic @@ -725,7 +725,7 @@ def get_test_shell(): TESTS: - Check that :trac:`14070` has been resolved:: + Check that :issue:`14070` has been resolved:: sage: from sage.tests.cmdline import test_executable sage: cmd = 'from sage.repl.interpreter import get_test_shell; shell = get_test_shell()' @@ -799,7 +799,7 @@ def load_config_file(self, *args, **kwds): TESTS: - Test that :trac:`15972` has been fixed:: + Test that :issue:`15972` has been fixed:: sage: import tempfile sage: from sage.repl.interpreter import SageTerminalApp diff --git a/src/sage/repl/ipython_extension.py b/src/sage/repl/ipython_extension.py index c447388f766..f9b165847d8 100644 --- a/src/sage/repl/ipython_extension.py +++ b/src/sage/repl/ipython_extension.py @@ -509,7 +509,7 @@ def init_line_transforms(self): TESTS: - Check that :trac:`31951` is fixed:: + Check that :issue:`31951` is fixed:: sage: from IPython import get_ipython sage: ip = get_ipython() diff --git a/src/sage/repl/ipython_kernel/install.py b/src/sage/repl/ipython_kernel/install.py index e62c0175331..9b5ab3486c7 100644 --- a/src/sage/repl/ipython_kernel/install.py +++ b/src/sage/repl/ipython_kernel/install.py @@ -283,7 +283,7 @@ def have_prerequisites(debug=True): Check that we have all prerequisites to run the Jupyter notebook. In particular, the Jupyter notebook requires OpenSSL whether or - not you are using https. See :trac:`17318`. + not you are using https. See :issue:`17318`. INPUT: diff --git a/src/sage/repl/ipython_kernel/kernel.py b/src/sage/repl/ipython_kernel/kernel.py index ce5ce6bf65d..5398270160e 100644 --- a/src/sage/repl/ipython_kernel/kernel.py +++ b/src/sage/repl/ipython_kernel/kernel.py @@ -202,7 +202,7 @@ def pre_handler_hook(self): attribute. This is needed because Jupyter needs to change the ``SIGINT`` handler. - See :trac:`19135`. + See :issue:`19135`. TESTS:: diff --git a/src/sage/repl/ipython_tests.py b/src/sage/repl/ipython_tests.py index ca568eb903c..74a76c84d68 100644 --- a/src/sage/repl/ipython_tests.py +++ b/src/sage/repl/ipython_tests.py @@ -44,7 +44,7 @@ Type: type ... -Next, test the ``pinfo`` magic for ``R`` interface code, see :trac:`26906`:: +Next, test the ``pinfo`` magic for ``R`` interface code, see :issue:`26906`:: sage: from sage.repl.interpreter import get_test_shell # optional - rpy2 sage: shell = get_test_shell() # optional - rpy2 @@ -120,7 +120,7 @@ def __cinit__(self): Type: type ... -Next, test the ``pinfo2`` magic for ``R`` interface code, see :trac:`26906`:: +Next, test the ``pinfo2`` magic for ``R`` interface code, see :issue:`26906`:: sage: from sage.repl.interpreter import get_test_shell # optional - rpy2 sage: shell = get_test_shell() # optional - rpy2 diff --git a/src/sage/repl/preparse.py b/src/sage/repl/preparse.py index 18ab18fdeaa..205686d2425 100644 --- a/src/sage/repl/preparse.py +++ b/src/sage/repl/preparse.py @@ -52,7 +52,7 @@ sage: type(0Xa1R) -The preparser can handle PEP 515 (see :trac:`28490`):: +The preparser can handle PEP 515 (see :issue:`28490`):: sage: 1_000_000 + 3_000 1003000 @@ -1039,7 +1039,7 @@ def parse_ellipsis(code, preparse_step=True): TESTS: - Check that nested ellipsis is processed correctly (:trac:`17378`):: + Check that nested ellipsis is processed correctly (:issue:`17378`):: sage: preparse('[1,..,2,..,len([1..3])]') '(ellipsis_range(Integer(1),Ellipsis,Integer(2),Ellipsis,len((ellipsis_range(Integer(1),Ellipsis,Integer(3))))))' @@ -1429,7 +1429,7 @@ def preparse_calculus(code): TESTS: - The arguments in the definition must be symbolic variables (:trac:`10747`):: + The arguments in the definition must be symbolic variables (:issue:`10747`):: sage: preparse_calculus(";f(_sage_const_)=x;") Traceback (most recent call last): @@ -1454,12 +1454,12 @@ def preparse_calculus(code): ... ValueError: argument names should be valid python identifiers - Check support for unicode characters (:trac:`29278`):: + Check support for unicode characters (:issue:`29278`):: sage: preparse("μ(x) = x^2") '__tmp__=var("x"); μ = symbolic_expression(x**Integer(2)).function(x)' - Check that the parameter list can span multiple lines (:trac:`30928`):: + Check that the parameter list can span multiple lines (:issue:`30928`):: sage: preparse(''' ....: f(a, @@ -1469,7 +1469,7 @@ def preparse_calculus(code): ....: ''') '\n__tmp__=var("a,b,c,d"); f = symbolic_expression(a + b*Integer(2) + c*Integer(3) + d*Integer(4)).function(a,b,c,d)\n' - Check that :trac:`30953` is fixed:: + Check that :issue:`30953` is fixed:: sage: preparse(''' ....: f(x) = (x + (x*x) + # some comment with matching ) @@ -1619,17 +1619,17 @@ def preparse_generators(code): sage: preparse_generators("; R.=ZZ[];") "; R = ZZ['x']; (x,) = R._first_ngens(1);" - See :trac:`16731`:: + See :issue:`16731`:: sage: preparse_generators('R. = ') 'R. = ' - Check support for unicode characters (:trac:`29278`):: + Check support for unicode characters (:issue:`29278`):: sage: preparse('Ω.<λ,μ> = QQ[]') "Ω = QQ['λ, μ']; (λ, μ,) = Ω._first_ngens(2)" - Check that :trac:`30953` is fixed:: + Check that :issue:`30953` is fixed:: sage: preparse(''' ....: K. = QuadraticField(2 + @@ -1746,18 +1746,18 @@ def preparse(line, reset=True, do_time=False, ignore_prompts=False, TESTS: - Check support for unicode characters (:trac:`29278`):: + Check support for unicode characters (:issue:`29278`):: sage: preparse("Ω.0") 'Ω.gen(0)' - Check support for backslash line continuation (:trac:`30928`):: + Check support for backslash line continuation (:issue:`30928`):: sage: preparse("f(x) = x \\\n+ 1") '__tmp__=var("x"); f = symbolic_expression(x + Integer(1)).function(x)' Check that multi-line strings starting with a comment are still preparsed - (:trac:`31043`):: + (:issue:`31043`):: sage: print(preparse('''# some comment ....: f(x) = x + 1''')) @@ -1907,7 +1907,7 @@ def preparse_file(contents, globals=None, numeric_literals=True): _sage_const_100 = Integer(100) type(100 ), type(_sage_const_100 ) - Check that :trac:`4545` is fixed:: + Check that :issue:`4545` is fixed:: sage: file_contents = ''' ....: @parallel(8) @@ -1995,26 +1995,26 @@ def implicit_mul(code, level=5): TESTS: - Check handling of Python 3 keywords (:trac:`29391`):: + Check handling of Python 3 keywords (:issue:`29391`):: sage: implicit_mul('nonlocal a') 'nonlocal a' Although these are not keywords in Python 3, we explicitly avoid implicit multiplication in these cases because the error message will be more - helpful (:trac:`29391`):: + helpful (:issue:`29391`):: sage: implicit_mul('print 2') 'print 2' sage: implicit_mul('exec s') 'exec s' - Check support for unicode characters (:trac:`29278`):: + Check support for unicode characters (:issue:`29278`):: sage: implicit_mul('3λ') '3*λ' - Check support for complex literals (:trac:`30477`):: + Check support for complex literals (:issue:`30477`):: sage: implicit_mul('2r-1JR') '2r-1JR' @@ -2185,7 +2185,7 @@ def handle_encoding_declaration(contents, out): AUTHORS: - Lars Fischer - - Dan Drake (2010-12-08, rewrite for :trac:`10440`) + - Dan Drake (2010-12-08, rewrite for :issue:`10440`) """ lines = contents.splitlines() for num, line in enumerate(lines[:2]): diff --git a/src/sage/repl/user_globals.py b/src/sage/repl/user_globals.py index 73c13c44690..75686da1a55 100644 --- a/src/sage/repl/user_globals.py +++ b/src/sage/repl/user_globals.py @@ -48,7 +48,7 @@ AUTHORS: -- Jeroen Demeyer (2015-03-30): initial version (:trac:`12446`) +- Jeroen Demeyer (2015-03-30): initial version (:issue:`12446`) """ # **************************************************************************** diff --git a/src/sage/rings/algebraic_closure_finite_field.py b/src/sage/rings/algebraic_closure_finite_field.py index d7ad457f88c..9e97df6517d 100644 --- a/src/sage/rings/algebraic_closure_finite_field.py +++ b/src/sage/rings/algebraic_closure_finite_field.py @@ -138,7 +138,7 @@ def __hash__(self): sage: X.extend([z3, z3**2, z3*z4]) sage: assert len(X) == len(set(hash(x) for x in X)) - Check that :trac:`19956` is fixed:: + Check that :issue:`19956` is fixed:: sage: R. = GF(2).algebraic_closure()[] sage: x.resultant(y) @@ -501,7 +501,7 @@ def as_finite_field_element(self, minimal=False): Finite Field of size 3 This also works when the element has to be converted between - two non-trivial finite subfields (see :trac:`16509`):: + two non-trivial finite subfields (see :issue:`16509`):: sage: K = GF(5).algebraic_closure() sage: z = K.gen(5) - K.gen(5) + K.gen(2) diff --git a/src/sage/rings/asymptotic/asymptotic_expansion_generators.py b/src/sage/rings/asymptotic/asymptotic_expansion_generators.py index 61d8238332d..2d0569cce1e 100644 --- a/src/sage/rings/asymptotic/asymptotic_expansion_generators.py +++ b/src/sage/rings/asymptotic/asymptotic_expansion_generators.py @@ -169,7 +169,7 @@ def Stirling(var, precision=None, skip_constant_factor=False): ... ValueError: precision must be at least 3 - Check that :trac:`20066` is resolved:: + Check that :issue:`20066` is resolved:: sage: set_series_precision(5) sage: asymptotic_expansions.Stirling('n') @@ -558,7 +558,7 @@ def Binomial_kn_over_n(var, k, precision=None, skip_constant_factor=False): ....: for k in [2, 3, 4]) True - Check that :trac:`20066` is resolved:: + Check that :issue:`20066` is resolved:: sage: set_series_precision(3) sage: asymptotic_expansions.Binomial_kn_over_n('n', k=2) @@ -1073,7 +1073,7 @@ def ImplicitExpansion(var, phi, tau=None, precision=None): .. NOTE:: In the given case, the radius of convergence of the function of - interest is known to be `\rho = \tau/\Phi(\tau)`. Until :trac:`20050` + interest is known to be `\rho = \tau/\Phi(\tau)`. Until :issue:`20050` is implemented, the variable in the returned asymptotic expansion represents a singular element of the form `(1 - z/\rho)^{-1}`, for the variable `z\to\rho`. @@ -1246,7 +1246,7 @@ def ImplicitExpansionPeriodicPart(var, phi, period, tau=None, precision=None): .. NOTE:: In the given case, the radius of convergence of the function of - interest is known to be `\rho = \tau/\Phi(\tau)`. Until :trac:`20050` + interest is known to be `\rho = \tau/\Phi(\tau)`. Until :issue:`20050` is implemented, the variable in the returned asymptotic expansion represents a singular element of the form `(1 - z/\rho)^{-1}`, for the variable `z\to\rho`. diff --git a/src/sage/rings/asymptotic/asymptotic_ring.py b/src/sage/rings/asymptotic/asymptotic_ring.py index 3bbc58adad8..49fd9ece256 100644 --- a/src/sage/rings/asymptotic/asymptotic_ring.py +++ b/src/sage/rings/asymptotic/asymptotic_ring.py @@ -646,7 +646,7 @@ def __init__(self, parent, summands, simplify=True, convert=True): Exact Term Monoid x^QQ with coefficients in Integer Ring. >> *previous* TypeError: no conversion of this rational to integer - Check :trac:`19921`:: + Check :issue:`19921`:: sage: CR. = QQ['Z'] sage: CR_mod = CR.quotient((Z^2 - 1)*CR) @@ -656,7 +656,7 @@ def __init__(self, parent, summands, simplify=True, convert=True): sage: R_mod(e) 1 - Check that :trac:`19999` is resolved:: + Check that :issue:`19999` is resolved:: sage: A. = AsymptoticRing('(QQ_+)^x * x^QQ * UU^x', QQ) sage: 1 + (-1)^x + 2^x + (-2)^x @@ -1292,7 +1292,7 @@ def _div_(self, other): TESTS: - See :trac:`19521`:: + See :issue:`19521`:: sage: A. = AsymptoticRing('n^ZZ', SR.subring(no_variables=True)) sage: (A.one() / 1).parent() @@ -1566,7 +1566,7 @@ def __pow__(self, exponent, precision=None): TESTS: - See :trac:`19110`:: + See :issue:`19110`:: sage: O(x)^(-1) Traceback (most recent call last): @@ -1604,13 +1604,13 @@ def __pow__(self, exponent, precision=None): > *previous* ValueError: Cannot determine main term of s + t since there are several maximal elements s, t. - Check that :trac:`19945` is fixed:: + Check that :issue:`19945` is fixed:: sage: A. = AsymptoticRing('QQ^n * n^QQ', ZZ) sage: (1/2)^n (1/2)^n - Check that :trac:`19946` is fixed:: + Check that :issue:`19946` is fixed:: sage: assume(SR.an_element() > 0) sage: A. = AsymptoticRing('QQ^n * n^QQ', SR) @@ -1624,7 +1624,7 @@ def __pow__(self, exponent, precision=None): Asymptotic Ring over Symbolic Ring sage: forget() - :trac:`22120`:: + :issue:`22120`:: sage: A. = AsymptoticRing('w^QQbar', QQ) sage: w^QQbar(sqrt(2)) @@ -2169,7 +2169,7 @@ def rpow(self, base, precision=None, locals=None): 'Growth Group x^ZZ' and 'Growth Group SR^x' sage: forget() - Check that :trac:`19946` is fixed:: + Check that :issue:`19946` is fixed:: sage: A. = AsymptoticRing('(QQ_+)^n * n^QQ', SR) sage: n.rpow(2) @@ -2445,7 +2445,7 @@ def exp(self, precision=None): sage: exp(x+1) e*e^x - See :trac:`19521`:: + See :issue:`19521`:: sage: A. = AsymptoticRing('n^ZZ', SR.subring(no_variables=True)) sage: exp(O(n^(-3))).parent() @@ -3274,7 +3274,7 @@ def _singularity_analysis_(self, var, zeta, precision=None): .. WARNING:: Once singular expansions around points other than infinity - are implemented (:trac:`20050`), this method will be + are implemented (:issue:`20050`), this method will be renamed to ``singularity_analysis``, the parameter ``zeta`` will be dropped (as it will be part of the singular expansion) and expansions around infinity will no @@ -4418,7 +4418,7 @@ def coefficients_of_generating_function(self, function, singularities, precision .. WARNING:: Once singular expansions around points other than infinity - are implemented (:trac:`20050`), the output in the case + are implemented (:issue:`20050`), the output in the case ``return_singular_expansions`` will change to return singular expansions around the singularities. @@ -4617,7 +4617,7 @@ def construction(self): TESTS: - :trac:`22392`:: + :issue:`22392`:: sage: from sage.rings.asymptotic.asymptotic_ring import AsymptoticRing sage: class MyAsymptoticRing(AsymptoticRing): @@ -4748,7 +4748,7 @@ def _repr_(self) -> str: sage: AsymptoticRing(growth_group='x^ZZ', coefficient_ring=QQ).construction()[0] # indirect doctest AsymptoticRing - :trac:`22392`:: + :issue:`22392`:: sage: from sage.rings.asymptotic.asymptotic_ring import AsymptoticRing sage: class MyAsymptoticRing(AsymptoticRing): @@ -4781,7 +4781,7 @@ def _apply_functor(self, coefficient_ring): TESTS: - :trac:`22392`:: + :issue:`22392`:: sage: from sage.rings.asymptotic.asymptotic_ring import AsymptoticRing sage: class MyAsymptoticRing(AsymptoticRing): @@ -4796,7 +4796,7 @@ def _apply_functor(self, coefficient_ring): sage: type(P(2) * A.gen()) - :trac:`22396`:: + :issue:`22396`:: sage: A. = AsymptoticRing('ZZ^n * n^ZZ', ZZ, default_prec=3) sage: 1/(QQ(1)+n) @@ -4837,7 +4837,7 @@ def merge(self, other): TESTS: - :trac:`22396`:: + :issue:`22396`:: sage: AN = AsymptoticRing(growth_group='y^ZZ', coefficient_ring=QQ) sage: F_AN = AN.construction()[0]; F_AN._default_prec_ = None diff --git a/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py b/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py index c91ea7a6e0a..5659f351cfd 100644 --- a/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py +++ b/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py @@ -1336,7 +1336,7 @@ def cohomology_decomposition(self): sage: FFPD(1, [(x, 1), (y, 2)]).cohomology_decomposition() (0, []) - The following example was fixed in :trac:`29465`:: + The following example was fixed in :issue:`29465`:: sage: p = 1 sage: qs = [(x*y - 1, 1), (x**2 + y**2 - 1, 2)] @@ -1415,7 +1415,7 @@ def cohomology_decomposition(self): # The parity epsilon from [AY1983, eq. (17.11)] does not # enter this computation, since we do not order the # coordinates x to the front of X in the representation of - # this differential form (:trac:`29465`). + # this differential form (:issue:`29465`). iteration1.append(Par((-1) ** J * det / new_df[J][1], new_df)) # Now decompose each FFPD of iteration1. @@ -3711,7 +3711,7 @@ def permutation_sign(s, u): .. NOTE:: This function was intended for internal use and is deprecated now - (:trac:`29465`). + (:issue:`29465`). INPUT: @@ -4028,7 +4028,7 @@ def diff_op(A, B, AB_derivs, V, M, r, N): sage: B = function('B')(*tuple(T)) sage: AB_derivs = {} sage: M = matrix([[1, 2],[2, 1]]) - sage: DD = diff_op(A, B, AB_derivs, T, M, 1, 2) # long time (see :trac:`35207`) + sage: DD = diff_op(A, B, AB_derivs, T, M, 1, 2) # long time (see :issue:`35207`) sage: sorted(DD) # long time [(0, 0, 0), (0, 1, 0), (0, 1, 1), (0, 1, 2)] sage: DD[(0, 1, 2)].number_of_operands() # long time diff --git a/src/sage/rings/asymptotic/growth_group.py b/src/sage/rings/asymptotic/growth_group.py index 3744eb2027f..9c98f75f29b 100644 --- a/src/sage/rings/asymptotic/growth_group.py +++ b/src/sage/rings/asymptotic/growth_group.py @@ -338,7 +338,7 @@ def __init__(self, var, repr=None, latex_name=None, ignore=None): ... ValueError: ':-' is not a valid name for a variable. - Check :trac:`26452`:: + Check :issue:`26452`:: sage: Variable(('w',), ....: repr='w^(Number Field in i with defining polynomial x^2 + 1) * log(w)^ZZ') @@ -4283,7 +4283,7 @@ def _lt_(self, other): True sage: forget() - Check that :trac:`19999` is fixed:: + Check that :issue:`19999` is fixed:: sage: P_ZZ_UU = GrowthGroup('ZZ^x * UU^x') sage: P_ZZ_UU((-2)^x) <= P_ZZ_UU(2^x) or P_ZZ_UU(2^x) <= P_ZZ_UU((-2)^x) diff --git a/src/sage/rings/asymptotic/growth_group_cartesian.py b/src/sage/rings/asymptotic/growth_group_cartesian.py index 806aa092135..27a934e69a5 100644 --- a/src/sage/rings/asymptotic/growth_group_cartesian.py +++ b/src/sage/rings/asymptotic/growth_group_cartesian.py @@ -296,7 +296,7 @@ def __init__(self, sets, category, **kwds): sage: GrowthGroup('x^ZZ * y^ZZ') # indirect doctest Growth Group x^ZZ * y^ZZ - Check :trac:`26452`:: + Check :issue:`26452`:: sage: from sage.rings.asymptotic.growth_group import MonomialGrowthGroup sage: R = QQ.extension(x^2+1, 'i') diff --git a/src/sage/rings/asymptotic/term_monoid.py b/src/sage/rings/asymptotic/term_monoid.py index fdfb8365f1a..e44ae85e389 100644 --- a/src/sage/rings/asymptotic/term_monoid.py +++ b/src/sage/rings/asymptotic/term_monoid.py @@ -3861,7 +3861,7 @@ def _repr_(self, latex=False): sage: ET(x^0, coefficient=42) 42 - Check that :trac:`19576` is fixed:: + Check that :issue:`19576` is fixed:: sage: C. = AsymptoticRing('c^ZZ', SR) sage: (1+pi)*c diff --git a/src/sage/rings/bernmm.pyx b/src/sage/rings/bernmm.pyx index fb633e2d6f1..8c6539150a7 100644 --- a/src/sage/rings/bernmm.pyx +++ b/src/sage/rings/bernmm.pyx @@ -139,7 +139,7 @@ def bernmm_bern_modp(long p, long k): TESTS: Check that bernmm works with the new NTL single precision modular - arithmetic from :trac:`19874`:: + arithmetic from :issue:`19874`:: sage: from sage.rings.bernmm import bernmm_bern_modp sage: bernmm_bern_modp(7, 128) == bernoulli(128) % 7 diff --git a/src/sage/rings/complex_arb.pyx b/src/sage/rings/complex_arb.pyx index b7384f628dc..4ee2ec45015 100644 --- a/src/sage/rings/complex_arb.pyx +++ b/src/sage/rings/complex_arb.pyx @@ -121,12 +121,12 @@ TESTS:: sage: SR.coerce(CBF(0.42 + 3.33*I)) # needs sage.symbolic [0.4200000000000000 +/- ...e-17] + [3.330000000000000 +/- ...e-17]*I -Check that :trac:`19839` is fixed:: +Check that :issue:`19839` is fixed:: sage: log(SR(CBF(0.42))).pyobject().parent() # needs sage.symbolic Complex ball field with 53 bits of precision -:trac:`24621`:: +:issue:`24621`:: sage: CBF(NumberField(polygen(QQ, 'y')^3 + 20, 'a', embedding=CC(1.35,2.35)).gen()) [1.35720880829745...] + [2.35075461245119...]*I @@ -4794,7 +4794,7 @@ cdef class ComplexBall(RingElement): sage: m = CBF(-2/3, 3/5) sage: n.elliptic_pi_inc(CBF.pi()/2, m) # arb216 [0.8934793755173 +/- ...e-14] + [0.95707868710750 +/- ...e-15]*I - sage: n.elliptic_pi_inc(CBF.pi()/2, m) # arb218 - this is a regression, see :trac:28623 + sage: n.elliptic_pi_inc(CBF.pi()/2, m) # arb218 - this is a regression, see :issue:28623 nan + nan*I sage: n.elliptic_pi(m) [0.8934793755173...] + [0.957078687107...]*I @@ -4803,7 +4803,7 @@ cdef class ComplexBall(RingElement): sage: m = CBF(-1/3, 2/9) sage: n.elliptic_pi_inc(CBF.pi()/2, m) # arb216 [0.2969588746419 +/- ...e-14] + [1.3188795332738 +/- ...e-14]*I - sage: n.elliptic_pi_inc(CBF.pi()/2, m) # arb218 - this is a regression, see :trac:28623 + sage: n.elliptic_pi_inc(CBF.pi()/2, m) # arb218 - this is a regression, see :issue:28623 nan + nan*I sage: n.elliptic_pi(m) [0.296958874641...] + [1.318879533273...]*I diff --git a/src/sage/rings/complex_double.pyx b/src/sage/rings/complex_double.pyx index 21af64dce8d..a14d8ac7ec9 100644 --- a/src/sage/rings/complex_double.pyx +++ b/src/sage/rings/complex_double.pyx @@ -51,7 +51,7 @@ AUTHORS: - Travis Scrimshaw (2012-10-18): Added doctests to get full coverage -- Jeroen Demeyer (2013-02-27): fixed all PARI calls (:trac:`14082`) +- Jeroen Demeyer (2013-02-27): fixed all PARI calls (:issue:`14082`) - Vincent Klein (2017-11-15) : add __mpc__() to class ComplexDoubleElement. ComplexDoubleElement constructor support and gmpy2.mpc parameter. @@ -327,7 +327,7 @@ cdef class ComplexDoubleField_class(sage.rings.abc.ComplexDoubleField): TESTS: - Check that :trac:`31836` is fixed:: + Check that :issue:`31836` is fixed:: sage: a = CDF(); a 0.0 @@ -974,7 +974,7 @@ cdef class ComplexDoubleElement(FieldElement): """ TESTS: - Check that :trac:`28814` is fixed:: + Check that :issue:`28814` is fixed:: sage: mathematica(CDF(1e-25, 1e25)) # optional - mathematica 1.*^-25 + 1.*^25*I diff --git a/src/sage/rings/complex_interval.pyx b/src/sage/rings/complex_interval.pyx index 4b9e7f2aefa..0235ea52c69 100644 --- a/src/sage/rings/complex_interval.pyx +++ b/src/sage/rings/complex_interval.pyx @@ -1144,7 +1144,7 @@ cdef class ComplexIntervalFieldElement(FieldElement): sage: for x in cpts: ....: assert (x * (~x) - 1).contains_zero() - Test that the bug reported in :trac:`25414` has been fixed:: + Test that the bug reported in :issue:`25414` has been fixed:: sage: 1 / CIF(RIF(-1,1),0) [.. NaN ..] + [.. NaN ..]*I @@ -2019,7 +2019,7 @@ cdef class ComplexIntervalFieldElement(FieldElement): sage: CIF(0,2).cos() 3.762195691083632? - Check that :trac:`17285` is fixed:: + Check that :issue:`17285` is fixed:: sage: CIF(cos(2/3)) # needs sage.symbolic 0.7858872607769480? @@ -2061,7 +2061,7 @@ cdef class ComplexIntervalFieldElement(FieldElement): sage: CIF(0,2).sin() 3.626860407847019?*I - Check that :trac:`17825` is fixed:: + Check that :issue:`17825` is fixed:: sage: CIF(sin(2/3)) # needs sage.symbolic 0.618369803069737? @@ -2263,7 +2263,7 @@ def create_ComplexIntervalFieldElement(s_real, s_imag=None, int pad=0, min_prec= TESTS: Make sure we've rounded up ``log(10,2)`` enough to guarantee - sufficient precision (:trac:`10164`). This is a little tricky + sufficient precision (:issue:`10164`). This is a little tricky because at the time of writing, we don't support intervals long enough to trip the error. However, at least we can make sure that we either do it correctly or fail noisily:: diff --git a/src/sage/rings/complex_interval_field.py b/src/sage/rings/complex_interval_field.py index 684b9b14a57..09cc326f361 100644 --- a/src/sage/rings/complex_interval_field.py +++ b/src/sage/rings/complex_interval_field.py @@ -12,7 +12,7 @@ - Carl Witty (2007-10-24): rewrite for intervals -- Niles Johnson (2010-08): :trac:`3893`: ``random_element()`` +- Niles Johnson (2010-08): :issue:`3893`: ``random_element()`` should pass on ``*args`` and ``**kwds``. - Travis Scrimshaw (2012-10-18): Added documentation to get full coverage. @@ -152,7 +152,7 @@ class ComplexIntervalField_class(sage.rings.abc.ComplexIntervalField): TESTS: - This checks that :trac:`15355` is fixed:: + This checks that :issue:`15355` is fixed:: sage: x + CIF(RIF(-2,2), 0) x + 0.?e1 @@ -218,7 +218,7 @@ def construction(self): TESTS: - Test that :trac:`19922` is fixed:: + Test that :issue:`19922` is fixed:: sage: c = ComplexIntervalField(128).an_element() sage: r = RealIntervalField(64).an_element() diff --git a/src/sage/rings/complex_mpfr.pyx b/src/sage/rings/complex_mpfr.pyx index 59eb9f76759..872ca8c60a3 100644 --- a/src/sage/rings/complex_mpfr.pyx +++ b/src/sage/rings/complex_mpfr.pyx @@ -11,7 +11,7 @@ AUTHORS: - Vincent Delecroix (2010-01): plot function -- Niles Johnson (2010-08): :trac:`3893`: ``random_element()`` should pass on +- Niles Johnson (2010-08): :issue:`3893`: ``random_element()`` should pass on ``*args`` and ``**kwds``. - Travis Scrimshaw (2012-10-18): Added documentation for full coverage @@ -469,7 +469,7 @@ class ComplexField_class(sage.rings.abc.ComplexField): sage: CC((1,2)) # indirect doctest 1.00000000000000 + 2.00000000000000*I - Check that :trac:`14989` is fixed:: + Check that :issue:`14989` is fixed:: sage: x = polygen(ZZ, 'x') sage: QQi = NumberField(x^2 + 1, 'i', embedding=CC(0,1)) # needs sage.rings.number_field @@ -959,7 +959,7 @@ cdef class ComplexNumber(sage.structure.element.FieldElement): """ TESTS: - Check that :trac:`12038` is resolved:: + Check that :issue:`12038` is resolved:: sage: from sage.rings.complex_mpfr import ComplexNumber as CN sage: coerce(CN, 1+I) # needs sage.symbolic @@ -1035,7 +1035,7 @@ cdef class ComplexNumber(sage.structure.element.FieldElement): EXAMPLES:: - sage: for prec in (2, 53, 200): # not tested, known bug (see :trac:`32129`) + sage: for prec in (2, 53, 200): # not tested, known bug (see :issue:`32129`) ....: fld = ComplexField(prec) ....: var = polygen(fld) ....: ins = [-20, 0, 1, -2^4000, 2^-4000] + [fld._real_field().random_element() for _ in range(3)] @@ -1316,7 +1316,7 @@ cdef class ComplexNumber(sage.structure.element.FieldElement): Note that the general format does not exactly match the behaviour of ``float``. Some Python versions do not implement the full spec - (see :trac:`30689`):: + (see :issue:`30689`):: sage: format(CC(3, 0), '.4g') '3.000 + 0e-15*I' @@ -1667,7 +1667,7 @@ cdef class ComplexNumber(sage.structure.element.FieldElement): TESTS: - Check that :trac:`11323` is fixed:: + Check that :issue:`11323` is fixed:: sage: float(5)^(0.5 + 14.1347251*I) -1.62414637645790 - 1.53692828324508*I @@ -2238,7 +2238,7 @@ cdef class ComplexNumber(sage.structure.element.FieldElement): TESTS: - Verify that :trac:`29409` is fixed:: + Verify that :issue:`29409` is fixed:: sage: cot(1 + I).n() 0.217621561854403 - 0.868014142895925*I @@ -2868,7 +2868,7 @@ cdef class ComplexNumber(sage.structure.element.FieldElement): TESTS: - Check that :trac:`7099` is fixed:: + Check that :issue:`7099` is fixed:: sage: C = ComplexField(400) sage: C(2 + I).gamma_inc(C(3 + I)) # abs tol 1e-120 # needs sage.libs.pari @@ -3302,7 +3302,7 @@ def create_ComplexNumber(s_real, s_imag=None, int pad=0, min_prec=53): TESTS: Make sure we've rounded up ``log(10,2)`` enough to guarantee - sufficient precision (:trac:`10164`):: + sufficient precision (:issue:`10164`):: sage: s = "1." + "0"*10**6 + "1" sage: sage.rings.complex_mpfr.create_ComplexNumber(s,0).real()-1 == 0 diff --git a/src/sage/rings/continued_fraction.py b/src/sage/rings/continued_fraction.py index 0021dc2745d..13138a999ac 100644 --- a/src/sage/rings/continued_fraction.py +++ b/src/sage/rings/continued_fraction.py @@ -191,7 +191,7 @@ AUTHORS: - Vincent Delecroix (2014): cleaning, refactorisation, documentation from the - old implementation in ``contfrac`` (:trac:`14567`). + old implementation in ``contfrac`` (:issue:`14567`). """ # **************************************************************************** # Copyright (C) 2007 William Stein @@ -662,15 +662,15 @@ def _mpfr_(self, R): sage: for prec in [17, 24, 53, 128, 256]: # needs sage.rings.real_mpfr ....: for rnd in ['RNDN', 'RNDD', 'RNDU', 'RNDZ', 'RNDA']: ....: fields.append(RealField(prec=prec, rnd=rnd)) - sage: for n in range(3000): # long time, not tested, known bug (see :trac:`29957`) + sage: for n in range(3000): # long time, not tested, known bug (see :issue:`29957`) ....: a = QQ.random_element(num_bound=2^(n%100)) - ....: if a.denominator() % 8 == 0: # not precices enough # :trac:`29957` + ....: if a.denominator() % 8 == 0: # not precices enough # :issue:`29957` ....: continue ....: cf = continued_fraction(a) ....: for R in fields: ....: try: ....: assert R(cf) == R(a) - ....: except ZeroDivisionError: # :trac:`29957` + ....: except ZeroDivisionError: # :issue:`29957` ....: pass """ # 1. integer case @@ -1204,7 +1204,7 @@ def apply_homography(self, a, b, c, d, forward_value=False): sage: CF = [continued_fraction(x) for x in [sqrt(2), AA(3).sqrt(), # needs sage.rings.number_field sage.symbolic ....: AA(3)**(1/3), QuadraticField(37).gen(), pi, 113/27, ....: [3,1,2,2], words.FibonacciWord([1,3])]] - sage: for _ in range(100): # not tested, known bug (see :trac:`32086`) + sage: for _ in range(100): # not tested, known bug (see :issue:`32086`) ....: cf = choice(CF) ....: forward_value = choice([True, False]) ....: a = ZZ.random_element(-30, 30) @@ -2450,7 +2450,7 @@ def continued_fraction_list(x, type="std", partial_convergents=False, sage: continued_fraction_list(1 + 10^-20 - e^-100, nterms=5) # needs sage.symbolic [1, 100000000000000000000, 2688, 8, 1] - Fixed :trac:`18901`:: + Fixed :issue:`18901`:: sage: a = 1.575709393346379 sage: type(a) # needs sage.rings.real_mpfr @@ -2458,7 +2458,7 @@ def continued_fraction_list(x, type="std", partial_convergents=False, sage: continued_fraction_list(a) [1, 1, 1, 2, 1, 4, 18, 1, 5, 2, 25037802, 7, 1, 3, 1, 28, 1, 8, 2] - Check that this works for arb elements (:trac:`20069`):: + Check that this works for arb elements (:issue:`20069`):: sage: continued_fraction(RBF(e)) # needs sage.symbolic [2; 1, 2, 1, 1, 4, 1, 1, 6, 1, 1, 8, 1, 1, 10, 1, 1, 12] @@ -2650,7 +2650,7 @@ def continued_fraction(x, value=None): TESTS: - Fixed :trac:`18901`. For RealLiteral, continued_fraction calls + Fixed :issue:`18901`. For RealLiteral, continued_fraction calls continued_fraction_list:: sage: continued_fraction(1.575709393346379) diff --git a/src/sage/rings/continued_fraction_gosper.py b/src/sage/rings/continued_fraction_gosper.py index 4f86b3d9da6..5c713ab41c7 100644 --- a/src/sage/rings/continued_fraction_gosper.py +++ b/src/sage/rings/continued_fraction_gosper.py @@ -61,7 +61,7 @@ def __init__(self, a, b, c, d, x): sage: preperiod_length = i.output_preperiod_length sage: preperiod = l[:preperiod_length] sage: period = l[preperiod_length:] - sage: c == d == 0 or continued_fraction((preperiod, period), x.value()) == continued_fraction((a*x.value()+b)/(c*x.value()+d)) # not tested, known bug (see :trac:`32127`) + sage: c == d == 0 or continued_fraction((preperiod, period), x.value()) == continued_fraction((a*x.value()+b)/(c*x.value()+d)) # not tested, known bug (see :issue:`32127`) True Infinity:: diff --git a/src/sage/rings/factorint.pyx b/src/sage/rings/factorint.pyx index e3b0e9f034f..339d2c22b2d 100644 --- a/src/sage/rings/factorint.pyx +++ b/src/sage/rings/factorint.pyx @@ -272,7 +272,7 @@ cpdef factor_trial_division(m, long limit=LONG_MAX) noexcept: TESTS: - Test that :trac:`13692` is solved:: + Test that :issue:`13692` is solved:: sage: from sage.rings.factorint import factor_trial_division sage: list(factor_trial_division(8)) diff --git a/src/sage/rings/factorint_pari.pyx b/src/sage/rings/factorint_pari.pyx index 8e5ed7c619e..8dae96b047f 100644 --- a/src/sage/rings/factorint_pari.pyx +++ b/src/sage/rings/factorint_pari.pyx @@ -50,7 +50,7 @@ def factor_using_pari(n, int_=False, debug_level=0, proof=None): sage: factor(-2**72 + 3, algorithm='pari') # indirect doctest -1 * 83 * 131 * 294971519 * 1472414939 - Check that PARI's debug level is properly reset (:trac:`18792`):: + Check that PARI's debug level is properly reset (:issue:`18792`):: sage: alarm(0.5); factor(2^1000 - 1, verbose=5) Traceback (most recent call last): diff --git a/src/sage/rings/fast_arith.pyx b/src/sage/rings/fast_arith.pyx index d3695ebb69f..fae966e4f6c 100644 --- a/src/sage/rings/fast_arith.pyx +++ b/src/sage/rings/fast_arith.pyx @@ -130,7 +130,7 @@ cpdef prime_range(start, stop=None, algorithm=None, bint py_ints=False) noexcept ... ValueError: algorithm must be "pari_primes" or "pari_isprime" - Confirm the fixes for :trac:`28467`:: + Confirm the fixes for :issue:`28467`:: sage: prime_range(436273009, 436273010) [436273009] diff --git a/src/sage/rings/finite_rings/element_base.pyx b/src/sage/rings/finite_rings/element_base.pyx index ab029287ba6..70273febfe8 100755 --- a/src/sage/rings/finite_rings/element_base.pyx +++ b/src/sage/rings/finite_rings/element_base.pyx @@ -5,7 +5,7 @@ Base class for finite field elements AUTHORS: - David Roe (2010-01-14): factored out of sage.structure.element -- Sebastian Oehms (2018-07-19): added :meth:`conjugate` (see :trac:`26761`) +- Sebastian Oehms (2018-07-19): added :meth:`conjugate` (see :issue:`26761`) """ # **************************************************************************** @@ -535,7 +535,7 @@ cdef class FinitePolyExtElement(FiniteRingElement): TESTS: - The following tests against a bug fixed in :trac:`11530`:: + The following tests against a bug fixed in :issue:`11530`:: sage: F. = GF(3^4) sage: F.modulus() @@ -1002,7 +1002,7 @@ cdef class FinitePolyExtElement(FiniteRingElement): TESTS: - Check that :trac:`26761` is fixed:: + Check that :issue:`26761` is fixed:: sage: # needs sage.libs.gap sage: G32 = GU(3,2) diff --git a/src/sage/rings/finite_rings/element_givaro.pyx b/src/sage/rings/finite_rings/element_givaro.pyx index a4727e3311d..fc53c30d180 100644 --- a/src/sage/rings/finite_rings/element_givaro.pyx +++ b/src/sage/rings/finite_rings/element_givaro.pyx @@ -1184,7 +1184,7 @@ cdef class FiniteField_givaroElement(FinitePolyExtElement): TESTS: Check that trying to invert zero raises an error - (see :trac:`12217`):: + (see :issue:`12217`):: sage: F = GF(25, 'a') sage: z = F(0) @@ -1218,14 +1218,14 @@ cdef class FiniteField_givaroElement(FinitePolyExtElement): TESTS: - The following checks that :trac:`7923` is resolved:: + The following checks that :issue:`7923` is resolved:: sage: K. = GF(3^10) sage: b = a^9 + a^7 + 2*a^6 + a^4 + a^3 + 2*a^2 + a + 2 sage: b^(71*7381) == (b^71)^7381 True - We define ``0^0`` to be unity, :trac:`13897`:: + We define ``0^0`` to be unity, :issue:`13897`:: sage: K. = GF(3^10) sage: K(0)^0 diff --git a/src/sage/rings/finite_rings/element_ntl_gf2e.pyx b/src/sage/rings/finite_rings/element_ntl_gf2e.pyx index bb490c163a8..4e10ef927a9 100644 --- a/src/sage/rings/finite_rings/element_ntl_gf2e.pyx +++ b/src/sage/rings/finite_rings/element_ntl_gf2e.pyx @@ -114,7 +114,7 @@ cdef class Cache_ntl_gf2e(Cache_base): It's modeled on :class:`~sage.rings.finite_rings.integer_mod.NativeIntStruct`, but includes many functions that were previously included in - the parent (see :trac:`12062`). + the parent (see :issue:`12062`). """ def __cinit__(self, parent, Py_ssize_t k, modulus): """ @@ -163,11 +163,11 @@ cdef class Cache_ntl_gf2e(Cache_base): def _doctest_for_5340(self): r""" - Every bug fix should have a doctest. But :trac:`5340` only happens + Every bug fix should have a doctest. But :issue:`5340` only happens when a garbage collection happens between restoring the modulus and using it, so it can't be reliably doctested using any of the existing Cython functions in this module. The sole purpose of - this method is to doctest the fix for :trac:`5340`. + this method is to doctest the fix for :issue:`5340`. EXAMPLES:: @@ -255,7 +255,7 @@ cdef class Cache_ntl_gf2e(Cache_base): TESTS: - We check that :trac:`12584` is fixed:: + We check that :issue:`12584` is fixed:: sage: k(2^63) 0 @@ -396,7 +396,7 @@ cdef class Cache_ntl_gf2e(Cache_base): TESTS: - We test that :trac:`17027` is fixed:: + We test that :issue:`17027` is fixed:: sage: K. = GF(2^16) sage: K._cache.fetch_int(0r) @@ -643,7 +643,7 @@ cdef class FiniteField_ntl_gf2eElement(FinitePolyExtElement): sage: a.sqrt()^2 == a True - This failed before :trac:`4899`:: + This failed before :issue:`4899`:: sage: GF(2^16,'a')(1).sqrt() 1 @@ -1261,7 +1261,7 @@ cdef class FiniteField_ntl_gf2eElement(FinitePolyExtElement): a^8 + a^7 + a^4 + a + 1 a^8 + a^7 + a^4 + a + 1 - Big instances used to take a very long time before :trac:`32842`:: + Big instances used to take a very long time before :issue:`32842`:: sage: g = GF(2^61).gen() sage: g.log(g^7) diff --git a/src/sage/rings/finite_rings/element_pari_ffelt.pyx b/src/sage/rings/finite_rings/element_pari_ffelt.pyx index 4f37f6c3043..95c93f46af4 100644 --- a/src/sage/rings/finite_rings/element_pari_ffelt.pyx +++ b/src/sage/rings/finite_rings/element_pari_ffelt.pyx @@ -48,7 +48,7 @@ cdef GEN _INT_to_FFELT(GEN g, GEN x) except NULL: TESTS: Converting large integers to finite field elements does not lead - to overflow errors (see :trac:`16807`):: + to overflow errors (see :issue:`16807`):: sage: p = previous_prime(2^64) sage: F. = GF(p^2) @@ -240,7 +240,7 @@ cdef class FiniteFieldElement_pari_ffelt(FinitePolyExtElement): sage: k(v) 2*a + 1 - We create elements using a list and verify that :trac:`10486` has + We create elements using a list and verify that :issue:`10486` has been fixed:: sage: k = FiniteField(3^11, 't', impl='pari_ffelt') @@ -263,7 +263,7 @@ cdef class FiniteFieldElement_pari_ffelt(FinitePolyExtElement): 2*t When initializing from a list, the elements are first coerced - to the prime field (:trac:`11685`):: + to the prime field (:issue:`11685`):: sage: k = FiniteField(3^11, 't', impl='pari_ffelt') sage: k([ 0, 1/2 ]) @@ -282,7 +282,7 @@ cdef class FiniteFieldElement_pari_ffelt(FinitePolyExtElement): sage: k([ R(-1), R(0), 0 ]) 2 - Check that zeros are created correctly (:trac:`11685`):: + Check that zeros are created correctly (:issue:`11685`):: sage: K = FiniteField(3^11, 't', impl='pari_ffelt'); a = K.0 sage: v = 0; pari(K(v)) @@ -372,7 +372,7 @@ cdef class FiniteFieldElement_pari_ffelt(FinitePolyExtElement): TESTS: Conversion of elements of the underlying vector space works in - large characteristic (see :trac:`21186`):: + large characteristic (see :issue:`21186`):: sage: p = 13189065031705623239 sage: Fq = FiniteField(p^3, "a") @@ -835,7 +835,7 @@ cdef class FiniteFieldElement_pari_ffelt(FinitePolyExtElement): sage: a^(e % (5^10 - 1)) 2*a^9 + a^5 + 4*a^4 + 4*a^3 + a^2 + 3*a - The exponent is converted to an integer (see :trac:`16540`):: + The exponent is converted to an integer (see :issue:`16540`):: sage: q = 11^23 sage: F. = FiniteField(q) diff --git a/src/sage/rings/finite_rings/finite_field_base.pyx b/src/sage/rings/finite_rings/finite_field_base.pyx index dd79b0d90b9..d2e94087cdc 100644 --- a/src/sage/rings/finite_rings/finite_field_base.pyx +++ b/src/sage/rings/finite_rings/finite_field_base.pyx @@ -264,7 +264,7 @@ cdef class FiniteField(Field): TESTS: - The variable name is preserved (:trac:`28566`):: + The variable name is preserved (:issue:`28566`):: sage: K = macaulay2(GF(49, 'b')) # optional - macaulay2 sage: K.gens() # optional - macaulay2 @@ -580,7 +580,7 @@ cdef class FiniteField(Field): ....: if i == j: continue ....: assert gcd(F[i][0], F[j][0]) == 1 - Check that :trac:`35323` is fixed:: + Check that :issue:`35323` is fixed:: sage: R. = GF(2)[] sage: (x^2 + 1).squarefree_decomposition() @@ -720,7 +720,7 @@ cdef class FiniteField(Field): a + 1 This works even in very large finite fields, provided that ``n`` - can be factored (see :trac:`25203`):: + can be factored (see :issue:`25203`):: sage: k. = GF(2^2000) sage: p = 8877945148742945001146041439025147034098690503591013177336356694416517527310181938001 @@ -773,7 +773,7 @@ cdef class FiniteField(Field): TESTS: - Check that large characteristics work (:trac:`11946`):: + Check that large characteristics work (:issue:`11946`):: sage: p = 10^20 + 39 sage: x = polygen(GF(p)) @@ -906,7 +906,7 @@ cdef class FiniteField(Field): TESTS: - Check that :trac:`31686` is fixed:: + Check that :issue:`31686` is fixed:: sage: p = 1100585370631 sage: F = GF(p^24, 'a') @@ -1401,7 +1401,7 @@ cdef class FiniteField(Field): From: 7-adic Unramified Extension Field in a defined by x^2 + 6*x + 3 To: Finite Field in a0 of size 7^2 - Check that :trac:`8240 is resolved:: + Check that :issue:`8240 is resolved:: sage: R. = Zq(81); k = R.residue_field() # needs sage.rings.padics sage: k.convert_map_from(R) # needs sage.rings.padics @@ -1427,7 +1427,7 @@ cdef class FiniteField(Field): sage: v = GF(2^1000, 'a').construction(); v[0].polys[0] a^1000 + a^5 + a^4 + a^3 + 1 - The implementation is taken into account, by :trac:`15223`:: + The implementation is taken into account, by :issue:`15223`:: sage: k = FiniteField(9, 'a', impl='pari_ffelt') sage: F, R = k.construction() @@ -1524,7 +1524,7 @@ cdef class FiniteField(Field): TESTS: - We check that :trac:`18915` is fixed:: + We check that :issue:`18915` is fixed:: sage: F = GF(2) sage: F.extension(int(3), 'a') @@ -1534,7 +1534,7 @@ cdef class FiniteField(Field): sage: F.extension(int(3), 'aa') Finite Field in aa of size 2^12 - Randomized test for :trac:`33937`:: + Randomized test for :issue:`33937`:: sage: p = random_prime(100) sage: a,b = (randrange(1,10) for _ in 'ab') @@ -1678,7 +1678,7 @@ cdef class FiniteField(Field): TESTS: - We check that :trac:`23801` is resolved:: + We check that :issue:`23801` is resolved:: sage: k. = GF(5^240) sage: l, inc = k.subfield(3, 'z', map=True); l diff --git a/src/sage/rings/finite_rings/finite_field_constructor.py b/src/sage/rings/finite_rings/finite_field_constructor.py index 2c5dfbc664f..78acc0a8873 100644 --- a/src/sage/rings/finite_rings/finite_field_constructor.py +++ b/src/sage/rings/finite_rings/finite_field_constructor.py @@ -279,7 +279,7 @@ class FiniteFieldFactory(UniqueFactory): .. NOTE:: Magma only supports ``proof=False`` for making finite fields, - so falsely appears to be faster than Sage -- see :trac:`10975`. + so falsely appears to be faster than Sage -- see :issue:`10975`. :: @@ -448,9 +448,9 @@ class FiniteFieldFactory(UniqueFactory): sage: GF(3^40).gen().minimal_polynomial()(k.gen()^((3^120-1)/(3^40-1))) # long time (because of previous line) 0 - Before :trac:`17569`, the boolean keyword argument ``conway`` + Before :issue:`17569`, the boolean keyword argument ``conway`` was required when creating finite fields without a variable - name. This keyword argument is now removed (:trac:`21433`). + name. This keyword argument is now removed (:issue:`21433`). You can still pass in ``prefix`` as an argument, which has the effect of changing the variable name of the algebraic closure:: @@ -463,7 +463,7 @@ class FiniteFieldFactory(UniqueFactory): TESTS: - Check that :trac:`16934` has been fixed:: + Check that :issue:`16934` has been fixed:: sage: k1. = GF(17^14, impl="pari") sage: _ = a/2 @@ -471,7 +471,7 @@ class FiniteFieldFactory(UniqueFactory): sage: k1 is k2 True - Check that :trac:`21433` has been fixed:: + Check that :issue:`21433` has been fixed:: sage: K = GF(5^2) sage: L = GF(5^4) @@ -479,12 +479,12 @@ class FiniteFieldFactory(UniqueFactory): sage: pushout(K,L) is L True - Check that :trac:`25182` has been fixed:: + Check that :issue:`25182` has been fixed:: sage: GF(next_prime(2^63)^6) Finite Field in z6 of size 9223372036854775837^6 - Check that :trac:`31547` has been fixed:: + Check that :issue:`31547` has been fixed:: sage: q=2**152 sage: GF(q,'a',modulus='primitive') == GF(q,'a',modulus='primitive') @@ -547,7 +547,7 @@ def create_key_and_extra_args(self, order, name=None, modulus=None, names=None, We explicitly take ``structure``, ``implementation`` and ``prec`` attributes for compatibility with :class:`~sage.categories.pushout.AlgebraicExtensionFunctor` - but we ignore them as they are not used, see :trac:`21433`:: + but we ignore them as they are not used, see :issue:`21433`:: sage: GF.create_key_and_extra_args(9, 'a', structure=None) # needs sage.libs.linbox ((9, ('a',), x^2 + 2*x + 2, 'givaro', 3, 2, True, None, 'poly', True, True, True), {}) diff --git a/src/sage/rings/finite_rings/finite_field_prime_modn.py b/src/sage/rings/finite_rings/finite_field_prime_modn.py index 2c52681e822..b51cf9fe7d5 100644 --- a/src/sage/rings/finite_rings/finite_field_prime_modn.py +++ b/src/sage/rings/finite_rings/finite_field_prime_modn.py @@ -118,7 +118,7 @@ def _coerce_map_from_(self, S): To: Finite Field of size 13 Defn: 1 |--> 1 - Check that :trac:`19573` is resolved:: + Check that :issue:`19573` is resolved:: sage: Integers(9).hom(GF(3)) Natural morphism: diff --git a/src/sage/rings/finite_rings/homset.py b/src/sage/rings/finite_rings/homset.py index 5c122a1c6b7..ef72f35a1a5 100644 --- a/src/sage/rings/finite_rings/homset.py +++ b/src/sage/rings/finite_rings/homset.py @@ -265,7 +265,7 @@ def list(self): TESTS: - Check that :trac:`11390` is fixed:: + Check that :issue:`11390` is fixed:: sage: K = GF(1<<16,'a'); L = GF(1<<32,'b') sage: K.Hom(L)[0] @@ -347,7 +347,7 @@ def _an_element_(self): .. TODO:: - Use a more sophisticated algorithm; see also :trac:`8751`. + Use a more sophisticated algorithm; see also :issue:`8751`. """ K = self.domain() diff --git a/src/sage/rings/finite_rings/integer_mod.pyx b/src/sage/rings/finite_rings/integer_mod.pyx index d687c4bf50c..73746905821 100644 --- a/src/sage/rings/finite_rings/integer_mod.pyx +++ b/src/sage/rings/finite_rings/integer_mod.pyx @@ -137,7 +137,7 @@ def Mod(n, m, parent=None): sage: mod(12,5) 2 - Illustrates that :trac:`5971` is fixed. Consider `n` modulo `m` when + Illustrates that :issue:`5971` is fixed. Consider `n` modulo `m` when `m = 0`. Then `\ZZ/0\ZZ` is isomorphic to `\ZZ` so `n` modulo `0` is equivalent to `n` for any integer value of `n`:: @@ -291,7 +291,7 @@ cdef class NativeIntStruct: sage: R(5)^-1 is R(8) True - Check that the inverse of 0 modulo 1 works, see :trac:`13639`:: + Check that the inverse of 0 modulo 1 works, see :issue:`13639`:: sage: R = IntegerModRing_generic(1, cache=True) # indirect doctest sage: R(0)^-1 is R(0) @@ -701,12 +701,12 @@ cdef class IntegerMod_abstract(FiniteRingElement): TESTS: - We check that :trac:`9205` is fixed:: + We check that :issue:`9205` is fixed:: sage: Mod(5, 9).log(Mod(2, 9)) # needs sage.libs.pari 5 - We test against a bug (side effect on PARI) fixed in :trac:`9438`:: + We test against a bug (side effect on PARI) fixed in :issue:`9438`:: sage: # needs sage.libs.pari sage: R. = QQ[] @@ -717,14 +717,14 @@ cdef class IntegerMod_abstract(FiniteRingElement): sage: pari(b) b - We test that :trac:`23927` is fixed:: + We test that :issue:`23927` is fixed:: sage: x = mod(48475563673907791151, 10^20 + 763)^2 sage: e = 25248843418589594761 sage: (x^e).log(x) == e # needs sage.libs.pari True - Examples like this took extremely long before :trac:`32375`:: + Examples like this took extremely long before :issue:`32375`:: sage: (Mod(5, 123337052926643**4) ^ (10^50-1)).log(5) # needs sage.libs.pari 99999999999999999999999999999999999999999999999999 @@ -745,7 +745,7 @@ cdef class IntegerMod_abstract(FiniteRingElement): ... ValueError: no logarithm of 230 found to base 173 modulo 323 (incompatible local solutions) - We test that :trac:`12419` is fixed:: + We test that :issue:`12419` is fixed:: sage: R. = GF(2)[] sage: R(1).factor() @@ -1450,12 +1450,12 @@ cdef class IntegerMod_abstract(FiniteRingElement): ....: except ValueError: ....: pass - We check that :trac:`13172` is resolved:: + We check that :issue:`13172` is resolved:: sage: mod(-1, 4489).nth_root(2, all=True) # needs sage.rings.padics [] - We check that :trac:`32084` is fixed:: + We check that :issue:`32084` is fixed:: sage: mod(24, 25).nth_root(50)^50 # needs sage.rings.padics 24 @@ -1777,7 +1777,7 @@ cdef class IntegerMod_abstract(FiniteRingElement): ....: if a.is_primitive_root().__xor__(a.multiplicative_order()==phin): ....: print("mod(%s,%s) incorrect" % (a, n)) - `0` is not a primitive root mod `n` (:trac:`23624`) except for `n=0`:: + `0` is not a primitive root mod `n` (:issue:`23624`) except for `n=0`:: sage: mod(0, 17).is_primitive_root() False @@ -2281,7 +2281,7 @@ cdef class IntegerMod_gmp(IntegerMod_abstract): TESTS: - We define ``0^0`` to be unity, :trac:`13894`:: + We define ``0^0`` to be unity, :issue:`13894`:: sage: p = next_prime(11^10) # needs sage.libs.pari sage: R = Integers(p) # needs sage.libs.pari @@ -2769,7 +2769,7 @@ cdef class IntegerMod_int(IntegerMod_abstract): TESTS: - We define ``0^0`` to be unity, :trac:`13894`:: + We define ``0^0`` to be unity, :issue:`13894`:: sage: R = Integers(100) sage: R(0)^0 @@ -3000,7 +3000,7 @@ cdef class IntegerMod_int(IntegerMod_abstract): TESTS: - Check for :trac:`30797`:: + Check for :issue:`30797`:: sage: GF(103)(-1).sqrt(extend=False, all=True) [] @@ -3595,7 +3595,7 @@ cdef class IntegerMod_int64(IntegerMod_abstract): sage: type(R(0)) - We define ``0^0`` to be unity, :trac:`13894`:: + We define ``0^0`` to be unity, :issue:`13894`:: sage: p = next_prime(10^5) # needs sage.libs.pari sage: R = Integers(p) # needs sage.libs.pari @@ -3933,7 +3933,7 @@ def square_root_mod_prime_power(IntegerMod_abstract a, p, e): TESTS: - A big example for the binary case (:trac:`33961`):: + A big example for the binary case (:issue:`33961`):: sage: y = Mod(-7, 2^777) sage: hex(y.sqrt()^2 - y) # needs sage.libs.pari @@ -4487,7 +4487,7 @@ cdef class IntegerMod_to_Integer(Map): TESTS: Lifting maps are morphisms in the category of sets (see - :trac:`15618`):: + :issue:`15618`):: sage: ZZ.convert_map_from(GF(2)).parent() Set of Morphisms from Finite Field of size 2 to Integer Ring in Category of sets diff --git a/src/sage/rings/finite_rings/integer_mod_ring.py b/src/sage/rings/finite_rings/integer_mod_ring.py index 0a392c9b35c..177dd28460a 100644 --- a/src/sage/rings/finite_rings/integer_mod_ring.py +++ b/src/sage/rings/finite_rings/integer_mod_ring.py @@ -348,7 +348,7 @@ class IntegerModRing_generic(quotient_ring.QuotientRing_generic, sage.rings.abc. sage: TestSuite(F19).run() sage: TestSuite(F23).run() - By :trac:`15229`, there is a unique instance of the + By :issue:`15229`, there is a unique instance of the integral quotient ring of a given order. Using the :func:`IntegerModRing` factory twice, and using ``is_field=True`` the second time, will update the @@ -652,7 +652,7 @@ def is_integral_domain(self, proof=None): TESTS: - Check that :trac:`17453` is fixed:: + Check that :issue:`17453` is fixed:: sage: R = Zmod(5) sage: R in IntegralDomains() @@ -700,7 +700,7 @@ def is_field(self, proof=None): sage: FF.is_field() True - By :trac:`15229`, the category of the ring is refined, + By :issue:`15229`, the category of the ring is refined, if it is found that the ring is in fact a field:: sage: R = IntegerModRing(127) @@ -836,7 +836,7 @@ def multiplicative_group_is_cyclic(self): sage: Integers(25*3).multiplicative_group_is_cyclic() # needs sage.libs.pari False - We test that :trac:`5250` is fixed:: + We test that :issue:`5250` is fixed:: sage: Integers(162).multiplicative_group_is_cyclic() # needs sage.libs.pari True @@ -1138,7 +1138,7 @@ def _element_constructor_(self, x): sage: K8(K2(1)) 1 - The following test refers to :trac:`6468`:: + The following test refers to :issue:`6468`:: sage: class foo_parent(Parent): ....: pass @@ -1152,13 +1152,13 @@ def _element_constructor_(self, x): ... TypeError: error coercing to finite field - The following test refers to :trac:`8970`:: + The following test refers to :issue:`8970`:: sage: R = Zmod(13); a = R(2) sage: a == R(gap(a)) # needs sage.libs.gap True - libgap interface (:trac:`23714`):: + libgap interface (:issue:`23714`):: sage: a = libgap.eval("Z(13)^2") # needs sage.libs.gap sage: a.sage() # needs sage.libs.gap @@ -1308,7 +1308,7 @@ def __richcmp__(self, other, op): sage: Z11 == F False - In :trac:`15229`, the following was implemented:: + In :issue:`15229`, the following was implemented:: sage: R1 = IntegerModRing(5) sage: R2 = IntegerModRing(5, is_field=True) diff --git a/src/sage/rings/finite_rings/residue_field.pyx b/src/sage/rings/finite_rings/residue_field.pyx index 1afd497c001..bb10c5cd417 100644 --- a/src/sage/rings/finite_rings/residue_field.pyx +++ b/src/sage/rings/finite_rings/residue_field.pyx @@ -67,7 +67,7 @@ TESTS:: Residue field in zbar of Fractional ideal (17) sage: TestSuite(ff).run() -Verify that :trac:`15192` has been resolved:: +Verify that :issue:`15192` has been resolved:: sage: a.is_unit() # needs sage.rings.number_field True @@ -81,7 +81,7 @@ Verify that :trac:`15192` has been resolved:: Residue field in a of Principal ideal (t^3 + t + 4) of Univariate Polynomial Ring in t over Finite Field of size 11 -Verify that :trac:`7475` is fixed:: +Verify that :issue:`7475` is fixed:: sage: K = ZZ.residue_field(2) sage: loads(dumps(K)) is K @@ -568,7 +568,7 @@ class ResidueField_generic(Field): The residue field is determined by a prime (fractional) ideal in a number field. If this ideal can be coerced into a different number field, then the construction functor applied to this number field will - return the corresponding residue field. See :trac:`15223`. + return the corresponding residue field. See :issue:`15223`. EXAMPLES:: @@ -631,7 +631,7 @@ class ResidueField_generic(Field): .. NOTE:: - The behaviour of this method was changed in :trac:`8800`. + The behaviour of this method was changed in :issue:`8800`. Before, an error was raised if there was no coercion. Now, a conversion is possible even when there is no coercion. This is like for different finite fields. @@ -648,13 +648,13 @@ class ResidueField_generic(Field): sage: ResidueField_generic._element_constructor_(F, i) 8 - With :trac:`8800`, we also have:: + With :issue:`8800`, we also have:: sage: ResidueField_generic._element_constructor_(F, GF(13)(8)) # needs sage.rings.number_field 8 Here is a test that was temporarily removed, but newly introduced - in :trac:`8800`:: + in :issue:`8800`:: sage: # needs sage.rings.finite_rings sage: R. = GF(17)[]; P = R.ideal(t^3 + t^2 + 7) @@ -698,7 +698,7 @@ class ResidueField_generic(Field): TESTS: - Check that :trac:`11319` is fixed:: + Check that :issue:`11319` is fixed:: sage: GF(13).has_coerce_map_from(F) # needs sage.rings.number_field True @@ -1101,7 +1101,7 @@ cdef class ReductionMap(Map): ... ZeroDivisionError... - An example to show that the issue raised in :trac:`1951` + An example to show that the issue raised in :issue:`1951` has been fixed:: sage: # needs sage.rings.number_field diff --git a/src/sage/rings/fraction_field.py b/src/sage/rings/fraction_field.py index bfa690cec0e..90f68fd1055 100644 --- a/src/sage/rings/fraction_field.py +++ b/src/sage/rings/fraction_field.py @@ -57,7 +57,7 @@ sage: F == loads(dumps(F)) True -Test that :trac:`15971` is fixed:: +Test that :issue:`15971` is fixed:: sage: for B in [QQ['t'], QQ['s, t'], ZZ['t'], ZZ['s, t']]: ....: F = B.fraction_field() @@ -259,7 +259,7 @@ def _coerce_map_from_(self, S): sage: K.coerce(L.gen()) x - We demonstrate that :trac:`7958` is resolved in the case of + We demonstrate that :issue:`7958` is resolved in the case of number fields:: sage: # needs sage.rings.number_field @@ -271,7 +271,7 @@ def _coerce_map_from_(self, S): sage: F(1/a) (a^4 - 3*a^3 + 2424*a^2 + 2)/232 - Some corner cases have been known to fail in the past (:trac:`5917`):: + Some corner cases have been known to fail in the past (:issue:`5917`):: sage: F1 = FractionField( QQ['a'] ) sage: R12 = F1['x','y'] @@ -287,7 +287,7 @@ def _coerce_map_from_(self, S): sage: F2(R22(F2('a'))) a - Coercion from Laurent polynomials now works (:trac:`15345`):: + Coercion from Laurent polynomials now works (:issue:`15345`):: sage: R = LaurentPolynomialRing(ZZ, 'x') sage: T = PolynomialRing(ZZ, 'x') @@ -304,7 +304,7 @@ def _coerce_map_from_(self, S): sage: 1/(R.gen(0) + R.gen(1)) 1/(x + y) - Test for :trac:`31320`:: + Test for :issue:`31320`:: sage: FQt = Frac(QQ['t']) sage: LCt = LaurentPolynomialRing(CC,'t') # needs sage.rings.real_mpfr @@ -393,7 +393,7 @@ def _number_field_to_frac_of_ring_of_integers(self, x): TESTS: - We demonstrate that :trac:`7958` is resolved in the case of + We demonstrate that :issue:`7958` is resolved in the case of number fields:: sage: # needs sage.rings.number_field @@ -573,12 +573,12 @@ def _element_constructor_(self, x, y=None, coerce=True): TESTS: - The next example failed before :trac:`4376`:: + The next example failed before :issue:`4376`:: sage: K(pari((x + 1)/(x^2 + x + 1))) # needs sage.libs.pari (x + 1)/(x^2 + x + 1) - These examples failed before :trac:`11368`:: + These examples failed before :issue:`11368`:: sage: R. = PolynomialRing(QQ) sage: S = R.fraction_field() @@ -588,7 +588,7 @@ def _element_constructor_(self, x, y=None, coerce=True): sage: S(pari(x + y + 1/z)) # needs sage.libs.pari (x*z + y*z + 1)/z - This example failed before :trac:`23664`:: + This example failed before :issue:`23664`:: sage: P0. = ZZ[] sage: P1. = Frac(P0)[] @@ -606,7 +606,7 @@ def _element_constructor_(self, x, y=None, coerce=True): ... TypeError: unable to evaluate 'z' in Fraction Field of Multivariate Polynomial Ring in x, y over Integer Ring - Check that :trac:`17971` is fixed:: + Check that :issue:`17971` is fixed:: sage: A. = Frac(PolynomialRing(QQ,'a,c')) sage: B. = PolynomialRing(A,'d,e') @@ -614,13 +614,13 @@ def _element_constructor_(self, x, y=None, coerce=True): sage: (a*d*x^2+a+e+1).resultant(-4*c^2*x+1) # needs sage.libs.pari a*d + (16*c^4)*e + (16*a*c^4 + 16*c^4) - Check that :trac:`24539` is fixed:: + Check that :issue:`24539` is fixed:: sage: tau = polygen(QQ, 'tau') sage: PolynomialRing(CyclotomicField(2), 'z').fraction_field()(tau/(1+tau)) # needs sage.rings.number_field z/(z + 1) - Check that :trac:`26150` is fixed:: + Check that :issue:`26150` is fixed:: sage: z = SR.var('z') # needs sage.symbolic sage: CyclotomicField(2)['z'].fraction_field()(2*(4*z + 5)/((z + 1)*(z - 1)^4)) # needs sage.rings.number_field sage.symbolic @@ -633,7 +633,7 @@ def _element_constructor_(self, x, y=None, coerce=True): sage: S.fraction_field()(s/(s+1), (t-1)/(t+2)) (s^2 + 2*s)/(s^2 - 1) - Check that :trac:`29713` is fixed:: + Check that :issue:`29713` is fixed:: sage: F = FractionField(QQ['a']) sage: a = F.gen() @@ -1109,7 +1109,7 @@ class FractionFieldEmbedding(DefaultConvertMap_unique): True sage: TestSuite(f).run() - Check that :trac:`23185` has been resolved:: + Check that :issue:`23185` has been resolved:: sage: R. = QQ[] sage: K. = FunctionField(QQ) diff --git a/src/sage/rings/fraction_field_FpT.pyx b/src/sage/rings/fraction_field_FpT.pyx index ac833a196b4..3ea53e589b8 100644 --- a/src/sage/rings/fraction_field_FpT.pyx +++ b/src/sage/rings/fraction_field_FpT.pyx @@ -1128,7 +1128,7 @@ cdef class Polyring_FpT_coerce(RingHomomorphism): TESTS: - Check that :trac:`12217` and :trac:`16811` are fixed:: + Check that :issue:`12217` and :issue:`16811` are fixed:: sage: R. = GF(5)[] sage: K = R.fraction_field() @@ -1223,7 +1223,7 @@ cdef class FpT_Polyring_section(Section): .. WARNING:: Comparison of ``FpT_Polyring_section`` objects is not currently - implemented. See :trac:`23469`. :: + implemented. See :issue:`23469`. :: sage: fprime = loads(dumps(f)) sage: fprime == f @@ -1525,7 +1525,7 @@ cdef class FpT_Fp_section(Section): .. WARNING:: Comparison of ``FpT_Fp_section`` objects is not currently - implemented. See :trac:`23469`. :: + implemented. See :issue:`23469`. :: sage: fprime = loads(dumps(f)) sage: fprime == f diff --git a/src/sage/rings/fraction_field_element.pyx b/src/sage/rings/fraction_field_element.pyx index 5fd616f6b34..2abb8c4d326 100644 --- a/src/sage/rings/fraction_field_element.pyx +++ b/src/sage/rings/fraction_field_element.pyx @@ -63,14 +63,14 @@ cdef class FractionFieldElement(FieldElement): TESTS: - Test if :trac:`5451` is fixed:: + Test if :issue:`5451` is fixed:: sage: A = FiniteField(9,'theta')['t'] # needs sage.rings.finite_rings sage: K. = FractionField(A) # needs sage.rings.finite_rings sage: f = 2/(t^2 + 2*t); g = t^9/(t^18 + t^10 + t^2); f + g # needs sage.rings.finite_rings (2*t^15 + 2*t^14 + 2*t^13 + 2*t^12 + 2*t^11 + 2*t^10 + 2*t^9 + t^7 + t^6 + t^5 + t^4 + t^3 + t^2 + t + 1)/(t^17 + t^9 + t) - Test if :trac:`8671` is fixed:: + Test if :issue:`8671` is fixed:: sage: P. = QQ[] sage: F = P.fraction_field() @@ -183,7 +183,7 @@ cdef class FractionFieldElement(FieldElement): TESTS: - Check that :trac:`8111` is fixed:: + Check that :issue:`8111` is fixed:: sage: K.= QQ[] sage: frac = (64*k^2+128)/(64*k^3+256) @@ -379,7 +379,7 @@ cdef class FractionFieldElement(FieldElement): sage: hash(R(1)/R(2))==hash(1/2) True - Check that :trac:`16268` is fixed:: + Check that :issue:`16268` is fixed:: sage: ku. = FractionField(PolynomialRing(QQ,'u')) sage: a = 27*u^2+81*u+243 @@ -393,7 +393,7 @@ cdef class FractionFieldElement(FieldElement): sage: len(set([s,t])) 1 - Check that :trac:`25199` is fixed:: + Check that :issue:`25199` is fixed:: sage: R. = QQbar[] # needs sage.rings.number_field sage: hash(R.0) == hash(FractionField(R).0) @@ -1136,7 +1136,7 @@ cdef class FractionFieldElement(FieldElement): sage: pol(rat) (2*y^3 + 3*y^2*z + 3*y*z^2 + z^3)/y^3 - Check that :trac:`25440` has been resolved:: + Check that :issue:`25440` has been resolved:: sage: R. = GF(2)[] sage: S. = R.fraction_field()[] diff --git a/src/sage/rings/function_field/constructor.py b/src/sage/rings/function_field/constructor.py index 071f66ec163..6dff57348a7 100644 --- a/src/sage/rings/function_field/constructor.py +++ b/src/sage/rings/function_field/constructor.py @@ -156,7 +156,7 @@ def create_key(self,polynomial,names): TESTS: - Verify that :trac:`16530` has been resolved:: + Verify that :issue:`16530` has been resolved:: sage: # needs sage.rings.function_field sage: K. = FunctionField(QQ) diff --git a/src/sage/rings/function_field/element.pyx b/src/sage/rings/function_field/element.pyx index 93a0333a14c..d9c284d61e6 100644 --- a/src/sage/rings/function_field/element.pyx +++ b/src/sage/rings/function_field/element.pyx @@ -137,7 +137,7 @@ cdef class FunctionFieldElement(FieldElement): TESTS: - Check that :trac:`16369` has been resolved:: + Check that :issue:`16369` has been resolved:: sage: K. = FunctionField(QQ) sage: R. = K[] @@ -401,7 +401,7 @@ cdef class FunctionFieldElement(FieldElement): TESTS: - Verify that :trac:`27712` is resolved:: + Verify that :issue:`27712` is resolved:: sage: K. = FunctionField(GF(31)) sage: R. = K[] diff --git a/src/sage/rings/function_field/function_field.py b/src/sage/rings/function_field/function_field.py index af5b6c4d924..c4b862f0629 100644 --- a/src/sage/rings/function_field/function_field.py +++ b/src/sage/rings/function_field/function_field.py @@ -684,7 +684,7 @@ def _coerce_map_from_(self, source): sage: M.has_coerce_map_from(L) # needs sage.rings.function_field sage.rings.number_field True - Check that :trac:`31072` is fixed:: + Check that :issue:`31072` is fixed:: sage: L. = FunctionField(QQ) sage: L(Sequence([1, 2])) @@ -976,7 +976,7 @@ def valuation(self, prime): sage: R. = K[] sage: L. = K.extension(w^3 - t) sage: N. = FunctionField(L) - sage: w = v.extension(N) # missing factorization, :trac:`16572` + sage: w = v.extension(N) # missing factorization, :issue:`16572` Traceback (most recent call last): ... NotImplementedError diff --git a/src/sage/rings/function_field/function_field_polymod.py b/src/sage/rings/function_field/function_field_polymod.py index 44c1390bc86..60a0773afb8 100644 --- a/src/sage/rings/function_field/function_field_polymod.py +++ b/src/sage/rings/function_field/function_field_polymod.py @@ -128,7 +128,7 @@ def __init__(self, polynomial, names, category=None): TESTS: - Test that :trac:`17033` is fixed:: + Test that :issue:`17033` is fixed:: sage: K. = FunctionField(QQ) sage: R. = QQ[] @@ -263,7 +263,7 @@ def _to_base_field(self, f): TESTS: - Verify that :trac:`21872` has been resolved:: + Verify that :issue:`21872` has been resolved:: sage: R. = L[] sage: M. = L.extension(z^2 - y) @@ -305,7 +305,7 @@ def _to_constant_base_field(self, f): TESTS: - Verify that :trac:`21872` has been resolved:: + Verify that :issue:`21872` has been resolved:: sage: L(1) in QQ True diff --git a/src/sage/rings/function_field/function_field_rational.py b/src/sage/rings/function_field/function_field_rational.py index 8a0a6f25764..2226c086b00 100644 --- a/src/sage/rings/function_field/function_field_rational.py +++ b/src/sage/rings/function_field/function_field_rational.py @@ -292,7 +292,7 @@ def _to_constant_base_field(self, f): TESTS: - Verify that :trac:`21872` has been resolved:: + Verify that :issue:`21872` has been resolved:: sage: K(1) in QQ True diff --git a/src/sage/rings/function_field/order_polymod.py b/src/sage/rings/function_field/order_polymod.py index 067ca2ed090..d6831fa7248 100644 --- a/src/sage/rings/function_field/order_polymod.py +++ b/src/sage/rings/function_field/order_polymod.py @@ -611,7 +611,7 @@ def decomposition(self, ideal): finite-dimensional algebra, a construct for which we do support primary decomposition. - See :trac:`28094` and https://github.com/sagemath/sage/files/10659303/decomposition.pdf.gz + See :issue:`28094` and https://github.com/sagemath/sage/files/10659303/decomposition.pdf.gz .. TODO:: diff --git a/src/sage/rings/function_field/valuation.py b/src/sage/rings/function_field/valuation.py index b7c7536bca9..aa127de2069 100644 --- a/src/sage/rings/function_field/valuation.py +++ b/src/sage/rings/function_field/valuation.py @@ -303,7 +303,7 @@ def create_key_and_extra_args_from_valuation(self, domain, valuation): sage: w = GaussValuation(R, valuations.TrivialValuation(QQ)).augmentation(x - 1, 1) sage: v = K.valuation(w) # indirect doctest - Check that :trac:`25294` has been resolved:: + Check that :issue:`25294` has been resolved:: sage: K. = FunctionField(QQ) sage: R. = K[] diff --git a/src/sage/rings/ideal.py b/src/sage/rings/ideal.py index 22f8e873c5b..4dba8ec9d42 100644 --- a/src/sage/rings/ideal.py +++ b/src/sage/rings/ideal.py @@ -98,7 +98,7 @@ def Ideal(*args, **kwds): sage: ideal(1/2,t,t^2) Principal ideal (1) of Univariate Polynomial Ring in t over Rational Field - This shows that the issues at :trac:`1104` are resolved:: + This shows that the issues at :issue:`1104` are resolved:: sage: Ideal(3, 5) Principal ideal (1) of Integer Ring @@ -156,7 +156,7 @@ def Ideal(*args, **kwds): sage: I == loads(dumps(I)) True - This shows that the issue at :trac:`5477` is fixed:: + This shows that the issue at :issue:`5477` is fixed:: sage: R. = QQ[] sage: I = R.ideal([x + x^2]) @@ -973,7 +973,7 @@ def is_trivial(self): sage: I.is_trivial() # needs sage.rings.real_mpfr True - This test addresses issue :trac:`20514`:: + This test addresses issue :issue:`20514`:: sage: R = QQ['x', 'y'] sage: I = R.ideal(R.gens()) @@ -1201,7 +1201,7 @@ def _macaulay2_init_(self, macaulay2=None): TESTS: - Check that a cached base ring is used (:trac:`28074`):: + Check that a cached base ring is used (:issue:`28074`):: sage: R. = QQ[] sage: R1 = macaulay2(R) # optional - macaulay2 diff --git a/src/sage/rings/infinity.py b/src/sage/rings/infinity.py index 883be4aa253..a5499c3dbb6 100644 --- a/src/sage/rings/infinity.py +++ b/src/sage/rings/infinity.py @@ -201,7 +201,7 @@ sage: loads(dumps(infinity)) is infinity True -We check that :trac:`17990` is fixed:: +We check that :issue:`17990` is fixed:: sage: m = Matrix([Infinity]) # needs sage.modules sage: m.rows() # needs sage.modules @@ -469,7 +469,7 @@ def _div_(self, other): ... SignError: cannot multiply infinity by zero - Check that :trac:`14857` is fixed:: + Check that :issue:`14857` is fixed:: sage: infinity / unsigned_infinity Traceback (most recent call last): @@ -571,7 +571,7 @@ def __init__(self): sage: sage.rings.infinity.UnsignedInfinityRing_class() is sage.rings.infinity.UnsignedInfinityRing_class() is UnsignedInfinityRing True - Sage can understand SymPy's complex infinity (:trac:`17493`):: + Sage can understand SymPy's complex infinity (:issue:`17493`):: sage: import sympy # needs sympy sage: SR(sympy.zoo) # needs sympy @@ -1367,7 +1367,7 @@ def _add_(self, other): TESTS: - Check that :trac:`34231` is fixed:: + Check that :issue:`34231` is fixed:: sage: R = InfinityRing sage: all(R(0) + x == x + R(0) == x for x in [-oo, R(-1), R(0), R(1), oo]) @@ -1838,7 +1838,7 @@ def test_signed_infinity(pos_inf): There are different possible representations of infinity in Sage. These are all consistent with the infinity ring, that is, - compare with infinity in the expected way. See also :trac:`14045` + compare with infinity in the expected way. See also :issue:`14045` INPUT: @@ -1849,7 +1849,7 @@ def test_signed_infinity(pos_inf): An assertion error is raised if the representation is not consistent with the infinity ring. - Check that :trac:`14045` is fixed:: + Check that :issue:`14045` is fixed:: sage: InfinityRing(float('+inf')) +Infinity diff --git a/src/sage/rings/integer.pyx b/src/sage/rings/integer.pyx index aa7d4855bbb..ddd308ab5c8 100644 --- a/src/sage/rings/integer.pyx +++ b/src/sage/rings/integer.pyx @@ -113,7 +113,7 @@ AUTHORS: - David Roe (2012-03): deprecate :meth:`~sage.rings.integer.Integer.is_power` in favour of :meth:`~sage.rings.integer.Integer.is_perfect_power` (see - :trac:`12116`) + :issue:`12116`) - Vincent Delecroix (2017-05-03): faster integer-rational comparisons @@ -121,7 +121,7 @@ AUTHORS: - Vincent Klein (2017-05-22): Integer constructor support gmpy2.mpz parameter -- Samuel Lelièvre (2018-08-02): document that divisors are sorted (:trac:`25983`) +- Samuel Lelièvre (2018-08-02): document that divisors are sorted (:issue:`25983`) """ # **************************************************************************** # Copyright (C) 2004, 2006 William Stein @@ -379,7 +379,7 @@ cdef class IntegerWrapper(Integer): sage: n.parent() Set of all prime numbers: 2, 3, 5, 7, ... - Pickling seems to work now (as of :trac:`10314`):: + Pickling seems to work now (as of :issue:`10314`):: sage: nn = loads(dumps(n)) sage: nn @@ -532,7 +532,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): sage: Integer('0X2AEEF') 175855 - Test conversion from PARI (:trac:`11685`):: + Test conversion from PARI (:issue:`11685`):: sage: # needs sage.libs.pari sage: ZZ(pari(-3)) @@ -582,7 +582,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): sage: a == ZZ(L, base=2^64) True - Test comparisons with numpy types (see :trac:`13386` and :trac:`18076`):: + Test comparisons with numpy types (see :issue:`13386` and :issue:`18076`):: sage: import numpy # needs numpy sage: numpy.int8('12') == 12 # needs numpy @@ -746,7 +746,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): sage: v[Integer(2):Integer(4)] [3, 4] - See :trac:`20750`:: + See :issue:`20750`:: sage: import re sage: p = re.compile('(a)b') @@ -871,7 +871,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): sage: all((a > b) == (RR(a) > RR(b)) for (a, b) in zip(Ilist, flist)) True - Verify that :trac:`12149` was fixed (and the fix is consistent + Verify that :issue:`12149` was fixed (and the fix is consistent with Python ints):: sage: a = int(1); b = 1; n = float('nan') @@ -2175,7 +2175,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): TypeError: no canonical coercion from Univariate Polynomial Ring in t over Rational Field to Rational Field - Test for :trac:`34143`:: + Test for :issue:`34143`:: sage: pow(5,7,13).parent() Integer Ring @@ -2820,12 +2820,12 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): sage: log(0) # needs sage.symbolic -Infinity - Some rational bases yield integer logarithms (:trac:`21517`):: + Some rational bases yield integer logarithms (:issue:`21517`):: sage: ZZ(8).log(1/2) -3 - Check that Python ints are accepted (:trac:`21518`):: + Check that Python ints are accepted (:issue:`21518`):: sage: ZZ(8).log(int(2)) 3 @@ -3344,7 +3344,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): sage: [int(a) % b for a,b in signs] == control True - This example caused trouble in :trac:`6083`:: + This example caused trouble in :issue:`6083`:: sage: a = next_prime(2**31) # needs sage.libs.pari sage: b = Integers(a)(100) # needs sage.libs.pari @@ -3433,14 +3433,14 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): TESTS: The divisor can be rational as well, although the remainder - will always be zero (:trac:`7965`):: + will always be zero (:issue:`7965`):: sage: 5.quo_rem(QQ(2)) (5/2, 0) sage: 5.quo_rem(2/3) (15/2, 0) - Check that :trac:`29009` is fixed: + Check that :issue:`29009` is fixed: sage: divmod(1, sys.maxsize+1r) # should not raise OverflowError: Python int too large to convert to C long (0, 1) @@ -3546,7 +3546,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): TESTS: - Check that :trac:`9345` is fixed:: + Check that :issue:`9345` is fixed:: sage: 0.rational_reconstruction(0) Traceback (most recent call last): @@ -3668,7 +3668,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): sage: hash(1-n) == hash(int(1-n)) True - These tests come from :trac:`4957`:: + These tests come from :issue:`4957`:: sage: n = 2^31 + 2^13 sage: hash(n) # random @@ -4711,7 +4711,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES: - This example addresses :trac:`23502`:: + This example addresses :issue:`23502`:: sage: n = 6 sage: n.round() @@ -5220,7 +5220,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): True sage: proof.arithmetic(True) - We check that :trac:`4777` is fixed:: + We check that :issue:`4777` is fixed:: sage: n = 150607571^14 sage: n.is_prime_power() # needs sage.libs.pari @@ -5543,7 +5543,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): TESTS: This is a test to make sure we work around a bug in GMP, see - :trac:`4612`. + :issue:`4612`. :: @@ -6461,7 +6461,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): sage: type(0.sqrt(prec=53)) # needs sage.rings.real_mpfr - Check that :trac:`9466` and :trac:`26509` are fixed:: + Check that :issue:`9466` and :issue:`26509` are fixed:: sage: 3.sqrt(extend=False, all=True) [] @@ -6525,7 +6525,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): There is no guarantee that the cofactors will be minimal. If you need the cofactors to be minimal use :meth:`_xgcd`. Also, using :meth:`_xgcd` directly might be faster in some cases, see - :trac:`13628`. + :issue:`13628`. EXAMPLES:: @@ -6939,12 +6939,12 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): ... ZeroDivisionError: inverse of Mod(..., ...) does not exist - We check that :trac:`10625` is fixed:: + We check that :issue:`10625` is fixed:: sage: ZZ(2).inverse_mod(ZZ.ideal(3)) 2 - We check that :trac:`9955` is fixed:: + We check that :issue:`9955` is fixed:: sage: Rational(3) % Rational(-1) 0 @@ -7109,7 +7109,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): sage: 13.binomial(2r) 78 - Check that it can be interrupted (:trac:`17852`):: + Check that it can be interrupted (:issue:`17852`):: sage: alarm(0.5); (2^100).binomial(2^22, algorithm='mpir') Traceback (most recent call last): @@ -7117,7 +7117,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): AlarmInterrupt For PARI, we try 10 interrupts with increasing intervals to - check for reliable interrupting, see :trac:`18919`:: + check for reliable interrupting, see :issue:`18919`:: sage: from cysignals import AlarmInterrupt sage: for i in [1..10]: # long time (5s) # needs sage.libs.pari @@ -7324,7 +7324,7 @@ def GCD_list(v): sage: type(w) - Check that the bug reported in :trac:`3118` has been fixed:: + Check that the bug reported in :issue:`3118` has been fixed:: sage: sage.rings.integer.GCD_list([2,2,3]) 1 @@ -7338,7 +7338,7 @@ def GCD_list(v): sage: type(w) - Check that the GCD of the empty list is zero (:trac:`17257`):: + Check that the GCD of the empty list is zero (:issue:`17257`):: sage: GCD_list([]) 0 @@ -7512,7 +7512,7 @@ cdef int sizeof_Integer # from. DO NOT INITIALIZE IT AGAIN and DO NOT REFERENCE IT! cdef Integer global_dummy_Integer global_dummy_Integer = Integer() -# Reallocate to one limb to fix :trac:`31340` and :trac:`33081` +# Reallocate to one limb to fix :issue:`31340` and :issue:`33081` _mpz_realloc(global_dummy_Integer.value, 1) @@ -7527,7 +7527,7 @@ def _check_global_dummy_Integer(): True """ # Check that it has exactly one limb allocated - # This is assumed later in fast_tp_new() :trac:`33081` + # This is assumed later in fast_tp_new() :issue:`33081` cdef mpz_ptr dummy = global_dummy_Integer.value if dummy._mp_alloc == 1 and dummy._mp_size == 0: return True @@ -7793,7 +7793,7 @@ cdef double mpz_get_d_nearest(mpz_t x) except? -648555075988944.5: AUTHORS: - - Jeroen Demeyer (:trac:`16385`, based on :trac:`14416`) + - Jeroen Demeyer (:issue:`16385`, based on :issue:`14416`) """ cdef mp_bitcnt_t sx = mpz_sizeinbase(x, 2) diff --git a/src/sage/rings/integer_ring.pyx b/src/sage/rings/integer_ring.pyx index 559de2065e2..b9e390e4e5d 100644 --- a/src/sage/rings/integer_ring.pyx +++ b/src/sage/rings/integer_ring.pyx @@ -307,7 +307,7 @@ cdef class IntegerRing_class(PrincipalIdealDomain): sage: A = IntegerRing_class() We check that ``ZZ`` is an infinite enumerated set - (see :trac:`16239`):: + (see :issue:`16239`):: sage: A in InfiniteEnumeratedSets() True @@ -456,7 +456,7 @@ cdef class IntegerRing_class(PrincipalIdealDomain): 3626777458843887524118528, 4835703278458516698824704, 6044629098073145873530880, 7253554917687775048237056, 8462480737302404222943232] - Make sure :trac:`8818` is fixed:: + Make sure :issue:`8818` is fixed:: sage: ZZ.range(1r, 10r) [1, 2, 3, 4, 5, 6, 7, 8, 9] @@ -731,7 +731,7 @@ cdef class IntegerRing_class(PrincipalIdealDomain): TESTS: - Check that :trac:`32124` is fixed:: + Check that :issue:`32124` is fixed:: sage: ZZ.random_element(5, -5, distribution="1/n").parent() is ZZ True diff --git a/src/sage/rings/invariants/invariant_theory.py b/src/sage/rings/invariants/invariant_theory.py index 6d5e8646186..376e4426c94 100644 --- a/src/sage/rings/invariants/invariant_theory.py +++ b/src/sage/rings/invariants/invariant_theory.py @@ -599,7 +599,7 @@ def _check_covariant(self, method_name, g=None, invariant=False): sage: quartic._check_covariant('EisensteinE', invariant=True) sage: quartic._check_covariant('h_covariant') - sage: quartic._check_covariant('h_covariant', invariant=True) # not tested, known bug (see :trac:`32118`) + sage: quartic._check_covariant('h_covariant', invariant=True) # not tested, known bug (see :issue:`32118`) Traceback (most recent call last): ... AssertionError: not invariant @@ -804,7 +804,7 @@ def _extract_coefficients(self, monomials): TESTS: - Check for :trac:`30035`:: + Check for :issue:`30035`:: sage: R. = QQ[] sage: f = 3*a**3 + b**3 + a*b*c @@ -4375,7 +4375,7 @@ def binary_form_from_invariants(self, degree, invariants, variables=None, as_for True For binary forms of other degrees, no reconstruction has been - implemented yet. For forms of degree 6, see :trac:`26462`:: + implemented yet. For forms of degree 6, see :issue:`26462`:: sage: invariant_theory.binary_form_from_invariants(6, invariants) Traceback (most recent call last): diff --git a/src/sage/rings/invariants/reconstruction.py b/src/sage/rings/invariants/reconstruction.py index 2fff473d090..8e98ad3f20f 100644 --- a/src/sage/rings/invariants/reconstruction.py +++ b/src/sage/rings/invariants/reconstruction.py @@ -229,7 +229,7 @@ def binary_quintic_coefficients_from_invariants(invariants, K=None, invariant_ch (1, 0, 0, 0, 1, 0) For fields of characteristic 2, 3 or 5, there is no reconstruction - implemented. This is part of :trac:`26786`.:: + implemented. This is part of :issue:`26786`.:: sage: binary_quintic_coefficients_from_invariants([3,1,2], K=GF(5)) Traceback (most recent call last): diff --git a/src/sage/rings/laurent_series_ring.py b/src/sage/rings/laurent_series_ring.py index cf77a8bb5a7..4e0c6f0d557 100644 --- a/src/sage/rings/laurent_series_ring.py +++ b/src/sage/rings/laurent_series_ring.py @@ -138,7 +138,7 @@ class LaurentSeriesRing(UniqueRepresentation, CommutativeRing): TESTS: Check if changing global series precision does it right (and - that :trac:`17955` is fixed):: + that :issue:`17955` is fixed):: sage: set_series_precision(3) sage: R. = LaurentSeriesRing(ZZ) @@ -150,7 +150,7 @@ class LaurentSeriesRing(UniqueRepresentation, CommutativeRing): 1 + 2*x + 4*x^2 + 8*x^3 + 16*x^4 + O(x^5) sage: set_series_precision(20) - Check categories (:trac:`24420`):: + Check categories (:issue:`24420`):: sage: LaurentSeriesRing(ZZ, 'x').category() Category of infinite commutative no zero divisors algebras @@ -163,7 +163,7 @@ class LaurentSeriesRing(UniqueRepresentation, CommutativeRing): Category of infinite commutative algebras over (finite commutative rings and subquotients of monoids and quotients of semigroups and finite enumerated sets) - Check coercions (:trac:`24431`):: + Check coercions (:issue:`24431`):: sage: pts = [LaurentSeriesRing, ....: PolynomialRing, @@ -441,7 +441,7 @@ def _element_constructor_(self, x, n=0, prec=infinity): TESTS: - Check that :trac:`28993` is fixed:: + Check that :issue:`28993` is fixed:: sage: from sage.modular.etaproducts import qexp_eta # needs sage.modular sage: S. = LaurentSeriesRing(RationalField()) @@ -449,7 +449,7 @@ def _element_constructor_(self, x, n=0, prec=infinity): 1 - t - t^2 + t^5 + t^7 - t^12 - t^15 + t^22 + t^26 + O(t^30) When converting from `R((z))` to `R((z))((w))`, the variable - `z` is sent to `z` rather than to `w` (see :trac:`7085`):: + `z` is sent to `z` rather than to `w` (see :issue:`7085`):: sage: A. = LaurentSeriesRing(QQ) sage: B. = LaurentSeriesRing(A) @@ -458,7 +458,7 @@ def _element_constructor_(self, x, n=0, prec=infinity): sage: z/w z*w^-1 - Various conversions from PARI (see also :trac:`2508`):: + Various conversions from PARI (see also :issue:`2508`):: sage: # needs sage.libs.pari sage: L. = LaurentSeriesRing(QQ, default_prec=10) @@ -481,7 +481,7 @@ def _element_constructor_(self, x, n=0, prec=infinity): sage: L(pari('O(x^-10)')) O(q^-10) - Check that :trac:`30073` is fixed:: + Check that :issue:`30073` is fixed:: sage: P. = LaurentSeriesRing(QQ) sage: P({-3: 1}) diff --git a/src/sage/rings/laurent_series_ring_element.pyx b/src/sage/rings/laurent_series_ring_element.pyx index cac7acd812c..a22f1c65db4 100644 --- a/src/sage/rings/laurent_series_ring_element.pyx +++ b/src/sage/rings/laurent_series_ring_element.pyx @@ -438,7 +438,7 @@ cdef class LaurentSeries(AlgebraElement): sage: latex(f) \frac{\frac{17}{2}}{x^{2}} + x + x^{2} + 3x^{4} + O(x^{7}) - Verify that :trac:`6656` has been fixed:: + Verify that :issue:`6656` has been fixed:: sage: R. = PolynomialRing(QQ) sage: T. = LaurentSeriesRing(R) @@ -526,7 +526,7 @@ cdef class LaurentSeries(AlgebraElement): sage: f[:2] -5*t^-10 + 1/3 + t + O(t^5) - Any other kind of slicing is an error, see :trac:`18940`:: + Any other kind of slicing is an error, see :issue:`18940`:: sage: f[-10:2:2] Traceback (most recent call last): @@ -756,7 +756,7 @@ cdef class LaurentSeries(AlgebraElement): TESTS: - Verify that :trac:`35860` is fixed:: + Verify that :issue:`35860` is fixed:: sage: R. = LaurentPolynomialRing(ZZ) sage: sqrt(t^2) + t^-1 @@ -843,7 +843,7 @@ cdef class LaurentSeries(AlgebraElement): TESTS: - Check that :trac:`28239` is fixed:: + Check that :issue:`28239` is fixed:: sage: (t^(-2)).add_bigoh(-1) t^-2 + O(t^-1) @@ -1247,7 +1247,7 @@ cdef class LaurentSeries(AlgebraElement): sage: f > g True - Check that :trac:`19664` is fixed:: + Check that :issue:`19664` is fixed:: sage: R. = LaurentSeriesRing(RR) sage: x^(10^9) > 0 @@ -1311,7 +1311,7 @@ cdef class LaurentSeries(AlgebraElement): TESTS: The valuation of the zero element is ``+Infinity`` - (see :trac:`15088`):: + (see :issue:`15088`):: sage: zero = R(0) sage: zero.valuation() @@ -1753,7 +1753,7 @@ cdef class LaurentSeries(AlgebraElement): TESTS: Check whether a polynomial over a Laurent series ring is contained in the - polynomial ring over the power series ring (see :trac:`19459`): + polynomial ring over the power series ring (see :issue:`19459`): sage: # needs sage.rings.finite_rings sage: L. = LaurentSeriesRing(GF(2)) @@ -1763,7 +1763,7 @@ cdef class LaurentSeries(AlgebraElement): False There used to be an issue with non-canonical representations of zero, - see :trac:`31383`:: + see :issue:`31383`:: sage: S. = PowerSeriesRing(QQ) sage: L = Frac(S) @@ -1777,7 +1777,7 @@ cdef class LaurentSeries(AlgebraElement): ... TypeError: self is not a power series - Test for :trac:`32440`:: + Test for :issue:`32440`:: sage: L. = LaurentSeriesRing(QQ, implementation='pari') # needs sage.libs.pari sage: (x + O(x^3)).power_series() # needs sage.libs.pari @@ -1839,7 +1839,7 @@ cdef class LaurentSeries(AlgebraElement): ... ValueError: Can only substitute elements of positive valuation - Test for :trac:`23928`:: + Test for :issue:`23928`:: sage: R. = LaurentSeriesRing(QQ, implementation='pari') # needs sage.libs.pari sage: f = x.add_bigoh(7) # needs sage.libs.pari @@ -1886,7 +1886,7 @@ cdef class LaurentSeries(AlgebraElement): sage: f.__pari__() # needs sage.libs.pari x^-1 + x + O(x^2) - Check that :trac:`32437` is fixed:: + Check that :issue:`32437` is fixed:: sage: # needs sage.rings.finite_rings sage: F. = GF(257^2) diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index 325bdff58b8..8d225451fed 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -730,7 +730,7 @@ def shift(self, n): True We compare the shifting with converting to the fraction field - (see also :trac:`35293`):: + (see also :issue:`35293`):: sage: M = L.fraction_field() sage: f = L([1,2,3,4]); f @@ -5160,7 +5160,7 @@ def __call__(self, *g): sage: T(1-x-2*y + x*y^2)(1/(1-a), 3) 3 + 8*a + 8*a^2 + 8*a^3 + 8*a^4 + 8*a^5 + 8*a^6 + O(a,b)^7 - Check that issue :trac:`35261` is fixed:: + Check that issue :issue:`35261` is fixed:: sage: L. = LazyPowerSeriesRing(QQ) sage: fun = lambda n: 1 if ZZ(n).is_power_of(2) else 0 @@ -5398,7 +5398,7 @@ def revert(self): sage: f.revert() (-z) + z^3 + (-z^4) + (-2*z^5) + 6*z^6 + z^7 + O(z^8) - Check that issue :trac:`35261` is fixed:: + Check that issue :issue:`35261` is fixed:: sage: L. = LazyPowerSeriesRing(QQ) sage: f = L(lambda n: 1 if ZZ(n).is_power_of(2) else 0) diff --git a/src/sage/rings/lazy_series_ring.py b/src/sage/rings/lazy_series_ring.py index fb9990d0fce..01cd6de9f0f 100644 --- a/src/sage/rings/lazy_series_ring.py +++ b/src/sage/rings/lazy_series_ring.py @@ -2017,7 +2017,7 @@ def __init__(self, base_ring, names, sparse=True, category=None): sage: LazyPowerSeriesRing.options._reset() # reset the options - Check that :trac:`34470` is fixed:: + Check that :issue:`34470` is fixed:: sage: L. = LazyPowerSeriesRing(QQ) sage: L in CompleteDiscreteValuationRings @@ -2189,7 +2189,7 @@ def _element_constructor_(self, x=None, valuation=None, constant=None, degree=No The behaviour of ``LazyPowerSeries(c)`` for a list ``c`` with non-zero last element `e` changed with - :trac:`32367`. To obtain the old behaviour, use + :issue:`32367`. To obtain the old behaviour, use ``LazyPowerSeries(c, constant=e)``. EXAMPLES:: @@ -2700,7 +2700,7 @@ def __init__(self, basis, sparse=True, category=None): sage: LazySymmetricFunctions.options._reset() - Check that :trac:`34470` is fixed. The ideal generated by + Check that :issue:`34470` is fixed. The ideal generated by `p[1]` and `p[2]` is not principal:: sage: p = SymmetricFunctions(QQ).p() # needs sage.modules diff --git a/src/sage/rings/localization.py b/src/sage/rings/localization.py index ea7534349fa..c55cfc48b40 100644 --- a/src/sage/rings/localization.py +++ b/src/sage/rings/localization.py @@ -163,7 +163,7 @@ AUTHORS: - Sebastian Oehms 2019-12-09: initial version. -- Sebastian Oehms 2022-03-05: fix some corner cases and add :meth:`factor` (:trac:`33463`) +- Sebastian Oehms 2022-03-05: fix some corner cases and add :meth:`factor` (:issue:`33463`) """ @@ -314,7 +314,7 @@ def _repr_(self): n = len(names) bnames = L.base_ring()._names if bnames != names and n == len(bnames): - # replace separate names (see :trac:`33482`) + # replace separate names (see :issue:`33482`) for i in range(n): s = s.replace(bnames[i], names[i]) return s @@ -660,7 +660,7 @@ class Localization(IntegralDomain, UniqueRepresentation): TESTS: - Check that :trac:`33463` is fixed:: + Check that :issue:`33463` is fixed:: sage: R = ZZ.localization(5) sage: R.localization(~5) @@ -696,7 +696,7 @@ def __init__(self, base_ring, extra_units, names=None, normalize=True, category= if isinstance(base_ring, Localization): # don't allow recursive constructions extra_units = [u for u in extra_units - if ~u not in base_ring._extra_units] # :trac:`33463` + if ~u not in base_ring._extra_units] # :issue:`33463` extra_units += base_ring._extra_units base_ring = base_ring.base_ring() @@ -878,7 +878,7 @@ def _cut_off_extra_units_from_base_ring_element(self, x): TESTS: - Check that :trac:`33463` is fixed:: + Check that :issue:`33463` is fixed:: sage: L = ZZ.localization(5) sage: L(0).is_unit() diff --git a/src/sage/rings/morphism.pyx b/src/sage/rings/morphism.pyx index 5c945bca692..05c5adcbbd1 100644 --- a/src/sage/rings/morphism.pyx +++ b/src/sage/rings/morphism.pyx @@ -464,7 +464,7 @@ cdef class RingMap_lift(RingMap): sage: S.lift() == 0 # needs sage.libs.singular False - Since :trac:`11068`, it is possible to create + Since :issue:`11068`, it is possible to create quotient rings of non-commutative rings by two-sided ideals. It was needed to modify :class:`RingMap_lift` so that rings can be accepted that are no instances @@ -566,7 +566,7 @@ cdef class RingMap_lift(RingMap): sage: f == g False - Verify that :trac:`5758` has been fixed:: + Verify that :issue:`5758` has been fixed:: sage: Zmod(8).lift() == 1 False @@ -1023,7 +1023,7 @@ cdef class RingHomomorphism(RingMap): TESTS: - Check that :trac:`31367` is fixed:: + Check that :issue:`31367` is fixed:: sage: A. = QQ[] sage: B. = QQ['x,y'].quotient('y') # needs sage.libs.singular @@ -1084,7 +1084,7 @@ cdef class RingHomomorphism(RingMap): (0, 0) Check cases involving quotient rings in which a generator is constant - (:trac:`31178`):: + (:issue:`31178`):: sage: # needs sage.libs.singular sage: R. = QQ[] @@ -1103,7 +1103,7 @@ cdef class RingHomomorphism(RingMap): sage: h.inverse_image(d^2) a - Check that quotient rings are handled correctly (:trac:`33217`):: + Check that quotient rings are handled correctly (:issue:`33217`):: sage: # needs sage.libs.singular sage: A. = QQ['X,Y,Z'].quotient('X^2+Y^2+Z^2-1') @@ -1280,7 +1280,7 @@ cdef class RingHomomorphism(RingMap): ... NotImplementedError: base map must be trivial - Non-commutative rings are not supported (:trac:`32824`):: + Non-commutative rings are not supported (:issue:`32824`):: sage: A = GradedCommutativeAlgebra(QQ, 'x,y,z') # needs sage.combinat sage.modules sage: A.hom(A.gens(), A).kernel() # needs sage.combinat sage.modules @@ -1907,7 +1907,7 @@ cdef class RingHomomorphism_im_gens(RingHomomorphism): sage: loads(dumps(f2)) == f2 # needs sage.libs.pari True - This was fixed in :trac:`24277`:: + This was fixed in :issue:`24277`:: sage: H = End(QQ) sage: H(1) == H.identity() diff --git a/src/sage/rings/multi_power_series_ring.py b/src/sage/rings/multi_power_series_ring.py index 8ceaa9c5154..0b34dfa003b 100644 --- a/src/sage/rings/multi_power_series_ring.py +++ b/src/sage/rings/multi_power_series_ring.py @@ -190,7 +190,7 @@ AUTHORS: - Niles Johnson (2010-07): initial code -- Simon King (2012-08, 2013-02): Use category and coercion framework, :trac:`13412` and :trac:`14084` +- Simon King (2012-08, 2013-02): Use category and coercion framework, :issue:`13412` and :issue:`14084` """ @@ -345,7 +345,7 @@ def __init__(self, base_ring, num_gens, name_list, TESTS: - By :trac:`14084`, the multi-variate power series ring belongs to the + By :issue:`14084`, the multi-variate power series ring belongs to the category of integral domains, if the base ring does:: sage: P = ZZ[['x','y']] diff --git a/src/sage/rings/multi_power_series_ring_element.py b/src/sage/rings/multi_power_series_ring_element.py index 8801d2d279a..a92bb54377a 100644 --- a/src/sage/rings/multi_power_series_ring_element.py +++ b/src/sage/rings/multi_power_series_ring_element.py @@ -145,7 +145,7 @@ AUTHORS: - Niles Johnson (07/2010): initial code -- Simon King (08/2012): Use category and coercion framework, :trac:`13412` +- Simon King (08/2012): Use category and coercion framework, :issue:`13412` """ # **************************************************************************** @@ -449,14 +449,14 @@ def __call__(self, *x, **kwds): sage: f.truncate()(t,2) 2*t + 3*t^2 + 7*t^3 + 3*t^4 - Checking that :trac:`15059` is fixed:: + Checking that :issue:`15059` is fixed:: sage: M. = PowerSeriesRing(GF(5)) sage: s = M.hom([u, u+v]) sage: s(M.one()) 1 - Since :trac:`26105` you can specify a map on the base ring:: + Since :issue:`26105` you can specify a map on the base ring:: sage: # needs sage.rings.number_field sage: Zx. = ZZ[] @@ -619,7 +619,7 @@ def _latex_(self): TESTS: - Check that :trac:`25156` is fixed:: + Check that :issue:`25156` is fixed:: sage: R. = PowerSeriesRing(QQ, ('x', 'y')) sage: element = 1 + y1^10 + x1^5 diff --git a/src/sage/rings/noncommutative_ideals.pyx b/src/sage/rings/noncommutative_ideals.pyx index 6965f1c6c61..62484c9326b 100644 --- a/src/sage/rings/noncommutative_ideals.pyx +++ b/src/sage/rings/noncommutative_ideals.pyx @@ -6,7 +6,7 @@ Generic implementation of one- and two-sided ideals of non-commutative rings. AUTHOR: -- Simon King (2011-03-21), , :trac:`7797`. +- Simon King (2011-03-21), , :issue:`7797`. EXAMPLES:: diff --git a/src/sage/rings/number_field/bdd_height.py b/src/sage/rings/number_field/bdd_height.py index 2b3d18a6578..6d271e8786e 100644 --- a/src/sage/rings/number_field/bdd_height.py +++ b/src/sage/rings/number_field/bdd_height.py @@ -418,7 +418,7 @@ def bdd_height(K, height_bound, tolerance=1e-2, precision=53): TESTS: - Check that :trac:`22771` is fixed:: + Check that :issue:`22771` is fixed:: sage: from sage.rings.number_field.bdd_height import bdd_height sage: K. = NumberField(x^3 + x + 1) diff --git a/src/sage/rings/number_field/galois_group.py b/src/sage/rings/number_field/galois_group.py index 9ea602dc1aa..999089d49d0 100644 --- a/src/sage/rings/number_field/galois_group.py +++ b/src/sage/rings/number_field/galois_group.py @@ -243,7 +243,7 @@ class GaloisGroup_v2(GaloisGroup_perm): Subgroup generated by [(1,2,3)(4,5,6)] of (Galois group 6T2 ([3]2) with order 6 of x^6 - 6*x^4 + 9*x^2 + 23) - Subgroups can be specified using generators (:trac:`26816`):: + Subgroups can be specified using generators (:issue:`26816`):: sage: K. = NumberField(x^6 - 6*x^4 + 9*x^2 + 23) sage: G = K.galois_group() @@ -295,7 +295,7 @@ def __init__(self, number_field, algorithm='pari', names=None, gc_numbering=None sage: G = F.galois_group() We test that a method inherited from PermutationGroup_generic returns - the right type of element (see :trac:`133`):: + the right type of element (see :issue:`133`):: sage: phi = G.random_element() sage: type(phi) is G.element_class @@ -1073,7 +1073,7 @@ class GaloisGroup_subgroup(GaloisSubgroup_perm): TESTS: - Check that :trac:`17664` is fixed:: + Check that :issue:`17664` is fixed:: sage: L. = QuadraticField(-1) sage: P = L.primes_above(5)[0] @@ -1155,7 +1155,7 @@ def fixed_field(self, name=None, polred=None, threshold=None): Number Field in ac with defining polynomial x^10 + 10*x^8 + 25*x^6 + 3375 An embedding is returned also if the subgroup is trivial - (:trac:`26817`):: + (:issue:`26817`):: sage: H = G.subgroup([]) sage: H.fixed_field() @@ -1229,7 +1229,7 @@ def as_hom(self): TESTS: Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: R. = QQ[] sage: x = polygen(ZZ, 'x') diff --git a/src/sage/rings/number_field/homset.py b/src/sage/rings/number_field/homset.py index ca5329668c5..4e4a12a9c6f 100644 --- a/src/sage/rings/number_field/homset.py +++ b/src/sage/rings/number_field/homset.py @@ -39,7 +39,7 @@ def __init__(self, R, S, category=None): """ TESTS: - Check that :trac:`23647` is fixed:: + Check that :issue:`23647` is fixed:: sage: x = polygen(ZZ, 'x') sage: K. = NumberField([x^2 - 2, x^2 - 3]) @@ -84,7 +84,7 @@ def _element_constructor_(self, x, check=True): sage: f == End(H1.domain(), category=NumberFields())(g) True - Check that :trac:`28869` is fixed:: + Check that :issue:`28869` is fixed:: sage: K. = CyclotomicField(8) sage: L. = K.absolute_field() @@ -360,7 +360,7 @@ def _element_constructor_(self, x, base_map=None, check=True): Defn: a |--> a b |--> b - Check that :trac:`28869` is fixed:: + Check that :issue:`28869` is fixed:: sage: K. = NumberField((x^2 + 1, x^2 - 2)) sage: L. = K.absolute_field() @@ -440,7 +440,7 @@ def default_base_hom(self): TESTS: - Check that :trac:`30518` is fixed:: + Check that :issue:`30518` is fixed:: sage: K. = QuadraticField(-1, embedding=QQbar.gen()) sage: L. = K.extension(x^2 - 6*x - 4) @@ -559,7 +559,7 @@ def _element_constructor_(self, x, check=True): TESTS: - Check that :trac:`28869` is fixed:: + Check that :issue:`28869` is fixed:: sage: K. = CyclotomicField(8) sage: L. = K.absolute_field() diff --git a/src/sage/rings/number_field/number_field.py b/src/sage/rings/number_field/number_field.py index 5fd638f9396..b1f15191d3c 100644 --- a/src/sage/rings/number_field/number_field.py +++ b/src/sage/rings/number_field/number_field.py @@ -53,7 +53,7 @@ - William Stein (2007-09-04): major rewrite and documentation - Robert Bradshaw (2008-10): specified embeddings into ambient fields - Simon King (2010-05): improved coercion from GAP -- Jeroen Demeyer (2010-07, 2011-04): upgraded PARI (:trac:`9343`, :trac:`10430`, :trac:`11130`) +- Jeroen Demeyer (2010-07, 2011-04): upgraded PARI (:issue:`9343`, :issue:`10430`, :issue:`11130`) - Robert Harron (2012-08): added is_CM(), complex_conjugation(), and maximal_totally_real_subfield() - Christian Stump (2012-11): added conversion to universal cyclotomic field @@ -405,7 +405,7 @@ def NumberField(polynomial, name=None, check=True, names=None, embedding=None, Comparison depends on the (real) embedding specified (or the one selected by default). Note that the codomain of the embedding must be ``QQbar`` or ``AA`` for this to work - (see :trac:`20184`):: + (see :issue:`20184`):: sage: N. = NumberField(x^3 + 2, embedding=1) sage: 1 < g @@ -488,7 +488,7 @@ def NumberField(polynomial, name=None, check=True, names=None, embedding=None, sage: W. = NumberField(x^2 + 1); W Number Field in a with defining polynomial x^2 + 1 over its base field - The following has been fixed in :trac:`8800`:: + The following has been fixed in :issue:`8800`:: sage: P. = QQ[] sage: K. = NumberField(x^3 - 5, embedding=0) @@ -497,7 +497,7 @@ def NumberField(polynomial, name=None, check=True, names=None, embedding=None, sage: F(R) == L # indirect doctest True - Check that :trac:`11670` has been fixed:: + Check that :issue:`11670` has been fixed:: sage: K. = NumberField(x^2 - x - 1) sage: loads(dumps(K)) is K @@ -509,7 +509,7 @@ def NumberField(polynomial, name=None, check=True, names=None, embedding=None, sage: loads(dumps(K)) is K True - Another problem that was found while working on :trac:`11670`, + Another problem that was found while working on :issue:`11670`, ``maximize_at_primes`` and ``assume_disc_small`` were lost when pickling:: sage: # needs sage.symbolic @@ -529,7 +529,7 @@ def NumberField(polynomial, name=None, check=True, names=None, embedding=None, ... TypeError: You must specify the name of the generator. - Check that we can construct morphisms to matrix space (:trac:`23418`):: + Check that we can construct morphisms to matrix space (:issue:`23418`):: sage: t = polygen(QQ) sage: K = NumberField(t^4 - 2, 'a') @@ -934,7 +934,7 @@ def QuadraticField(D, name='a', check=True, embedding=True, latex_name='sqrt', * sage: latex(QuadraticField(-1, 'a', latex_name=None).gen()) a - The name of the generator does not interfere with Sage preparser, see :trac:`1135`:: + The name of the generator does not interfere with Sage preparser, see :issue:`1135`:: sage: K1 = QuadraticField(5, 'x') sage: K2. = QuadraticField(5) @@ -962,12 +962,12 @@ def QuadraticField(D, name='a', check=True, embedding=True, latex_name='sqrt', * sage: QuadraticField(-11, 'a') is QuadraticField(-11, 'a', latex_name=None) False - Check that :trac:`23459` is fixed:: + Check that :issue:`23459` is fixed:: sage: QuadraticField(4**1000+1) Number Field ... - Check quadratic fields without embedding (:trac:`28932`):: + Check quadratic fields without embedding (:issue:`28932`):: sage: QuadraticField(3, embedding=False) Number Field in a with defining polynomial x^2 - 3 @@ -1275,7 +1275,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField): Two relative number fields which are isomorphic as absolute fields, but which are not presented the same way, are not - considered equal (see :trac:`18942`):: + considered equal (see :issue:`18942`):: sage: F. = NumberField(x^2 + x + 1) sage: y = polygen(F) @@ -1288,7 +1288,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField): sage: hash(K) == hash(L) False - This example illustrates the issue resolved in :trac:`18942`:: + This example illustrates the issue resolved in :issue:`18942`:: sage: F. = NumberField(x^2 + x + 1) sage: xx = polygen(F) @@ -1304,7 +1304,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField): [(alpha, 1), ((-omega - 1)*alpha, 1), (omega*alpha, 1)] [(alpha, 1), (omega*alpha, 1), ((-omega - 1)*alpha, 1)] - This example was suggested on sage-nt; see :trac:`18942`:: + This example was suggested on sage-nt; see :issue:`18942`:: sage: G = DirichletGroup(80) # needs sage.modular sage: for chi in G: # long time # needs sage.modular @@ -1684,14 +1684,14 @@ def _element_constructor_(self, x, check=True): sage: L(gap(tau)^3) # indirect doctest # needs sage.libs.gap 2 - Check that :trac:`22202` and :trac:`27765` are fixed:: + Check that :issue:`22202` and :issue:`27765` are fixed:: sage: y = QQ['y'].gen() sage: R = QQ.extension(y^2 - 1/2, 'a')['x'] sage: R("a*x").factor() (a) * x - Check that :trac:`30961` is fixed:: + Check that :issue:`30961` is fixed:: sage: # needs sage.symbolic sage: QQi = i.parent() @@ -1707,7 +1707,7 @@ def _element_constructor_(self, x, check=True): sage: QQi(vector((RR(1), RR(2)))) 2*I + 1 - Check that :trac:`34059` is fixed:: + Check that :issue:`34059` is fixed:: sage: K. = NumberField(x) sage: K([1]).parent() @@ -1975,7 +1975,7 @@ def _Hom_(self, codomain, category=None): TESTS: - Verify that :trac:`22001` has been resolved:: + Verify that :issue:`22001` has been resolved:: sage: R. = QQ[] sage: K. = QQ.extension(x^2 + 1) @@ -2202,7 +2202,7 @@ def subfield(self, alpha, name=None, names=None): Defn: b |--> a^2 A relative example. Note that the result returned is the subfield generated - by `\alpha` over ``self.base_field()``, not over `\QQ` (see :trac:`5392`):: + by `\alpha` over ``self.base_field()``, not over `\QQ` (see :issue:`5392`):: sage: L. = NumberField(x^2 - 3) sage: M. = L.extension(x^4 + 1) @@ -2673,7 +2673,7 @@ def is_isomorphic(self, other, isomorphism_maps=False) -> bool: TESTS: - See :trac:`26239`:: + See :issue:`26239`:: sage: k. = NumberField(x) sage: k.is_isomorphic(k) @@ -3526,7 +3526,7 @@ def ideal(self, *gens, **kwds): TESTS: - Check that :trac:`25934` is fixed:: + Check that :issue:`25934` is fixed:: sage: x = polygen(QQ) sage: K. = NumberField(x^6 - x^5 - 5*x^4 + 4*x^3 + 6*x^2 - 3*x - 1) @@ -4746,7 +4746,7 @@ def S_units(self, S, proof=True): sage: K.S_units([])[0].multiplicative_order() 6 - An example in a relative extension (see :trac:`8722`):: + An example in a relative extension (see :issue:`8722`):: sage: x = polygen(QQ, 'x') sage: L. = NumberField([x^2 + 1, x^2 - 5]) @@ -4754,7 +4754,7 @@ def S_units(self, S, proof=True): sage: W = L.S_units([p]); [x.norm() for x in W] [9, 1, 1] - Our generators should have the correct parent (:trac:`9367`):: + Our generators should have the correct parent (:issue:`9367`):: sage: _. = QQ[] sage: L. = NumberField(x^3 + x + 1) @@ -4764,7 +4764,7 @@ def S_units(self, S, proof=True): TESTS: - This checks that the multiple entries issue at :trac:`9341` is fixed:: + This checks that the multiple entries issue at :issue:`9341` is fixed:: sage: _. = QQ[] sage: K. = NumberField(t - 1) @@ -4830,7 +4830,7 @@ def _S_class_group_and_units(self, S, proof=True): True Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: K. = NumberField(2*x^2 - 1/3) sage: K._S_class_group_and_units(tuple(K.primes_above(2) + K.primes_above(3))) @@ -4870,7 +4870,7 @@ def _S_class_group_quotient_matrix(self, S): TESTS: - Verify that :trac:`29364` is fixed:: + Verify that :issue:`29364` is fixed:: sage: R. = QQ[] sage: L. = NumberField(x^2 - 6058) @@ -4999,7 +4999,7 @@ def selmer_generators(self, S, m, proof=True, orders=False): sage: S in ([2, a + 1, a], [2, a + 1, -a], [2, -a - 1, a], [2, -a - 1, -a]) or S True - Verify that :trac:`14489` is fixed; + Verify that :issue:`14489` is fixed; the representation depends on the PARI version:: sage: x = polygen(QQ, 'x') @@ -5020,7 +5020,7 @@ def selmer_generators(self, S, m, proof=True, orders=False): sage: gens[7] in (2/13*a^2 + 40/13*a - 27/13, -2/13*a^2 - 40/13*a + 27/13) True - Verify that :trac:`16708` is fixed:: + Verify that :issue:`16708` is fixed:: sage: K. = QuadraticField(-5) sage: p = K.primes_above(2)[0] @@ -5386,7 +5386,7 @@ def composite_fields(self, other, names=None, both_maps=False, preserve_embeddin None)] Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: K. = NumberField(x^2 + 1/2) sage: L. = NumberField(3*x^2 - 1) @@ -5407,8 +5407,8 @@ def composite_fields(self, other, names=None, both_maps=False, preserve_embeddin sage: M.gen() == g(b) + k*f(a) True - This also fixes the bugs reported at :trac:`14164` and - :trac:`18243`:: + This also fixes the bugs reported at :issue:`14164` and + :issue:`18243`:: sage: R. = QQ[] sage: f = 6*x^5 + x^4 + x^2 + 5*x + 7 @@ -5430,7 +5430,7 @@ def composite_fields(self, other, names=None, both_maps=False, preserve_embeddin sage: F.gen() == map2(F2.gen()) + k*map1(F1.gen()) True - Check that the bugs reported at :trac:`24357` are fixed:: + Check that the bugs reported at :issue:`24357` are fixed:: sage: A. = NumberField(x^9 - 7) sage: B. = NumberField(x^3 - 7, embedding=a^3) @@ -5787,7 +5787,7 @@ def elements_of_norm(self, n, proof=None) -> list: TESTS: Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`); + polynomials are supported (:issue:`252`); the representation depends on the PARI version:: sage: K. = NumberField(7/9*x^3 + 7/3*x^2 - 56*x + 123) @@ -5835,7 +5835,7 @@ def extension(self, poly, name=None, names=None, latex_name=None, latex_names=No Number Field in b with defining polynomial z^3 + a0 + 3 over its base field Extension fields with given defining data are unique - (:trac:`20791`):: + (:issue:`20791`):: sage: K. = NumberField(x^2 + 1) sage: K.extension(x^2 - 2, 'b') is K.extension(x^2 - 2, 'b') @@ -6043,7 +6043,7 @@ def decomposition_type(self, p): sage: M.decomposition_type(Q1) [(2, 5, 1)] - Check that :trac:`34514` is fixed:: + Check that :issue:`34514` is fixed:: sage: K. = NumberField(x^4 + 18*x^2 - 1) sage: R. = K[] @@ -6208,7 +6208,7 @@ def galois_group(self, type=None, algorithm='pari', names=None, gc_numbering=Non INPUT: - ``type`` -- Deprecated; the different versions of Galois groups have been - merged in :trac:`28782`. + merged in :issue:`28782`. - ``algorithm`` -- ``'pari'``, ``'gap'``, ``'kash'``, ``'magma'``. (default: ``'pari'``; for degrees between 12 and 15 default is ``'gap'``, and @@ -6301,7 +6301,7 @@ def galois_group(self, type=None, algorithm='pari', names=None, gc_numbering=Non TESTS: - We check that the changes in :trac:`28782` won't break code that used v1 Galois groups:: + We check that the changes in :issue:`28782` won't break code that used v1 Galois groups:: sage: # needs sage.groups sage: G = NumberField(x^3 - 2, 'a').galois_group(type="pari") @@ -6527,7 +6527,7 @@ def reduced_basis(self, prec=None): TESTS: - Check that the bug reported at :trac:`10017` is fixed:: + Check that the bug reported at :issue:`10017` is fixed:: sage: x = polygen(QQ) sage: k. = NumberField(x^6 + 2218926655879913714112*x^4 - 32507675650290949030789018433536*x^3 + 4923635504174417014460581055002374467948544*x^2 - 36066074010564497464129951249279114076897746988630016*x + 264187244046129768986806800244258952598300346857154900812365824) @@ -7149,7 +7149,7 @@ def units(self, proof=None): TESTS: Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: K. = NumberField(1/2*x^2 - 1/6) sage: K.units() @@ -7518,7 +7518,7 @@ def zeta(self, n=2, all=False): [] Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: K. = NumberField(1/2*x^2 + 1/6) sage: K.zeta(3) @@ -7589,7 +7589,7 @@ def zeta_order(self): TESTS: Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: K. = NumberField(1/2*x^2 + 1/6) sage: K.zeta_order() @@ -7661,7 +7661,7 @@ def primitive_root_of_unity(self): TESTS: - Check for :trac:`15027`. We use a new variable name:: + Check for :issue:`15027`. We use a new variable name:: sage: K. = NumberField(x^2 + x + 1) sage: K.primitive_root_of_unity() @@ -7671,7 +7671,7 @@ def primitive_root_of_unity(self): f + 1 Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: K. = NumberField(3*x^2 + 1) sage: K.primitive_root_of_unity() @@ -8050,13 +8050,13 @@ def maximal_order(self, v=None, assume_maximal='non-maximal-non-unique'): TESTS: Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: K. = NumberField(3*x^2 + 1) sage: K.maximal_order().basis() [3/2*a + 1/2, 3*a] - The following was previously "ridiculously slow"; see :trac:`4738`:: + The following was previously "ridiculously slow"; see :issue:`4738`:: sage: K. = NumberField([x^4 + 1, x^4 - 3]) sage: K.maximal_order() @@ -8236,7 +8236,7 @@ def _coerce_from_other_number_field(self, x): TESTS: - The following was fixed in :trac:`8800`:: + The following was fixed in :issue:`8800`:: sage: P. = QQ[] sage: K. = NumberField(x^3 - 5, embedding=0) @@ -8247,7 +8247,7 @@ def _coerce_from_other_number_field(self, x): AUTHORS: - - Jeroen Demeyer (2011-09-30): :trac:`11869` + - Jeroen Demeyer (2011-09-30): :issue:`11869` """ # Special case for x in QQ. This is common, so should be fast. @@ -8394,7 +8394,7 @@ def _coerce_map_from_(self, R): Defn: zeta3 -> 1/2*a - 1/2 Two embedded number fields with mutual coercions (testing against a - bug that was fixed in :trac:`8800`):: + bug that was fixed in :issue:`8800`):: sage: K. = NumberField(x^4 - 2) sage: L1. = NumberField(x^2 - 2, embedding=r4**2) @@ -8407,7 +8407,7 @@ def _coerce_map_from_(self, R): True Coercion of an order (testing against a bug that was fixed in - :trac:`8800`):: + :issue:`8800`):: sage: K.has_coerce_map_from(L1) True @@ -8552,7 +8552,7 @@ def optimized_representation(self, name=None, both_maps=True): True Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: K. = NumberField(7/9*x^3 + 7/3*x^2 - 56*x + 123) sage: K.optimized_representation() # representation varies, not tested @@ -8674,7 +8674,7 @@ def optimized_subfields(self, degree=0, name=None, both_maps=True): TESTS: Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: K. = NumberField(2*x^4 + 6*x^2 + 1/2) sage: K.optimized_subfields() @@ -8786,7 +8786,7 @@ def subfields(self, degree=0, name=None): TESTS: Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: K. = NumberField(2*x^4 + 6*x^2 + 1/2) sage: K.subfields() @@ -8850,7 +8850,7 @@ def _subfields_helper(self, degree=0, name=None, both_maps=True, optimize=False) (Number Field in a0 with defining polynomial x^2 - 23 with a0 = -4.795831523312720?, -4.795831523312719) - Test for :trac:`7695`:: + Test for :issue:`7695`:: sage: F = CyclotomicField(7) sage: K = F.subfields(3)[0][0] @@ -8979,7 +8979,7 @@ def order(self, *args, **kwds): TESTS: - We verify that :trac:`2480` is fixed:: + We verify that :issue:`2480` is fixed:: sage: K. = NumberField(x^4 + 4*x^2 + 2) sage: B = K.integral_basis() @@ -9021,7 +9021,7 @@ def _order(self, gens, **kwds): True Even if the order lives in a different field, caching works (currently, - however, ``allow_subfield`` is incorrect :trac:`16046`):: + however, ``allow_subfield`` is incorrect :issue:`16046`):: sage: K. = NumberField(x**4 + 3) sage: o = K.order([a**2], allow_subfield=True) @@ -9277,7 +9277,7 @@ def automorphisms(self): 24 Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: R. = QQ[] sage: f = 7/9*x^3 + 7/3*x^2 - 56*x + 123 @@ -9363,7 +9363,7 @@ def embeddings(self, K): Defn: a |--> 1.25992104989487 ] - Test that :trac:`15053` is fixed:: + Test that :issue:`15053` is fixed:: sage: K = NumberField(x^3 - 2, 'a') sage: K.embeddings(GF(3)) @@ -9710,7 +9710,7 @@ def abs_val(self, v, iota, prec=None): sage: K.abs_val(v_fin, xi^2) 0.111111111111111 - Check that :trac:`28345` is fixed:: + Check that :issue:`28345` is fixed:: sage: K.abs_val(v_fin, K.zero()) 0.000000000000000 @@ -9909,7 +9909,7 @@ def relativize(self, alpha, names, structure=None): To: Number Field in t0 with defining polynomial x^9 - t1 over its base field Defn: a |--> t0) - Only one name is required when a morphism is given (fixing :trac:`12005`):: + Only one name is required when a morphism is given (fixing :issue:`12005`):: sage: R. = PolynomialRing(QQ) sage: K. = NumberField(x^2 + 1) @@ -9921,7 +9921,7 @@ def relativize(self, alpha, names, structure=None): sage: M.base_field() Number Field in i with defining polynomial x^2 + 1 - See :trac:`27469`:: + See :issue:`27469`:: sage: L. = CyclotomicField(24) sage: K. = L.subfield(z24^3)[0] @@ -10285,7 +10285,7 @@ def hilbert_symbol(self, a, b, P=None): sage: K.hilbert_symbol(2, -2, K.primes_above(2)[0]) 1 - Check that the bug reported at :trac:`16043` has been fixed:: + Check that the bug reported at :issue:`16043` has been fixed:: sage: K. = NumberField(x^2 + 5) sage: p = K.primes_above(2)[0]; p @@ -10799,7 +10799,7 @@ def __init__(self, n, names, embedding=None, assume_disc_small=False, maximize_a TESTS: The ``gcd`` and ``xgcd`` methods do not agree on this field, see - :trac:`23274`:: + :issue:`23274`:: sage: TestSuite(k).run() Failure in _test_gcd_vs_xgcd: @@ -10972,7 +10972,7 @@ def _gap_init_(self): The following was the motivating example to introduce a genuine representation of cyclotomic fields in the - GAP interface -- see :trac:`5618`. :: + GAP interface -- see :issue:`5618`. :: sage: # needs sage.groups sage: H = AlternatingGroup(4) @@ -11061,7 +11061,7 @@ def _latex_(self): TESTS: - We check that the bug reported on :trac:`8938` is fixed:: + We check that the bug reported on :issue:`8938` is fixed:: sage: C5. = CyclotomicField(5) sage: P. = C5[] @@ -11133,7 +11133,7 @@ def _coerce_map_from_(self, K): To: Cyclotomic Field of order 15 and degree 8 Defn: zeta6 -> zeta15^5 + 1 - Check that :trac:`12632` is fixed:: + Check that :issue:`12632` is fixed:: sage: K1 = CyclotomicField(1); K2 = CyclotomicField(2) sage: K1.coerce_map_from(K2) @@ -11142,7 +11142,7 @@ def _coerce_map_from_(self, K): To: Cyclotomic Field of order 1 and degree 1 Defn: zeta2 -> -1 - Check that custom embeddings are respected (:trac:`13765`):: + Check that custom embeddings are respected (:issue:`13765`):: sage: # needs sage.symbolic sage: z105 = CDF(exp(2*pi*I/105)) @@ -11176,7 +11176,7 @@ def _coerce_map_from_(self, K): To: Cyclotomic Field of order 15 and degree 8 Defn: zeta6 -> -zeta15^5 - Check transitivity of coercion embeddings (:trac:`20513`):: + Check transitivity of coercion embeddings (:issue:`20513`):: sage: K60. = CyclotomicField(60) sage: K30. = CyclotomicField(30, embedding=zeta60**14) @@ -11550,7 +11550,7 @@ def is_isomorphic(self, other): sage: CyclotomicField(10).is_isomorphic(NumberField(x^4 - x^3 + x^2 - x + 1, 'b')) True - Check :trac:`14300`:: + Check :issue:`14300`:: sage: K = CyclotomicField(4) sage: N = K.extension(x^2 - 5, 'z') @@ -12053,7 +12053,7 @@ def __init__(self, polynomial, name=None, latex_name=None, check=True, embedding sage: TestSuite(k).run() - Check that :trac:`23008` is fixed:: + Check that :issue:`23008` is fixed:: sage: z = polygen(ZZ, 'z') sage: K. = NumberField(z^2 - z - 1, embedding=QQbar(golden_ratio)) # needs sage.symbolic @@ -12625,7 +12625,7 @@ def refine_embedding(e, prec=None): When the old embedding is into the real lazy field, then only real embeddings should be considered. - See :trac:`17495`:: + See :issue:`17495`:: sage: R. = QQ[] sage: K. = NumberField(x^3 + x - 1, embedding=0.68) diff --git a/src/sage/rings/number_field/number_field_element.pyx b/src/sage/rings/number_field/number_field_element.pyx index 6ea0497dd84..2212a4ac250 100644 --- a/src/sage/rings/number_field/number_field_element.pyx +++ b/src/sage/rings/number_field/number_field_element.pyx @@ -125,7 +125,7 @@ def _inverse_mod_generic(elt, I): function called from each of the ``OrderElement_xxx`` classes, since otherwise we'd have to have the same code three times over (there is no ``OrderElement_generic`` class - no multiple inheritance). See - :trac:`4190`. + :issue:`4190`. EXAMPLES:: @@ -409,7 +409,7 @@ cdef class NumberFieldElement(NumberFieldElement_base): True This also gets called for unpickling order elements; we check that - :trac:`6462` is fixed:: + :issue:`6462` is fixed:: sage: L = NumberField(x^3 - x - 1,'a'); OL = L.maximal_order(); w = OL.0 sage: loads(dumps(w)) == w # indirect doctest @@ -506,7 +506,7 @@ cdef class NumberFieldElement(NumberFieldElement_base): sage: gap(p._gap_init_()) -3+2*E(8)+E(8)^2 - Check that :trac:`15276` is fixed:: + Check that :issue:`15276` is fixed:: sage: for n in range(2,20): # needs sage.libs.gap ....: K = CyclotomicField(n) @@ -551,7 +551,7 @@ cdef class NumberFieldElement(NumberFieldElement_base): sage: type(_) - Check that :trac:`15276` is fixed:: + Check that :issue:`15276` is fixed:: sage: for n in range(2,20): # needs sage.libs.gap ....: K = CyclotomicField(n) @@ -1000,7 +1000,7 @@ cdef class NumberFieldElement(NumberFieldElement_base): 1.2599210498948731647672106072782283506 Number field with a real-valued coercion embedding - (:trac:`21105`):: + (:issue:`21105`):: sage: k. = NumberField(x^3 - 2, embedding=1.26) sage: abs(cbrt2) @@ -1327,7 +1327,7 @@ cdef class NumberFieldElement(NumberFieldElement_base): sage: a.abs(i=1) 2.41421356237309 - Check that :trac:`16147` is fixed:: + Check that :issue:`16147` is fixed:: sage: x = polygen(ZZ) sage: f = x^3 - x - 1 @@ -1338,7 +1338,7 @@ cdef class NumberFieldElement(NumberFieldElement_base): 1.32471795724475 Check that for fields with real coercion embeddings, absolute - values are in the same field (:trac:`21105`):: + values are in the same field (:issue:`21105`):: sage: x = polygen(ZZ) sage: f = x^3 - x - 1 @@ -1635,7 +1635,7 @@ cdef class NumberFieldElement(NumberFieldElement_base): sage: t and u.norm(K) == -a True - Verify that :trac:`27469` has been fixed:: + Verify that :issue:`27469` has been fixed:: sage: L. = CyclotomicField(24); L Cyclotomic Field of order 24 and degree 8 @@ -1773,7 +1773,7 @@ cdef class NumberFieldElement(NumberFieldElement_base): TESTS: Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: K. = NumberField(x^2 + 1/2) sage: L. = K.extension(x^2 - 1/2) @@ -1826,7 +1826,7 @@ cdef class NumberFieldElement(NumberFieldElement_base): sage: (a^2)._mpfr_(RR) -1.00000000000000 - Verify that :trac:`13005` has been fixed:: + Verify that :issue:`13005` has been fixed:: sage: K. = NumberField(x^2 - 5) sage: RR(K(1)) @@ -2117,7 +2117,7 @@ cdef class NumberFieldElement(NumberFieldElement_base): TESTS: Check that the output is correct even for numbers that are - very close to zero (:trac:`9596`):: + very close to zero (:issue:`9596`):: sage: K. = QuadraticField(2) sage: a = 30122754096401; b = 21300003689580 @@ -2182,7 +2182,7 @@ cdef class NumberFieldElement(NumberFieldElement_base): TESTS: - Test that :trac:`16894` is fixed:: + Test that :issue:`16894` is fixed:: sage: K. = QuadraticField(22) sage: u = K.units()[0] @@ -2385,7 +2385,7 @@ cdef class NumberFieldElement(NumberFieldElement_base): sage: 2^I # needs sage.symbolic 2^I - Test :trac:`14895`:: + Test :issue:`14895`:: sage: K. = QuadraticField(2) sage: 2^sqrt2 # needs sage.symbolic @@ -2584,7 +2584,7 @@ cdef class NumberFieldElement(NumberFieldElement_base): sage: (a+1/3)*(5*a+2/7)/(a+1/3) 5*a + 2/7 - For order elements, see :trac:`4190`:: + For order elements, see :issue:`4190`:: sage: K = NumberField(x^2 - 17, 'a') sage: OK = K.ring_of_integers() @@ -2765,7 +2765,7 @@ cdef class NumberFieldElement(NumberFieldElement_base): sage: (2*I).__invert__() -1/2*I - We check that :trac:`20693` has been resolved, i.e. number + We check that :issue:`20693` has been resolved, i.e. number field elements with huge denominator can be inverted:: sage: K. = CyclotomicField(22) @@ -2958,7 +2958,7 @@ cdef class NumberFieldElement(NumberFieldElement_base): I Conversely, some elements are too complicated to be written in - terms of radicals directly. At least until :trac:`17516` gets + terms of radicals directly. At least until :issue:`17516` gets addressed. In those cases, the generator might be converted and its expression be used to convert other elements. This avoids regressions but can lead to fairly complicated @@ -2974,7 +2974,7 @@ cdef class NumberFieldElement(NumberFieldElement_base): TESTS: - :trac:`33804`:: + :issue:`33804`:: sage: Pol. = QQ[] sage: p = x^8 + x^7 - 9*x^6 - 3*x^5 - 6*x^4 + x^3 - 14*x^2 + 2*x + 2 @@ -3894,7 +3894,7 @@ cdef class NumberFieldElement(NumberFieldElement_base): TESTS: - Some checks for :trac:`29215`:: + Some checks for :issue:`29215`:: sage: K = QuadraticField(-5) sage: v = QuadraticField(3).ideal(5) @@ -4763,7 +4763,7 @@ cdef class NumberFieldElement_absolute(NumberFieldElement): otherwise ``'sage'`` is used. The constant ``TUNE_CHARPOLY_NF`` should give reasonable performance on all architectures; however, if you feel the need to customize it to your own - machine, see :trac:`5213` for a tuning script. + machine, see :issue:`5213` for a tuning script. EXAMPLES: @@ -5121,7 +5121,7 @@ cdef class NumberFieldElement_relative(NumberFieldElement): otherwise ``'sage'`` is used. The constant ``TUNE_CHARPOLY_NF`` should give reasonable performance on all architectures; however, if you feel the need to customize it to your own - machine, see :trac:`5213` for a tuning script. + machine, see :issue:`5213` for a tuning script. EXAMPLES:: @@ -5318,7 +5318,7 @@ cdef class OrderElement_absolute(NumberFieldElement_absolute): Implement inversion, checking that the return value has the right parent. - See :trac:`4190`. + See :issue:`4190`. EXAMPLES:: @@ -5394,7 +5394,7 @@ cdef class OrderElement_relative(NumberFieldElement_relative): r""" Implement division, checking that the result has the right parent. - See :trac:`4190`. + See :issue:`4190`. EXAMPLES:: @@ -5447,7 +5447,7 @@ cdef class OrderElement_relative(NumberFieldElement_relative): r""" The characteristic polynomial of this order element over its base ring. - This special implementation works around :trac:`4738`. At this + This special implementation works around :issue:`4738`. At this time the base ring of relative order elements is `\ZZ`; it should be the ring of integers of the base field. @@ -5472,7 +5472,7 @@ cdef class OrderElement_relative(NumberFieldElement_relative): r""" The minimal polynomial of this order element over its base ring. - This special implementation works around :trac:`4738`. At this + This special implementation works around :issue:`4738`. At this time the base ring of relative order elements is `\ZZ`; it should be the ring of integers of the base field. diff --git a/src/sage/rings/number_field/number_field_element_quadratic.pyx b/src/sage/rings/number_field/number_field_element_quadratic.pyx index 0212d85b6b5..bec857718e7 100644 --- a/src/sage/rings/number_field/number_field_element_quadratic.pyx +++ b/src/sage/rings/number_field/number_field_element_quadratic.pyx @@ -22,7 +22,7 @@ AUTHORS: - David Harvey (2007-10): fixed up a few bugs, polish around the edges - David Loeffler (2009-05): added more documentation and tests - Vincent Delecroix (2012-07): added comparisons for quadratic number fields - (:trac:`13213`), abs, floor and ceil functions (:trac:`13256`) + (:issue:`13213`), abs, floor and ceil functions (:issue:`13256`) """ # **************************************************************************** @@ -90,7 +90,7 @@ def __make_NumberFieldElement_quadratic1(parent, cls, a, b, denom): sage: loads(dumps(a)) == a # indirect doctest True - We test that :trac:`6462` is fixed:: + We test that :issue:`6462` is fixed:: sage: L = QuadraticField(-11,'a'); OL = L.maximal_order(); w = OL.0 sage: loads(dumps(w)) == w # indirect doctest @@ -326,7 +326,7 @@ cdef class NumberFieldElement_quadratic(NumberFieldElement_absolute): TESTS: - Test that :trac:`28377` is fixed:: + Test that :issue:`28377` is fixed:: sage: x = polygen(QQ, 'x') sage: K = NumberField(x^2 - x -1, 'a', embedding=(1-AA(5).sqrt())/2) @@ -651,7 +651,7 @@ cdef class NumberFieldElement_quadratic(NumberFieldElement_absolute): sage: RIF(K3(2)) 2 - Check that :trac:`21979` is fixed:: + Check that :issue:`21979` is fixed:: sage: a = QuadraticField(5).gen() sage: u = -573147844013817084101/2*a + 1281597540372340914251/2 @@ -660,7 +660,7 @@ cdef class NumberFieldElement_quadratic(NumberFieldElement_absolute): sage: RealIntervalField(128)(u).is_zero() False - This was fixed in :trac:`24371`:: + This was fixed in :issue:`24371`:: sage: RIF.convert_map_from(QuadraticField(5)) Conversion via _real_mpfi_ method map: @@ -710,7 +710,7 @@ cdef class NumberFieldElement_quadratic(NumberFieldElement_absolute): sage: CIF(a) -1.414213562373095?*I - This was fixed in :trac:`24371`:: + This was fixed in :issue:`24371`:: sage: CIF.convert_map_from(QuadraticField(-5)) Conversion via _complex_mpfi_ method map: @@ -1082,7 +1082,7 @@ cdef class NumberFieldElement_quadratic(NumberFieldElement_absolute): The following is tested because of the implementation of :func:`Q_to_quadratic_field_element` which was the cause of - some problems with :trac:`13213`:: + some problems with :issue:`13213`:: sage: K. = QuadraticField(2) sage: 1/2 + sqrt2 > 0 @@ -1471,7 +1471,7 @@ cdef class NumberFieldElement_quadratic(NumberFieldElement_absolute): TESTS: - Test that :trac:`30360` is fixed:: + Test that :issue:`30360` is fixed:: sage: K. = QuadraticField(5, embedding=AA(5).sqrt()) sage: sqrt5*vector([1,2]) @@ -1567,7 +1567,7 @@ cdef class NumberFieldElement_quadratic(NumberFieldElement_absolute): sage: (3*a-2)/7 * b 1 - This fixes issue :trac:`9357`:: + This fixes issue :issue:`9357`:: sage: K. = NumberField(x^2+1) sage: d = K(0) @@ -1880,7 +1880,7 @@ cdef class NumberFieldElement_quadratic(NumberFieldElement_absolute): sage: parent(a.imag()) Rational Field - Check that :trac:`22095` is fixed:: + Check that :issue:`22095` is fixed:: sage: K. = NumberField(x^2 + 2*x + 14, embedding=CC(-1,+3)) sage: K13. = QuadraticField(13) @@ -2128,7 +2128,7 @@ cdef class NumberFieldElement_quadratic(NumberFieldElement_absolute): sage: ((a+1)/3).is_integral() False - This works for order elements too, see :trac:`24077`:: + This works for order elements too, see :issue:`24077`:: sage: O. = EisensteinIntegers() sage: w.is_integral() @@ -2574,7 +2574,7 @@ cdef class NumberFieldElement_gaussian(NumberFieldElement_quadratic_sqrt): TESTS: - Check that :trac:`31808` is fixed:: + Check that :issue:`31808` is fixed:: sage: C. = QuadraticField(-1) sage: AA(C.one()) @@ -2832,7 +2832,7 @@ cdef class OrderElement_quadratic(NumberFieldElement_quadratic): def __invert__(self): r""" Implement inversion, checking that the return value has the right parent. - See :trac:`4190`. + See :issue:`4190`. EXAMPLES:: diff --git a/src/sage/rings/number_field/number_field_ideal.py b/src/sage/rings/number_field/number_field_ideal.py index b80a4a407ef..1be7a76f46f 100644 --- a/src/sage/rings/number_field/number_field_ideal.py +++ b/src/sage/rings/number_field/number_field_ideal.py @@ -87,7 +87,7 @@ class NumberFieldIdeal(Ideal_generic): [5, [-2, 1]~, 1, 1, [2, -1; 1, 2]] Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: K. = NumberField(2*x^2 - 1/3) sage: I = K.ideal(a); I @@ -282,7 +282,7 @@ def _mul_(self, other): TESTS: - Make sure that :trac:`13958` is fixed:: + Make sure that :issue:`13958` is fixed:: sage: I = QuadraticField(-5).ideal(2).factor()[0][0] sage: I = I * I * I; I.ngens() == 2 @@ -621,7 +621,7 @@ def basis(self): 1/11*z^5 + 1/11*z^4 + 1/11*z^3 + 2/11*z^2 + 8/11*z + 7/11] Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: x = polygen(ZZ) sage: K. = NumberField(2*x^2 - 1/3) @@ -714,7 +714,7 @@ def free_module(self): TESTS: Sage can find the free module associated to quite large ideals - quickly (see :trac:`4627`):: + quickly (see :issue:`4627`):: sage: y = polygen(ZZ) sage: M. = NumberField(y^20 - 2*y^19 + 10*y^17 - 15*y^16 + 40*y^14 - 64*y^13 + 46*y^12 + 8*y^11 - 32*y^10 + 8*y^9 + 46*y^8 - 64*y^7 + 40*y^6 - 15*y^4 + 10*y^3 - 2*y + 1) @@ -798,7 +798,7 @@ def gens_reduced(self, proof=None): sage: all(j.parent() is K for j in J.gens_reduced()) True - Make sure this works with large ideals (:trac:`11836`):: + Make sure this works with large ideals (:issue:`11836`):: sage: R. = QQ['x'] sage: L. = NumberField(x^10 - 10*x^8 - 20*x^7 + 165*x^6 - 12*x^5 - 760*x^3 + 2220*x^2 + 5280*x + 7744) @@ -960,7 +960,7 @@ def intersection(self, other): TESTS: - Test that this works with non-integral ideals (:trac:`10767`):: + Test that this works with non-integral ideals (:issue:`10767`):: sage: K = QuadraticField(-2) sage: I = K.ideal(1/2) @@ -1031,7 +1031,7 @@ def is_prime(self): TESTS: Check that we do not factor the norm of the ideal, this used - to take half an hour, see :trac:`33360`:: + to take half an hour, see :issue:`33360`:: sage: K. = NumberField([x^2 - 2, x^2 - 3, x^2 - 5]) sage: t = (((-2611940*c + 1925290/7653)*b - 1537130/7653*c @@ -1112,7 +1112,7 @@ def _cache_bnfisprincipal(self, proof=None, gens=False): TESTS: - Check that no warnings are triggered from PARI/GP (see :trac:`30801`):: + Check that no warnings are triggered from PARI/GP (see :issue:`30801`):: sage: x = polygen(ZZ) sage: K. = NumberField(x^2 - x + 112941801) @@ -1409,7 +1409,7 @@ def smallest_integer(self): sage: I.smallest_integer() 0 - See :trac:`4392`:: + See :issue:`4392`:: sage: K.=QuadraticField(-5) sage: I=K.ideal(7) @@ -1824,7 +1824,7 @@ class NumberFieldFractionalIdeal(MultiplicativeGroupElement, NumberFieldIdeal, I TESTS: - Number-field fractional ideals are fractional ideals (:trac:`32380`):: + Number-field fractional ideals are fractional ideals (:issue:`32380`):: sage: from sage.rings.ideal import Ideal_fractional sage: isinstance(I, Ideal_fractional) @@ -1921,7 +1921,7 @@ def factor(self): TESTS: Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`); + polynomials are supported (:issue:`252`); the representation depends on the PARI version:: sage: F. = NumberField(2*x^3 + x + 1) @@ -2293,7 +2293,7 @@ def invertible_residues(self, reduce=True): TESTS: - Check that the integrality is not lost, cf. :trac:`30801`:: + Check that the integrality is not lost, cf. :issue:`30801`:: sage: K. = NumberField(x^2 + x + 1) sage: all(x.is_integral() for x in K.ideal(8).invertible_residues()) @@ -2495,7 +2495,7 @@ def is_coprime(self, other): sage: I.is_coprime(6 + i) True - See :trac:`4536`:: + See :issue:`4536`:: sage: E. = NumberField(x^5 + 7*x^4 + 18*x^2 + x - 3) sage: i,j,k = [u[0] for u in factor(3*E)] @@ -3215,7 +3215,7 @@ def residue_field(self, names=None): An example of reduction maps to the residue field: these are defined on the whole valuation ring, i.e. the subring of the number field consisting of elements with non-negative - valuation. This shows that the issue raised in :trac:`1951` + valuation. This shows that the issue raised in :issue:`1951` has been fixed:: sage: K. = NumberField(x^2 + 1) @@ -3254,7 +3254,7 @@ def residue_field(self, names=None): sage: R(1/b) 2*abar - We verify that :trac:`8721` is fixed:: + We verify that :issue:`8721` is fixed:: sage: L. = NumberField([x^2 - 3, x^2 - 5]) sage: L.ideal(a).residue_field() @@ -3433,7 +3433,7 @@ def __call__(self, x): sage: f(R(a/17)) 1 - A relative example, which used to fail but is fixed by :trac:`8721`:: + A relative example, which used to fail but is fixed by :issue:`8721`:: sage: L. = NumberField([x^2 + 1, x^2 - 5]) sage: p = L.ideal(2*a + 3) diff --git a/src/sage/rings/number_field/number_field_ideal_rel.py b/src/sage/rings/number_field/number_field_ideal_rel.py index 0fbe2c49bb9..7c0e4daa7a2 100644 --- a/src/sage/rings/number_field/number_field_ideal_rel.py +++ b/src/sage/rings/number_field/number_field_ideal_rel.py @@ -271,7 +271,7 @@ def gens_reduced(self): TESTS: Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: K. = NumberField(2*x^2 - 1/3) sage: L. = K.extension(5*x^2 + 1) @@ -404,7 +404,7 @@ def relative_norm(self): 815730721 Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: K. = NumberField(2*x^2 - 1/3) sage: L. = K.extension(5*x^2 + 1) @@ -523,7 +523,7 @@ def ideal_below(self): True Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: K. = NumberField(2*x^2 - 1/3) sage: L. = K.extension(5*x^2 + 1) diff --git a/src/sage/rings/number_field/number_field_morphisms.pyx b/src/sage/rings/number_field/number_field_morphisms.pyx index 38a8dfd3726..8a1865c3ceb 100644 --- a/src/sage/rings/number_field/number_field_morphisms.pyx +++ b/src/sage/rings/number_field/number_field_morphisms.pyx @@ -231,7 +231,7 @@ cdef class EmbeddedNumberFieldMorphism(NumberFieldEmbedding): 'Number Field in a with defining polynomial x^3 + 2 with a = -1.259921049894873?' and 'Number Field in a with defining polynomial x^3 + 2 with a = 0.6299605249474365? + 1.091123635971722?*I' - The following was fixed to raise a ``TypeError`` in :trac:`15331`:: + The following was fixed to raise a ``TypeError`` in :issue:`15331`:: sage: L. = NumberField(x^2 + 1) sage: K = NumberField(L(i/2+3).minpoly(), names=('i0',), embedding=L(i/2+3)) @@ -598,7 +598,7 @@ cdef class CyclotomicFieldEmbedding(NumberFieldEmbedding): ... TypeError: The zeta_order of the new field must be a multiple of the zeta_order of the original. - Check that :trac:`13765` is fixed:: + Check that :issue:`13765` is fixed:: sage: z3=(CC(-1)^(1/3))^2 sage: Ka.=CyclotomicField(3,embedding=z3) @@ -732,7 +732,7 @@ cdef class CyclotomicFieldConversion(Map): ... ValueError: Element z1 has no image in the codomain - Tests from :trac:`29511`:: + Tests from :issue:`29511`:: sage: K. = CyclotomicField(12) sage: K1. = CyclotomicField(3) diff --git a/src/sage/rings/number_field/number_field_rel.py b/src/sage/rings/number_field/number_field_rel.py index 2bbb0cce121..0fdc3a8e89c 100644 --- a/src/sage/rings/number_field/number_field_rel.py +++ b/src/sage/rings/number_field/number_field_rel.py @@ -220,7 +220,7 @@ def __init__(self, base, polynomial, name, sage: l.base_field().base_field() Number Field in a1 with defining polynomial x^2 + 1 - Non-monic and non-integral polynomials are supported (:trac:`252`):: + Non-monic and non-integral polynomials are supported (:issue:`252`):: sage: l. = k.extension(5*x^2 + 3); l Number Field in b with defining polynomial 5*x^2 + 3 over its base field @@ -499,7 +499,7 @@ def gens(self): TESTS: - Trivial extensions work like non-trivial ones (:trac:`2220`):: + Trivial extensions work like non-trivial ones (:issue:`2220`):: sage: NumberField([x^2 - 3, x], 'a').gens() (a0, 0) @@ -885,7 +885,7 @@ def _convert_non_number_field_element(self, x): TESTS: - Examples from :trac:`4727`:: + Examples from :issue:`4727`:: sage: # needs sage.symbolic sage: K. = QQ[sqrt(-1), sqrt(2)] @@ -900,7 +900,7 @@ def _convert_non_number_field_element(self, x): sage: K((b*j + 1/2).list()) sqrt2*I + 1/2 - Examples from :trac:`4869`:: + Examples from :issue:`4869`:: sage: K. = CyclotomicField(7) sage: Ky. = PolynomialRing(K) @@ -910,7 +910,7 @@ def _convert_non_number_field_element(self, x): sage: L(L.polynomial_ring().random_element()) # random (z^5 + 1/3*z^4 - z^3 + z^2 - z + 2/3)*a + 1/4*z^5 - 7/2*z^4 + 5/3*z^3 - 1/4*z^2 + 3/2*z - 1 - Examples from :trac:`11307`:: + Examples from :issue:`11307`:: sage: L = NumberField([x^2 + 1, x^2 - 3], 'a') sage: L(L) @@ -1104,7 +1104,7 @@ def __base_inclusion(self, element): TESTS: - Check that :trac:`5828` is solved:: + Check that :issue:`5828` is solved:: sage: K. = QuadraticField(-1) sage: KX. = K[] @@ -1215,7 +1215,7 @@ def is_galois_relative(self): sage: M.is_galois_relative() False - The next example previously gave a wrong result; see :trac:`9390`:: + The next example previously gave a wrong result; see :issue:`9390`:: sage: F. = NumberField([x^2 - 2, x^2 - 3]) sage: F.is_galois_relative() @@ -2395,7 +2395,7 @@ def relative_discriminant(self): TESTS: Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: K. = NumberField(x^2 + 1/2) sage: L. = K.extension(x^2 - 1/2) @@ -2567,7 +2567,7 @@ def lift_to_base(self, element): TESTS: Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`):: + polynomials are supported (:issue:`252`):: sage: R. = QQ[] sage: K. = NumberField(x^2 + 1/2) diff --git a/src/sage/rings/number_field/order.py b/src/sage/rings/number_field/order.py index d97da235d68..94d0732704d 100644 --- a/src/sage/rings/number_field/order.py +++ b/src/sage/rings/number_field/order.py @@ -1594,7 +1594,7 @@ def _element_constructor_(self, x): If ``x`` is a list or tuple the element constructed is the linear combination of the generators with these coefficients - (see :trac:`10017`):: + (see :issue:`10017`):: sage: x = polygen(QQ) sage: K. = NumberField(x^3 - 10) @@ -1665,7 +1665,7 @@ def __and__(left, right): TESTS: - Verify that :trac:`33386` has been resolved:: + Verify that :issue:`33386` has been resolved:: sage: (K.maximal_order() & K.maximal_order()).is_maximal() True @@ -2228,12 +2228,12 @@ def _element_constructor_(self, x): sage: OK([3, 4]) 4*a + 3 - The following used to fail; see :trac:`5276`:: + The following used to fail; see :issue:`5276`:: sage: S. = OK[]; S Univariate Polynomial Ring in y over Maximal Relative Order generated by [(-5787/2*b - 9/2)*a - 964565*b - 965, (-1500*b - 2)*a - 499997*b - 500] in Number Field in a with defining polynomial x^2 + 2 over its base field - We test that :trac:`4193` is also fixed:: + We test that :issue:`4193` is also fixed:: sage: K1. = NumberField(x^3 - 2) sage: R. = PolynomialRing(K1) @@ -2409,7 +2409,7 @@ def __and__(left, right): TESTS: - Verify that :trac:`33386` has been resolved:: + Verify that :issue:`33386` has been resolved:: sage: (L.maximal_order() & L.maximal_order()).is_maximal() True diff --git a/src/sage/rings/number_field/small_primes_of_degree_one.py b/src/sage/rings/number_field/small_primes_of_degree_one.py index 2ecfccc057a..73f770c34dd 100644 --- a/src/sage/rings/number_field/small_primes_of_degree_one.py +++ b/src/sage/rings/number_field/small_primes_of_degree_one.py @@ -202,7 +202,7 @@ def __next__(self): TESTS: - We test that :trac:`6396` is fixed. Note that the doctest is + We test that :issue:`6396` is fixed. Note that the doctest is flagged as random since the string representation of ideals is somewhat unpredictable:: @@ -223,7 +223,7 @@ def __next__(self): sage: ids[9] == N.ideal(3*a + 1/2*b + 5/2) True - We test that :trac:`23468` is fixed:: + We test that :issue:`23468` is fixed:: sage: R. = QQ[] sage: K. = QQ.extension(25*z^2 + 26*z + 5) diff --git a/src/sage/rings/number_field/splitting_field.py b/src/sage/rings/number_field/splitting_field.py index 0bf41e50966..4de3515f161 100644 --- a/src/sage/rings/number_field/splitting_field.py +++ b/src/sage/rings/number_field/splitting_field.py @@ -3,8 +3,8 @@ AUTHORS: -- Jeroen Demeyer (2014-01-02): initial version for :trac:`2217` -- Jeroen Demeyer (2014-01-03): added ``abort_degree`` argument, :trac:`15626` +- Jeroen Demeyer (2014-01-02): initial version for :issue:`2217` +- Jeroen Demeyer (2014-01-03): added ``abort_degree`` argument, :issue:`15626` """ diff --git a/src/sage/rings/number_field/totallyreal_data.pyx b/src/sage/rings/number_field/totallyreal_data.pyx index 966d598ee89..4fae308299d 100644 --- a/src/sage/rings/number_field/totallyreal_data.pyx +++ b/src/sage/rings/number_field/totallyreal_data.pyx @@ -212,7 +212,7 @@ cpdef lagrange_degree_3(int n, int an1, int an2, int an3) noexcept: TESTS: - Check that :trac:`13101` is solved:: + Check that :issue:`13101` is solved:: sage: sage.rings.number_field.totallyreal_data.lagrange_degree_3(4,12,19,42) [0.0, -1.0] diff --git a/src/sage/rings/number_field/totallyreal_rel.py b/src/sage/rings/number_field/totallyreal_rel.py index 9b416d2ad02..1bf5d0a79f1 100644 --- a/src/sage/rings/number_field/totallyreal_rel.py +++ b/src/sage/rings/number_field/totallyreal_rel.py @@ -73,7 +73,7 @@ TESTS: -Check that :trac:`27646` is fixed:: +Check that :issue:`27646` is fixed:: sage: L = enumerate_totallyreal_fields_all(6,435000) # long time @@ -959,7 +959,7 @@ def enumerate_totallyreal_fields_all(n, B, verbose=0, return_seqs=False, :func:`~sage.rings.number_field.totallyreal.enumerate_totallyreal_fields_prim` finds four out of the five (the exception being `x^4 - 6x^2 + 4`). - The following was fixed in :trac:`13101`:: + The following was fixed in :issue:`13101`:: sage: enumerate_totallyreal_fields_all(8, 10^6) # long time (about 2 s) [] diff --git a/src/sage/rings/number_field/unit_group.py b/src/sage/rings/number_field/unit_group.py index 0aa4e396596..a98c1dd0907 100644 --- a/src/sage/rings/number_field/unit_group.py +++ b/src/sage/rings/number_field/unit_group.py @@ -279,7 +279,7 @@ def __init__(self, number_field, proof=True, S=None): TESTS: Number fields defined by non-monic and non-integral - polynomials are supported (:trac:`252`); + polynomials are supported (:issue:`252`); the representation depends on the PARI version:: sage: K. = NumberField(7/9*x^3 + 7/3*x^2 - 56*x + 123) @@ -294,7 +294,7 @@ def __init__(self, number_field, proof=True, S=None): True Conversion from unit group to a number field and back - gives the right results (:trac:`25874`):: + gives the right results (:issue:`25874`):: sage: # needs sage.libs.linbox sage: K = QuadraticField(-3).composite_fields(QuadraticField(2))[0] diff --git a/src/sage/rings/padics/CA_template.pxi b/src/sage/rings/padics/CA_template.pxi index f8493fabd44..c1a5ecbca0e 100644 --- a/src/sage/rings/padics/CA_template.pxi +++ b/src/sage/rings/padics/CA_template.pxi @@ -226,7 +226,7 @@ cdef class CAElement(pAdicTemplateElement): sage: R(12) + R(1) 13 + O(13^4) - Check that :trac:`20245` is resolved:: + Check that :issue:`20245` is resolved:: sage: R(1,1) + R(169,3) 1 + O(13) @@ -455,7 +455,7 @@ cdef class CAElement(pAdicTemplateElement): sage: (a.log() * 19/7).exp() 1 + 14*19^2 + 11*19^3 + 13*19^4 + O(19^5) - Check that :trac:`31875` is fixed:: + Check that :issue:`31875` is fixed:: sage: R(1)^R(0) 1 + O(19^5) @@ -626,7 +626,7 @@ cdef class CAElement(pAdicTemplateElement): TESTS: - Verify that :trac:`13591` has been resolved:: + Verify that :issue:`13591` has been resolved:: sage: k(3).add_bigoh(-1) O(3^-1) @@ -1078,7 +1078,7 @@ cdef class CAElement(pAdicTemplateElement): .. WARNING:: - Hashing of `p`-adic elements will likely be deprecated soon. See :trac:`11895`. + Hashing of `p`-adic elements will likely be deprecated soon. See :issue:`11895`. EXAMPLES:: diff --git a/src/sage/rings/padics/CR_template.pxi b/src/sage/rings/padics/CR_template.pxi index 14a2f1686c0..24d9c061697 100644 --- a/src/sage/rings/padics/CR_template.pxi +++ b/src/sage/rings/padics/CR_template.pxi @@ -660,7 +660,7 @@ cdef class CRElement(pAdicTemplateElement): TESTS: - Check that :trac:`31875` is fixed:: + Check that :issue:`31875` is fixed:: sage: R(1)^R(0) 1 + O(19^5) @@ -1529,7 +1529,7 @@ cdef class CRElement(pAdicTemplateElement): .. WARNING:: - Hashing of `p`-adic elements will likely be deprecated soon. See :trac:`11895`. + Hashing of `p`-adic elements will likely be deprecated soon. See :issue:`11895`. EXAMPLES:: diff --git a/src/sage/rings/padics/FM_template.pxi b/src/sage/rings/padics/FM_template.pxi index 3e6abe53a7f..5e6682c3e3b 100644 --- a/src/sage/rings/padics/FM_template.pxi +++ b/src/sage/rings/padics/FM_template.pxi @@ -364,7 +364,7 @@ cdef class FMElement(pAdicTemplateElement): TESTS: - We check that :trac:`15640` is resolved:: + We check that :issue:`15640` is resolved:: sage: R(11)^-1 Traceback (most recent call last): diff --git a/src/sage/rings/padics/FP_template.pxi b/src/sage/rings/padics/FP_template.pxi index 254d627630b..29ddd1e72c7 100644 --- a/src/sage/rings/padics/FP_template.pxi +++ b/src/sage/rings/padics/FP_template.pxi @@ -125,7 +125,7 @@ cdef class FPElement(pAdicTemplateElement): sage: R(5) - R(5) 0 - We check that :trac:`23966` is resolved:: + We check that :issue:`23966` is resolved:: sage: R = ZpFM(2) sage: K = R.fraction_field() @@ -605,7 +605,7 @@ cdef class FPElement(pAdicTemplateElement): TESTS: - Check that :trac:`31875` is fixed:: + Check that :issue:`31875` is fixed:: sage: R(1)^R(0) 1 diff --git a/src/sage/rings/padics/factory.py b/src/sage/rings/padics/factory.py index ea9681919ea..60c37322bd2 100644 --- a/src/sage/rings/padics/factory.py +++ b/src/sage/rings/padics/factory.py @@ -1304,7 +1304,7 @@ def Qq(q, prec=None, type='capped-rel', modulus=None, names=None, TESTS: - Check that :trac:`8162` is resolved:: + Check that :issue:`8162` is resolved:: sage: R = Qq([(5,3)], names="alpha", check=False); R # needs sage.libs.ntl 5-adic Unramified Extension Field in alpha defined by x^3 + 3*x + 3 @@ -1313,7 +1313,7 @@ def Qq(q, prec=None, type='capped-rel', modulus=None, names=None, sage: Qq(125.factor(), names="alpha") is R # needs sage.libs.ntl True - Check that :trac:`18606` is resolved:: + Check that :issue:`18606` is resolved:: sage: x = QQ['x'].gen() sage: F = Qp(5,20) @@ -3494,7 +3494,7 @@ def split(poly, prec): TESTS: - This checks that :trac:`6186` is still fixed:: + This checks that :issue:`6186` is still fixed:: sage: k = Qp(13) sage: x = polygen(k) # needs sage.libs.ntl diff --git a/src/sage/rings/padics/generic_nodes.py b/src/sage/rings/padics/generic_nodes.py index 3a135548a32..4774f2577e5 100644 --- a/src/sage/rings/padics/generic_nodes.py +++ b/src/sage/rings/padics/generic_nodes.py @@ -1230,7 +1230,7 @@ def _xgcd_univariate_polynomial(self, f, g): The computations are performed using the standard Euclidean algorithm which might produce mathematically incorrect results in - some cases. See :trac:`13439`. + some cases. See :issue:`13439`. EXAMPLES:: @@ -1239,7 +1239,7 @@ def _xgcd_univariate_polynomial(self, f, g): sage: f.xgcd(f^2) # needs sage.libs.ntl ((1 + O(3^3))*x + 1 + O(3^3), 1 + O(3^3), 0) - We check that :trac:`13439` has been fixed:: + We check that :issue:`13439` has been fixed:: sage: # needs sage.libs.ntl sage: R. = Zp(3,3)[] diff --git a/src/sage/rings/padics/local_generic.py b/src/sage/rings/padics/local_generic.py index a88d74f605f..066459c65a2 100644 --- a/src/sage/rings/padics/local_generic.py +++ b/src/sage/rings/padics/local_generic.py @@ -40,7 +40,7 @@ def __init__(self, base, prec, names, element_class, category=None): sage: R.precision_cap() 20 - In :trac:`14084`, the category framework has been implemented for p-adic rings:: + In :issue:`14084`, the category framework has been implemented for p-adic rings:: sage: TestSuite(R).run() # needs sage.geometry.polyhedron sage: K = Qp(7) diff --git a/src/sage/rings/padics/local_generic_element.pyx b/src/sage/rings/padics/local_generic_element.pyx index df5c454e865..f63cc114e96 100644 --- a/src/sage/rings/padics/local_generic_element.pyx +++ b/src/sage/rings/padics/local_generic_element.pyx @@ -185,7 +185,7 @@ cdef class LocalGenericElement(CommutativeRingElement): iterable. There doesn't seem to be an obvious behaviour that iteration over - such elements should produce, so it is disabled; see :trac:`13592`. + such elements should produce, so it is disabled; see :issue:`13592`. TESTS:: @@ -340,7 +340,7 @@ cdef class LocalGenericElement(CommutativeRingElement): sage: a.slice(0, 1) O(w) - Verify that :trac:`14106` has been fixed:: + Verify that :issue:`14106` has been fixed:: sage: R = Zp(5,7) sage: a = R(300) @@ -351,7 +351,7 @@ cdef class LocalGenericElement(CommutativeRingElement): sage: a.slice(None, 5, None) 2*5^2 + 2*5^3 + O(5^5) - Verify that :trac:`30695` has been fixed:: + Verify that :issue:`30695` has been fixed:: sage: F = Qp(3) sage: a = F(0) @@ -508,7 +508,7 @@ cdef class LocalGenericElement(CommutativeRingElement): sage: R(0).add_bigoh(infinity) 0 - Check that :trac:`23464` has been resolved:: + Check that :issue:`23464` has been resolved:: sage: x = polygen(QQ) sage: R. = Qp(7).extension(x^3 - 7) # needs sage.libs.ntl diff --git a/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx index fb62a0695f9..023e58ebc04 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx @@ -237,7 +237,7 @@ cdef class pAdicZZpXCAElement(pAdicZZpXElement): TESTS: - Check that :trac:`13600` is fixed:: + Check that :issue:`13600` is fixed:: sage: K = W.fraction_field() sage: W(K.zero()) @@ -247,12 +247,12 @@ cdef class pAdicZZpXCAElement(pAdicZZpXElement): sage: W(K.zero().add_bigoh(3)) O(w^3) - Check that :trac:`3865` is fixed: + Check that :issue:`3865` is fixed: sage: W(gp('5 + O(5^2)')) w^5 + 2*w^7 + 4*w^9 + O(w^10) - Check that :trac:`13612` has been fixed:: + Check that :issue:`13612` has been fixed:: sage: # needs sage.libs.flint sage: R = ZpCA(3) @@ -1913,7 +1913,7 @@ cdef class pAdicZZpXCAElement(pAdicZZpXElement): sage: list(A(0,4).expansion()) [] - Check that :trac:`25879` has been resolved:: + Check that :issue:`25879` has been resolved:: sage: K = ZpCA(3,5) sage: R. = K[] @@ -2153,7 +2153,7 @@ cdef class pAdicZZpXCAElement(pAdicZZpXElement): TESTS: - Check that :trac:`22083` has been resolved:: + Check that :issue:`22083` has been resolved:: sage: R. = ZpCA(2).extension(x^2 - 2) sage: R.teichmuller(a) diff --git a/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx index f4f8bce971f..9de1a39b8de 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx @@ -268,13 +268,13 @@ cdef class pAdicZZpXCRElement(pAdicZZpXElement): TESTS: - Check that :trac:`3865` is fixed:: + Check that :issue:`3865` is fixed:: sage: W(gp('3 + O(5^10)')) 3 + O(w^3125) - Check that :trac:`13612` has been fixed:: + Check that :issue:`13612` has been fixed:: sage: R = Zp(3) sage: S. = R[] @@ -1889,7 +1889,7 @@ cdef class pAdicZZpXCRElement(pAdicZZpXElement): TESTS: - We define ``0^0`` to be unity, :trac:`13786`:: + We define ``0^0`` to be unity, :issue:`13786`:: sage: R = Zp(5,5) sage: S. = R[] @@ -2774,7 +2774,7 @@ cdef class pAdicZZpXCRElement(pAdicZZpXElement): TESTS: - We check that :trac:`24949` is fixed:: + We check that :issue:`24949` is fixed:: sage: R = Zp(2) sage: S. = R[] @@ -2851,7 +2851,7 @@ cdef class pAdicZZpXCRElement(pAdicZZpXElement): TESTS: - Check that :trac:`13617` has been fixed:: + Check that :issue:`13617` has been fixed:: sage: W.zero().matrix_mod_pn() [0 0 0 0 0] @@ -3050,7 +3050,7 @@ cdef class pAdicZZpXCRElement(pAdicZZpXElement): TESTS: - We check that :trac:`8239` is resolved:: + We check that :issue:`8239` is resolved:: sage: K. = Qq(25) sage: K.teichmuller(K(2/5)) @@ -3191,7 +3191,7 @@ cdef class pAdicZZpXCRElement(pAdicZZpXElement): TESTS: - We check that :trac:`13616` is resolved:: + We check that :issue:`13616` is resolved:: sage: z = (1+w)^5 sage: y = z - 1 diff --git a/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx index e3785c4adff..01539421dd7 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx @@ -183,12 +183,12 @@ cdef class pAdicZZpXFMElement(pAdicZZpXElement): TESTS: - Check that :trac:`3865` is fixed:: + Check that :issue:`3865` is fixed:: sage: W(gp('2 + O(5^2)')) 2 - Check that :trac:`13612` has been fixed:: + Check that :issue:`13612` has been fixed:: sage: # needs sage.libs.flint sage: R = ZpFM(3) @@ -704,7 +704,7 @@ cdef class pAdicZZpXFMElement(pAdicZZpXElement): TESTS: - We define ``0^0`` to be unity, :trac:`13786`:: + We define ``0^0`` to be unity, :issue:`13786`:: sage: R = ZpFM(5,5) sage: S. = R[] @@ -838,7 +838,7 @@ cdef class pAdicZZpXFMElement(pAdicZZpXElement): ... ValueError: cannot invert non-unit - We check that :trac:`11403` has been resolved:: + We check that :issue:`11403` has been resolved:: sage: R. = Zq(8,2,'fixed-mod') sage: 1/(t+t^2) @@ -1344,7 +1344,7 @@ cdef class pAdicZZpXFMElement(pAdicZZpXElement): sage: list(A(0,4).expansion()) [] - Check that :trac:`25879` has been resolved:: + Check that :issue:`25879` has been resolved:: sage: K = ZpCA(3,5) sage: R. = K[] diff --git a/src/sage/rings/padics/padic_ZZ_pX_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_element.pyx index b3f57329e8f..a556082a9df 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_element.pyx @@ -400,7 +400,7 @@ cdef class pAdicZZpXElement(pAdicExtElement): sage: ((1+2*w)).norm()^5 # needs sage.geometry.polyhedron 1 + 5^2 - Check that :trac:`11586` has been resolved:: + Check that :issue:`11586` has been resolved:: sage: R. = QQ[] sage: f = x^2 + 3*x + 1 @@ -487,7 +487,7 @@ cdef class pAdicZZpXElement(pAdicExtElement): TESTS: - We check that :trac:`32072` is resolved:: + We check that :issue:`32072` is resolved:: sage: F = Qp(2) sage: S. = F[] @@ -550,7 +550,7 @@ cdef class pAdicZZpXElement(pAdicExtElement): TESTS: - Check that :trac:`13647` has been fixed:: + Check that :issue:`13647` has been fixed:: sage: # needs sage.libs.flint sage: K = ZpCA(3) diff --git a/src/sage/rings/padics/padic_base_leaves.py b/src/sage/rings/padics/padic_base_leaves.py index 4f48c187efc..efd4073c30d 100644 --- a/src/sage/rings/padics/padic_base_leaves.py +++ b/src/sage/rings/padics/padic_base_leaves.py @@ -541,7 +541,7 @@ def __init__(self, p, prec, print_mode, names): ....: max_runs=2^6, skip='_test_log') sage: R._test_log(max_runs=2, elements=[R.random_element() for i in range(4)]) - Fraction fields work after :trac:`23510`:: + Fraction fields work after :issue:`23510`:: sage: R = ZpFM(5) sage: K = R.fraction_field(); K @@ -1082,7 +1082,7 @@ def random_element(self, prec=None, integral=False): EXAMPLES:: sage: K = QpLC(2) - sage: K.random_element() # not tested, known bug (see :trac:`32126`) + sage: K.random_element() # not tested, known bug (see :issue:`32126`) 2^-8 + 2^-7 + 2^-6 + 2^-5 + 2^-3 + 1 + 2^2 + 2^3 + 2^5 + O(2^12) sage: K.random_element(integral=True) # random 2^3 + 2^4 + 2^5 + 2^6 + 2^7 + 2^10 + 2^11 + 2^14 + 2^15 + 2^16 diff --git a/src/sage/rings/padics/padic_extension_generic.py b/src/sage/rings/padics/padic_extension_generic.py index 6150ef77974..42d58e9d229 100644 --- a/src/sage/rings/padics/padic_extension_generic.py +++ b/src/sage/rings/padics/padic_extension_generic.py @@ -903,7 +903,7 @@ def _call_(self, x): TESTS: - We check that :trac:`25990` has been resolved:: + We check that :issue:`25990` has been resolved:: sage: R. = Zp(2).extension(x^3 - 2) sage: K = R.fraction_field() diff --git a/src/sage/rings/padics/padic_extension_leaves.py b/src/sage/rings/padics/padic_extension_leaves.py index d63dc734097..d6450039a82 100644 --- a/src/sage/rings/padics/padic_extension_leaves.py +++ b/src/sage/rings/padics/padic_extension_leaves.py @@ -397,7 +397,7 @@ def __init__(self, exact_modulus, poly, prec, print_mode, shift_seed, names, imp TESTS: - Check that :trac:`23228` has been resolved:: + Check that :issue:`23228` has been resolved:: sage: a % R.prime() # needs sage.libs.flint a diff --git a/src/sage/rings/padics/padic_fixed_mod_element.pyx b/src/sage/rings/padics/padic_fixed_mod_element.pyx index 21cbbded8f4..42b92c0a961 100644 --- a/src/sage/rings/padics/padic_fixed_mod_element.pyx +++ b/src/sage/rings/padics/padic_fixed_mod_element.pyx @@ -206,7 +206,7 @@ cdef class pAdicFixedModElement(FMElement): p^l : [&=...] INT(lg=3):... (+,lgefint=3):... ... I : gen_0 - This checks that :trac:`15653` is fixed:: + This checks that :issue:`15653` is fixed:: sage: x = polygen(ZpFM(3,10)) sage: (x^3 + x + 1).__pari__().poldisc() diff --git a/src/sage/rings/padics/padic_generic.py b/src/sage/rings/padics/padic_generic.py index 8abc87020fe..6452d77db22 100644 --- a/src/sage/rings/padics/padic_generic.py +++ b/src/sage/rings/padics/padic_generic.py @@ -542,7 +542,7 @@ def teichmuller(self, x, prec=None): sage: b^125 == b True - We check that :trac:`23736` is resolved:: + We check that :issue:`23736` is resolved:: sage: # needs sage.libs.ntl sage: R.teichmuller(GF(5)(2)) @@ -582,7 +582,7 @@ def teichmuller_system(self): sage: R.teichmuller_system() [1, 242] - Check that :trac:`20457` is fixed:: + Check that :issue:`20457` is fixed:: sage: F. = Qq(5^2,6) # needs sage.libs.ntl sage: F.teichmuller_system()[3] # needs sage.libs.ntl diff --git a/src/sage/rings/padics/padic_generic_element.pyx b/src/sage/rings/padics/padic_generic_element.pyx index ffafe15313c..035e404773b 100644 --- a/src/sage/rings/padics/padic_generic_element.pyx +++ b/src/sage/rings/padics/padic_generic_element.pyx @@ -559,7 +559,7 @@ cdef class pAdicGenericElement(LocalGenericElement): sage: Zp(5,5)(1/3) # indirect doctest 2 + 3*5 + 5^2 + 3*5^3 + 5^4 + O(5^5) - We check that :trac:`26479` is fixed:: + We check that :issue:`26479` is fixed:: sage: # needs sage.libs.ntl sage: x = polygen(ZZ, 'x') @@ -1002,7 +1002,7 @@ cdef class pAdicGenericElement(LocalGenericElement): sage: (1/pi).minimal_polynomial() # needs sage.symbolic (1 + O(2^5))*x^4 + (a^2 + 1)*2^-1 + O(2^4) sage: elt = L.random_element() - sage: P = elt.minimal_polynomial() # not tested, known bug (see :trac:`32111`) + sage: P = elt.minimal_polynomial() # not tested, known bug (see :issue:`32111`) sage: P(elt) == 0 # not tested True """ @@ -1077,7 +1077,7 @@ cdef class pAdicGenericElement(LocalGenericElement): sage: x = L.random_element() # needs sage.libs.ntl sage: y = L.random_element() # needs sage.libs.ntl - sage: (x*y).norm() == x.norm() * y.norm() # not tested, known bug (see :trac:`32085`) + sage: (x*y).norm() == x.norm() * y.norm() # not tested, known bug (see :issue:`32085`) True """ @@ -1119,7 +1119,7 @@ cdef class pAdicGenericElement(LocalGenericElement): sage: x = L.random_element() # needs sage.libs.ntl sage: y = L.random_element() # needs sage.libs.ntl - sage: (x+y).trace() == x.trace() + y.trace() # not tested, known bug (see :trac:`32085`) + sage: (x+y).trace() == x.trace() + y.trace() # not tested, known bug (see :issue:`32085`) True """ @@ -1278,7 +1278,7 @@ cdef class pAdicGenericElement(LocalGenericElement): TESTS: - This test was added in :trac:`24433`:: + This test was added in :issue:`24433`:: sage: F = Qp(7) sage: F(4).gamma() @@ -1366,12 +1366,12 @@ cdef class pAdicGenericElement(LocalGenericElement): TESTS: - We check that :trac:`23784` is resolved:: + We check that :issue:`23784` is resolved:: sage: Zp(5)(0).gamma() 1 + O(5^20) - Check the cached version of `dwork_expansion` from :trac:`24433`:: + Check the cached version of `dwork_expansion` from :issue:`24433`:: sage: p = next_prime(200) sage: F = Qp(p) @@ -2873,7 +2873,7 @@ cdef class pAdicGenericElement(LocalGenericElement): - William Stein: initial version - David Harvey (2006-09-13): corrected subtle precision bug (need to - take denominators into account! -- see :trac:`53`) + take denominators into account! -- see :issue:`53`) - Genya Zaytman (2007-02-14): adapted to new `p`-adic class @@ -3662,7 +3662,7 @@ cdef class pAdicGenericElement(LocalGenericElement): ... PrecisionError: not enough precision to be sure that this element is a nth power - Check that :trac:`30314` is fixed:: + Check that :issue:`30314` is fixed:: sage: # needs sage.libs.ntl sage: K = Qp(29) @@ -4248,7 +4248,7 @@ cdef class pAdicGenericElement(LocalGenericElement): ... ValueError: polylogarithm only implemented for n at least 0 - Check that :trac:`29222` is fixed:: + Check that :issue:`29222` is fixed:: sage: K = Qp(7) sage: print(K(1 + 7^11).polylog(4)) # needs sage.symbolic diff --git a/src/sage/rings/padics/padic_lattice_element.py b/src/sage/rings/padics/padic_lattice_element.py index e2c80855b71..d1b75efe6d6 100644 --- a/src/sage/rings/padics/padic_lattice_element.py +++ b/src/sage/rings/padics/padic_lattice_element.py @@ -8,7 +8,7 @@ TESTS: We create some rings and run the test suite for them. We skip the Smith form -tests because they take a few minutes as of mid 2018, see :trac:`25431`:: +tests because they take a few minutes as of mid 2018, see :issue:`25431`:: sage: R1 = ZpLC(2) doctest:...: FutureWarning: This class/method/function is marked as experimental. It, its functionality or its interface might change without a formal deprecation. @@ -209,7 +209,7 @@ def _is_base_elt(self, p): EXAMPLES:: sage: K = QpLC(7) - sage: K.random_element()._is_base_elt(7) # not tested, known bug (see :trac:`32126`) + sage: K.random_element()._is_base_elt(7) # not tested, known bug (see :issue:`32126`) True """ return p == self._parent.prime() diff --git a/src/sage/rings/padics/padic_printing.pyx b/src/sage/rings/padics/padic_printing.pyx index f92afb51529..2a376264b4b 100644 --- a/src/sage/rings/padics/padic_printing.pyx +++ b/src/sage/rings/padics/padic_printing.pyx @@ -922,7 +922,7 @@ cdef class pAdicPrinter_class(SageObject): TESTS: - Check that :trac:`24843` is resolved:: + Check that :issue:`24843` is resolved:: sage: R = Zp(2, print_mode='digits', show_prec=True) sage: repr(R(0,10)) diff --git a/src/sage/rings/padics/padic_template_element.pxi b/src/sage/rings/padics/padic_template_element.pxi index 7dcb624b666..4b7db8726af 100644 --- a/src/sage/rings/padics/padic_template_element.pxi +++ b/src/sage/rings/padics/padic_template_element.pxi @@ -516,7 +516,7 @@ cdef class pAdicTemplateElement(pAdicGenericElement): TESTS: - Check to see that :trac:`10292` is resolved:: + Check to see that :issue:`10292` is resolved:: sage: # needs sage.schemes sage: E = EllipticCurve('37a') diff --git a/src/sage/rings/padics/padic_valuation.py b/src/sage/rings/padics/padic_valuation.py index d1590d0391f..7b162228fbb 100644 --- a/src/sage/rings/padics/padic_valuation.py +++ b/src/sage/rings/padics/padic_valuation.py @@ -289,7 +289,7 @@ def create_key_and_extra_args_for_number_field_from_ideal(self, R, I, prime): TESTS: - Verify that :trac:`28976` has been resolved:: + Verify that :issue:`28976` has been resolved:: sage: # needs sage.rings.number_field sage: R. = QQ[] @@ -1363,7 +1363,7 @@ class pAdicFromLimitValuation(FiniteExtensionFromLimitValuation, pAdicValuation_ sage: TestSuite(v).run(skip='_test_shift') # long time # needs sage.rings.number_field The ``_test_shift`` test fails because the parent of the shift is - incorrect, see :trac:`23971`:: + incorrect, see :issue:`23971`:: sage: v.shift(1, -1).parent() # needs sage.rings.number_field Number Field in I with defining polynomial x^2 + 1 with I = 1*I diff --git a/src/sage/rings/padics/qadic_flint_CA.pyx b/src/sage/rings/padics/qadic_flint_CA.pyx index 3e4d01fcad1..a2a65359edc 100644 --- a/src/sage/rings/padics/qadic_flint_CA.pyx +++ b/src/sage/rings/padics/qadic_flint_CA.pyx @@ -111,7 +111,7 @@ cdef class qAdicCappedAbsoluteElement(CAElement): def __hash__(self): r""" Raise a ``TypeError`` since this element is not hashable - (:trac:`11895`.) + (:issue:`11895`.) TESTS:: diff --git a/src/sage/rings/padics/qadic_flint_CR.pyx b/src/sage/rings/padics/qadic_flint_CR.pyx index c20fa087424..8f7f268b60e 100644 --- a/src/sage/rings/padics/qadic_flint_CR.pyx +++ b/src/sage/rings/padics/qadic_flint_CR.pyx @@ -52,7 +52,7 @@ cdef class qAdicCappedRelativeElement(CRElement): sage: M.base_ring() Ring of integers modulo 125 - Check that :trac:`13617` has been fixed:: + Check that :issue:`13617` has been fixed:: sage: R(0).matrix_mod_pn() [0 0 0 0 0] @@ -153,7 +153,7 @@ cdef class qAdicCappedRelativeElement(CRElement): def __hash__(self): r""" Raise a ``TypeError`` since this element is not hashable - (:trac:`11895`.) + (:issue:`11895`.) TESTS:: diff --git a/src/sage/rings/padics/qadic_flint_FP.pyx b/src/sage/rings/padics/qadic_flint_FP.pyx index 36e898c8590..2d080dba429 100644 --- a/src/sage/rings/padics/qadic_flint_FP.pyx +++ b/src/sage/rings/padics/qadic_flint_FP.pyx @@ -54,7 +54,7 @@ cdef class qAdicFloatingPointElement(FPElement): sage: M.base_ring() Integer Ring - Check that :trac:`13617` has been fixed:: + Check that :issue:`13617` has been fixed:: sage: R(0).matrix_mod_pn() [0 0 0 0 0] @@ -147,7 +147,7 @@ cdef class qAdicFloatingPointElement(FPElement): def __hash__(self): r""" Raise a ``TypeError`` since this element is not hashable - (:trac:`11895`.) + (:issue:`11895`.) TESTS:: diff --git a/src/sage/rings/polynomial/complex_roots.py b/src/sage/rings/polynomial/complex_roots.py index 346b49d257c..602ba9ffc27 100644 --- a/src/sage/rings/polynomial/complex_roots.py +++ b/src/sage/rings/polynomial/complex_roots.py @@ -252,7 +252,7 @@ def complex_roots(p, skip_squarefree=False, retval='interval', min_prec=0): TESTS: - Verify that :trac:`12026` is fixed:: + Verify that :issue:`12026` is fixed:: sage: f = matrix(QQ, 8, lambda i, j: 1/(i + j + 1)).charpoly() sage: from sage.rings.polynomial.complex_roots import complex_roots diff --git a/src/sage/rings/polynomial/cyclotomic.pyx b/src/sage/rings/polynomial/cyclotomic.pyx index 3a891ec1ae8..a7339d23604 100644 --- a/src/sage/rings/polynomial/cyclotomic.pyx +++ b/src/sage/rings/polynomial/cyclotomic.pyx @@ -286,7 +286,7 @@ def cyclotomic_value(n, x): sage: cyclotomic_value(10, mod(3,4)) 1 - Check that the issue with symbolic element in :trac:`14982` is fixed:: + Check that the issue with symbolic element in :issue:`14982` is fixed:: sage: a = cyclotomic_value(3, I) # needs sage.rings.number_fields sage: parent(a) # needs sage.rings.number_fields diff --git a/src/sage/rings/polynomial/flatten.py b/src/sage/rings/polynomial/flatten.py index 74783285396..ca2a491b94d 100644 --- a/src/sage/rings/polynomial/flatten.py +++ b/src/sage/rings/polynomial/flatten.py @@ -488,7 +488,7 @@ def __init__(self, domain, D): ... TypeError: no conversion of this rational to integer - The following was fixed in :trac:`23811`:: + The following was fixed in :issue:`23811`:: sage: R. = RR[] sage: P. = AffineSpace(R, 1) diff --git a/src/sage/rings/polynomial/groebner_fan.py b/src/sage/rings/polynomial/groebner_fan.py index cc6b5b9557b..60938c19d64 100644 --- a/src/sage/rings/polynomial/groebner_fan.py +++ b/src/sage/rings/polynomial/groebner_fan.py @@ -760,7 +760,7 @@ def ideal_to_gfan_format(input_ring, polys): TESTS: - Test that :trac:`20146` is fixed:: + Test that :issue:`20146` is fixed:: sage: P = PolynomialRing(QQ,"x11,x12,x13,x14,x15,x21,x22,x23,x24,x25,x31,x32,x33,x34,x35"); x = P.gens(); M = Matrix(3,x) sage: I = P.ideal(M.minors(2)) diff --git a/src/sage/rings/polynomial/hilbert.pyx b/src/sage/rings/polynomial/hilbert.pyx index 975e2f42d9e..147db5691c3 100644 --- a/src/sage/rings/polynomial/hilbert.pyx +++ b/src/sage/rings/polynomial/hilbert.pyx @@ -2,7 +2,7 @@ r""" Compute Hilbert series of monomial ideals -This implementation was provided at :trac:`26243` and is supposed to be a way +This implementation was provided at :issue:`26243` and is supposed to be a way out when Singular fails with an int overflow, which will regularly be the case in any example with more than 34 variables. """ @@ -572,7 +572,7 @@ def hilbert_poincare_series(I, grading=None): sage: hilbert_poincare_series((R * R.gens())^2, grading=range(1,10)) t^9 + t^8 + t^7 + t^6 + t^5 + t^4 + t^3 + t^2 + t + 1 - The following example is taken from :trac:`20145`:: + The following example is taken from :issue:`20145`:: sage: # needs sage.libs.singular sage: n=4; m=11; P = PolynomialRing(QQ, n*m, "x"); x = P.gens(); M = Matrix(n, x) diff --git a/src/sage/rings/polynomial/infinite_polynomial_element.py b/src/sage/rings/polynomial/infinite_polynomial_element.py index a32c2fb0f7e..b135404a020 100644 --- a/src/sage/rings/polynomial/infinite_polynomial_element.py +++ b/src/sage/rings/polynomial/infinite_polynomial_element.py @@ -316,7 +316,7 @@ def polynomial(self): def _getAttributeNames(self): """ - This method implements tab completion, see :trac:`6854`. + This method implements tab completion, see :issue:`6854`. EXAMPLES:: @@ -334,7 +334,7 @@ def _getAttributeNames(self): def __dir__(self): """ - This method implements tab completion, see :trac:`6854`. + This method implements tab completion, see :issue:`6854`. TESTS:: @@ -371,7 +371,7 @@ def __getattr__(self, s): sage: latex(alpha[3]*alpha[2]^2) # indirect doctest \alpha_{3} \alpha_{2}^{2} - Related with issues :trac:`6854` and :trac:`7580`, the attribute + Related with issues :issue:`6854` and :issue:`7580`, the attribute ``__methods__`` is treated in a special way, which makes introspection and tab completion work:: @@ -516,7 +516,7 @@ def is_unit(self): sage: (1 + a[2]).is_unit() False - Check that :trac:`22454` is fixed:: + Check that :issue:`22454` is fixed:: sage: _. = InfinitePolynomialRing(Zmod(4)) sage: (1 + 2*x[0]).is_unit() diff --git a/src/sage/rings/polynomial/infinite_polynomial_ring.py b/src/sage/rings/polynomial/infinite_polynomial_ring.py index 3d88282ef2d..dbb71289f89 100644 --- a/src/sage/rings/polynomial/infinite_polynomial_ring.py +++ b/src/sage/rings/polynomial/infinite_polynomial_ring.py @@ -221,7 +221,7 @@ sage: x[2]/2+(5/3)*a[3]*x[4] + 1 5/3*a_3*x_4 + 1/2*x_2 + 1 -Check that :trac:`22514` is fixed:: +Check that :issue:`22514` is fixed:: sage: R. = InfinitePolynomialRing(ZZ) sage: a = R(3) @@ -1069,7 +1069,7 @@ def tensor_with_ring(self, R): sage: R Infinite polynomial ring in a, b over Integer Ring - The following tests against a bug that was fixed at :trac:`10468`:: + The following tests against a bug that was fixed at :issue:`10468`:: sage: R. = InfinitePolynomialRing(QQ) sage: R.tensor_with_ring(QQ) is R @@ -1142,7 +1142,7 @@ def is_field(self, *args, **kwds): sage: R.is_field() False - :trac:`9443`:: + :issue:`9443`:: sage: W = PowerSeriesRing(InfinitePolynomialRing(QQ,'a'),'x') sage: W.is_field() @@ -1320,7 +1320,7 @@ def is_integral_domain(self, *args, **kwds): TESTS: - :trac:`9443`:: + :issue:`9443`:: sage: W = PolynomialRing(InfinitePolynomialRing(QQ,'a'),2,'x,y') sage: W.is_integral_domain() @@ -1606,7 +1606,7 @@ def tensor_with_ring(self, R): sage: R Infinite polynomial ring in a, b over Integer Ring - The following tests against a bug that was fixed at :trac:`10468`:: + The following tests against a bug that was fixed at :issue:`10468`:: sage: R. = InfinitePolynomialRing(QQ, implementation='sparse') sage: R.tensor_with_ring(QQ) is R diff --git a/src/sage/rings/polynomial/laurent_polynomial.pyx b/src/sage/rings/polynomial/laurent_polynomial.pyx index 03de4a1179f..f63b256ee13 100644 --- a/src/sage/rings/polynomial/laurent_polynomial.pyx +++ b/src/sage/rings/polynomial/laurent_polynomial.pyx @@ -180,7 +180,7 @@ cdef class LaurentPolynomial(CommutativeAlgebraElement): sage: a.change_ring(GF(3)) 2*x^-1 + x^2 - Check that :trac:`22277` is fixed:: + Check that :issue:`22277` is fixed:: sage: # needs sage.modules sage: R. = LaurentPolynomialRing(QQ) @@ -546,7 +546,7 @@ cdef class LaurentPolynomial_univariate(LaurentPolynomial): sage: elt.polynomial_construction() (t^2 + 1, 2) - Check that :trac:`21272` is fixed:: + Check that :issue:`21272` is fixed:: sage: (t - t).polynomial_construction() (0, 0) @@ -611,7 +611,7 @@ cdef class LaurentPolynomial_univariate(LaurentPolynomial): sage: latex(f) \frac{\frac{17}{2}}{x^{2}} + x + x^{2} + 3x^{4} - Verify that :trac:`6656` has been fixed:: + Verify that :issue:`6656` has been fixed:: sage: R. = PolynomialRing(QQ) sage: T. = LaurentPolynomialRing(R) @@ -693,7 +693,7 @@ cdef class LaurentPolynomial_univariate(LaurentPolynomial): ....: assert hash(R(p)) == hash(p), "p = {}".format(p) ....: assert hash(R(t*p)) == hash(t*p), "p = {}".format(p) - Check that :trac:`21272` is fixed:: + Check that :issue:`21272` is fixed:: sage: R. = LaurentPolynomialRing(QQ) sage: hash(R.zero()) == hash(t - t) @@ -743,7 +743,7 @@ cdef class LaurentPolynomial_univariate(LaurentPolynomial): sage: f[:3] -5*t^-10 + 1/3 + t + t^2 - Any other kind of slicing is an error, see :trac:`18940`:: + Any other kind of slicing is an error, see :issue:`18940`:: sage: f[-10:2] Traceback (most recent call last): @@ -830,7 +830,7 @@ cdef class LaurentPolynomial_univariate(LaurentPolynomial): sage: g(x=2) 9 - Since :trac:`24072` the symbolic ring does not accept positive + Since :issue:`24072` the symbolic ring does not accept positive characteristic:: sage: R. = LaurentPolynomialRing(GF(7)) @@ -1446,7 +1446,7 @@ cdef class LaurentPolynomial_univariate(LaurentPolynomial): TESTS: - Check that :trac:`34330` is fixed:: + Check that :issue:`34330` is fixed:: sage: num = t^-2 + 3 + t sage: den = t^-4 + t @@ -1833,7 +1833,7 @@ cdef class LaurentPolynomial_univariate(LaurentPolynomial): sage: f._derivative(t) 2*x^-1 + (6*t + 6)*x - Check that :trac:`28187` is fixed:: + Check that :issue:`28187` is fixed:: sage: # needs sage.symbolic sage: R. = LaurentPolynomialRing(ZZ) diff --git a/src/sage/rings/polynomial/laurent_polynomial_mpair.pyx b/src/sage/rings/polynomial/laurent_polynomial_mpair.pyx index 893b81c87af..285163dada4 100644 --- a/src/sage/rings/polynomial/laurent_polynomial_mpair.pyx +++ b/src/sage/rings/polynomial/laurent_polynomial_mpair.pyx @@ -54,7 +54,7 @@ cdef class LaurentPolynomial_mpair(LaurentPolynomial): TESTS: - Check that :trac:`19538` is fixed:: + Check that :issue:`19538` is fixed:: sage: R = LaurentPolynomialRing(QQ,'x2,x0') sage: S = LaurentPolynomialRing(QQ,'x',3) @@ -70,7 +70,7 @@ cdef class LaurentPolynomial_mpair(LaurentPolynomial): sage: LaurentPolynomial_mpair(L, {(1,2): 1/42}, mon=(-3, -3)) 1/42*w^-2*z^-1 - :trac:`22398`:: + :issue:`22398`:: sage: LQ = LaurentPolynomialRing(QQ, 'x0, x1, x2, y0, y1, y2, y3, y4, y5') sage: LZ = LaurentPolynomialRing(ZZ, 'x0, x1, x2, y0, y1, y2, y3, y4, y5') @@ -146,13 +146,13 @@ cdef class LaurentPolynomial_mpair(LaurentPolynomial): r""" TESTS: - Test that the hash is non-constant (see also :trac:`27914`):: + Test that the hash is non-constant (see also :issue:`27914`):: sage: L. = LaurentPolynomialRing(QQ) sage: len({hash(w^i*z^j) for i in [-2..2] for j in [-2..2]}) 25 - Check that :trac:`20490` is fixed:: + Check that :issue:`20490` is fixed:: sage: R. = LaurentPolynomialRing(ZZ) sage: p = a*~a @@ -163,7 +163,7 @@ cdef class LaurentPolynomial_mpair(LaurentPolynomial): sage: hash(p) 1 - Check that :trac:`23864` is fixed (compatibility with integers, rationals + Check that :issue:`23864` is fixed (compatibility with integers, rationals and polynomial rings):: sage: L = LaurentPolynomialRing(QQ, 'x0,x1,x2') @@ -183,7 +183,7 @@ cdef class LaurentPolynomial_mpair(LaurentPolynomial): sage: hash(1 - 7*x0 + x1*x2) == hash(L(1 - 7*x0 + x1*x2)) True - Check that :trac:`27914` is fixed:: + Check that :issue:`27914` is fixed:: sage: L. = LaurentPolynomialRing(QQ) sage: Lw = LaurentPolynomialRing(QQ, 'w') @@ -233,7 +233,7 @@ cdef class LaurentPolynomial_mpair(LaurentPolynomial): TESTS: - check compatibility with :trac:`26105`:: + check compatibility with :issue:`26105`:: sage: # needs sage.rings.finite_rings sage: F. = GF(4) @@ -267,7 +267,7 @@ cdef class LaurentPolynomial_mpair(LaurentPolynomial): sage: f.factor() # Notice the y has been factored out. (y) * (2*x^2 + x + 1) - Check that :trac:`23864` has been fixed:: + Check that :issue:`23864` has been fixed:: sage: hash(L.zero()) 0 @@ -472,7 +472,7 @@ cdef class LaurentPolynomial_mpair(LaurentPolynomial): TESTS: - Check that :trac:`2952` is fixed:: + Check that :issue:`2952` is fixed:: sage: R. = QQ[] sage: L. = LaurentPolynomialRing(R) @@ -1029,12 +1029,12 @@ cdef class LaurentPolynomial_mpair(LaurentPolynomial): TESTS: - Check that :trac:`19357` is fixed:: + Check that :issue:`19357` is fixed:: sage: x // y x*y^-1 - Check that :trac:`21999` is fixed:: + Check that :issue:`21999` is fixed:: sage: L. = LaurentPolynomialRing(QQbar) # needs sage.rings.number_field sage: (a+a*b) // a # needs sage.libs.singular sage.rings.number_field @@ -1074,7 +1074,7 @@ cdef class LaurentPolynomial_mpair(LaurentPolynomial): TESTS: - Verify that :trac:`31257` is fixed:: + Verify that :issue:`31257` is fixed:: sage: # needs sage.libs.singular sage: R. = LaurentPolynomialRing(QQ) @@ -1597,7 +1597,7 @@ cdef class LaurentPolynomial_mpair(LaurentPolynomial): TESTS: - Tests for :trac:`29173`:: + Tests for :issue:`29173`:: sage: L. = LaurentPolynomialRing(ZZ, 'a, b') sage: (a*b + a + b + 1).factor() @@ -1703,7 +1703,7 @@ cdef class LaurentPolynomial_mpair(LaurentPolynomial): sage: p.rescale_vars({0: 3, 1: 7}, new_ring=L.change_ring(F)) x*y^-2 + x^-2*y - Test for :trac:`30331`:: + Test for :issue:`30331`:: sage: F. = CyclotomicField(3) # needs sage.rings.number_field sage: p.rescale_vars({0: 2, 1: z}, new_ring=L.change_ring(F)) # needs sage.rings.number_field @@ -1834,7 +1834,7 @@ cdef class LaurentPolynomial_mpair(LaurentPolynomial): TESTS: - Tests for :trac:`30331`:: + Tests for :issue:`30331`:: sage: L. = LaurentPolynomialRing(QQ, 2) sage: p = x + y diff --git a/src/sage/rings/polynomial/laurent_polynomial_ring.py b/src/sage/rings/polynomial/laurent_polynomial_ring.py index 812a4b3a351..6d24de9f96f 100644 --- a/src/sage/rings/polynomial/laurent_polynomial_ring.py +++ b/src/sage/rings/polynomial/laurent_polynomial_ring.py @@ -521,7 +521,7 @@ def _element_constructor_(self, x): TESTS: - Check that conversion back from fraction field does work (:trac:`26425`):: + Check that conversion back from fraction field does work (:issue:`26425`):: sage: R. = LaurentPolynomialRing(ZZ) sage: F = FractionField(R) @@ -557,11 +557,11 @@ def _element_constructor_(self, x): elif isinstance(x, FractionFieldElement): # since the field of fraction of self is defined corresponding to # the polynomial ring of self the conversion of its elements back - # must be treated separately (:trac:`26425`). + # must be treated separately (:issue:`26425`). return from_fraction_field(self, x) elif isinstance(x, LocalizationElement): - # see :trac:`33477`. + # see :issue:`33477`. F = self.fraction_field() return from_fraction_field(self, F(x)) @@ -785,11 +785,11 @@ def _element_constructor_(self, x, mon=None): elif isinstance(x, FractionFieldElement): # since the field of fraction of self is defined corresponding to # the polynomial ring of self the conversion of its elements back - # must be treated separately (:trac:`33477`). + # must be treated separately (:issue:`33477`). return from_fraction_field(self, x) elif isinstance(x, LocalizationElement): - # see :trac:`33477`. + # see :issue:`33477`. F = self.fraction_field() return from_fraction_field(self, F(x)) diff --git a/src/sage/rings/polynomial/laurent_polynomial_ring_base.py b/src/sage/rings/polynomial/laurent_polynomial_ring_base.py index bbb6b9e1fc9..02099805950 100644 --- a/src/sage/rings/polynomial/laurent_polynomial_ring_base.py +++ b/src/sage/rings/polynomial/laurent_polynomial_ring_base.py @@ -37,7 +37,7 @@ class LaurentPolynomialRing_generic(CommutativeRing, Parent): EXAMPLES: This base class inherits from :class:`~sage.rings.ring.CommutativeRing`. - Since :trac:`11900`, it is also initialised as such:: + Since :issue:`11900`, it is also initialised as such:: sage: R. = LaurentPolynomialRing(QQ) sage: R.category() @@ -154,7 +154,7 @@ def is_integral_domain(self, proof=True): sage: LaurentPolynomialRing(QQ, 2, 'x').is_integral_domain() True - The following used to fail; see :trac:`7530`:: + The following used to fail; see :issue:`7530`:: sage: L = LaurentPolynomialRing(ZZ, 'X') sage: L['Y'] @@ -228,7 +228,7 @@ def completion(self, p=None, prec=20, extras=None): TESTS: - Check that the precision is taken into account (:trac:`24431`):: + Check that the precision is taken into account (:issue:`24431`):: sage: L = LaurentPolynomialRing(QQ, 'x') sage: L.completion('x', 100).default_prec() @@ -274,7 +274,7 @@ def _coerce_map_from_(self, R): To: Multivariate Laurent Polynomial Ring in x, y over Rational Field Let us check that coercion between Laurent Polynomials over - different base rings works (:trac:`15345`):: + different base rings works (:issue:`15345`):: sage: R = LaurentPolynomialRing(ZZ, 'x') sage: T = LaurentPolynomialRing(QQ, 'x') @@ -382,7 +382,7 @@ def ideal(self, *args, **kwds): TESTS: - check that :trac:`26421` is fixed:: + check that :issue:`26421` is fixed:: sage: R. = LaurentPolynomialRing(ZZ) sage: P. = PolynomialRing(R) diff --git a/src/sage/rings/polynomial/multi_polynomial.pyx b/src/sage/rings/polynomial/multi_polynomial.pyx index 370e5ef3f81..65290e9e2d7 100644 --- a/src/sage/rings/polynomial/multi_polynomial.pyx +++ b/src/sage/rings/polynomial/multi_polynomial.pyx @@ -465,7 +465,7 @@ cdef class MPolynomial(CommutativePolynomial): sage: R(S.0) p - See :trac:`2601`:: + See :issue:`2601`:: sage: R. = PolynomialRing(QQ, 3) sage: a._mpoly_dict_recursive(('c', 'b', 'a')) @@ -562,7 +562,7 @@ cdef class MPolynomial(CommutativePolynomial): TESTS: - Verify that :trac:`16251` has been resolved, i.e., polynomials with + Verify that :issue:`16251` has been resolved, i.e., polynomials with unhashable coefficients are unhashable:: sage: K. = Qq(9) # needs sage.rings.padics @@ -1253,7 +1253,7 @@ cdef class MPolynomial(CommutativePolynomial): TESTS: - Since :trac:`10771`, the gcd in QQ restricts to the gcd in ZZ:: + Since :issue:`10771`, the gcd in QQ restricts to the gcd in ZZ:: sage: R. = QQ[] sage: f = 4*x+6*y @@ -1589,7 +1589,7 @@ cdef class MPolynomial(CommutativePolynomial): TESTS: - Test polynomials over QQbar (:trac:`25265`):: + Test polynomials over QQbar (:issue:`25265`):: sage: # needs sage.rings.number_field sage: R. = QQbar[] @@ -1831,7 +1831,7 @@ cdef class MPolynomial(CommutativePolynomial): 1.00000000000000 Check that the denominator is an element over the base whenever the base - has no denominator function. This closes :trac:`9063`:: + has no denominator function. This closes :issue:`9063`:: sage: R. = GF(5)[] sage: x = R(0) @@ -2595,7 +2595,7 @@ cdef class MPolynomial(CommutativePolynomial): sage: R(2).is_unit() True - Check that :trac:`22454` is fixed:: + Check that :issue:`22454` is fixed:: sage: _. = Zmod(4)[] sage: (1 + 2*x).is_unit() diff --git a/src/sage/rings/polynomial/multi_polynomial_element.py b/src/sage/rings/polynomial/multi_polynomial_element.py index 4522e8e0a84..57ec623e5d2 100644 --- a/src/sage/rings/polynomial/multi_polynomial_element.py +++ b/src/sage/rings/polynomial/multi_polynomial_element.py @@ -88,7 +88,7 @@ class MPolynomial_element(MPolynomial): zeros. In all arithmetic operations on :class:`MPolynomial_element` there is an additional call to the method ``remove_zeros`` to clear them. This is not ideal because of the presence of inexact zeros, see - :trac:`35174`. + :issue:`35174`. """ def __init__(self, parent, x): """ @@ -149,7 +149,7 @@ def __call__(self, *x, **kwds): TESTS: - Check :trac:`27446`:: + Check :issue:`27446`:: sage: P = PolynomialRing(QQ, 't', 0) sage: a = P(1) @@ -392,7 +392,7 @@ def _div_(self, right): TESTS: - Ensure that :trac:`13704` is fixed.:: + Ensure that :issue:`13704` is fixed.:: sage: R. = PolynomialRing(QQ) sage: S. = PolynomialRing(R) @@ -621,7 +621,7 @@ def degree(self, x=None, std_grading=False): for example if it is a generator of a polynomial algebra which maps naturally to this one, then it is converted to an element of this algebra. (This fixes the problem reported in - :trac:`17366`.) + :issue:`17366`.) :: @@ -663,7 +663,7 @@ def degree(self, x=None, std_grading=False): sage: R(0).degree() -1 - Degree of zero polynomial for other implementation :trac:`20048` :: + Degree of zero polynomial for other implementation :issue:`20048` :: sage: R. = GF(3037000453)[] # needs sage.rings.finite_rings sage: R.zero().degree(x) @@ -1610,7 +1610,7 @@ def variables(self): TESTS: - This shows that the issue at :trac:`7077` is fixed:: + This shows that the issue at :issue:`7077` is fixed:: sage: x,y,z=polygens(QQ,'x,y,z') sage: (x^2).variables() @@ -1956,7 +1956,7 @@ def integral(self, var=None): ... ValueError: must specify which variable to integrate with respect to - :trac:`34000`:: + :issue:`34000`:: sage: R = ZZ['x']['y,z'] sage: y, z = R.gens() @@ -2009,7 +2009,7 @@ def factor(self, proof=None): TESTS: - Check if we can handle polynomials with no variables, see :trac:`7950`:: + Check if we can handle polynomials with no variables, see :issue:`7950`:: sage: P = PolynomialRing(ZZ,0,'') sage: res = P(10).factor(); res @@ -2026,13 +2026,13 @@ def factor(self, proof=None): ... ArithmeticError: factorization of 0 is not defined - Check if we can factor a constant polynomial, see :trac:`8207`:: + Check if we can factor a constant polynomial, see :issue:`8207`:: sage: R. = CC[] # needs sage.rings.real_mpfr sage: R(1).factor() # needs sage.rings.real_mpfr 1.00000000000000 - Check that we prohibit too large moduli, :trac:`11829`:: + Check that we prohibit too large moduli, :issue:`11829`:: sage: R. = GF(previous_prime(2^31))[] # needs sage.rings.finite_rings sage: factor(x + y + 1) # needs sage.rings.finite_rings @@ -2041,7 +2041,7 @@ def factor(self, proof=None): NotImplementedError: Factorization of multivariate polynomials over prime fields with characteristic > 2^29 is not implemented. - Check that we can factor over the algebraic field (:trac:`25390`):: + Check that we can factor over the algebraic field (:issue:`25390`):: sage: # needs sage.libs.singular sage.rings.number_field sage: R. = PolynomialRing(QQbar) @@ -2065,7 +2065,7 @@ def factor(self, proof=None): ... TypeError: no conversion of this ring to a Singular ring defined - We check that the original issue in :trac:`7554` is fixed:: + We check that the original issue in :issue:`7554` is fixed:: sage: K. = PolynomialRing(QQ) sage: R. = PolynomialRing(FractionField(K)) @@ -2182,7 +2182,7 @@ def lift(self,I): TESTS: - Check that this method works over ``QQbar`` (:trac:`25351`):: + Check that this method works over ``QQbar`` (:issue:`25351`):: sage: # needs sage.rings.number_field sage: A. = QQbar[] @@ -2230,7 +2230,7 @@ def quo_rem(self, right): TESTS: - Check that this method works over ``QQbar`` (:trac:`25351`):: + Check that this method works over ``QQbar`` (:issue:`25351`):: sage: R. = QQbar[] # needs sage.rings.number_field sage: f = y*x^2 + x + 1 # needs sage.rings.number_field @@ -2292,13 +2292,13 @@ def resultant(self, other, variable=None): sage: a.resultant(b, y) # needs sage.libs.singular 2*x^3 - Check that :trac:`15061` is fixed:: + Check that :issue:`15061` is fixed:: sage: R. = AA[] # needs sage.rings.number_field sage: (x^2 + 1).resultant(x^2 - y) # needs sage.libs.singular sage.rings.number_field y^2 + 2*y + 1 - Test for :trac:`2693`:: + Test for :issue:`2693`:: sage: R. = RR[] sage: p = x + y @@ -2306,7 +2306,7 @@ def resultant(self, other, variable=None): sage: p.resultant(q) # needs sage.libs.singular sage.modules -y^2 - Check that this method works over QQbar (:trac:`25351`):: + Check that this method works over QQbar (:issue:`25351`):: sage: # needs sage.rings.number_field sage: P. = QQbar[] @@ -2406,7 +2406,7 @@ def reduce(self, I): sage: f = y13*y15 + y9 - y12; f.reduce(J) y13*y15 - 2*y12 - Make sure the remainder returns the correct type, fixing :trac:`13903`:: + Make sure the remainder returns the correct type, fixing :issue:`13903`:: sage: R. = PolynomialRing(Qp(5), 2, order='lex') # needs sage.rings.padics sage: G = [y1^2 + y2^2, y1*y2 + y2^2, y2^3] # needs sage.rings.padics @@ -2415,7 +2415,7 @@ def reduce(self, I): TESTS: - Verify that :trac:`34105` is fixed:: + Verify that :issue:`34105` is fixed:: sage: R. = AA[] # needs sage.rings.number_field sage: x.reduce(R.zero_ideal()) # needs sage.rings.number_field diff --git a/src/sage/rings/polynomial/multi_polynomial_ideal.py b/src/sage/rings/polynomial/multi_polynomial_ideal.py index 8f10f30add7..080c8461eda 100644 --- a/src/sage/rings/polynomial/multi_polynomial_ideal.py +++ b/src/sage/rings/polynomial/multi_polynomial_ideal.py @@ -520,7 +520,7 @@ def _groebner_basis_libsingular(self, algorithm="groebner", *args, **kwds): TESTS: - We check that :trac:`17676` is fixed:: + We check that :issue:`17676` is fixed:: sage: R. = PolynomialRing(ZZ, 3, order='lex') sage: I = Ideal(13*x*y*z+6*x*y+78*x*z+36*x-11*y^2*z-66*y*z, @@ -811,7 +811,7 @@ def complete_primary_decomposition(self, algorithm="sy"): TESTS: - Check that :trac:`15745` is fixed:: + Check that :issue:`15745` is fixed:: sage: R.= QQ[] sage: I = Ideal(R(1)) @@ -1003,7 +1003,7 @@ def is_prime(self, **kwds): sage: (I * J).is_prime() False - The following is :trac:`5982`. Note that the quotient ring + The following is :issue:`5982`. Note that the quotient ring is not recognized as being a field at this time, so the fraction field is not the quotient ring itself:: @@ -1109,7 +1109,7 @@ def triangular_decomposition(self, algorithm=None, singular=singular_default): sage: J.triangular_decomposition() [Ideal (y^2 - 1, x^2 - 1) of Multivariate Polynomial Ring in x, y over Rational Field] - Check that this method works over QQbar (:trac:`25351`):: + Check that this method works over QQbar (:issue:`25351`):: sage: R. = QQbar[] # needs sage.rings.number_field sage: J = Ideal(x^2 + y^2 - 2, y^2 - 1) # needs sage.rings.number_field @@ -1209,7 +1209,7 @@ def dimension(self, singular=singular_default): TESTS: - Check that this method works over QQbar (:trac:`25351`):: + Check that this method works over QQbar (:issue:`25351`):: sage: P. = QQbar[] # needs sage.rings.number_field sage: I = ideal(x^2-y, x^3-QQbar(-1)) # needs sage.rings.number_field @@ -1310,7 +1310,7 @@ def vector_space_dimension(self): sage: I.vector_space_dimension() +Infinity - Due to integer overflow, the result is correct only modulo ``2^32``, see :trac:`8586`:: + Due to integer overflow, the result is correct only modulo ``2^32``, see :issue:`8586`:: sage: P. = PolynomialRing(GF(32003), 3) # needs sage.rings.finite_rings sage: sage.rings.ideal.FieldIdeal(P).vector_space_dimension() # known bug, needs sage.rings.finite_rings @@ -1318,7 +1318,7 @@ def vector_space_dimension(self): TESTS: - Check that this method works over QQbar (:trac:`25351`):: + Check that this method works over QQbar (:issue:`25351`):: sage: # needs sage.rings.number_field sage: P. = QQbar[] @@ -1609,7 +1609,7 @@ def genus(self): sage: TJ.genus() -1 - Check that this method works over QQbar (:trac:`25351`):: + Check that this method works over QQbar (:issue:`25351`):: sage: P. = QQbar[] # needs sage.rings.number_field sage: I = ideal(y^3*z + x^3*y + x*z^3) # needs sage.rings.number_field @@ -1670,7 +1670,7 @@ def intersection(self, *others): TESTS: - Check that this method works over QQbar (:trac:`25351`):: + Check that this method works over QQbar (:issue:`25351`):: sage: # needs sage.rings.number_field sage: R. = QQbar[] @@ -1845,7 +1845,7 @@ def syzygy_module(self): TESTS: - Check that this method works over QQbar (:trac:`25351`):: + Check that this method works over QQbar (:issue:`25351`):: sage: # needs sage.rings.number_field sage: R. = QQbar[] @@ -2002,7 +2002,7 @@ def interreduced_basis(self): TESTS: - Check that this method works over QQbar (:trac:`25351`):: + Check that this method works over QQbar (:issue:`25351`):: sage: R. = QQbar[] # needs sage.rings.number_field sage: I = Ideal([z*x + y^3, z + y^3, z + x*y]) # needs sage.rings.number_field @@ -2107,7 +2107,7 @@ def basis_is_groebner(self, singular=singular_default): TESTS: - Check that this method works over QQbar (:trac:`25351`):: + Check that this method works over QQbar (:issue:`25351`):: sage: # needs sage.rings.number_field sage: R. = QQbar[] @@ -2217,7 +2217,7 @@ def transformed_basis(self, algorithm="gwalk", other_ring=None, singular=singula TESTS: - Check that this method works over QQbar (:trac:`25351`). We are not currently + Check that this method works over QQbar (:issue:`25351`). We are not currently able to specify other_ring, due to the limitations of @handle_AA_and_QQbar:: sage: # needs sage.rings.number_field @@ -2311,7 +2311,7 @@ def elimination_ideal(self, variables, algorithm=None, *args, **kwds): TESTS: - Check that this method works over QQbar (:trac:`25351`):: + Check that this method works over QQbar (:issue:`25351`):: sage: # needs sage.rings.number_field sage: R. = QQbar[] @@ -2324,7 +2324,7 @@ def elimination_ideal(self, variables, algorithm=None, *args, **kwds): True Check that the passed variables are actually variables of the ring - (:trac:`31414`):: + (:issue:`31414`):: sage: R. = QQ[] sage: I = R.ideal(x-y, z) @@ -2403,7 +2403,7 @@ def quotient(self, J): TESTS: - This example checks :trac:`16301`:: + This example checks :issue:`16301`:: sage: R. = ZZ[] sage: I = Ideal(R(2), x*y, x*z + x) @@ -2411,7 +2411,7 @@ def quotient(self, J): sage: I.quotient(eD).gens() [2, x*z + x, x*y] - Check that this method works over QQbar (:trac:`25351`):: + Check that this method works over QQbar (:issue:`25351`):: sage: # needs sage.rings.number_field sage: R. = QQbar[] @@ -2420,7 +2420,7 @@ def quotient(self, J): sage: I.quotient(J) Ideal (z, x) of Multivariate Polynomial Ring in x, y, z over Algebraic Field - Check that :trac:`12803` is fixed:: + Check that :issue:`12803` is fixed:: sage: R. = ZZ[] sage: J = ideal(4*xv^3 + 3*xv^2, 3*xe*xv^2 + xe - 2*xv) @@ -2466,7 +2466,7 @@ def saturation(self, other): TESTS: - Check that this method works over QQbar (:trac:`25351`):: + Check that this method works over QQbar (:issue:`25351`):: sage: # needs sage.rings.number_field sage: R. = QQbar[] @@ -2748,7 +2748,7 @@ def _variety_triangular_decomposition(self, ring): '101110100110000110001000100110', '101110100110000110001000101110'] - Check that the issue at :trac:`7425` is fixed:: + Check that the issue at :issue:`7425` is fixed:: sage: R. = QQ[] sage: I = R.ideal([x^2-y^3*z, x+y*z]) @@ -2759,7 +2759,7 @@ def _variety_triangular_decomposition(self, ring): ... ValueError: The dimension of the ideal is 1, but it should be 0 - Check that the issue at :trac:`7425` is fixed:: + Check that the issue at :issue:`7425` is fixed:: sage: S. = PolynomialRing(QQ) sage: F. = QQ.extension(t^4 + 1) @@ -2768,21 +2768,21 @@ def _variety_triangular_decomposition(self, ring): sage: I.variety() [...{y: -q^3, x: 0}...] - Check that computing the variety of the ``[1]`` ideal is allowed (:trac:`13977`):: + Check that computing the variety of the ``[1]`` ideal is allowed (:issue:`13977`):: sage: R. = QQ[] sage: I = R.ideal(1) sage: I.variety() [] - Check that the issue at :trac:`16485` is fixed:: + Check that the issue at :issue:`16485` is fixed:: sage: R. = PolynomialRing(QQ, order='lex') sage: I = R.ideal(c^2 - 2, b - c, a) sage: I.variety(QQbar) # needs sage.rings.number_field [...a: 0...] - An early version of :trac:`25351` broke this method by adding the + An early version of :issue:`25351` broke this method by adding the @handle_AA_and_QQbar decorator to it. To check for this bug, verify that this circle and this hyperbola have two real intersections and two more complex ones:: @@ -2913,7 +2913,7 @@ def hilbert_polynomial(self, algorithm='sage'): Because Singular uses 32-bit integers, the above example would fail with Singular. We don't test it here, as it has a side-effect on - other tests that is not understood yet (see :trac:`26300`):: + other tests that is not understood yet (see :issue:`26300`):: sage: Minors.hilbert_polynomial(algorithm='singular') # not tested Traceback (most recent call last): @@ -2934,7 +2934,7 @@ def hilbert_polynomial(self, algorithm='sage'): TESTS: - Check that :trac:`27483` and :trac:`28110` are fixed:: + Check that :issue:`27483` and :issue:`28110` are fixed:: sage: P. = PolynomialRing(QQ) sage: I = Ideal([x^3, x*y^2, y^4, x^2*y*z, y^3*z, x^2*z^2, x*y*z^2, x*z^3]) @@ -2943,14 +2943,14 @@ def hilbert_polynomial(self, algorithm='sage'): sage: I.hilbert_polynomial() # needs sage.libs.flint 3 - Check that this method works over ``QQbar`` (:trac:`25351`):: + Check that this method works over ``QQbar`` (:issue:`25351`):: sage: P. = QQbar[] # needs sage.rings.number_field sage: I = Ideal([x^3*y^2 + 3*x^2*y^2*z + y^3*z^2 + z^5]) # needs sage.rings.number_field sage: I.hilbert_polynomial() # needs sage.rings.number_field 5*t - 5 - Check for :trac:`33597`:: + Check for :issue:`33597`:: sage: R. = QQ[] sage: I = R.ideal([X^2*Y^3, X*Z]) @@ -3055,7 +3055,7 @@ def hilbert_series(self, grading=None, algorithm='sage'): ... TypeError: grading must be a list or a tuple of integers - Check that this method works over QQbar (:trac:`25351`):: + Check that this method works over QQbar (:issue:`25351`):: sage: P. = QQbar[] # needs sage.rings.number_field sage: I = Ideal([x^3*y^2 + 3*x^2*y^2*z + y^3*z^2 + z^5]) # needs sage.rings.number_field @@ -3135,7 +3135,7 @@ def hilbert_numerator(self, grading=None, algorithm='sage'): sage: J.hilbert_numerator(grading=(10,3)) == J.hilbert_numerator(grading=(10,3), algorithm='singular') # needs sage.libs.flint True - Check that this method works over QQbar (:trac:`25351`):: + Check that this method works over QQbar (:issue:`25351`):: sage: P. = QQbar[] # needs sage.rings.number_field sage: I = Ideal([x^3*y^2 + 3*x^2*y^2*z + y^3*z^2 + z^5]) # needs sage.rings.number_field @@ -3154,7 +3154,7 @@ def hilbert_numerator(self, grading=None, algorithm='sage'): overflow at t^22 Our two algorithms should always agree; not tested until - :trac:`33178` is fixed:: + :issue:`33178` is fixed:: sage: # not tested sage: m = ZZ.random_element(2,8) @@ -3240,7 +3240,7 @@ def _normal_basis_libsingular(self, degree, weights=None): sage: I._normal_basis_libsingular(5) [] - Check what happens with weights but no degree (:trac:`34789`):: + Check what happens with weights but no degree (:issue:`34789`):: sage: TO = TermOrder('wdegrevlex', (2,)) sage: R = PolynomialRing(QQ, 1, ['k'], order=TO) @@ -3321,7 +3321,7 @@ def normal_basis(self, degree=None, algorithm='libsingular', TESTS: - Check that this method works over QQbar (:trac:`25351`):: + Check that this method works over QQbar (:issue:`25351`):: sage: # needs sage.rings.number_field sage: R. = QQbar[] @@ -4043,7 +4043,7 @@ def __richcmp__(self, other, op): 'gens': Pickle of the cached method "gens", 'groebner_basis': Pickle of the cached method "groebner_basis"}) - This example checks :trac:`12802`:: + This example checks :issue:`12802`:: sage: R. = ZZ[] sage: I = R * [ x^2 + y, 2*y ] @@ -4051,7 +4051,7 @@ def __richcmp__(self, other, op): sage: I == J True - Another good test from the discussion in :trac:`12802`:: + Another good test from the discussion in :issue:`12802`:: sage: Rx = PolynomialRing(QQ, 2, "x") sage: Ix = Rx.ideal(Rx.0) @@ -4355,7 +4355,7 @@ def groebner_basis(self, algorithm='', deg_bound=None, mult_bound=None, prot=Fal Although Giac does support lexicographical ordering, we use degree reverse lexicographical ordering here, in order to test against - :trac:`21884`:: + :issue:`21884`:: sage: I = sage.rings.ideal.Katsura(P,3) # regenerate to prevent caching sage: J = I.change_ring(P.change_ring(order='degrevlex')) @@ -4550,7 +4550,7 @@ def groebner_basis(self, algorithm='', deg_bound=None, mult_bound=None, prot=Fal True In cases where a characteristic cannot be determined, we use a toy implementation of Buchberger's algorithm - (see :trac:`6581`):: + (see :issue:`6581`):: sage: R. = QQ[]; I = R.ideal(a^2+b^2-1) sage: Q = QuotientRing(R,I); K = Frac(Q) @@ -4566,7 +4566,7 @@ def groebner_basis(self, algorithm='', deg_bound=None, mult_bound=None, prot=Fal TESTS: - Check :trac:`27445`:: + Check :issue:`27445`:: sage: P = PolynomialRing(QQ, 't', 0) sage: P.ideal([P(2)]).groebner_basis() @@ -4598,7 +4598,7 @@ def groebner_basis(self, algorithm='', deg_bound=None, mult_bound=None, prot=Fal sage: P.ideal([P(3)]).groebner_basis() [1] - Check that this method works over QQbar (:trac:`25351`):: + Check that this method works over QQbar (:issue:`25351`):: sage: # needs sage.rings.number_field sage: P. = PolynomialRing(QQbar, 3, order='lex') @@ -5649,7 +5649,7 @@ def reduce(self, f): gb = self.groebner_basis() # In quotient rings, gb is not a Gröbner basis of self, but gb0 is # a (possibly non-reduced) Gröbner basis of the preimage of self in - # the cover ring (see :trac:`33217`). We only use Gröbner bases of + # the cover ring (see :issue:`33217`). We only use Gröbner bases of # pre-existing ideals to potentially take advantage of caching. gb0 = Q.defining_ideal().groebner_basis() + [g.lift() for g in gb] f0 = f.lift().reduce(gb0) diff --git a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx index 70386eb0b50..ec4aca5733c 100644 --- a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx +++ b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx @@ -115,7 +115,7 @@ TESTS:: sage: p(u/v) (u + v)/v -Check if :trac:`6160` is fixed:: +Check if :issue:`6160` is fixed:: sage: x = polygen(ZZ, 'x') sage: K. = NumberField(x - 1728) # needs sage.rings.number_field @@ -349,7 +349,7 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): TESTS: Make sure that a faster coercion map from the base ring is used; - see :trac:`9944`:: + see :issue:`9944`:: sage: R. = PolynomialRing(ZZ) sage: R.coerce_map_from(R.base_ring()) @@ -581,13 +581,13 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): sage: P("31367566080") 31367566080 - Check if :trac:`7582` is fixed:: + Check if :issue:`7582` is fixed:: sage: R. = PolynomialRing(CyclotomicField(2), 3) # needs sage.rings.number_field sage: R.coerce(1) # needs sage.rings.number_field 1 - Check if :trac:`6160` is fixed:: + Check if :issue:`6160` is fixed:: sage: x = polygen(ZZ, 'x') sage: K. = NumberField(x - 1728) # needs sage.rings.number_field @@ -596,7 +596,7 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): 1 Check if coercion from zero variable polynomial rings work - (:trac:`7951`):: + (:issue:`7951`):: sage: P = PolynomialRing(QQ,0,'') sage: R. = QQ[] @@ -731,7 +731,7 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): sage: S(5*x*y + x + 17*y) xx + 2*yy - See :trac:`5292`:: + See :issue:`5292`:: sage: R. = QQ[]; S. = QQ[]; F = FractionField(S) sage: x in S @@ -739,14 +739,14 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): sage: x in F False - Check if :trac:`8228` is fixed:: + Check if :issue:`8228` is fixed:: sage: P. = Zmod(10)[]; P(0) 0 sage: P. = Zmod(2^10)[]; P(0) 0 - And :trac:`7597` is fixed if this does not segfault:: + And :issue:`7597` is fixed if this does not segfault:: sage: F2 = GF(2) sage: F. = GF(2^8) # needs sage.rings.finite_rings @@ -758,13 +758,13 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): sage: P(a,b) a - Check that :trac:`15746` is fixed:: + Check that :issue:`15746` is fixed:: sage: R. = GF(7)[] sage: R(2^31) 2 - Check that :trac:`17964` is fixed:: + Check that :issue:`17964` is fixed:: sage: # needs sage.rings.number_field sage: K. = QuadraticField(17) @@ -2041,7 +2041,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: f(5,3,10) 4580 - See :trac:`8502`:: + See :issue:`8502`:: sage: # needs sage.rings.number_field sage: x = polygen(QQ) @@ -2060,7 +2060,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: a.parent() is QQ True - See :trac:`33373`:: + See :issue:`33373`:: sage: # needs sage.rings.finite_rings sage: k. = GF(2^4) @@ -2338,7 +2338,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): ... ZeroDivisionError: rational division by zero - Ensure that :trac:`17638` is fixed:: + Ensure that :issue:`17638` is fixed:: sage: R. = PolynomialRing(QQ, order="neglex") sage: f = 1 + y @@ -2394,7 +2394,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): OverflowError: Python int too large to convert to C unsigned long # 32-bit OverflowError: exponent overflow (...) # 64-bit - Test fractional powers (:trac:`22329`):: + Test fractional powers (:issue:`22329`):: sage: P. = ZZ[] sage: (R^3 + 6*R^2*S + 12*R*S^2 + 8*S^3)^(1/3) @@ -2614,7 +2614,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: P(1).degree(x) 0 - The following example is inspired by :trac:`11652`:: + The following example is inspired by :issue:`11652`:: sage: R. = ZZ[] sage: poly = p + q^2 + t^3 @@ -3491,7 +3491,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): overflow Check that there is no more segmentation fault if the polynomial gets 0 - in the middle of a substitution (:trac:`17785`):: + in the middle of a substitution (:issue:`17785`):: sage: R. = QQ[] sage: for vx in [0,x,y,z]: @@ -3657,13 +3657,13 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: f.monomials() [x] - Check if :trac:`12706` is fixed:: + Check if :issue:`12706` is fixed:: sage: f = P(0) sage: f.monomials() [] - Check if :trac:`7152` is fixed:: + Check if :issue:`7152` is fixed:: sage: x = polygen(ZZ, 'x') sage: K. = NumberField(x**2 + 1) @@ -4206,7 +4206,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: k.factor() ((s^2 + 2/3)) * (x + s*y)^2 * (x + (-s)*y)^5 * (x^2 + s*x*y + (s^2)*y^2)^5 - This shows that issue :trac:`2780` is fixed, i.e. that the unit + This shows that issue :issue:`2780` is fixed, i.e. that the unit part of the factorization is set correctly:: sage: # needs sage.rings.number_field @@ -4258,7 +4258,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): NotImplementedError: Factorization of multivariate polynomials over prime fields with characteristic > 2^29 is not implemented. - Factorization over the integers is now supported, see :trac:`17840`:: + Factorization over the integers is now supported, see :issue:`17840`:: sage: P. = PolynomialRing(ZZ) sage: f = 12 * (3*x*y + 4) * (5*x - 2) * (2*y + 7)^2 @@ -4282,14 +4282,14 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): TESTS: - This shows that :trac:`10270` is fixed:: + This shows that :issue:`10270` is fixed:: sage: R. = GF(3)[] sage: f = x^2*z^2+x*y*z-y^2 sage: f.factor() x^2*z^2 + x*y*z - y^2 - This checks that :trac:`11838` is fixed:: + This checks that :issue:`11838` is fixed:: sage: # needs sage.rings.finite_rings sage: K = GF(4,'a') @@ -4302,7 +4302,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): x * y^3 * (y^8 + a*y^7 + (a + 1)*x) * (x^7*y^3 + x*y^9 + a*x^8 + a*y^4) We test several examples which were known to return wrong - results in the past (see :trac:`10902`):: + results in the past (see :issue:`10902`):: sage: R. = GF(2)[] sage: p = x^3*y^7 + x^2*y^6 + x^2*y^3 @@ -4355,7 +4355,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): 0 The following examples used to give a Segmentation Fault, see - :trac:`12918` and :trac:`13129`:: + :issue:`12918` and :issue:`13129`:: sage: R. = GF(2)[] sage: f = x^6 + x^5 + y^5 + y^4 @@ -4365,7 +4365,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: f.factor() x^16*y + x^10*y + x^9*y + x^6*y + x^5 + x*y + y^2 - Test :trac:`12928`:: + Test :issue:`12928`:: sage: R. = GF(2)[] sage: p = x^2 + y^2 + x + 1 @@ -4373,7 +4373,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: factor(p*q) (x^2 + y^2 + x + 1) * (x^4 + x^2*y^2 + y^4 + x*y^2 + x^2 + y^2 + 1) - Check that :trac:`13770` is fixed:: + Check that :issue:`13770` is fixed:: sage: U. = GF(2)[] sage: f = y*t^8 + y^5*t^2 + y*t^6 + t^7 + y^6 + y^5*t + y^2*t^4 + y^2*t^2 + y^2*t + t^3 + y^2 + t^2 @@ -4382,7 +4382,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): True The following used to sometimes take a very long time or get - stuck, see :trac:`12846`. These 100 iterations should take less + stuck, see :issue:`12846`. These 100 iterations should take less than 1 second:: sage: # needs sage.rings.finite_rings @@ -4392,7 +4392,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: for i in range(100): ....: assert len(f.factor()) == 4 - Test for :trac:`20435`:: + Test for :issue:`20435`:: sage: x,y = polygen(ZZ,'x,y') sage: p = x**2 - y**2 @@ -4401,14 +4401,14 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: z[0][0].parent() Multivariate Polynomial Ring in x, y over Integer Ring - Test for :trac:`17680`:: + Test for :issue:`17680`:: sage: R. = QQ[] sage: f = 248301045*a^2*r^10*n^2*o^10+570807000*a^2*r^9*n*o^9-137945025*a^2*r^8*n^2*o^8+328050000*a^2*r^8*o^8-253692000*a^2*r^7*n*o^7+30654450*a^2*r^6*n^2*o^6-109350000*a^2*r^6*o^6+42282000*a^2*r^5*n*o^5-3406050*a^2*r^4*n^2*o^4-22457088*a*r^2*v*n^2*o^6+12150000*a^2*r^4*o^4-3132000*a^2*r^3*n*o^3+189225*a^2*r^2*n^2*o^2+2495232*a*v*n^2*o^4-450000*a^2*r^2*o^2+87000*a^2*r*n*o-4205*a^2*n^2 sage: len(factor(f)) 4 - Test for :trac:`17251`:: + Test for :issue:`17251`:: sage: R. = PolynomialRing(QQ) sage: N = -a^4*z^8 + 2*a^2*b^2*z^8 - b^4*z^8 - 16*a^3*b*z^7 + 16*a*b^3*z^7 + 28*a^4*z^6 - 56*a^2*b^2*z^6 + 28*b^4*z^6 + 112*a^3*b*z^5 - 112*a*b^3*z^5 - 70*a^4*z^4 + 140*a^2*b^2*z^4 - 70*b^4*z^4 - 112*a^3*b*z^3 + 112*a*b^3*z^3 + 28*a^4*z^2 - 56*a^2*b^2*z^2 + 28*b^4*z^2 + 16*a^3*b*z - 16*a*b^3*z - a^4 + 2*a^2*b^2 - b^4 @@ -4480,7 +4480,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: sum( map( mul , zip( M, I.gens() ) ) ) == f True - Check that :trac:`13671` is fixed:: + Check that :issue:`13671` is fixed:: sage: R. = QQ[] sage: I = R.ideal(x2**2 + x1 - 2, x1**2 - 1) @@ -4513,7 +4513,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): TESTS: - Check that :trac:`13714` is fixed:: + Check that :issue:`13714` is fixed:: sage: R. = QQ[] sage: I = R.ideal(x2**2 + x1 - 2, x1**2 - 1) @@ -5114,7 +5114,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): TESTS: Check that constant polynomials are coerced to the polynomial ring, not - the base ring (:trac:`28574`):: + the base ring (:issue:`28574`):: sage: R = QQ['x,y'] sage: macaulay2(R('4')).ring()._operator('===', R) # optional - macaulay2 @@ -5190,7 +5190,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): TESTS: - Verify that :trac:`9220` is fixed. + Verify that :issue:`9220` is fixed. sage: R=QQ['x'] sage: S=QQ['x','y'] @@ -5317,7 +5317,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: f.integral(y) x^3*y^3 + 5/3*y^3 + 3*x*y + 2*y - Check that :trac:`15896` is solved:: + Check that :issue:`15896` is solved:: sage: s = x+y sage: s.integral(x)+x @@ -5747,7 +5747,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: f.numerator() / f.denominator() == f True - The following tests against a bug fixed in :trac:`11780`:: + The following tests against a bug fixed in :issue:`11780`:: sage: P. = ZZ[] sage: Q. = QQ[] diff --git a/src/sage/rings/polynomial/multi_polynomial_ring.py b/src/sage/rings/polynomial/multi_polynomial_ring.py index f61d3103fa8..daed8502cdf 100644 --- a/src/sage/rings/polynomial/multi_polynomial_ring.py +++ b/src/sage/rings/polynomial/multi_polynomial_ring.py @@ -356,7 +356,7 @@ def __call__(self, x=0, check=True): TESTS: - Check if we still allow nonsense (see :trac:`7951`):: + Check if we still allow nonsense (see :issue:`7951`):: sage: P = PolynomialRing(QQ, 0, '') sage: P('pi') @@ -365,7 +365,7 @@ def __call__(self, x=0, check=True): TypeError: unable to convert pi to a rational Check that it is possible to convert strings to iterated - polynomial rings (see :trac:`13327`):: + polynomial rings (see :issue:`13327`):: sage: Rm = QQ["a"]["b, c"] sage: Rm("a*b") @@ -374,7 +374,7 @@ def __call__(self, x=0, check=True): True Check that conversion from PARI works correctly (see - :trac:`17974`):: + :issue:`17974`):: sage: A. = PolynomialRing(QQ) sage: B. = PolynomialRing(A) @@ -403,7 +403,7 @@ def __call__(self, x=0, check=True): sage: f.sage(locals={'a': a, 'd': d}) a*d - Check that :trac:`21999` is fixed:: + Check that :issue:`21999` is fixed:: sage: R = QQbar['s,t'] # needs sage.rings.number_field sage: type(R({(1,2): 3}).coefficients()[0]) diff --git a/src/sage/rings/polynomial/multi_polynomial_ring_base.pyx b/src/sage/rings/polynomial/multi_polynomial_ring_base.pyx index c102c1af41b..ba2ac0daef4 100644 --- a/src/sage/rings/polynomial/multi_polynomial_ring_base.pyx +++ b/src/sage/rings/polynomial/multi_polynomial_ring_base.pyx @@ -56,7 +56,7 @@ cdef class MPolynomialRing_base(CommutativeRing): TESTS: - Check that containment works correctly (:trac:`10355`):: + Check that containment works correctly (:issue:`10355`):: sage: A1. = PolynomialRing(QQ) sage: A2. = PolynomialRing(QQ) @@ -65,7 +65,7 @@ cdef class MPolynomialRing_base(CommutativeRing): sage: A1(a) in A2 True - Check that :trac:`26958` is fixed:: + Check that :issue:`26958` is fixed:: sage: from sage.rings.polynomial.multi_polynomial_libsingular import MPolynomialRing_libsingular # needs sage.libs.singular sage: class Foo(MPolynomialRing_libsingular): # needs sage.libs.singular @@ -1224,7 +1224,7 @@ cdef class MPolynomialRing_base(CommutativeRing): TESTS: Random ring elements should live in the ring. We check the degree- - zero case for :trac:`28855`, but the same should hold generally:: + zero case for :issue:`28855`, but the same should hold generally:: sage: R = PolynomialRing(QQ, 'X,Y') sage: R.random_element(degree=0).parent() == R diff --git a/src/sage/rings/polynomial/multi_polynomial_sequence.py b/src/sage/rings/polynomial/multi_polynomial_sequence.py index 9519b2d0c90..e9476061b57 100644 --- a/src/sage/rings/polynomial/multi_polynomial_sequence.py +++ b/src/sage/rings/polynomial/multi_polynomial_sequence.py @@ -31,7 +31,7 @@ pair and study it:: sage: set_random_seed(1) - sage: while True: # workaround (see :trac:`31891`) # needs sage.rings.polynomial.pbori + sage: while True: # workaround (see :issue:`31891`) # needs sage.rings.polynomial.pbori ....: try: ....: F, s = sr.polynomial_system() ....: break @@ -122,7 +122,7 @@ easily:: sage: sr = mq.SR(1,1,1,4, gf2=True, polybori=True, order='lex') # needs sage.rings.polynomial.pbori - sage: while True: # workaround (see :trac:`31891`) # needs sage.rings.polynomial.pbori + sage: while True: # workaround (see :issue:`31891`) # needs sage.rings.polynomial.pbori ....: try: ....: F, s = sr.polynomial_system() ....: break @@ -272,7 +272,7 @@ def PolynomialSequence(arg1, arg2=None, immutable=False, cr=False, cr_str=None): TESTS: A PolynomialSequence can exist with elements in an infinite field of - characteristic 2 (see :trac:`19452`):: + characteristic 2 (see :issue:`19452`):: sage: from sage.rings.polynomial.multi_polynomial_sequence import PolynomialSequence sage: F = GF(2) @@ -281,7 +281,7 @@ def PolynomialSequence(arg1, arg2=None, immutable=False, cr=False, cr_str=None): sage: PolynomialSequence([0], R) [0] - A PolynomialSequence can be created from an iterator (see :trac:`25989`):: + A PolynomialSequence can be created from an iterator (see :issue:`25989`):: sage: R. = QQ[] sage: PolynomialSequence(iter(R.gens())) @@ -543,7 +543,7 @@ def groebner_basis(self, *args, **kwargs): TESTS: Check that this method also works for boolean polynomials - (:trac:`10680`):: + (:issue:`10680`):: sage: # needs sage.rings.polynomial.pbori sage: B. = BooleanPolynomialRing() @@ -1029,7 +1029,7 @@ def connected_components(self): sage: # needs sage.rings.polynomial.pbori sage: sr = mq.SR(2, 4, 4, 8, gf2=True, polybori=True) - sage: while True: # workaround (see :trac:`31891`) + sage: while True: # workaround (see :issue:`31891`) ....: try: ....: F, s = sr.polynomial_system() ....: break @@ -1044,7 +1044,7 @@ def connected_components(self): TESTS: - Check the order of the output (:trac:`35518`):: + Check the order of the output (:issue:`35518`):: sage: R. = PolynomialRing(ZZ) sage: Sequence([x,z,y]).connected_components() @@ -1121,7 +1121,7 @@ def __reduce__(self): sage: loads(dumps(F)) == F True - We check that :trac:`26354` is fixed:: + We check that :issue:`26354` is fixed:: sage: f = P.hom([y,z,x]) sage: hash(f) == hash(loads(dumps(f))) @@ -1193,7 +1193,7 @@ def reduced(self): TESTS: - Check that :trac:`26952` is fixed:: + Check that :issue:`26952` is fixed:: sage: Qp = pAdicField(2) sage: R. = PolynomialRing(Qp, implementation="generic") # needs sage.rings.padics @@ -1349,7 +1349,7 @@ def eliminate_linear_variables(self, maxlength=Infinity, skip=None, return_reduc TESTS: - The function should really dispose of linear equations (:trac:`13968`):: + The function should really dispose of linear equations (:issue:`13968`):: sage: R. = BooleanPolynomialRing() # needs sage.rings.polynomial.pbori sage: S = Sequence([x + y + z + 1, y + z]) # needs sage.rings.polynomial.pbori @@ -1662,7 +1662,7 @@ def reduced(self): sage: # needs sage.rings.polynomial.pbori sage: sr = mq.SR(1, 1, 1, 4, gf2=True, polybori=True) - sage: while True: # workaround (see :trac:`31891`) + sage: while True: # workaround (see :issue:`31891`) ....: try: ....: F, s = sr.polynomial_system() ....: break @@ -1779,7 +1779,7 @@ def weil_restriction(self): sage: # needs sage.rings.polynomial.pbori sage: sr = mq.SR(1, 1, 1, 4, gf2=False) - sage: while True: # workaround (see :trac:`31891`) + sage: while True: # workaround (see :issue:`31891`) ....: try: ....: F, s = sr.polynomial_system() ....: break diff --git a/src/sage/rings/polynomial/ore_function_element.py b/src/sage/rings/polynomial/ore_function_element.py index a9574c6d4cb..f44dd8ad880 100644 --- a/src/sage/rings/polynomial/ore_function_element.py +++ b/src/sage/rings/polynomial/ore_function_element.py @@ -564,7 +564,7 @@ def _div_(self, other): ... ZeroDivisionError: cannot divide by zero - We check that :trac:`32109` is fixed:: + We check that :issue:`32109` is fixed:: sage: K(0)/K(0) # needs sage.rings.finite_rings Traceback (most recent call last): diff --git a/src/sage/rings/polynomial/ore_function_field.py b/src/sage/rings/polynomial/ore_function_field.py index 55889cd7646..8bb86d0dba8 100644 --- a/src/sage/rings/polynomial/ore_function_field.py +++ b/src/sage/rings/polynomial/ore_function_field.py @@ -653,7 +653,7 @@ def is_field(self, proof=False) -> bool: TESTS: - We check that :trac:`31470` is fixed:: + We check that :issue:`31470` is fixed:: sage: # needs sage.rings.finite_rings sage: k. = GF(5^3) diff --git a/src/sage/rings/polynomial/ore_polynomial_element.pyx b/src/sage/rings/polynomial/ore_polynomial_element.pyx index 2f2d109733e..86c2a057353 100644 --- a/src/sage/rings/polynomial/ore_polynomial_element.pyx +++ b/src/sage/rings/polynomial/ore_polynomial_element.pyx @@ -2736,7 +2736,7 @@ cdef class OrePolynomial_generic_dense(OrePolynomial): TESTS: - We check that :trac:`32210` is fixed:: + We check that :issue:`32210` is fixed:: sage: A. = GF(5)[] sage: S. = A['X', A.derivation()] diff --git a/src/sage/rings/polynomial/ore_polynomial_ring.py b/src/sage/rings/polynomial/ore_polynomial_ring.py index dea81c7776d..c8af00da1ad 100644 --- a/src/sage/rings/polynomial/ore_polynomial_ring.py +++ b/src/sage/rings/polynomial/ore_polynomial_ring.py @@ -1141,7 +1141,7 @@ def is_field(self, proof=False) -> bool: TESTS: - We check that :trac:`31470` is fixed:: + We check that :issue:`31470` is fixed:: sage: # needs sage.rings.finite_rings sage: k. = GF(5^3) diff --git a/src/sage/rings/polynomial/padics/polynomial_padic.py b/src/sage/rings/polynomial/padics/polynomial_padic.py index f19d6ccefa4..2e9e1f36da1 100644 --- a/src/sage/rings/polynomial/padics/polynomial_padic.py +++ b/src/sage/rings/polynomial/padics/polynomial_padic.py @@ -196,7 +196,7 @@ def factor(self): PrecisionError: p-adic factorization not well-defined since the discriminant is zero up to the requestion p-adic precision - An example of factoring a constant polynomial (see :trac:`26669`):: + An example of factoring a constant polynomial (see :issue:`26669`):: sage: R. = Qp(5)[] # needs sage.libs.ntl sage: R(2).factor() # needs sage.libs.ntl @@ -211,7 +211,7 @@ def factor(self): * ((1 + O(5^6))*w^4 + (12501 + O(5^6))*w^3 + (9376 + O(5^6))*w^2 + (6251 + O(5^6))*w + 3126 + O(5^6)) - See :trac:`4038`:: + See :issue:`4038`:: sage: # needs sage.libs.ntl sage.schemes sage: E = EllipticCurve('37a1') @@ -230,14 +230,14 @@ def factor(self): TESTS: - Check that :trac:`13293` is fixed:: + Check that :issue:`13293` is fixed:: sage: R. = Qp(3)[] # needs sage.libs.ntl sage: f = 1926*T^2 + 312*T + 387 # needs sage.libs.ntl sage: f.factor() # needs sage.libs.ntl (3^2 + 2*3^3 + 2*3^4 + 3^5 + 2*3^6 + O(3^22)) * ((1 + O(3^19))*T + 2*3^-1 + 3 + 3^2 + 2*3^5 + 2*3^6 + 2*3^7 + 3^8 + 3^9 + 2*3^11 + 3^15 + 3^17 + O(3^19)) * ((1 + O(3^20))*T + 2*3 + 3^2 + 3^3 + 3^5 + 2*3^6 + 2*3^7 + 3^8 + 3^10 + 3^11 + 2*3^12 + 2*3^14 + 2*3^15 + 2*3^17 + 2*3^18 + O(3^20)) - Check that :trac:`24065` is fixed:: + Check that :issue:`24065` is fixed:: sage: R = Zp(2, type='fixed-mod', prec=3) sage: P. = R[] diff --git a/src/sage/rings/polynomial/padics/polynomial_padic_capped_relative_dense.py b/src/sage/rings/polynomial/padics/polynomial_padic_capped_relative_dense.py index fced8551fcd..ebae8acfcff 100644 --- a/src/sage/rings/polynomial/padics/polynomial_padic_capped_relative_dense.py +++ b/src/sage/rings/polynomial/padics/polynomial_padic_capped_relative_dense.py @@ -48,13 +48,13 @@ def __init__(self, parent, x=None, check=True, is_gen=False, construct=False, ab sage: R(t + 2) (1 + O(13^7))*t + 2 + O(13^7) - Check that :trac:`13620` has been fixed:: + Check that :issue:`13620` has been fixed:: sage: f = R.zero() sage: R(f.dict()) 0 - Check that :trac:`29829` has been fixed:: + Check that :issue:`29829` has been fixed:: sage: R. = PolynomialRing(ZZ) sage: f = x + 5 @@ -376,7 +376,7 @@ def __getitem__(self, n): sage: a[:2] (13^2 + O(13^4))*t + 12*13^4 + 12*13^5 + 12*13^6 + 12*13^7 + 12*13^8 + 12*13^9 + 12*13^10 + O(13^11) - Any other kind of slicing is an error, see :trac:`18940`:: + Any other kind of slicing is an error, see :issue:`18940`:: sage: a[1:3] Traceback (most recent call last): @@ -1056,7 +1056,7 @@ def quo_rem(self, right, secure=False): TESTS: - Verify that :trac:`15188` has been resolved:: + Verify that :issue:`15188` has been resolved:: sage: R. = Qp(3)[] sage: x.quo_rem(x) diff --git a/src/sage/rings/polynomial/padics/polynomial_padic_flat.py b/src/sage/rings/polynomial/padics/polynomial_padic_flat.py index dc52258a268..6d25e6a0a5f 100644 --- a/src/sage/rings/polynomial/padics/polynomial_padic_flat.py +++ b/src/sage/rings/polynomial/padics/polynomial_padic_flat.py @@ -20,7 +20,7 @@ def __init__(self, parent, x=None, check=True, is_gen=False, construct=False, ab """ TESTS: - Check that :trac:`13620` has been fixed:: + Check that :issue:`13620` has been fixed:: sage: K = ZpFM(3) sage: R. = K[] diff --git a/src/sage/rings/polynomial/pbori/pbori.pyx b/src/sage/rings/polynomial/pbori/pbori.pyx index 751aed6ea0e..fcba80851e8 100644 --- a/src/sage/rings/polynomial/pbori/pbori.pyx +++ b/src/sage/rings/polynomial/pbori/pbori.pyx @@ -451,7 +451,7 @@ cdef class BooleanPolynomialRing(BooleanPolynomialRing_base): A boolean polynomial ring is the quotient of a polynomial ring, in a special implementation. - Before :trac:`15223`, the boolean polynomial rings returned the + Before :issue:`15223`, the boolean polynomial rings returned the construction of a polynomial ring, which was of course wrong. Now, a :class:`~sage.categories.pushout.QuotientFunctor` is returned @@ -615,7 +615,7 @@ cdef class BooleanPolynomialRing(BooleanPolynomialRing_base): names, and any polynomial ring with compatible variable names and base ring. - Before :trac:`9138`, boolean polynomial rings had + Before :issue:`9138`, boolean polynomial rings had a custom containment test, but that is not needed now since it now uses Sage's new coercion model. So, we move the tests from the old ``__contains__`` to here. @@ -648,7 +648,7 @@ cdef class BooleanPolynomialRing(BooleanPolynomialRing_base): sage: 7 in GF(2) True - We test that :trac:`10173` is fixed:: + We test that :issue:`10173` is fixed:: sage: R = BooleanPolynomialRing(256,'x') sage: S = PolynomialRing(GF(2),256,'y') @@ -665,7 +665,7 @@ cdef class BooleanPolynomialRing(BooleanPolynomialRing_base): sage: ZZ['a'].gen() + c a + c - Check that :trac:`13284` is fixed:: + Check that :issue:`13284` is fixed:: sage: from sage.rings.ideal import Cyclic sage: R = BooleanPolynomialRing(10, 'x') @@ -800,7 +800,7 @@ cdef class BooleanPolynomialRing(BooleanPolynomialRing_base): sage: P(x) x - Test that :trac:`10797` is really fixed:: + Test that :issue:`10797` is really fixed:: sage: B. = BooleanPolynomialRing() sage: I = ideal(a*b + a + b*e + c*e + 1, a + b + c*d + c + 1, a*c + c + d*f + d + 1, a*c + c*f + c + d*f + 1, c*f + c + d + e + 1, a + b*c + b*d + e*f + 1) @@ -927,7 +927,7 @@ cdef class BooleanPolynomialRing(BooleanPolynomialRing_base): TypeError: cannot convert polynomial z*x^2 + 5*y^3 to Boolean PolynomialRing in x, y: name z not defined We test that univariate polynomials convert into the - boolean polynomial ring (:trac:`9138`):: + boolean polynomial ring (:issue:`9138`):: sage: R. = ZZ[] sage: p = x^3+2*x^2+x+1 @@ -1206,7 +1206,7 @@ cdef class BooleanPolynomialRing(BooleanPolynomialRing_base): sage: all(t in [x, y, x*y, P(1)] for t in f.terms()) True - We test that :trac:`13845` is fixed:: + We test that :issue:`13845` is fixed:: sage: n = 10 sage: B = BooleanPolynomialRing(n, 'x') @@ -1873,7 +1873,7 @@ class BooleanMonomialMonoid(UniqueRepresentation, Monoid_class): sage: type(M.gen(0)) - Since :trac:`9138`, boolean monomial monoids are + Since :issue:`9138`, boolean monomial monoids are unique parents and are fit into the category framework:: sage: loads(dumps(M)) is M @@ -2429,7 +2429,7 @@ cdef class BooleanMonomial(MonoidElement): TESTS: - Check that :trac:`13133` is resolved:: + Check that :issue:`13133` is resolved:: sage: B(1).lm().index() Traceback (most recent call last): @@ -4837,7 +4837,7 @@ class BooleanPolynomialIdeal(MPolynomialIdeal): TESTS: - Check that :trac:`13155` is solved:: + Check that :issue:`13155` is solved:: sage: R = BooleanPolynomialRing(11, 'x') sage: R2 = PolynomialRing(GF(2), 11, 'x') @@ -4916,20 +4916,20 @@ class BooleanPolynomialIdeal(MPolynomialIdeal): Another somewhat bigger example:: sage: sr = mq.SR(2,1,1,4,gf2=True, polybori=True) - sage: while True: # workaround (see :trac:`31891`) + sage: while True: # workaround (see :issue:`31891`) ....: try: ....: F, s = sr.polynomial_system() ....: break ....: except ZeroDivisionError: ....: pass sage: I = F.ideal() - sage: I.groebner_basis() # not tested, known bug, unstable (see :trac:`32083`) + sage: I.groebner_basis() # not tested, known bug, unstable (see :issue:`32083`) Polynomial Sequence with 36 Polynomials in 36 Variables We compute the same example with Magma:: sage: sr = mq.SR(2,1,1,4,gf2=True, polybori=True) - sage: while True: # workaround (see :trac:`31891`) + sage: while True: # workaround (see :issue:`31891`) ....: try: ....: F, s = sr.polynomial_system() ....: break @@ -4968,7 +4968,7 @@ class BooleanPolynomialIdeal(MPolynomialIdeal): sage: I.groebner_basis() [x, y, z] - Check that this no longer crash (:trac:`12792`):: + Check that this no longer crash (:issue:`12792`):: sage: names = [ "s{0}s{1}".format(i,j) for i in range(4) for j in range(8)] sage: R = BooleanPolynomialRing(32, names) @@ -5074,7 +5074,7 @@ class BooleanPolynomialIdeal(MPolynomialIdeal): [{x1: 0, x2: 0, x3: 0, x4: 0, x5: 0, x6: 0}, {x1: 1, x2: 1, x3: 1, x4: 0, x5: 0, x6: 1}] - Check that :trac:`13976` is fixed:: + Check that :issue:`13976` is fixed:: sage: R. = BooleanPolynomialRing() sage: I = ideal( [ x*y*z + x*z + y + 1, x+y+z+1 ] ) @@ -5083,7 +5083,7 @@ class BooleanPolynomialIdeal(MPolynomialIdeal): 1 Make sure the result is a key converting dict, as discussed in - :trac:`9788` and consistent with + :issue:`9788` and consistent with :meth:`sage.rings.polynomial.multi_polynomial_ideal.MPolynomialIdeal_singular_repr.variety`:: sage: sols[0]["y"] @@ -5142,7 +5142,7 @@ class BooleanPolynomialIdeal(MPolynomialIdeal): EXAMPLES:: sage: sr = mq.SR(1, 1, 1, 4, gf2=True, polybori=True) - sage: while True: # workaround (see :trac:`31891`) + sage: while True: # workaround (see :issue:`31891`) ....: try: ....: F, s = sr.polynomial_system() ....: break @@ -5167,7 +5167,7 @@ class BooleanPolynomialIdeal(MPolynomialIdeal): EXAMPLES:: sage: sr = mq.SR(1, 1, 1, 4, gf2=True, polybori=True) - sage: while True: # workaround (see :trac:`31891`) + sage: while True: # workaround (see :issue:`31891`) ....: try: ....: F, s = sr.polynomial_system() ....: break @@ -5193,7 +5193,7 @@ class BooleanPolynomialIdeal(MPolynomialIdeal): EXAMPLES:: sage: sr = mq.SR(1, 1, 1, 4, gf2=True, polybori=True) - sage: while True: # workaround (see :trac:`31891`) + sage: while True: # workaround (see :issue:`31891`) ....: try: ....: F, s = sr.polynomial_system() ....: break @@ -6206,7 +6206,7 @@ cdef class ReductionStrategy: TESTS: - Check if :trac:`8966` is fixed:: + Check if :issue:`8966` is fixed:: sage: red = ReductionStrategy(B) sage: red.add_generator(None) @@ -6474,7 +6474,7 @@ cdef class FGLMStrategy: sage: FGLMStrategy(old_ring, new_ring, ideal) - Check that :trac:`13883` is fixed:: + Check that :issue:`13883` is fixed:: sage: nonreduced = BooleanPolynomialVector([x+z, x+y]) sage: FGLMStrategy(old_ring, new_ring, nonreduced) # optional - debug diff --git a/src/sage/rings/polynomial/plural.pyx b/src/sage/rings/polynomial/plural.pyx index c04424742d6..4fb7104cce6 100644 --- a/src/sage/rings/polynomial/plural.pyx +++ b/src/sage/rings/polynomial/plural.pyx @@ -361,7 +361,7 @@ cdef class NCPolynomialRing_plural(Ring): sage: A2. = FreeAlgebra(GF(5), 3) sage: R2 = A2.g_algebra({y*x:x*y-z, z*x:x*z+2*x, z*y:y*z-2*y}, order=TermOrder('degrevlex', 2)) - Check that :trac:`17224` is fixed:: + Check that :issue:`17224` is fixed:: sage: from sage.rings.polynomial.term_order import TermOrder sage: F. = FreeAlgebra(QQ) @@ -385,7 +385,7 @@ cdef class NCPolynomialRing_plural(Ring): This example caused a segmentation fault with a previous version of this method. This doctest still results in a segmentation fault occasionally which is difficult to isolate, so this test is partially - disabled (:trac:`29528`):: + disabled (:issue:`29528`):: sage: import gc sage: from sage.rings.polynomial.plural import NCPolynomialRing_plural @@ -695,7 +695,7 @@ cdef class NCPolynomialRing_plural(Ring): TESTS: Make the method accept additional parameters, such as the flag ``proof``. - See :trac:`22910`:: + See :issue:`22910`:: sage: P.is_field(proof=False) False @@ -2508,13 +2508,13 @@ cdef class NCPolynomial_plural(RingElement): sage: f.monomials() [x] - Check if :trac:`12706` is fixed:: + Check if :issue:`12706` is fixed:: sage: f = P(0) sage: f.monomials() [] - Check if :trac:`7152` is fixed:: + Check if :issue:`7152` is fixed:: sage: # needs sage.symbolic sage: x = var('x') @@ -2842,7 +2842,7 @@ cpdef MPolynomialRing_libsingular new_CRing(RingWrap rw, base_ring) noexcept: sage: R # indirect doctest Multivariate Polynomial Ring in x, y, z over Rational Field - Check that :trac:`13145` has been resolved:: + Check that :issue:`13145` has been resolved:: sage: h = hash(R.gen() + 1) # sets currRing sage: from sage.libs.singular.ring import ring_refcount_dict, currRing_wrapper @@ -2851,7 +2851,7 @@ cpdef MPolynomialRing_libsingular new_CRing(RingWrap rw, base_ring) noexcept: sage: ring_refcount_dict[currRing_wrapper()] - curcnt 2 - Check that :trac:`29311` is fixed:: + Check that :issue:`29311` is fixed:: sage: R. = QQ[] sage: from sage.libs.singular.function_factory import ff diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index d65d5464778..af24e7ff245 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -102,7 +102,7 @@ cdef class PolyDict: No arithmetic operation on :class:`PolyDict` clear zero coefficients as of now there is no reliable way of testing it in the most general setting, see - :trac:`35319`. For removing zero coefficients from a :class:`PolyDict` you + :issue:`35319`. For removing zero coefficients from a :class:`PolyDict` you can use the method :meth:`remove_zeros` which can be parametrized by a zero test. """ @@ -770,7 +770,7 @@ cdef class PolyDict: TESTS: - We check that the issue on :trac:`9478` is resolved:: + We check that the issue on :issue:`9478` is resolved:: sage: R2. = QQ[] sage: R3. = R2[] @@ -779,7 +779,7 @@ cdef class PolyDict: TESTS: - Check that :trac:`29604` is fixed:: + Check that :issue:`29604` is fixed:: sage: PolyDict({(1, 0): GF(2)(1)}).latex(['x', 'y']) 'x' @@ -875,7 +875,7 @@ cdef class PolyDict: TESTS: - Check that :trac:`29604` is fixed:: + Check that :issue:`29604` is fixed:: sage: PolyDict({(1, 0): GF(4)(1)}).poly_repr(['x', 'y']) # needs sage.rings.finite_rings 'x' @@ -1789,7 +1789,7 @@ cdef class ETuple: sage: list(e) [4, 0, 0, 2, 0] - Check that :trac:`28178` is fixed:: + Check that :issue:`28178` is fixed:: sage: it = iter(e) sage: iter(it) is it @@ -1987,7 +1987,7 @@ cdef class ETuple: sage: e.eadd(f) (1, 1, 3) - Verify that :trac:`6428` has been addressed:: + Verify that :issue:`6428` has been addressed:: sage: # needs sage.libs.singular sage: R. = Frac(QQ['x'])[] @@ -2052,7 +2052,7 @@ cdef class ETuple: TESTS: - Test segmentation faults occurring as described in :trac:`34000`:: + Test segmentation faults occurring as described in :issue:`34000`:: sage: ETuple([0, 1, 1]).eadd_p(1, 0) (1, 1, 1) diff --git a/src/sage/rings/polynomial/polynomial_element_generic.py b/src/sage/rings/polynomial/polynomial_element_generic.py index 5b99c2aaea8..370d8f22fc6 100644 --- a/src/sage/rings/polynomial/polynomial_element_generic.py +++ b/src/sage/rings/polynomial/polynomial_element_generic.py @@ -248,7 +248,7 @@ def _derivative(self, var=None): sage: f._derivative(x) 3*x^2*y^4 - Check that :trac:`28187` is fixed:: + Check that :issue:`28187` is fixed:: sage: R = PolynomialRing(ZZ, 't', sparse=True) sage: t, u = var('t, u') # needs sage.symbolic @@ -297,7 +297,7 @@ def integral(self, var=None): TESTS: - Check that :trac:`18600` is fixed:: + Check that :issue:`18600` is fixed:: sage: R. = PolynomialRing(ZZ, sparse=True) sage: (x^2^100).integral() @@ -446,7 +446,7 @@ def __getitem__(self, n): sage: f[:2] # needs sage.rings.real_mpfr -42.000*x + 8.0000 - Any other kind of slicing is an error, see :trac:`18940`:: + Any other kind of slicing is an error, see :issue:`18940`:: sage: f[1:3] # needs sage.rings.real_mpfr Traceback (most recent call last): @@ -769,7 +769,7 @@ def shift(self, n): TESTS: - Check that :trac:`18600` is fixed:: + Check that :issue:`18600` is fixed:: sage: R. = PolynomialRing(ZZ, sparse=True) sage: p = x^2^100 - 5 @@ -869,7 +869,7 @@ def quo_rem(self, other): sage: g == f*q + r and r.degree() < f.degree() True - The following shows that :trac:`16649` is indeed fixed. :: + The following shows that :issue:`16649` is indeed fixed. :: sage: P. = PolynomialRing(ZZ, sparse=True) sage: (4*x).quo_rem(2*x) @@ -946,7 +946,7 @@ def gcd(self,other,algorithm=None): TESTS: - Check that :trac:`19676` is fixed:: + Check that :issue:`19676` is fixed:: sage: S. = R[] sage: x.gcd(y) @@ -954,7 +954,7 @@ def gcd(self,other,algorithm=None): sage: (6*x).gcd(9) 3 - Check that :trac:`36427` is fixed:: + Check that :issue:`36427` is fixed:: sage: P = PolynomialRing(ZZ, "q", sparse=True) sage: q = P.gen() @@ -1209,7 +1209,7 @@ def newton_polygon(self): TESTS: - Check that :trac:`22936` is fixed:: + Check that :issue:`22936` is fixed:: sage: S. = PowerSeriesRing(GF(5)) sage: R. = S[] diff --git a/src/sage/rings/polynomial/polynomial_gf2x.pyx b/src/sage/rings/polynomial/polynomial_gf2x.pyx index 51959a7825c..2839b266b4a 100644 --- a/src/sage/rings/polynomial/polynomial_gf2x.pyx +++ b/src/sage/rings/polynomial/polynomial_gf2x.pyx @@ -53,7 +53,7 @@ cdef class Polynomial_GF2X(Polynomial_template): sage: x^3 + x^2 + 1 x^3 + x^2 + 1 - We check that the bug noted at :trac:`12724` is fixed:: + We check that the bug noted at :issue:`12724` is fixed:: sage: R. = Zmod(2)[] sage: R([2^80]) diff --git a/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx b/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx index 8498f3dd760..04e7940af55 100644 --- a/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx +++ b/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx @@ -17,7 +17,7 @@ AUTHORS: TESTS: -We check that the buggy gcd is fixed (see :trac:`17816`):: +We check that the buggy gcd is fixed (see :issue:`17816`):: sage: R. = ZZ[] sage: X = 3*q^12 - 8*q^11 - 24*q^10 - 48*q^9 - 84*q^8 - 92*q^7 - 92*q^6 - 70*q^5 - 50*q^4 - 27*q^3 - 13*q^2 - 4*q - 1 @@ -500,7 +500,7 @@ cdef class Polynomial_integer_dense_flint(Polynomial): sage: (123456789123456789123456789123456789123456789*t).content() 123456789123456789123456789123456789123456789 - Verify that :trac:`13053` has been resolved:: + Verify that :issue:`13053` has been resolved:: sage: R(-1).content() -1 @@ -732,7 +732,7 @@ cdef class Polynomial_integer_dense_flint(Polynomial): sage: z.quo_rem(2*x) (0, 0) - :trac:`383`, make sure things get coerced correctly:: + :issue:`383`, make sure things get coerced correctly:: sage: f = x+1; parent(f) Univariate Polynomial Ring in x over Integer Ring @@ -855,7 +855,7 @@ cdef class Polynomial_integer_dense_flint(Polynomial): TESTS: - Check that :trac:`32033` has been fixed:: + Check that :issue:`32033` has been fixed:: sage: R. = ZZ[] sage: lcm(R(0), R(0)) @@ -916,7 +916,7 @@ cdef class Polynomial_integer_dense_flint(Polynomial): TESTS: - Check that :trac:`17675` is fixed:: + Check that :issue:`17675` is fixed:: sage: R. = ZZ['x'] sage: R(2).xgcd(R(2)) @@ -1071,7 +1071,7 @@ cdef class Polynomial_integer_dense_flint(Polynomial): ... ZeroDivisionError: negative exponent in power of zero - Check that :trac:`18278` is fixed:: + Check that :issue:`18278` is fixed:: sage: R. = ZZ[] sage: x^(1/2) @@ -1084,7 +1084,7 @@ cdef class Polynomial_integer_dense_flint(Polynomial): ... OverflowError: Sage Integer too large to convert to C long - Test fractional powers (:trac:`20086`):: + Test fractional powers (:issue:`20086`):: sage: P. = ZZ[] sage: (R^3 + 6*R^2 + 12*R + 8)^(1/3) @@ -1454,7 +1454,7 @@ cdef class Polynomial_integer_dense_flint(Polynomial): TESTS: - Confirm that :trac:`17603` has been applied:: + Confirm that :issue:`17603` has been applied:: sage: f.disc() -339 @@ -1509,7 +1509,7 @@ cdef class Polynomial_integer_dense_flint(Polynomial): TESTS: - Verify that :trac:`13053` has been resolved:: + Verify that :issue:`13053` has been resolved:: sage: R. = PolynomialRing(ZZ, implementation='FLINT') sage: f=-x^2 diff --git a/src/sage/rings/polynomial/polynomial_integer_dense_ntl.pyx b/src/sage/rings/polynomial/polynomial_integer_dense_ntl.pyx index ef695cdc6e2..6f7ffa3b5cc 100644 --- a/src/sage/rings/polynomial/polynomial_integer_dense_ntl.pyx +++ b/src/sage/rings/polynomial/polynomial_integer_dense_ntl.pyx @@ -607,7 +607,7 @@ cdef class Polynomial_integer_dense_ntl(Polynomial): TESTS: - Check that :trac:`32033` has been fixed:: + Check that :issue:`32033` has been fixed:: sage: R. = PolynomialRing(ZZ, implementation='NTL') sage: R(0).lcm(R(0)) @@ -887,7 +887,7 @@ cdef class Polynomial_integer_dense_ntl(Polynomial): TESTS: - Verify that :trac:`13053` has been resolved:: + Verify that :issue:`13053` has been resolved:: sage: R. = PolynomialRing(ZZ, implementation='NTL') sage: f = -x^2 diff --git a/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx b/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx index 65bd584d9ea..b5f4c7fed04 100644 --- a/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx +++ b/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx @@ -308,7 +308,7 @@ cdef class Polynomial_dense_mod_n(Polynomial): TESTS: - Check output type (see :trac:`25182`):: + Check output type (see :issue:`25182`):: sage: R. = PolynomialRing(Integers(3), implementation='NTL') sage: isinstance(x.degree(), Integer) @@ -860,7 +860,7 @@ cdef class Polynomial_dense_modn_ntl_zz(Polynomial_dense_mod_n): ... NotImplementedError: Fraction fields not implemented for this type. - We define ``0^0`` to be unity, :trac:`13895`:: + We define ``0^0`` to be unity, :issue:`13895`:: sage: R. = PolynomialRing(Integers(100), implementation='NTL') sage: R(0)^0 @@ -1419,7 +1419,7 @@ cdef class Polynomial_dense_modn_ntl_ZZ(Polynomial_dense_mod_n): sage: (x+1)^5 x^5 + 5*x^4 + 10*x^3 + 10*x^2 + 5*x + 1 - We define ``0^0`` to be unity, :trac:`13895`:: + We define ``0^0`` to be unity, :issue:`13895`:: sage: R. = PolynomialRing(Integers(10^30), implementation='NTL') sage: R(0)^0 diff --git a/src/sage/rings/polynomial/polynomial_quotient_ring.py b/src/sage/rings/polynomial/polynomial_quotient_ring.py index 004078b4559..bb71f3f403e 100644 --- a/src/sage/rings/polynomial/polynomial_quotient_ring.py +++ b/src/sage/rings/polynomial/polynomial_quotient_ring.py @@ -169,7 +169,7 @@ class PolynomialQuotientRingFactory(UniqueFactory): sage: R.quotient(f) Univariate Quotient Polynomial Ring in xbar over Integer Ring with modulus x^2 + 1 - This shows that the issue at :trac:`5482` is solved:: + This shows that the issue at :issue:`5482` is solved:: sage: R. = PolynomialRing(QQ) sage: f = x^2 - 1 @@ -312,7 +312,7 @@ class PolynomialQuotientRing_generic(QuotientRing_generic): TESTS: - By :trac:`11900`, polynomial quotient rings use Sage's + By :issue:`11900`, polynomial quotient rings use Sage's category framework. They do so in an unusual way: During their initialisation, they are declared to be objects in the category of quotients of commutative algebras over a base ring. However, if it @@ -404,7 +404,7 @@ def __init__(self, ring, polynomial, name=None, category=None): sage: S == PolynomialQuotientRing_generic(R, x^2 - 4, 'xbar') True - Check that :trac:`26161` has been resolved:: + Check that :issue:`26161` has been resolved:: sage: R. = GF(2)[] sage: S = R.quo(x) # needs sage.rings.finite_rings @@ -473,7 +473,7 @@ def _element_constructor_(self, x): TESTS: Conversion should work even if there is no coercion. - This was fixed in :trac:`8800`:: + This was fixed in :issue:`8800`:: sage: P. = QQ[] sage: Q1 = P.quo([(x^2+1)^2*(x^2-3)]) @@ -483,7 +483,7 @@ def _element_constructor_(self, x): sage: Q1(Q.gen()) xbar - Here we test against several issues discussed in :trac:`8992`:: + Here we test against several issues discussed in :issue:`8992`:: sage: P. = QQ[] sage: Q1 = P.quo([(x^2+1)^2*(x^2-3)]) @@ -561,7 +561,7 @@ def _coerce_map_from_(self, R): AUTHOR: - - Simon King (2010-12): :trac:`8800` + - Simon King (2010-12): :issue:`8800` TESTS:: @@ -577,7 +577,7 @@ def _coerce_map_from_(self, R): sage: Q1.has_coerce_map_from(Q2) False - The following tests against a bug fixed in :trac:`8992`:: + The following tests against a bug fixed in :issue:`8992`:: sage: P. = QQ[] sage: Q1 = P.quo([(x^2+1)^2*(x^2-3)]) @@ -1463,7 +1463,7 @@ def S_class_group(self, S, proof=True): By using the ideal `(a)`, we cut the part of the class group coming from `x^2 + 31` from 12 to 2, i.e. we lose a generator of order 6 (this was - fixed in :trac:`14489`):: + fixed in :issue:`14489`):: sage: S.S_class_group([K.ideal(a)]) # representation varies # not tested, needs sage.rings.number_field [((1/4*xbar^2 + 31/4, (-1/8*a + 1/8)*xbar^2 - 31/8*a + 31/8, @@ -2312,12 +2312,12 @@ def __init__(self, ring, polynomial, name=None, category=None): sage: S. = R.quotient(x^2 + 1) sage: TestSuite(S).run() - Check that :trac:`17450` is fixed:: + Check that :issue:`17450` is fixed:: sage: S in IntegralDomains() True - Check that :trac:`29017` is fixed:: + Check that :issue:`29017` is fixed:: sage: R. = ZZ[] sage: Q = R.quo(x - 1) diff --git a/src/sage/rings/polynomial/polynomial_quotient_ring_element.py b/src/sage/rings/polynomial/polynomial_quotient_ring_element.py index 0754ed31e7c..b1414f7e715 100644 --- a/src/sage/rings/polynomial/polynomial_quotient_ring_element.py +++ b/src/sage/rings/polynomial/polynomial_quotient_ring_element.py @@ -353,7 +353,7 @@ def is_unit(self): TESTS: Raise an exception if the base ring is not a field - (see :trac:`13303`):: + (see :issue:`13303`):: sage: Z16x. = Integers(16)[] sage: S. = Z16x.quotient(x^2 + x + 1) @@ -362,7 +362,7 @@ def is_unit(self): ... NotImplementedError: The base ring (=Ring of integers modulo 16) is not a field - Check that :trac:`29469` is fixed:: + Check that :issue:`29469` is fixed:: sage: S(3).is_unit() True @@ -409,7 +409,7 @@ def __invert__(self): TESTS: An element is not invertible if the base ring is not a field - (see :trac:`13303`):: + (see :issue:`13303`):: sage: Z16x. = Integers(16)[] sage: S. = Z16x.quotient(x^2 + x + 1) @@ -418,7 +418,7 @@ def __invert__(self): ... NotImplementedError: The base ring (=Ring of integers modulo 16) is not a field - Check that :trac:`29469` is fixed:: + Check that :issue:`29469` is fixed:: sage: ~S(3) 11 diff --git a/src/sage/rings/polynomial/polynomial_rational_flint.pyx b/src/sage/rings/polynomial/polynomial_rational_flint.pyx index 1ef3cbaf681..eb534474eb7 100644 --- a/src/sage/rings/polynomial/polynomial_rational_flint.pyx +++ b/src/sage/rings/polynomial/polynomial_rational_flint.pyx @@ -1038,7 +1038,7 @@ cdef class Polynomial_rational_flint(Polynomial): TESTS: - The following example used to crash (cf. :trac:`11771`):: + The following example used to crash (cf. :issue:`11771`):: sage: R. = QQ[] sage: f = 10**383 * (t+1) @@ -1217,7 +1217,7 @@ cdef class Polynomial_rational_flint(Polynomial): ... OverflowError: Sage Integer too large to convert to C long - FLINT memory errors do not crash Sage (:trac:`17629`):: + FLINT memory errors do not crash Sage (:issue:`17629`):: sage: t^(sys.maxsize//2) Traceback (most recent call last): @@ -1225,13 +1225,13 @@ cdef class Polynomial_rational_flint(Polynomial): RuntimeError: FLINT exception Flush the output buffer to get rid of stray output -- see - :trac:`28649`:: + :issue:`28649`:: sage: from sage.misc.misc_c import cyflush sage: cyflush() ... - Test fractional powers (:trac:`20086`):: + Test fractional powers (:issue:`20086`):: sage: P. = QQ[] sage: (1/27*R^3 + 2/3*R^2 + 4*R + 8)^(2/3) @@ -1517,7 +1517,7 @@ cdef class Polynomial_rational_flint(Polynomial): ... ValueError: cannot differentiate with respect to 2*x - Check that :trac:`28187` is fixed:: + Check that :issue:`28187` is fixed:: sage: x = var("x") # needs sage.symbolic sage: f._derivative(x) # needs sage.symbolic @@ -2172,7 +2172,7 @@ cdef class Polynomial_rational_flint(Polynomial): ValueError: The polynomial must be irreducible Variable names that are reserved in PARI, such as ``zeta``, - are supported (see :trac:`20631`):: + are supported (see :issue:`20631`):: sage: R. = QQ[] sage: (zeta^2 + zeta + 1).galois_group(pari_group=True) # needs sage.libs.pari @@ -2269,7 +2269,7 @@ cdef class Polynomial_rational_flint(Polynomial): (x + 2)^5 Variable names that are reserved in PARI, such as ``zeta``, - are supported (see :trac:`20631`):: + are supported (see :issue:`20631`):: sage: R. = QQ[] sage: (zeta^2 + zeta + 1).factor_mod(7) @@ -2324,7 +2324,7 @@ cdef class Polynomial_rational_flint(Polynomial): The input polynomial is considered to have "infinite" precision, therefore the `p`-adic factorization of the polynomial is not the same as first coercing to `\QQ_p` and then factoring - (see also :trac:`15422`):: + (see also :issue:`15422`):: sage: # needs sage.rings.padic sage: f = x^2 - 3^6 @@ -2413,7 +2413,7 @@ cdef class Polynomial_rational_flint(Polynomial): [x + 48] Variable names that are reserved in PARI, such as ``I``, are - supported (see :trac:`20631`):: + supported (see :issue:`20631`):: sage: R. = QQ[] sage: (I^2 + 1).hensel_lift(5, 3) @@ -2519,7 +2519,7 @@ cdef class Polynomial_rational_flint(Polynomial): 1 Variable names that are reserved in PARI, such as ``I``, are - supported (see :trac:`20631`):: + supported (see :issue:`20631`):: sage: R. = QQ[] sage: (I^2 + 1).discriminant() diff --git a/src/sage/rings/polynomial/polynomial_real_mpfr_dense.pyx b/src/sage/rings/polynomial/polynomial_real_mpfr_dense.pyx index 8bd5bd00a67..573f788d68c 100644 --- a/src/sage/rings/polynomial/polynomial_real_mpfr_dense.pyx +++ b/src/sage/rings/polynomial/polynomial_real_mpfr_dense.pyx @@ -3,8 +3,8 @@ Dense univariate polynomials over `\RR`, implemented using MPFR TESTS: -Check that operations with numpy elements work well (see :trac:`18076` and -:trac:`8426`):: +Check that operations with numpy elements work well (see :issue:`18076` and +:issue:`8426`):: sage: # needs numpy sage: import numpy @@ -84,7 +84,7 @@ cdef class PolynomialRealDense(Polynomial): TESTS: - Check that errors and interrupts are handled properly (see :trac:`10100`):: + Check that errors and interrupts are handled properly (see :issue:`10100`):: sage: a = var('a') # needs sage.symbolic sage: PolynomialRealDense(RR['x'], [1,a]) # needs sage.symbolic @@ -99,7 +99,7 @@ cdef class PolynomialRealDense(Polynomial): sage: sig_on_count() 0 - Test that we don't clean up uninitialized coefficients (:trac:`9826`):: + Test that we don't clean up uninitialized coefficients (:issue:`9826`):: sage: k. = GF(7^3) # needs sage.rings.finite_rings sage: P. = PolynomialRing(k) # needs sage.rings.finite_rings @@ -108,7 +108,7 @@ cdef class PolynomialRealDense(Polynomial): ... TypeError: unable to convert 'a' to a real number - Check that :trac:`17190` is fixed:: + Check that :issue:`17190` is fixed:: sage: RR['x']({}) 0 @@ -634,7 +634,7 @@ cdef class PolynomialRealDense(Polynomial): TESTS: - Check that :trac:`18467` is fixed:: + Check that :issue:`18467` is fixed:: sage: S. = RR[] sage: z = S.zero() diff --git a/src/sage/rings/polynomial/polynomial_ring.py b/src/sage/rings/polynomial/polynomial_ring.py index 4d71f81b313..f660eaa8272 100644 --- a/src/sage/rings/polynomial/polynomial_ring.py +++ b/src/sage/rings/polynomial/polynomial_ring.py @@ -36,7 +36,7 @@ Sparse Univariate Polynomial Ring in y over Integer Ring Rings with different variable names are not equal; in fact, -by :trac:`9944`, polynomial rings are equal if and only +by :issue:`9944`, polynomial rings are equal if and only if they are identical (which should be the case for all parent structures in Sage):: @@ -61,7 +61,7 @@ sage: g * f w^2 + (i + j)*w - k -:trac:`9944` introduced some changes related with +:issue:`9944` introduced some changes related with coercion. Previously, a dense and a sparse polynomial ring with the same variable name over the same base ring evaluated equal, but of course they were not identical. Coercion maps are cached - but if a @@ -120,7 +120,7 @@ sage: x+z z + x -Check that :trac:`5562` has been fixed:: +Check that :issue:`5562` has been fixed:: sage: R. = PolynomialRing(RDF, 1) sage: v1 = vector([u]) # needs sage.modules @@ -255,7 +255,7 @@ def __init__(self, base_ring, name=None, sparse=False, implementation=None, TESTS: - Verify that :trac:`15232` has been resolved:: + Verify that :issue:`15232` has been resolved:: sage: K. = FunctionField(QQ) sage: R. = K[] @@ -268,7 +268,7 @@ def __init__(self, base_ring, name=None, sparse=False, implementation=None, (finite commutative rings and subquotients of monoids and quotients of semigroups and finite enumerated sets) - Check `is_finite` inherited from category (:trac:`24432`):: + Check `is_finite` inherited from category (:issue:`24432`):: sage: Zmod(1)['x'].is_finite() True @@ -381,7 +381,7 @@ def _element_constructor_(self, x=None, check=True, is_gen=False, sage: R(range(4)) 3*x^3 + 2*x^2 + x - This shows that the issue at :trac:`4106` is fixed:: + This shows that the issue at :issue:`4106` is fixed:: sage: # needs sage.symbolic sage: x = var('x') @@ -391,14 +391,14 @@ def _element_constructor_(self, x=None, check=True, is_gen=False, x Throw a :class:`TypeError` if any of the coefficients cannot be coerced - into the base ring (:trac:`6777`):: + into the base ring (:issue:`6777`):: sage: RealField(300)['x']( [ 1, ComplexField(300).gen(), 0 ]) # needs sage.rings.real_mpfr Traceback (most recent call last): ... TypeError: unable to convert '1.00...00*I' to a real number - Check that the bug in :trac:`11239` is fixed:: + Check that the bug in :issue:`11239` is fixed:: sage: # needs sage.rings.finite_rings sage: K. = GF(5^2, prefix='z') @@ -407,13 +407,13 @@ def _element_constructor_(self, x=None, check=True, is_gen=False, sage: L['x'](f) x + b^3 + b^2 + b + 3 - A test from :trac:`14485` :: + A test from :issue:`14485` :: sage: x = SR.var('x') # needs sage.symbolic sage: QQbar[x](x^6 + x^5 + x^4 - x^3 + x^2 - x + 2/5) # needs sage.rings.number_field sage.symbolic x^6 + x^5 + x^4 - x^3 + x^2 - x + 2/5 - Check support for unicode characters (:trac:`29280`):: + Check support for unicode characters (:issue:`29280`):: sage: QQ['λ']('λ^2') λ^2 @@ -723,11 +723,11 @@ def _coerce_map_from_(self, P): - a multivariate polynomial ring P such that self's variable name is among the variable names of P, and the ring obtained by removing that variable is different from the base ring of self, - but coerces into it. (see :trac:`813` for a discussion of this) + but coerces into it. (see :issue:`813` for a discussion of this) Caveat: There is no coercion from a dense into a sparse polynomial ring. So, when adding a dense and a sparse - polynomial, the result will be dense. See :trac:`9944`. + polynomial, the result will be dense. See :issue:`9944`. EXAMPLES:: @@ -738,7 +738,7 @@ def _coerce_map_from_(self, P): False Here we test against the change in the coercions introduced - in :trac:`9944`:: + in :issue:`9944`:: sage: R. = PolynomialRing(QQ, sparse=True) sage: S. = QQ[] @@ -747,7 +747,7 @@ def _coerce_map_from_(self, P): sage: (S.0 + R.0).parent() Univariate Polynomial Ring in x over Rational Field - Here we test a feature that was implemented in :trac:`813`:: + Here we test a feature that was implemented in :issue:`813`:: sage: P = QQ['x','y'] sage: Q = Frac(QQ['x'])['y'] @@ -965,7 +965,7 @@ def _macaulay2_init_(self, macaulay2=None): TESTS: - Check that results are cached (:trac:`28074`):: + Check that results are cached (:issue:`28074`):: sage: R = ZZ['t'] sage: macaulay2(R) is macaulay2(R) # optional - macaulay2 @@ -1415,7 +1415,7 @@ def random_element(self, degree=(-1,2), *args, **kwds): ... ValueError: minimum degree must be less or equal than maximum degree - Check that :trac:`16682` is fixed:: + Check that :issue:`16682` is fixed:: sage: R = PolynomialRing(GF(2), 'z') sage: for _ in range(100): @@ -1756,7 +1756,7 @@ def quotient_by_principal_ideal(self, f, names=None, **kwds): TESTS: - Quotienting by the zero ideal returns ``self`` (:trac:`5978`):: + Quotienting by the zero ideal returns ``self`` (:issue:`5978`):: sage: R = QQ['x'] sage: R.quotient_by_principal_ideal(R.zero_ideal()) is R @@ -1814,7 +1814,7 @@ def _roots_univariate_polynomial(self, p, ring=None, multiplicities=True, algori TESTS: - Check that :trac:`23639` is fixed:: + Check that :issue:`23639` is fixed:: sage: foo = QQ['x']['y'].one() sage: foo.roots(QQ) @@ -2080,7 +2080,7 @@ def __init__(self, base_ring, name="x", sparse=False, implementation=None, sage: type(R.gen()) - Demonstrate that :trac:`8762` is fixed:: + Demonstrate that :issue:`8762` is fixed:: sage: R. = PolynomialRing(GF(next_prime(10^20)), sparse=True) # needs sage.rings.finite_rings sage: x^(10^20) # this should be fast # needs sage.rings.finite_rings @@ -2351,7 +2351,7 @@ def lagrange_polynomial(self, points, algorithm="divided_difference", previous_r ... ValueError: algorithm must be one of 'divided_difference' or 'neville' - Make sure that :trac:`10304` is fixed. The return value + Make sure that :issue:`10304` is fixed. The return value should always be an element of ``self`` in the case of ``divided_difference``, or a list of elements of ``self`` in the case of ``neville``:: @@ -2369,7 +2369,7 @@ def lagrange_polynomial(self, points, algorithm="divided_difference", previous_r True Check that base fields of positive characteristic are treated - correctly (see :trac:`9787`):: + correctly (see :issue:`9787`):: sage: R. = GF(101)[] sage: R.lagrange_polynomial([[1, 0], [2, 0]]) @@ -2467,7 +2467,7 @@ def fraction_field(self): TESTS: - Check that :trac:`25449` has been resolved:: + Check that :issue:`25449` has been resolved:: sage: # needs sage.rings.finite_rings sage: k = GF(25453) @@ -2893,7 +2893,7 @@ def _roots_univariate_polynomial(self, p, ring=None, multiplicities=False, algor TESTS: - Check that :trac:`23639` is fixed:: + Check that :issue:`23639` is fixed:: sage: R = GF(3)['x']['y'] sage: R.one().roots(multiplicities=False) @@ -3337,7 +3337,7 @@ def __init__(self, base_ring, name="x", implementation=None, element_class=None, sage: type(P.gen()) # needs sage.libs.ntl sage.rings.finite_rings - This caching bug was fixed in :trac:`24264`:: + This caching bug was fixed in :issue:`24264`:: sage: # needs sage.rings.finite_rings sage: p = 2^64 + 13 @@ -3506,7 +3506,7 @@ def irreducible_element(self, n, algorithm=None): - Peter Bruin (June 2013) - Jeroen Demeyer (September 2014): add "ffprimroot" algorithm, - see :trac:`8373`. + see :issue:`8373`. """ from sage.libs.pari.all import pari from sage.rings.finite_rings.conway_polynomials import (conway_polynomial, diff --git a/src/sage/rings/polynomial/polynomial_ring_constructor.py b/src/sage/rings/polynomial/polynomial_ring_constructor.py index 42391e37f61..3774d894078 100644 --- a/src/sage/rings/polynomial/polynomial_ring_constructor.py +++ b/src/sage/rings/polynomial/polynomial_ring_constructor.py @@ -395,7 +395,7 @@ def PolynomialRing(base_ring, *args, **kwds): TESTS: - We test here some changes introduced in :trac:`9944`. + We test here some changes introduced in :issue:`9944`. If there is no dense implementation for the given number of variables, then requesting a dense ring is an error:: @@ -495,7 +495,7 @@ def PolynomialRing(base_ring, *args, **kwds): sage: R.0 == 0 True - We verify that :trac:`13187` is fixed:: + We verify that :issue:`13187` is fixed:: sage: var('t') # needs sage.symbolic t @@ -503,7 +503,7 @@ def PolynomialRing(base_ring, *args, **kwds): True We verify that polynomials with interval coefficients from - :trac:`7712` and :trac:`13760` are fixed:: + :issue:`7712` and :issue:`13760` are fixed:: sage: # needs sage.rings.real_interval_field sage: P. = PolynomialRing(RealIntervalField(2)) @@ -725,7 +725,7 @@ def unpickle_PolynomialRing(base_ring, arg1=None, arg2=None, sparse=False): Custom unpickling function for polynomial rings. This has the same positional arguments as the old - ``PolynomialRing`` constructor before :trac:`23338`. + ``PolynomialRing`` constructor before :issue:`23338`. """ args = [arg for arg in (arg1, arg2) if arg is not None] return PolynomialRing(base_ring, *args, sparse=sparse) diff --git a/src/sage/rings/polynomial/polynomial_singular_interface.py b/src/sage/rings/polynomial/polynomial_singular_interface.py index 257eaf4c267..761fb0f0d69 100644 --- a/src/sage/rings/polynomial/polynomial_singular_interface.py +++ b/src/sage/rings/polynomial/polynomial_singular_interface.py @@ -401,14 +401,14 @@ def can_convert_to_singular(R): TESTS: - Avoid non absolute number fields (see :trac:`23535`):: + Avoid non absolute number fields (see :issue:`23535`):: sage: x = polygen(ZZ, 'x') sage: K. = NumberField([x^2 - 2, x^2 - 5]) # needs sage.rings.number_field sage: can_convert_to_singular(K['s,t']) # needs sage.rings.number_field False - Check for :trac:`33319`:: + Check for :issue:`33319`:: sage: # needs sage.rings.finite_rings sage: R. = GF((2^31-1)^3)[] diff --git a/src/sage/rings/polynomial/polynomial_template.pxi b/src/sage/rings/polynomial/polynomial_template.pxi index 7c53f107180..267b879867b 100644 --- a/src/sage/rings/polynomial/polynomial_template.pxi +++ b/src/sage/rings/polynomial/polynomial_template.pxi @@ -212,7 +212,7 @@ cdef class Polynomial_template(Polynomial): TESTS: The following has been a problem in a preliminary version of - :trac:`12313`:: + :issue:`12313`:: sage: # needs sage.rings.finite_rings sage: K. = GF(4) @@ -454,7 +454,7 @@ cdef class Polynomial_template(Polynomial): TESTS: - We test that :trac:`10578` is fixed:: + We test that :issue:`10578` is fixed:: sage: P. = GF(2)[] sage: x % 1r diff --git a/src/sage/rings/polynomial/polynomial_zmod_flint.pyx b/src/sage/rings/polynomial/polynomial_zmod_flint.pyx index 1df2497b4ad..8390fab14b4 100644 --- a/src/sage/rings/polynomial/polynomial_zmod_flint.pyx +++ b/src/sage/rings/polynomial/polynomial_zmod_flint.pyx @@ -227,7 +227,7 @@ cdef class Polynomial_zmod_flint(Polynomial_template): TESTS: - The following test from :trac:`12173` used to be horribly slow:: + The following test from :issue:`12173` used to be horribly slow:: sage: a = ZZ['x'](range(100000)) sage: R = Integers(3)['x'] @@ -346,7 +346,7 @@ cdef class Polynomial_zmod_flint(Polynomial_template): sage: r.parent() is GF(19) True - The following example shows that :trac:`11782` has been fixed:: + The following example shows that :issue:`11782` has been fixed:: sage: R. = ZZ.quo(9)['x'] sage: f = 2*x^3 + x^2 + x; g = 6*x^2 + 2*x + 1 @@ -658,7 +658,7 @@ cdef class Polynomial_zmod_flint(Polynomial_template): ... NotImplementedError: square free factorization of polynomials over rings with composite characteristic is not implemented - :trac:`20003`:: + :issue:`20003`:: sage: P. = GF(7)[] sage: (6*x+3).squarefree_decomposition() diff --git a/src/sage/rings/polynomial/polynomial_zz_pex.pyx b/src/sage/rings/polynomial/polynomial_zz_pex.pyx index 295bc4fccbe..9a0384c643b 100644 --- a/src/sage/rings/polynomial/polynomial_zz_pex.pyx +++ b/src/sage/rings/polynomial/polynomial_zz_pex.pyx @@ -87,7 +87,7 @@ cdef class Polynomial_ZZ_pEX(Polynomial_template): TESTS: - The following tests against a bug that was fixed in :trac:`9944`. + The following tests against a bug that was fixed in :issue:`9944`. With the ring definition above, we now have:: sage: R([3,'1234']) @@ -102,7 +102,7 @@ cdef class Polynomial_ZZ_pEX(Polynomial_template): TypeError: not a constant polynomial Check that NTL contexts are correctly restored and that - :trac:`9524` has been fixed:: + :issue:`9524` has been fixed:: sage: x = polygen(GF(9, 'a')) sage: x = polygen(GF(49, 'a')) @@ -111,7 +111,7 @@ cdef class Polynomial_ZZ_pEX(Polynomial_template): sage: 5*x 5*x - Check that :trac:`11239` is fixed:: + Check that :issue:`11239` is fixed:: sage: Fq. = GF(2^4); Fqq. = GF(3^7) sage: PFq. = Fq[]; PFqq. = Fqq[] @@ -235,7 +235,7 @@ cdef class Polynomial_ZZ_pEX(Polynomial_template): TESTS: - The work around provided in :trac:`10475` is superseded by :trac:`24072`:: + The work around provided in :issue:`10475` is superseded by :issue:`24072`:: sage: F. = GF(4) sage: P. = F[] @@ -246,7 +246,7 @@ cdef class Polynomial_ZZ_pEX(Polynomial_template): TypeError: positive characteristic not allowed in symbolic computations Check that polynomial evaluation works when using logarithmic - representation of finite field elements (:trac:`16383`):: + representation of finite field elements (:issue:`16383`):: sage: for i in range(10): ....: F = FiniteField(random_prime(15) ** ZZ.random_element(2, 5), 'a', repr='log') diff --git a/src/sage/rings/polynomial/real_roots.pyx b/src/sage/rings/polynomial/real_roots.pyx index f52fd1f6e79..99587194f5f 100644 --- a/src/sage/rings/polynomial/real_roots.pyx +++ b/src/sage/rings/polynomial/real_roots.pyx @@ -4002,12 +4002,12 @@ def real_roots(p, bounds=None, seed=None, skip_squarefree=False, do_logging=Fals TESTS: - Check that :trac:`20269` is fixed:: + Check that :issue:`20269` is fixed:: sage: real_roots(polygen(AA))[0][0][0].parent() Rational Field - Check that :trac:`10803` is fixed:: + Check that :issue:`10803` is fixed:: sage: f = 2503841067*x^13 - 15465014877*x^12 + 37514382885*x^11 - 44333754994*x^10 + 24138665092*x^9 - 2059014842*x^8 - 3197810701*x^7 + 803983752*x^6 + 123767204*x^5 - 26596986*x^4 - 2327140*x^3 + 75923*x^2 + 7174*x + 102 sage: len(real_roots(f,seed=1)) diff --git a/src/sage/rings/polynomial/term_order.py b/src/sage/rings/polynomial/term_order.py index 48e49ac89fa..4a3e78fe879 100644 --- a/src/sage/rings/polynomial/term_order.py +++ b/src/sage/rings/polynomial/term_order.py @@ -645,7 +645,7 @@ def __init__(self, name='lex', n=0, force=False): 1 We enforce consistency when calling the copy constructor (cf. - :trac:`12748`):: + :issue:`12748`):: sage: T = TermOrder('degrevlex', 6) + TermOrder('degrevlex',10) sage: R. = PolynomialRing(QQ, order=T) @@ -682,7 +682,7 @@ def __init__(self, name='lex', n=0, force=False): // block 2 : ordering dp // : names x y z - Check that :trac:`29635` is fixed:: + Check that :issue:`29635` is fixed:: sage: T = PolynomialRing(GF(101^5), 'u,v,w', # needs sage.rings.finite_rings ....: order=TermOrder('degneglex')).term_order() @@ -1199,7 +1199,7 @@ def sortkey_block(self, f): TESTS: - Check that the issue in :trac:`27139` is fixed:: + Check that the issue in :issue:`27139` is fixed:: sage: R. = PolynomialRing(AA, order='lex(2),lex(2)') # needs sage.rings.number_field sage: x > y # needs sage.rings.number_field @@ -1867,7 +1867,7 @@ def blocks(self): NOTE: - This method has been added in :trac:`11316`. There used + This method has been added in :issue:`11316`. There used to be an *attribute* of the same name and the same content. So, it is a backward incompatible syntax change. @@ -1939,7 +1939,7 @@ def __eq__(self, other): TESTS: We assert that comparisons take into account the block size of - orderings (cf. :trac:`24981`):: + orderings (cf. :issue:`24981`):: sage: R = PolynomialRing(QQ, 6, 'x', order="lex(1),degrevlex(5)") sage: S = R.change_ring(order="lex(2),degrevlex(4)") @@ -2222,7 +2222,7 @@ def termorder_from_singular(S): TESTS: Check that ``degneglex`` term orders are converted correctly - (:trac:`29635`):: + (:issue:`29635`):: sage: # needs sage.libs.singular sage: _ = singular.ring(0, '(x,y,z,w)', '(a(1:4),ls(4))') diff --git a/src/sage/rings/polynomial/weil/weil_polynomials.pyx b/src/sage/rings/polynomial/weil/weil_polynomials.pyx index 182d0c41e6f..d5ebd2906ab 100755 --- a/src/sage/rings/polynomial/weil/weil_polynomials.pyx +++ b/src/sage/rings/polynomial/weil/weil_polynomials.pyx @@ -513,7 +513,7 @@ class WeilPolynomials(): True True - Test that :trac:`29475` is resolved:: + Test that :issue:`29475` is resolved:: sage: P. = QQ[] sage: u = x^6 + x^5 + 6*x^4 - 2*x^3 + 66*x^2 + 121*x + 1331 @@ -524,7 +524,7 @@ class WeilPolynomials(): sage: u in WeilPolynomials(6, 11, 1, [(1,0),(1,11),(6,11)]) True - Test that :trac:`31809` is resolved:: + Test that :issue:`31809` is resolved:: sage: from sage.rings.polynomial.weil.weil_polynomials import WeilPolynomials sage: foo = list(WeilPolynomials(12, 3, lead=(1,0,9,2,46), squarefree=False)) @@ -532,7 +532,7 @@ class WeilPolynomials(): sage: bar == [f for f in foo if f.is_squarefree()] True - Test that :trac:`32348` is resolved:: + Test that :issue:`32348` is resolved:: sage: list(WeilPolynomials(10, 2, lead=(1,-3,5,-5,5,-5))) [x^10 - 3*x^9 + 5*x^8 - 5*x^7 + 5*x^6 - 5*x^5 + 10*x^4 - 20*x^3 + 40*x^2 - 48*x + 32] diff --git a/src/sage/rings/power_series_pari.pyx b/src/sage/rings/power_series_pari.pyx index 5178392c618..9e6a4d5f317 100644 --- a/src/sage/rings/power_series_pari.pyx +++ b/src/sage/rings/power_series_pari.pyx @@ -92,7 +92,7 @@ cdef PowerSeries_pari construct_from_pari(parent, pari_gen g) noexcept: TESTS: - Check for :trac:`33224`:: + Check for :issue:`33224`:: sage: R. = LaurentSeriesRing(QQ, implementation='pari') sage: (z^-2).prec() @@ -318,7 +318,7 @@ cdef class PowerSeries_pari(PowerSeries): True The following demonstrates that the problems raised in - :trac:`3979` and :trac:`5367` are solved:: + :issue:`3979` and :issue:`5367` are solved:: sage: [f(t^2 + O(t^n)) for n in [9, 10, 11]] [t^4 + t^6 + O(t^11), t^4 + t^6 + O(t^12), t^4 + t^6 + O(t^12)] diff --git a/src/sage/rings/power_series_poly.pyx b/src/sage/rings/power_series_poly.pyx index 8f2a86efba9..45e1b105ab1 100644 --- a/src/sage/rings/power_series_poly.pyx +++ b/src/sage/rings/power_series_poly.pyx @@ -35,7 +35,7 @@ cdef class PowerSeries_poly(PowerSeries): sage: a*b 1 + O(t^5) - Check that :trac:`22216` is fixed:: + Check that :issue:`22216` is fixed:: sage: R. = PowerSeriesRing(QQ) sage: R(pari('1 + O(T)')) # needs sage.libs.pari @@ -204,8 +204,8 @@ cdef class PowerSeries_poly(PowerSeries): sage: f(f)(f) == f(f(f)) True - The following demonstrates that the problems raised in :trac:`3979` - and :trac:`5367` are solved:: + The following demonstrates that the problems raised in :issue:`3979` + and :issue:`5367` are solved:: sage: [f(t^2 + O(t^n)) for n in [9, 10, 11]] [t^4 + t^6 + O(t^11), t^4 + t^6 + O(t^12), t^4 + t^6 + O(t^12)] @@ -504,7 +504,7 @@ cdef class PowerSeries_poly(PowerSeries): TESTS: - In the past this could die with EXC_BAD_ACCESS (:trac:`8029`):: + In the past this could die with EXC_BAD_ACCESS (:issue:`8029`):: sage: # needs sage.rings.real_mpfr sage: A. = RR['x'] @@ -1173,7 +1173,7 @@ cdef class PowerSeries_poly(PowerSeries): ... ValueError: the precision of the series is not large enough - Check that :trac:`21212` is fixed:: + Check that :issue:`21212` is fixed:: sage: QQx. = QQ[[]] sage: (1 + x + O(x^100)).pade(2,2) @@ -1218,7 +1218,7 @@ cdef class PowerSeries_poly(PowerSeries): TESTS: - Check that :trac:`18094` is fixed:: + Check that :issue:`18094` is fixed:: sage: R. = PolynomialRing(ZZ) sage: SR(R(0).add_bigoh(20)) # needs sage.symbolic diff --git a/src/sage/rings/power_series_ring.py b/src/sage/rings/power_series_ring.py index 739525a9974..f4f97428011 100644 --- a/src/sage/rings/power_series_ring.py +++ b/src/sage/rings/power_series_ring.py @@ -109,7 +109,7 @@ - William Stein: the code - Jeremy Cho (2006-05-17): some examples (above) - Niles Johnson (2010-09): implement multivariate power series -- Simon King (2012-08): use category and coercion framework, :trac:`13412` +- Simon King (2012-08): use category and coercion framework, :issue:`13412` TESTS:: @@ -327,7 +327,7 @@ def PowerSeriesRing(base_ring, name=None, arg2=None, names=None, sage: L.default_prec() 5 - By :trac:`14084`, a power series ring belongs to the category of integral + By :issue:`14084`, a power series ring belongs to the category of integral domains, if the base ring does:: sage: P = ZZ[['x']] @@ -516,7 +516,7 @@ def __init__(self, base_ring, name=None, default_prec=None, sparse=False, EXAMPLES: This base class inherits from :class:`~sage.rings.ring.CommutativeRing`. - Since :trac:`11900`, it is also initialised as such, and since :trac:`14084` + Since :issue:`11900`, it is also initialised as such, and since :issue:`14084` it is actually initialised as an integral domain:: sage: R. = ZZ[[]] @@ -535,7 +535,7 @@ def __init__(self, base_ring, name=None, default_prec=None, sparse=False, sage: TestSuite(R).run() It is checked that the default precision is non-negative - (see :trac:`19409`):: + (see :issue:`19409`):: sage: PowerSeriesRing(ZZ, 'x', default_prec=-5) Traceback (most recent call last): @@ -553,7 +553,7 @@ def __init__(self, base_ring, name=None, default_prec=None, sparse=False, else: implementation = 'poly' R = PolynomialRing(base_ring, name, sparse=sparse) - elif implementation not in ['pari', 'mpoly']: # see :trac:`28996` + elif implementation not in ['pari', 'mpoly']: # see :issue:`28996` R = PolynomialRing(base_ring, name, sparse=sparse, implementation=implementation) implementation = 'poly' else: @@ -784,7 +784,7 @@ def _element_constructor_(self, f, prec=infinity, check=True): 1 + euler_gamma*y + (1/2*euler_gamma^2 + 1/12*pi^2)*y^2 + O(y^3) Laurent series with non-negative valuation are accepted (see - :trac:`6431`):: + :issue:`6431`):: sage: L. = LaurentSeriesRing(QQ) sage: P = L.power_series_ring() @@ -796,7 +796,7 @@ def _element_constructor_(self, f, prec=infinity, check=True): TypeError: self is not a power series It is checked that the precision is non-negative - (see :trac:`19409`):: + (see :issue:`19409`):: sage: PowerSeriesRing(ZZ, 'x')(1, prec=-5) Traceback (most recent call last): @@ -1152,7 +1152,7 @@ def random_element(self, prec=None, *args, **kwds): 2 - t - 5*t^2 + t^3 + O(t^4) - Further arguments are passed to the underlying base ring (:trac:`9481`):: + Further arguments are passed to the underlying base ring (:issue:`9481`):: sage: SZ = PowerSeriesRing(ZZ,'v') sage: SQ = PowerSeriesRing(QQ,'v') diff --git a/src/sage/rings/power_series_ring_element.pyx b/src/sage/rings/power_series_ring_element.pyx index 31206e347f9..f66e7b6e904 100644 --- a/src/sage/rings/power_series_ring_element.pyx +++ b/src/sage/rings/power_series_ring_element.pyx @@ -12,7 +12,7 @@ AUTHORS: - David Harvey (2006-09-11): added solve_linear_de() method - Robert Bradshaw (2007-04): sqrt, rmul, lmul, shifting - Robert Bradshaw (2007-04): Cython version -- Simon King (2012-08): use category and coercion framework, :trac:`13412` +- Simon King (2012-08): use category and coercion framework, :issue:`13412` EXAMPLES:: @@ -358,7 +358,7 @@ cdef class PowerSeries(AlgebraElement): TESTS: - :trac:`9457` is fixed:: + :issue:`9457` is fixed:: sage: A. = PowerSeriesRing(ZZ) sage: g = t + t^3 + t^5 + O(t^6); g @@ -740,7 +740,7 @@ cdef class PowerSeries(AlgebraElement): sage: latex(f) -\frac{1}{2} t + \frac{2}{3} t^{2} - \frac{9}{7} t^{15} + O(t^{20}) - Check that :trac:`26606` is fixed:: + Check that :issue:`26606` is fixed:: sage: R. = QQ[] sage: S. = R[[]] @@ -1062,7 +1062,7 @@ cdef class PowerSeries(AlgebraElement): TESTS: - The following tests against bugs that were fixed in :trac:`8972`:: + The following tests against bugs that were fixed in :issue:`8972`:: sage: P. = ZZ[] sage: R. = P[[]] @@ -1594,7 +1594,7 @@ cdef class PowerSeries(AlgebraElement): ... ValueError: unable to take the square root of 1/2 - Check :trac:`30655`:: + Check :issue:`30655`:: sage: t = polygen(QQ, 't') sage: x = t.parent()[['x']].0 @@ -2516,7 +2516,7 @@ cdef class PowerSeries(AlgebraElement): sage: (t + O(t^2)).exp(0) O(t^0) - Handle nonzero constant term (fixes :trac:`4477`):: + Handle nonzero constant term (fixes :issue:`4477`):: sage: # needs sage.rings.real_mpfr sage: R. = PowerSeriesRing(RR) diff --git a/src/sage/rings/puiseux_series_ring.py b/src/sage/rings/puiseux_series_ring.py index 2f761c51925..2e44a01e9c3 100644 --- a/src/sage/rings/puiseux_series_ring.py +++ b/src/sage/rings/puiseux_series_ring.py @@ -331,7 +331,7 @@ def _element_constructor_(self, x, e=1, prec=infinity): l = self._laurent_series_ring(x) # finally, construct an instance of the element class and adding - # the precision afterwards (see also :trac:`28993`). + # the precision afterwards (see also :issue:`28993`). return self.element_class(self, l, e=e).add_bigoh(prec) def _coerce_map_from_(self, P): diff --git a/src/sage/rings/qqbar.py b/src/sage/rings/qqbar.py index 4d92d64d80f..9e107208c39 100644 --- a/src/sage/rings/qqbar.py +++ b/src/sage/rings/qqbar.py @@ -347,7 +347,7 @@ Just for fun, let's try ``sage_input`` on a very complicated expression. The output of this example changed with the rewriting of polynomial multiplication -algorithms in :trac:`10255`:: +algorithms in :issue:`10255`:: sage: rt2 = sqrt(AA(2)) sage: rt3 = sqrt(QQbar(3)) @@ -480,14 +480,14 @@ TESTS: -Verify that :trac:`10981` is fixed:: +Verify that :issue:`10981` is fixed:: sage: x = AA['x'].gen() sage: P = 1/(1+x^4) sage: P.partial_fraction_decomposition() (0, [(-0.3535533905932738?*x + 1/2)/(x^2 - 1.414213562373095?*x + 1), (0.3535533905932738?*x + 1/2)/(x^2 + 1.414213562373095?*x + 1)]) -Check that :trac:`22202` is fixed:: +Check that :issue:`22202` is fixed:: sage: R1. = AA[]; R2. = QQbar[] sage: v = QQbar.polynomial_root(x^2 - x + 1, CIF(0.5, RIF(-0.87, -0.85))) @@ -495,8 +495,8 @@ sage: QQ(a) 1/4 -This example from :trac:`17896` should run in reasonable time, see also -:trac:`15600`:: +This example from :issue:`17896` should run in reasonable time, see also +:issue:`15600`:: sage: x,y = polygens(QQ,"x,y") sage: p1 = x^5 + 6*x^4 - 42*x^3 - 142*x^2 + 467*x + 422 @@ -507,7 +507,7 @@ sage: z, = [r for r in p4.roots(QQbar, False) if r in ival] sage: z.exactify() -Check that :trac:`17895` is fixed. We check that ``polynomial_root`` +Check that :issue:`17895` is fixed. We check that ``polynomial_root`` runs under 5 seconds (used to take ~40sec):: sage: x,y = polygens(QQ,"x,y") @@ -520,7 +520,7 @@ sage: z2 = QQbar.polynomial_root(p4, ival) sage: cancel_alarm() -Check that :trac:`28530` is fixed:: +Check that :issue:`28530` is fixed:: sage: x = polygen(QQ) sage: K. = NumberField(x^2 - x - 6256320, embedding=-2500.763730596996) @@ -751,7 +751,7 @@ def _factor_multivariate_polynomial(self, f, proof=True): REFERENCES: - [GCL1992]_ Section 8.8 - - :trac:`25390` and https://github.com/sagemath/sage/files/10659152/qqbar.pdf.gz + - :issue:`25390` and https://github.com/sagemath/sage/files/10659152/qqbar.pdf.gz .. TODO:: @@ -887,7 +887,7 @@ def _factor_multivariate_polynomial(self, f, proof=True): sage: F = QQbar._factor_multivariate_polynomial(p); F (a + (-1.189207115002722?*I)*b) * (a + 1.189207115002722?*I*b) - A test that led to :trac:`26898`:: + A test that led to :issue:`26898`:: sage: # needs sage.libs.singular sage: R. = QQ[] @@ -897,7 +897,7 @@ def _factor_multivariate_polynomial(self, f, proof=True): ....: factor_f = (x - b).map_coefficients(hom) ....: assert(minpoly % factor_f == 0) - Test :trac:`29076`:: + Test :issue:`29076`:: sage: # needs sage.libs.singular sage: AA['x','y'](1).factor() # indirect doctest @@ -2342,7 +2342,7 @@ def do_polred(poly, threshold=32): sage: do_polred(x^3 + 123456) (-1/4*x, -4*x, x^3 - 1929) - This shows that :trac:`13054` has been fixed:: + This shows that :issue:`13054` has been fixed:: sage: do_polred(x^4 - 4294967296*x^2 + 54265257667816538374400) (1/4*x, 4*x, x^4 - 268435456*x^2 + 211973662764908353025) @@ -4706,7 +4706,7 @@ def interval(self, field): TESTS: - Check that :trac:`20209` is fixed:: + Check that :issue:`20209` is fixed:: sage: RIF(QQbar(2).sqrt()) 1.414213562373095? @@ -4895,7 +4895,7 @@ def _richcmp_(self, other, op): component has to be compared for exact equality, which can be a costly operation. For the special case where both numbers have the same minimal polynomial, that cost can be avoided, - though (see :trac:`16964`):: + though (see :issue:`16964`):: sage: x = polygen(ZZ) sage: p = 69721504*x^8 + 251777664*x^6 + 329532012*x^4 + 184429548*x^2 + 37344321 @@ -4963,7 +4963,7 @@ def _richcmp_(self, other, op): sage: QQbar.zeta(3).real() == -1/2 True - Check that :trac:`26593` is fixed (the test here has to be repeated + Check that :issue:`26593` is fixed (the test here has to be repeated twice):: sage: pi = x^7 - 2*x^6 + x^3 - 2*x^2 + 2*x - 1 @@ -4975,7 +4975,7 @@ def _richcmp_(self, other, op): sage: pi = b.minpoly() sage: K = NumberField(pi, 'b', embedding=b) - Check that :trac:`29220` is fixed:: + Check that :issue:`29220` is fixed:: sage: # needs sage.symbolic sage: a = AA(2**(1/2) - 2**(1/3)) @@ -5421,7 +5421,7 @@ def __init__(self, x): TESTS: - Both of the following examples, from :trac:`11728`, trigger + Both of the following examples, from :issue:`11728`, trigger taking the real part below. This is necessary because sometimes a very small (e.g., 1e-17) complex part appears in a complex interval used to create an AlgebraicReal.:: @@ -5470,7 +5470,7 @@ def _more_precision(self): We have to ensure after doing this that self._value is still real which is not the case without calling _ensure_real (see - :trac:`11728`):: + :issue:`11728`):: sage: x = polygen(ZZ, 'x') sage: P = AA['x'](1 + x^4); a1,a2 = P.factor()[0][0], P.factor()[1][0]; a1*a2 @@ -5679,7 +5679,7 @@ def floor(self): TESTS: - Check that :trac:`15501` is fixed:: + Check that :issue:`15501` is fixed:: sage: a = QQbar((-1)^(1/4)).real() # needs sage.symbolic sage: (floor(a-a) + a).parent() # needs sage.symbolic @@ -6026,7 +6026,7 @@ def interval_exact(self, field): TESTS: - Check that :trac:`26898` is fixed. This calculation triggers the 40 bits + Check that :issue:`26898` is fixed. This calculation triggers the 40 bits of extra precision below, and the point is not that the length of the list is seven, but that the code runs in a reasonable time:: @@ -6342,7 +6342,7 @@ class AlgebraicNumberPowQQAction(Action): sage: AA(-16)^(1/4)/QQbar.zeta(8) 2 - We check that :trac:`7859` is fixed:: + We check that :issue:`7859` is fixed:: sage: (AA(2)^(1/2)-AA(2)^(1/2))^(1/2) 0 @@ -7542,7 +7542,7 @@ def exactify(self): TESTS: - Verify that :trac:`12727` is fixed:: + Verify that :issue:`12727` is fixed:: sage: m = sqrt(sin(pi/5)); a = QQbar(m); b = AA(m) # needs sage.symbolic sage: a.minpoly() # needs sage.symbolic @@ -7674,7 +7674,7 @@ def _interval_fast(self, prec): sage: y._interval_fast(128) -0.68232780382801932736948373971104825689? - Check that :trac:`15493` is fixed:: + Check that :issue:`15493` is fixed:: sage: y._interval_fast(20).parent() is RealIntervalField(20) True diff --git a/src/sage/rings/qqbar_decorators.py b/src/sage/rings/qqbar_decorators.py index e1e3b908c8c..13d6d562824 100644 --- a/src/sage/rings/qqbar_decorators.py +++ b/src/sage/rings/qqbar_decorators.py @@ -56,7 +56,7 @@ def wrapper(*args, **kwds): sage: return_base_ring(ideal(y,z)) Rational Field - Check that :trac:`29468` is fixed:: + Check that :issue:`29468` is fixed:: sage: # needs sage.libs.singular sage: J = QQbar['x,y'].ideal('x^2 - y') diff --git a/src/sage/rings/quotient_ring.py b/src/sage/rings/quotient_ring.py index a6a0a8ce7f8..ae997c913ff 100644 --- a/src/sage/rings/quotient_ring.py +++ b/src/sage/rings/quotient_ring.py @@ -17,11 +17,11 @@ .. TODO:: - The following skipped tests should be removed once :trac:`13999` is fixed:: + The following skipped tests should be removed once :issue:`13999` is fixed:: sage: TestSuite(S).run(skip=['_test_nonzero_equal', '_test_elements', '_test_zero']) -In :trac:`11068`, non-commutative quotient rings `R/I` were +In :issue:`11068`, non-commutative quotient rings `R/I` were implemented. The only requirement is that the two-sided ideal `I` provides a ``reduce`` method so that ``I.reduce(x)`` is the normal form of an element `x` with respect to `I` (i.e., we have @@ -80,7 +80,7 @@ sage: (a+b+2)^4 16 + 32*a + 32*b -Since :trac:`7797`, there is an implementation of free algebras +Since :issue:`7797`, there is an implementation of free algebras based on Singular's implementation of the Letterplace Algebra. Our letterplace wrapper allows to provide the above toy example more easily:: @@ -242,7 +242,7 @@ def QuotientRing(R, I, names=None, **kwds): TESTS: - By :trac:`11068`, the following does not return a generic + By :issue:`11068`, the following does not return a generic quotient ring but a usual quotient of the integer ring:: sage: R = Integers(8) @@ -251,7 +251,7 @@ def QuotientRing(R, I, names=None, **kwds): Ring of integers modulo 2 Here is an example of the quotient of a free algebra by a - twosided homogeneous ideal (see :trac:`7797`):: + twosided homogeneous ideal (see :issue:`7797`):: sage: # needs sage.combinat sage.libs.singular sage.modules sage: F. = FreeAlgebra(QQ, implementation='letterplace') @@ -273,7 +273,7 @@ def QuotientRing(R, I, names=None, **kwds): sage: j^3 -j*k*i - j*k*j - j*k*k - Check that :trac:`5978` is fixed by if we quotient by the zero ideal `(0)` + Check that :issue:`5978` is fixed by if we quotient by the zero ideal `(0)` then we just return ``R``:: sage: R = QQ['x'] @@ -596,7 +596,7 @@ def is_commutative(self): AUTHOR: - - Simon King (2011-03-23): See :trac:`7797`. + - Simon King (2011-03-23): See :issue:`7797`. EXAMPLES: @@ -728,7 +728,7 @@ def lifting_map(self): False Test that there also is a lift for rings that are no - instances of :class:`~sage.rings.ring.Ring` (see :trac:`11068`):: + instances of :class:`~sage.rings.ring.Ring` (see :issue:`11068`):: sage: # needs sage.modules sage: MS = MatrixSpace(GF(5), 2, 2) @@ -1000,7 +1000,7 @@ def ideal(self, *gens, **kwds): TESTS: We create an ideal of a fairly generic integer ring (see - :trac:`5666`):: + :issue:`5666`):: sage: R = Integers(10) sage: R.ideal(1) @@ -1103,7 +1103,7 @@ def _coerce_map_from_(self, R): TESTS: - We check that :trac:`13682` is fixed:: + We check that :issue:`13682` is fixed:: sage: R. = PolynomialRing(QQ) sage: I = R.ideal(x^2 + y^2) diff --git a/src/sage/rings/quotient_ring_element.py b/src/sage/rings/quotient_ring_element.py index 56829641624..cbedaf6ecdf 100644 --- a/src/sage/rings/quotient_ring_element.py +++ b/src/sage/rings/quotient_ring_element.py @@ -170,7 +170,7 @@ def is_unit(self): sage: S(2).is_unit() # needs sage.libs.singular True - Check that :trac:`29469` is fixed:: + Check that :issue:`29469` is fixed:: sage: a.is_unit() # needs sage.libs.singular True @@ -200,7 +200,7 @@ def _repr_(self): sage: a-2*a*b # indirect doctest # needs sage.libs.singular -2*a*b + a - In :trac:`11068`, the case of quotient rings without + In :issue:`11068`, the case of quotient rings without assigned names has been covered as well:: sage: # needs sage.libs.singular @@ -392,7 +392,7 @@ def _div_(self, right): sage: 1/a # needs sage.libs.singular a - Check that :trac:`13670` is fixed (i.e. that the error message + Check that :issue:`13670` is fixed (i.e. that the error message actually describes what happens when the result of division is not defined):: sage: R. = QQ[] @@ -474,7 +474,7 @@ def _im_gens_(self, codomain, im_gens, base_map=None): EXAMPLES: Ring homomorphisms whose domain is the fraction field of a - quotient ring work correctly (see :trac:`16135`):: + quotient ring work correctly (see :issue:`16135`):: sage: # needs sage.libs.singular sage: R. = QQ[] @@ -648,7 +648,7 @@ def _richcmp_(self, other, op): sage: a > b # needs sage.libs.singular True - See :trac:`7797`:: + See :issue:`7797`:: sage: # needs sage.combinat sage.libs.singular sage.modules sage: F. = FreeAlgebra(QQ, implementation='letterplace') @@ -657,8 +657,8 @@ def _richcmp_(self, other, op): sage: Q.0^4 # indirect doctest ybar*zbar*zbar*xbar + ybar*zbar*zbar*ybar + ybar*zbar*zbar*zbar - The issue from :trac:`8005` was most likely fixed as part of - :trac:`9138`:: + The issue from :issue:`8005` was most likely fixed as part of + :issue:`9138`:: sage: # needs sage.libs.singular sage: F = GF(5) diff --git a/src/sage/rings/rational.pyx b/src/sage/rings/rational.pyx index 21ecf61cd2e..62091386e5d 100644 --- a/src/sage/rings/rational.pyx +++ b/src/sage/rings/rational.pyx @@ -236,7 +236,7 @@ cpdef Integer integer_rational_power(Integer a, Rational b) noexcept: sage: integer_rational_power(-1, 9/8) is None True - TESTS (:trac:`11228`):: + TESTS (:issue:`11228`):: sage: integer_rational_power(-10, QQ(2)) 100 @@ -300,7 +300,7 @@ cpdef rational_power_parts(a, Rational b, factor_limit=10**5) noexcept: TESTS: - Check if :trac:`8540` is fixed:: + Check if :issue:`8540` is fixed:: sage: rational_power_parts(3/4, -1/2) (2, 3) @@ -309,7 +309,7 @@ cpdef rational_power_parts(a, Rational b, factor_limit=10**5) noexcept: sage: t^2 # needs sage.symbolic 4/3 - Check if :trac:`15605` is fixed:: + Check if :issue:`15605` is fixed:: sage: rational_power_parts(-1, -1/3) (1, -1) @@ -333,7 +333,7 @@ cpdef rational_power_parts(a, Rational b, factor_limit=10**5) noexcept: ....: for p in srange(1, 6) for q in srange(1, 6)) True - A few more tests added in :trac:`26414`:: + A few more tests added in :issue:`26414`:: sage: rational_power_parts(-1, 2/1) (1, 1) @@ -483,7 +483,7 @@ cdef class Rational(sage.structure.element.FieldElement): TESTS: - Check that :trac:`28321` is fixed:: + Check that :issue:`28321` is fixed:: sage: QQ((2r^100r, 3r^100r)) 1267650600228229401496703205376/515377520732011331036461129765621272702107522001 @@ -531,7 +531,7 @@ cdef class Rational(sage.structure.element.FieldElement): TESTS: - Check that :trac:`19835` is fixed:: + Check that :issue:`19835` is fixed:: sage: QQ((0r,-1r)) 0 @@ -867,7 +867,7 @@ cdef class Rational(sage.structure.element.FieldElement): ....: assert (one1 <= one2) is True ....: assert (one1 >= one2) is True - Comparisons with gmpy2 values (:trac:`28394`):: + Comparisons with gmpy2 values (:issue:`28394`):: sage: import gmpy2 sage: values = [(-2,5),(-1,3),(0,1),(2,9),(1,1),(73,2)] @@ -1621,7 +1621,7 @@ cdef class Rational(sage.structure.element.FieldElement): sage: (144/1).is_perfect_power(True) True - This test makes sure we workaround a bug in GMP (see :trac:`4612`):: + This test makes sure we workaround a bug in GMP (see :issue:`4612`):: sage: [-a for a in srange(100) if not QQ(-a^3).is_perfect_power()] [] @@ -1955,7 +1955,7 @@ cdef class Rational(sage.structure.element.FieldElement): Ensure that :issue:`37153` is fixed, so that behaviour aligns with other rings and fields. - See :issue:`9466` and :trac:`26509` for context:: + See :issue:`9466` and :issue:`26509` for context:: sage: QQ(3).sqrt(extend=False, all=True) [] @@ -2835,7 +2835,7 @@ cdef class Rational(sage.structure.element.FieldElement): TESTS: - Check that :trac:`14870` is fixed:: + Check that :issue:`14870` is fixed:: sage: int(4) % QQ(3) 1 @@ -2939,7 +2939,7 @@ cdef class Rational(sage.structure.element.FieldElement): sage: (1/3).charpoly('x') x - 1/3 - The default is ``var='x'``. (:trac:`20967`):: + The default is ``var='x'``. (:issue:`20967`):: sage: a = QQ(2); a.charpoly('x') x - 2 @@ -3965,7 +3965,7 @@ cdef double mpq_get_d_nearest(mpq_t x) except? -648555075988944.5: AUTHORS: - - Paul Zimmermann, Jeroen Demeyer (:trac:`14416`) + - Paul Zimmermann, Jeroen Demeyer (:issue:`14416`) """ cdef mpz_ptr a = mpq_numref(x) cdef mpz_ptr b = mpq_denref(x) @@ -4167,7 +4167,7 @@ cdef class Z_to_Q(Morphism): To: Integer Ring This map is a morphism in the category of sets with partial - maps (see :trac:`15618`):: + maps (see :issue:`15618`):: sage: f.parent() Set of Morphisms from Rational Field to Integer Ring diff --git a/src/sage/rings/rational_field.py b/src/sage/rings/rational_field.py index 86bb2548aa3..7efb5e963d6 100644 --- a/src/sage/rings/rational_field.py +++ b/src/sage/rings/rational_field.py @@ -44,7 +44,7 @@ AUTHORS: -- Niles Johnson (2010-08): :trac:`3893`: ``random_element()`` should pass on +- Niles Johnson (2010-08): :issue:`3893`: ``random_element()`` should pass on ``*args`` and ``**kwds``. - Travis Scrimshaw (2012-10-18): Added additional docstrings for full coverage. @@ -1545,7 +1545,7 @@ def _magma_init_(self, magma): TESTS: - See :trac:`5521`:: + See :issue:`5521`:: sage: loads(dumps(QQ)) == QQ # optional - magma True diff --git a/src/sage/rings/real_arb.pyx b/src/sage/rings/real_arb.pyx index 8509b19cc66..c72d63e1a97 100644 --- a/src/sage/rings/real_arb.pyx +++ b/src/sage/rings/real_arb.pyx @@ -3715,8 +3715,8 @@ cdef class RealBall(RingElement): .. TODO:: At the moment RBF(beta(a,b)) does not work, one needs - RBF(a).beta(b) for this to work. See :trac:`32851` - and :trac:`24641`. + RBF(a).beta(b) for this to work. See :issue:`32851` + and :issue:`24641`. """ cdef RealBall a_ball, z_ball cdef RealBall res = self._new() diff --git a/src/sage/rings/real_double.pyx b/src/sage/rings/real_double.pyx index ba0b77150ad..33c3eb606af 100644 --- a/src/sage/rings/real_double.pyx +++ b/src/sage/rings/real_double.pyx @@ -318,7 +318,7 @@ cdef class RealDoubleField_class(sage.rings.abc.RealDoubleField): ... TypeError: no canonical coercion from Symbolic Ring to Real Double Field - Test that :trac:`15695` is fixed (see also :trac:`18076`):: + Test that :issue:`15695` is fixed (see also :issue:`18076`):: sage: 1j + numpy.float64(2) # needs numpy 2.00000000000000 + 1.00000000000000*I @@ -973,7 +973,7 @@ cdef class RealDoubleElement(FieldElement): """ TESTS: - Check that :trac:`28814` is fixed:: + Check that :issue:`28814` is fixed:: sage: mathematica(RDF(1e25)) # optional - mathematica 1.*^25 @@ -1756,7 +1756,7 @@ cdef class RealDoubleElement(FieldElement): TESTS: - Check comparisons with ``NaN`` (:trac:`16515`):: + Check comparisons with ``NaN`` (:issue:`16515`):: sage: n = RDF('NaN') sage: n == n diff --git a/src/sage/rings/real_double_element_gsl.pyx b/src/sage/rings/real_double_element_gsl.pyx index 05346073d08..37d95e2c6df 100644 --- a/src/sage/rings/real_double_element_gsl.pyx +++ b/src/sage/rings/real_double_element_gsl.pyx @@ -265,7 +265,7 @@ cdef class RealDoubleElement_gsl(RealDoubleElement): TESTS: Make sure that we can take the log of small numbers accurately - and the fix doesn't break preexisting values (:trac:`12557`):: + and the fix doesn't break preexisting values (:issue:`12557`):: sage: R = RealField(128) sage: def check_error(x): diff --git a/src/sage/rings/real_lazy.pyx b/src/sage/rings/real_lazy.pyx index a426a922d6d..ea6c7b264fb 100644 --- a/src/sage/rings/real_lazy.pyx +++ b/src/sage/rings/real_lazy.pyx @@ -13,7 +13,7 @@ specified in the forward direction). TESTS: -Bug :trac:`21991`:: +Bug :issue:`21991`:: sage: a = QuadraticField(5).gen() # needs sage.rings.number_field sage: u = -573147844013817084101/2*a + 1281597540372340914251/2 # needs sage.rings.number_field @@ -1484,7 +1484,7 @@ cdef class LazyConstant(LazyFieldElement): TESTS: - Check that :trac:`26839` is fixed:: + Check that :issue:`26839` is fixed:: sage: RLF.pi().eval(float) 3.141592653589793 diff --git a/src/sage/rings/real_mpfi.pyx b/src/sage/rings/real_mpfi.pyx index 47c24f7261b..69143c243f3 100644 --- a/src/sage/rings/real_mpfi.pyx +++ b/src/sage/rings/real_mpfi.pyx @@ -8,11 +8,11 @@ AUTHORS: - William Stein (2007-01-24): modifications and clean up and docs, etc. -- Niles Johnson (2010-08): :trac:`3893`: ``random_element()`` should pass +- Niles Johnson (2010-08): :issue:`3893`: ``random_element()`` should pass on ``*args`` and ``**kwds``. - Travis Scrimshaw (2012-10-20): Fixing scientific notation output - to fix :trac:`13634`. + to fix :issue:`13634`. - Travis Scrimshaw (2012-11-02): Added doctests for full coverage @@ -1641,7 +1641,7 @@ cdef class RealIntervalFieldElement(RingElement): TESTS: - Check that :trac:`13634` is fixed:: + Check that :issue:`13634` is fixed:: sage: RIF(0.025) 0.025000000000000002? @@ -1833,7 +1833,7 @@ cdef class RealIntervalFieldElement(RingElement): sage: -v -0.2679491924311227? - Check that :trac:`15166` is fixed:: + Check that :issue:`15166` is fixed:: sage: RIF(1.84e13).exp() [2.0985787164673874e323228496 .. +infinity] # 32-bit @@ -3869,7 +3869,7 @@ cdef class RealIntervalFieldElement(RingElement): False Check that ``_richcmp_`` is also working for intervals with different - precisions (:trac:`29220`):: + precisions (:issue:`29220`):: sage: from sage.structure.richcmp import op_LT, op_GT sage: R1 = RealIntervalField(2) @@ -5294,7 +5294,7 @@ def RealInterval(s, upper=None, int base=10, int pad=0, min_prec=53): TESTS: Make sure we've rounded up ``log(10,2)`` enough to guarantee - sufficient precision (:trac:`10164`). This is a little tricky + sufficient precision (:issue:`10164`). This is a little tricky because at the time of writing, we don't support intervals long enough to trip the error. However, at least we can make sure that we either do it correctly or fail noisily:: diff --git a/src/sage/rings/real_mpfr.pyx b/src/sage/rings/real_mpfr.pyx index af2657bbd49..20ba8dfa284 100644 --- a/src/sage/rings/real_mpfr.pyx +++ b/src/sage/rings/real_mpfr.pyx @@ -25,7 +25,7 @@ AUTHORS: - Robert Bradshaw (2009-09): decimal literals, optimizations - Jeroen Demeyer (2012-05-27): set the MPFR exponent range to the - maximal possible value (:trac:`13033`) + maximal possible value (:issue:`13033`) - Travis Scrimshaw (2012-11-02): Added doctests for full coverage @@ -1620,7 +1620,7 @@ cdef class RealNumber(sage.structure.element.RingElement): """ TESTS: - Check that :trac:`28814` is fixed:: + Check that :issue:`28814` is fixed:: sage: mathematica(3.5e-15) # optional - mathematica 3.5*^-15 @@ -2481,13 +2481,13 @@ cdef class RealNumber(sage.structure.element.RingElement): TESTS: - An indirect doctest to check this (see :trac:`14915`):: + An indirect doctest to check this (see :issue:`14915`):: sage: x,y = var('x, y') # needs sage.symbolic sage: integrate(y, y, 0.5, 8*log(x), algorithm='sympy') # needs sympy sage.symbolic 32*log(x)^2 - 0.125000000000000 - Check that :trac:`28903` is fixed:: + Check that :issue:`28903` is fixed:: sage: (10.0^400)._sympy_() # needs sympy 1.00000000000000e+400 @@ -3376,7 +3376,7 @@ cdef class RealNumber(sage.structure.element.RingElement): sage: sign*mantissa*(2**exponent) == a True - The mantissa is always a nonnegative number (see :trac:`14448`):: + The mantissa is always a nonnegative number (see :issue:`14448`):: sage: RR(-1).sign_mantissa_exponent() (-1, 4503599627370496, -52) @@ -4050,7 +4050,7 @@ cdef class RealNumber(sage.structure.element.RingElement): TESTS: - Check that :trac:`20502` is fixed:: + Check that :issue:`20502` is fixed:: sage: bool(RR('nan')) True @@ -4286,7 +4286,7 @@ cdef class RealNumber(sage.structure.element.RingElement): TESTS: - We see that :trac:`10736` is fixed:: + We see that :issue:`10736` is fixed:: sage: 16^0.5 4.00000000000000 @@ -5450,7 +5450,7 @@ cdef class RealNumber(sage.structure.element.RingElement): 1.2840254166877414840734205680624364583362808652814630892176, 1.2840254166877414840734205680624364583362808652814630892175] - Check that :trac:`12105` is fixed:: + Check that :issue:`12105` is fixed:: sage: RealField(53)(0.05).nth_root(7 * 10^8) 0.999999995720382 @@ -5785,7 +5785,7 @@ def create_RealNumber(s, int base=10, int pad=0, rnd="RNDN", int min_prec=53): 60 Make sure we've rounded up ``log(10,2)`` enough to guarantee - sufficient precision (:trac:`10164`):: + sufficient precision (:issue:`10164`):: sage: ks = 5*10**5, 10**6 sage: all(RealNumber("1." + "0"*k +"1")-1 > 0 for k in ks) diff --git a/src/sage/rings/ring.pyx b/src/sage/rings/ring.pyx index 2356eb44981..6072f88ae97 100644 --- a/src/sage/rings/ring.pyx +++ b/src/sage/rings/ring.pyx @@ -101,7 +101,7 @@ cdef class Ring(ParentWithGens): TESTS: - This is to test against the bug fixed in :trac:`9138`:: + This is to test against the bug fixed in :issue:`9138`:: sage: R. = QQ[] sage: R.sum([x,x]) @@ -149,7 +149,7 @@ cdef class Ring(ParentWithGens): sage: TestSuite(ZZ['x','y']).run(skip='_test_elements') # needs sage.libs.singular sage: TestSuite(ZZ['x','y']['t']).run() - Test against another bug fixed in :trac:`9944`:: + Test against another bug fixed in :issue:`9944`:: sage: QQ['x'].category() Join of Category of euclidean domains and Category of commutative algebras over @@ -390,7 +390,7 @@ cdef class Ring(ParentWithGens): TESTS: - Make sure that :trac:`11139` is fixed:: + Make sure that :issue:`11139` is fixed:: sage: R. = QQ[] sage: R.ideal([]) @@ -472,7 +472,7 @@ cdef class Ring(ParentWithGens): Ideal (x + y, y^3 + z) of Multivariate Polynomial Ring in x, y, z over Finite Field of size 7 - The following was implemented in :trac:`7797`:: + The following was implemented in :issue:`7797`:: sage: # needs sage.combinat sage.modules sage: A = SteenrodAlgebra(2) @@ -552,7 +552,7 @@ cdef class Ring(ParentWithGens): sage: T._ideal_class_(1) # needs sage.libs.singular - Since :trac:`7797`, non-commutative rings have ideals as well:: + Since :issue:`7797`, non-commutative rings have ideals as well:: sage: A = SteenrodAlgebra(2) # needs sage.combinat sage.modules sage: A._ideal_class_() # needs sage.combinat sage.modules @@ -622,7 +622,7 @@ cdef class Ring(ParentWithGens): TESTS: - Make sure that :trac:`13644` is fixed:: + Make sure that :issue:`13644` is fixed:: sage: # needs sage.rings.padics sage: K = Qp(3) @@ -800,7 +800,7 @@ cdef class Ring(ParentWithGens): sage: QQ.is_subring(ZZ) False - Every ring is a subring of itself, :trac:`17287`:: + Every ring is a subring of itself, :issue:`17287`:: sage: QQbar.is_subring(QQbar) # needs sage.rings.number_field True @@ -893,7 +893,7 @@ cdef class Ring(ParentWithGens): TESTS: - Make sure :trac:`10481` is fixed:: + Make sure :issue:`10481` is fixed:: sage: x = polygen(ZZ, 'x') sage: R. = ZZ['x'].quo(x^2) # needs sage.libs.pari @@ -904,7 +904,7 @@ cdef class Ring(ParentWithGens): sage: R.is_integral_domain() # needs sage.libs.pari False - Forward the proof flag to ``is_field``, see :trac:`22910`:: + Forward the proof flag to ``is_field``, see :issue:`22910`:: sage: # needs sage.libs.singular sage: R1. = GF(5)[] @@ -1831,7 +1831,7 @@ cdef class PrincipalIdealDomain(IntegralDomain): In a field, any nonzero element is a GCD of any nonempty set of nonzero elements. In previous versions, Sage used to return - 1 in the case of the rational field. However, since :trac:`10771`, + 1 in the case of the rational field. However, since :issue:`10771`, the rational field is considered as the *fraction field* of the integer ring. For the fraction field of an integral domain that provides both GCD and LCM, it is diff --git a/src/sage/rings/ring_extension.pyx b/src/sage/rings/ring_extension.pyx index fb8b04bf129..30addbff5aa 100644 --- a/src/sage/rings/ring_extension.pyx +++ b/src/sage/rings/ring_extension.pyx @@ -1968,7 +1968,7 @@ cdef class RingExtension_generic(CommutativeAlgebra): TESTS: - Ensure issue :trac:`34692` is fixed:: + Ensure issue :issue:`34692` is fixed:: sage: Fq = GF(11) sage: FqX. = Fq[] diff --git a/src/sage/rings/sum_of_squares.pyx b/src/sage/rings/sum_of_squares.pyx index 04be29e0fdc..5cd916690de 100644 --- a/src/sage/rings/sum_of_squares.pyx +++ b/src/sage/rings/sum_of_squares.pyx @@ -7,7 +7,7 @@ by direct method not relying on factorisation. AUTHORS: -- Vincent Delecroix (2014): first implementation (:trac:`16374`) +- Vincent Delecroix (2014): first implementation (:issue:`16374`) """ #***************************************************************************** # Copyright (C) 2014 Vincent Delecroix <20100.delecroix@gmail.com> diff --git a/src/sage/rings/tate_algebra.py b/src/sage/rings/tate_algebra.py index 2905efdb7a8..61563f71497 100644 --- a/src/sage/rings/tate_algebra.py +++ b/src/sage/rings/tate_algebra.py @@ -1301,7 +1301,7 @@ def is_integral_domain(self, proof=True): TESTS: - Check that :trac:`34372` is fixed:: + Check that :issue:`34372` is fixed:: sage: A. = TateAlgebra(Zp(3)) sage: R. = PolynomialRing(A) diff --git a/src/sage/rings/tate_algebra_ideal.pyx b/src/sage/rings/tate_algebra_ideal.pyx index 982d9581635..b27c98110a3 100644 --- a/src/sage/rings/tate_algebra_ideal.pyx +++ b/src/sage/rings/tate_algebra_ideal.pyx @@ -853,7 +853,7 @@ def groebner_basis_pote(I, prec, verbose=0): ...0000000001*x^2*y + ...1210121020 + O(3^10 * ), ...000000001*y^2 + ...210121020*x + O(3^9 * )] - We check that :trac:`30101` is fixed:: + We check that :issue:`30101` is fixed:: sage: I.groebner_basis(algorithm="PoTe", prec=100) # indirect doctest [...0000000001*x^3 + ...2222222222*y + ...000000000*x^2*y^2 + O(3^99 * ), @@ -1099,7 +1099,7 @@ def groebner_basis_vapote(I, prec, verbose=0, interrupt_red_with_val=False, inte ...0000000001*x^2*y + ...1210121020 + O(3^10 * ), ...000000001*y^2 + ...210121020*x + O(3^9 * )] - We check that :trac:`30101` is fixed:: + We check that :issue:`30101` is fixed:: sage: I.groebner_basis(algorithm="VaPoTe", prec=100) # indirect doctest [...0000000001*x^3 + ...2222222222*y + ...000000000*x^2*y^2 + O(3^99 * ), diff --git a/src/sage/rings/tests.py b/src/sage/rings/tests.py index 3eed7e1aa31..011cfc99070 100644 --- a/src/sage/rings/tests.py +++ b/src/sage/rings/tests.py @@ -184,7 +184,7 @@ def relative_number_field(n=2, maxdeg=2): TESTS: - Check that :trac:`32117` is fixed:: + Check that :issue:`32117` is fixed:: sage: set_random_seed(3030) sage: from sage.rings.tests import relative_number_field diff --git a/src/sage/rings/universal_cyclotomic_field.py b/src/sage/rings/universal_cyclotomic_field.py index a633a555d1d..a9b558bdb02 100644 --- a/src/sage/rings/universal_cyclotomic_field.py +++ b/src/sage/rings/universal_cyclotomic_field.py @@ -90,13 +90,13 @@ .. NOTE:: There used to be a native Sage version of the universal cyclotomic field - written by Christian Stump (see :trac:`8327`). It was slower on most + written by Christian Stump (see :issue:`8327`). It was slower on most operations and it was decided to use a version based on GAP instead (see - :trac:`18152`). One main difference in the design choices is that GAP stores + :issue:`18152`). One main difference in the design choices is that GAP stores dense vectors whereas the native ones used Python dictionaries (storing only nonzero coefficients). Most operations are faster with GAP except some operation on very sparse elements. All details can be found in - :trac:`18152`. + :issue:`18152`. REFERENCES: @@ -115,7 +115,7 @@ sage: UCF.zero().is_zero() True -Check that :trac:`14240` is fixed:: +Check that :issue:`14240` is fixed:: sage: K. = CyclotomicField(245) sage: h = K.random_element() @@ -124,21 +124,21 @@ sage: h_ucf**2 # random -169539876343/589714020*E(245) + 27815735177/20058300*E(245)^2 + ... + + 7828432097501/842448600*E(245)^244 -Check that :trac:`16130` is fixed:: +Check that :issue:`16130` is fixed:: sage: mat = matrix(UCF, 2, [-4, 2*E(7)^6, -5*E(13)^3 + 5*E(13)^8 - 4*E(13)^9, 0]) sage: mat._echelon_classical() [1 0] [0 1] -Check that :trac:`16631` is fixed:: +Check that :issue:`16631` is fixed:: sage: UCF.one() / 2 1/2 sage: UCF.one() / 2r 1/2 -Check that :trac:`17117` is fixed:: +Check that :issue:`17117` is fixed:: sage: e3 = UCF.gen(3) sage: N(e3) @@ -148,7 +148,7 @@ sage: imag(e3) -1/2*E(12)^7 + 1/2*E(12)^11 -Check that :trac:`25686` is fixed:: +Check that :issue:`25686` is fixed:: sage: UCF = UniversalCyclotomicField() sage: UCF.is_finite() @@ -156,10 +156,10 @@ AUTHORS: -- Christian Stump (2013): initial Sage version (see :trac:`8327`) -- Vincent Delecroix (2015): completed rewriting using libgap (see :trac:`18152`) -- Sebastian Oehms (2018): deleted the method is_finite since it returned the wrong result (see :trac:`25686`) -- Sebastian Oehms (2019): added :meth:`_factor_univariate_polynomial` (see :trac:`28631`) +- Christian Stump (2013): initial Sage version (see :issue:`8327`) +- Vincent Delecroix (2015): completed rewriting using libgap (see :issue:`18152`) +- Sebastian Oehms (2018): deleted the method is_finite since it returned the wrong result (see :issue:`25686`) +- Sebastian Oehms (2019): added :meth:`_factor_univariate_polynomial` (see :issue:`28631`) """ @@ -292,7 +292,7 @@ def _call_(self, x): sage: UCFtoQQbar(UCF.gen(3)) # indirect doctest -0.500000000000000? + 0.866025403784439?*I - Test that the bug reported in :trac:`19912` has been fixed:: + Test that the bug reported in :issue:`19912` has been fixed:: sage: UCFtoQQbar(UCF.gen(4)+1) I + 1 @@ -528,7 +528,7 @@ def _symbolic_(self, R): sage: SR(E(5) + 2*E(5,2) + 3*E(5,3)) # needs sage.symbolic -sqrt(5) + 1/4*I*sqrt(2*sqrt(5) + 10) - 1/4*I*sqrt(-2*sqrt(5) + 10) - 3/2 - Test that the bug reported in :trac:`19912` has been fixed:: + Test that the bug reported in :issue:`19912` has been fixed:: sage: SR(1+E(4)) # needs sage.symbolic I + 1 @@ -590,7 +590,7 @@ def to_cyclotomic_field(self, R=None): sage: CC(CF(x)) 0.309016994374947 + 0.951056516295154*I - Test that the bug reported in :trac:`19912` has been fixed:: + Test that the bug reported in :issue:`19912` has been fixed:: sage: a = 1+E(4); a 1 + E(4) @@ -621,7 +621,7 @@ def __hash__(self): TESTS: - See :trac:`19514`:: + See :issue:`19514`:: sage: hash(UCF.one()) 1 @@ -677,7 +677,7 @@ def _eval_complex_(self, R): sage: CC(E(3)) -0.500000000000000 + 0.866025403784439*I - Check that :trac:`19825` is fixed:: + Check that :issue:`19825` is fixed:: sage: CIF(E(3)) -0.500000000000000? + 0.866025403784439?*I @@ -693,7 +693,7 @@ def _eval_complex_(self, R): sage: _.imag().is_zero() True - Check that units are evaluated correctly (:trac:`23775`):: + Check that units are evaluated correctly (:issue:`23775`):: sage: CIF(1 + E(8) - E(8,3)) 2.41421356237310? @@ -727,7 +727,7 @@ def _eval_real_(self, R): sage: 2*cos(2*pi/7).n() # needs sage.symbolic 1.24697960371747 - Check that units are evaluated correctly (:trac:`23775`):: + Check that units are evaluated correctly (:issue:`23775`):: sage: RIF(1 + E(8) - E(8,3)) 2.414213562373095? @@ -1277,7 +1277,7 @@ def minpoly(self, var='x'): .. TODO:: Polynomials with libgap currently does not implement a ``.sage()`` method - (see :trac:`18266`). It would be faster/safer to not use string to + (see :issue:`18266`). It would be faster/safer to not use string to construct the polynomial. """ gap_p = libgap.MinimalPolynomial(libgap.eval("Rationals"), self._obj) diff --git a/src/sage/rings/valuation/augmented_valuation.py b/src/sage/rings/valuation/augmented_valuation.py index 6b23dab9d90..77221e8d0df 100644 --- a/src/sage/rings/valuation/augmented_valuation.py +++ b/src/sage/rings/valuation/augmented_valuation.py @@ -1091,7 +1091,7 @@ def lift(self, F): TESTS: - Verify that :trac:`30305` has been resolved:: + Verify that :issue:`30305` has been resolved:: sage: # needs sage.rings.number_field sage: R. = QQ[] @@ -1782,7 +1782,7 @@ def simplify(self, f, error=None, force=False, effective_degree=None, size_heuri sage: w.simplify(x^10/2 + 1, force=True) (u + 1)*2^-1 + O(2^4) - Check that :trac:`25607` has been resolved, i.e., the coefficients + Check that :issue:`25607` has been resolved, i.e., the coefficients in the following example are small:: sage: # needs sage.libs.ntl sage.rings.number_field diff --git a/src/sage/rings/valuation/inductive_valuation.py b/src/sage/rings/valuation/inductive_valuation.py index 1e3cb577416..9991aaac2e1 100644 --- a/src/sage/rings/valuation/inductive_valuation.py +++ b/src/sage/rings/valuation/inductive_valuation.py @@ -780,7 +780,7 @@ def mac_lane_step(self, G, principal_part_bound=None, assume_squarefree=False, a sage: eta2 # needs sage.geometry.polyhedron [ Gauss valuation induced by Valuation on rational function field induced by [ Gauss valuation induced by 3-adic valuation, v(x) = 1/3 ], v(y + x) = 2/3 ] - Check that :trac:`26066` has been resolved:: + Check that :issue:`26066` has been resolved:: sage: R. = QQ[] sage: v = QQ.valuation(2) @@ -1289,7 +1289,7 @@ def equivalence_decomposition(self, f, assume_not_equivalence_unit=False, coeffi sage: v2.is_equivalent(F.prod(), G) True - Check that :trac:`33422` is fixed:: + Check that :issue:`33422` is fixed:: sage: R. = QQ[] sage: v_7 = QQ.valuation(7) diff --git a/src/sage/rings/valuation/valuation_space.py b/src/sage/rings/valuation/valuation_space.py index c721fef2df8..485a622f33c 100644 --- a/src/sage/rings/valuation/valuation_space.py +++ b/src/sage/rings/valuation/valuation_space.py @@ -96,7 +96,7 @@ class DiscretePseudoValuationSpace(UniqueRepresentation, Homset): .. TODO:: - The comparison problem might be fixed by :trac:`22029` or similar. + The comparison problem might be fixed by :issue:`22029` or similar. TESTS:: diff --git a/src/sage/sat/boolean_polynomials.py b/src/sage/sat/boolean_polynomials.py index 32753175384..08cf03cf18c 100644 --- a/src/sage/sat/boolean_polynomials.py +++ b/src/sage/sat/boolean_polynomials.py @@ -73,7 +73,7 @@ def solve(F, converter=None, solver=None, n=1, target_variables=None, **kwds): We construct a very small-scale AES system of equations:: sage: sr = mq.SR(1, 1, 1, 4, gf2=True, polybori=True) - sage: while True: # workaround (see :trac:`31891`) + sage: while True: # workaround (see :issue:`31891`) ....: try: ....: F, s = sr.polynomial_system() ....: break @@ -130,7 +130,7 @@ def solve(F, converter=None, solver=None, n=1, target_variables=None, **kwds): sage: solve_sat(F, n=infinity, target_variables=[a,b]) [{b: 0, a: 0}, {b: 1, a: 1}] - Here, we generate and solve the cubic equations of the AES SBox (see :trac:`26676`):: + Here, we generate and solve the cubic equations of the AES SBox (see :issue:`26676`):: sage: # long time sage: from sage.rings.polynomial.multi_polynomial_sequence import PolynomialSequence @@ -150,7 +150,7 @@ def solve(F, converter=None, solver=None, n=1, target_variables=None, **kwds): TESTS: - Test that :trac:`26676` is fixed:: + Test that :issue:`26676` is fixed:: sage: varl = ['k{0}'.format(p) for p in range(29)] sage: B = BooleanPolynomialRing(names=varl) diff --git a/src/sage/sat/solvers/dimacs.py b/src/sage/sat/solvers/dimacs.py index 51e81a925a1..0c3060eb4c3 100644 --- a/src/sage/sat/solvers/dimacs.py +++ b/src/sage/sat/solvers/dimacs.py @@ -491,7 +491,7 @@ def __call__(self, assumptions=None): sage: from sage.sat.boolean_polynomials import solve as solve_sat sage: sr = mq.SR(1, 1, 1, 4, gf2=True, polybori=True) # needs sage.rings.finite_rings sage.rings.polynomial.pbori - sage: while True: # workaround (see :trac:`31891`) # needs sage.rings.finite_rings sage.rings.polynomial.pbori + sage: while True: # workaround (see :issue:`31891`) # needs sage.rings.finite_rings sage.rings.polynomial.pbori ....: try: ....: F, s = sr.polynomial_system() ....: break diff --git a/src/sage/sat/solvers/satsolver.pyx b/src/sage/sat/solvers/satsolver.pyx index 04b9c95f089..521577fda71 100644 --- a/src/sage/sat/solvers/satsolver.pyx +++ b/src/sage/sat/solvers/satsolver.pyx @@ -98,7 +98,7 @@ cdef class SatSolver: http://elis.dvo.ru/~lab_11/glpk-doc/cnfsat.pdf. The differences were summarized in the discussion on the issue - :trac:`16924`. This method assumes the following DIMACS format: + :issue:`16924`. This method assumes the following DIMACS format: - Any line starting with "c" is a comment - Any line starting with "p" is a header diff --git a/src/sage/schemes/affine/affine_morphism.py b/src/sage/schemes/affine/affine_morphism.py index dd9eb7cf844..e55f75b4e18 100644 --- a/src/sage/schemes/affine/affine_morphism.py +++ b/src/sage/schemes/affine/affine_morphism.py @@ -237,7 +237,7 @@ def __call__(self, x, check=True): TESTS: - Check that :trac:`32209` is fixed:: + Check that :issue:`32209` is fixed:: sage: S. = AffineSpace(ZZ, 2) sage: T. = AffineSpace(ZZ, 2) diff --git a/src/sage/schemes/affine/affine_space.py b/src/sage/schemes/affine/affine_space.py index fdf38862068..05d3c5b59e3 100644 --- a/src/sage/schemes/affine/affine_space.py +++ b/src/sage/schemes/affine/affine_space.py @@ -740,7 +740,7 @@ def projective_embedding(self, i=None, PP=None): TESTS: - Check that :trac:`25897` is fixed:: + Check that :issue:`25897` is fixed:: sage: A. = AffineSpace(ZZ, 2) sage: A.projective_embedding(4) diff --git a/src/sage/schemes/affine/affine_subscheme.py b/src/sage/schemes/affine/affine_subscheme.py index 6f4b3d786f3..c32b2d29e7c 100644 --- a/src/sage/schemes/affine/affine_subscheme.py +++ b/src/sage/schemes/affine/affine_subscheme.py @@ -476,7 +476,7 @@ def multiplicity(self, P): sage: X.multiplicity(Q2) # needs sage.libs.singular 7 - Check that :trac:`27479` is fixed:: + Check that :issue:`27479` is fixed:: sage: A1. = AffineSpace(QQ, 1) sage: X = A1.subscheme([x^1789 + x]) diff --git a/src/sage/schemes/curves/projective_curve.py b/src/sage/schemes/curves/projective_curve.py index 0b3f311eb62..c12756ac2fe 100644 --- a/src/sage/schemes/curves/projective_curve.py +++ b/src/sage/schemes/curves/projective_curve.py @@ -874,7 +874,7 @@ def is_singular(self, P=None): sage: E.is_singular() # needs sage.rings.function_field False - Showing that :trac:`12187` is fixed:: + Showing that :issue:`12187` is fixed:: sage: F. = GF(2)[] sage: G = Curve(X^2 + Y*Z) diff --git a/src/sage/schemes/curves/zariski_vankampen.py b/src/sage/schemes/curves/zariski_vankampen.py index fa30e97085b..296529f18c3 100644 --- a/src/sage/schemes/curves/zariski_vankampen.py +++ b/src/sage/schemes/curves/zariski_vankampen.py @@ -825,7 +825,7 @@ def braid_in_segment(glist, x0, x1, precision={}): TESTS: - Check that :trac:`26503` is fixed:: + Check that :issue:`26503` is fixed:: sage: # needs sage.rings.real_mpfr sage.symbolic sage: wp = QQ['t']([1, 1, 1]).roots(QQbar)[0][0] diff --git a/src/sage/schemes/cyclic_covers/cycliccover_finite_field.py b/src/sage/schemes/cyclic_covers/cycliccover_finite_field.py index f2d753baf8f..1f92bb1b0b7 100644 --- a/src/sage/schemes/cyclic_covers/cycliccover_finite_field.py +++ b/src/sage/schemes/cyclic_covers/cycliccover_finite_field.py @@ -1150,7 +1150,7 @@ def frobenius_polynomial(self): x^8 + 532*x^7 - 2877542*x^6 - 242628176*x^5 + 4390163797795*x^4 - 247015136050256*x^3 - 2982540407204025062*x^2 + 561382189105547134612*x + 1074309286591662654798721 - A non-monic example checking that :trac:`29015` is fixed:: + A non-monic example checking that :issue:`29015` is fixed:: sage: a = 3 sage: K. = GF(83^3); diff --git a/src/sage/schemes/elliptic_curves/BSD.py b/src/sage/schemes/elliptic_curves/BSD.py index bf3f302b978..90b4fdaad7f 100644 --- a/src/sage/schemes/elliptic_curves/BSD.py +++ b/src/sage/schemes/elliptic_curves/BSD.py @@ -474,7 +474,7 @@ def prove_BSD(E, verbosity=0, two_desc='mwrank', proof=None, secs_hi=5, TESTS: - This was fixed by :trac:`8184` and :trac:`7575`:: + This was fixed by :issue:`8184` and :issue:`7575`:: sage: EllipticCurve('438e1').prove_BSD(verbosity=1) p = 2: True by 2-descent... diff --git a/src/sage/schemes/elliptic_curves/cardinality.py b/src/sage/schemes/elliptic_curves/cardinality.py index 05b54c7d1d5..aaa1cf85542 100644 --- a/src/sage/schemes/elliptic_curves/cardinality.py +++ b/src/sage/schemes/elliptic_curves/cardinality.py @@ -106,7 +106,7 @@ def _cardinality_with_j_invariant_1728(self): TESTS: - Check that a bug noted at :trac:`15667` is fixed:: + Check that a bug noted at :issue:`15667` is fixed:: sage: F. = GF(3^6,'a') sage: EllipticCurve([a^5 + 2*a^3 + 2*a^2 + 2*a, a^4 + a^3 + 2*a + 1]).cardinality() diff --git a/src/sage/schemes/elliptic_curves/constructor.py b/src/sage/schemes/elliptic_curves/constructor.py index 396a2ab2797..fb1c09df2ba 100644 --- a/src/sage/schemes/elliptic_curves/constructor.py +++ b/src/sage/schemes/elliptic_curves/constructor.py @@ -182,14 +182,14 @@ class EllipticCurveFactory(UniqueFactory): Elliptic Curve defined by y^2 = x^3 + x + 1 over Finite Field of size 5 2 - See :trac:`6657` :: + See :issue:`6657` :: sage: EllipticCurve(GF(144169), j=1728) # needs sage.rings.finite_rings Elliptic Curve defined by y^2 = x^3 + x over Finite Field of size 144169 Elliptic curves over the same ring with the same Weierstrass coefficients are identical, even when they are constructed in - different ways (see :trac:`11474`):: + different ways (see :issue:`11474`):: sage: EllipticCurve('11a3') is EllipticCurve(QQ, [0, -1, 1, 0, 0]) True @@ -216,7 +216,7 @@ class EllipticCurveFactory(UniqueFactory): Without this option, constructing the curve could take a long time since both `j` and `j-1728` have to be factored to compute the - minimal twist (see :trac:`13100`):: + minimal twist (see :issue:`13100`):: sage: E = EllipticCurve_from_j(2^256+1, minimal_twist=False) sage: E.j_invariant() == 2^256+1 @@ -229,7 +229,7 @@ class EllipticCurveFactory(UniqueFactory): Elliptic Curve defined by y^2 = x^3 + x + 1 over Multivariate Polynomial Ring in u, v over Integer Ring - We create a curve and a point over ``QQbar`` (see :trac:`6879`):: + We create a curve and a point over ``QQbar`` (see :issue:`6879`):: sage: E = EllipticCurve(QQbar, [0,1]) # needs sage.rings.number_field sage: E(0) # needs sage.rings.number_field @@ -249,7 +249,7 @@ class EllipticCurveFactory(UniqueFactory): Elliptic Curve defined by y^2 = x^3 + 5*x + 6 over Algebraic Field Algebraic Field - See :trac:`6657` :: + See :issue:`6657` :: sage: EllipticCurve(3, j=1728) Traceback (most recent call last): @@ -263,7 +263,7 @@ class EllipticCurveFactory(UniqueFactory): If the universe of the coefficients is a general field, the object constructed has type :class:`EllipticCurve_field`. Otherwise it is - :class:`EllipticCurve_generic`. See :trac:`9816` :: + :class:`EllipticCurve_generic`. See :issue:`9816` :: sage: E = EllipticCurve([QQbar(1), 3]); E # needs sage.rings.number_field Elliptic Curve defined by y^2 = x^3 + x + 3 over Algebraic Field @@ -297,13 +297,13 @@ class EllipticCurveFactory(UniqueFactory): Category of abelian varieties over Fraction Field of Univariate Polynomial Ring in t over Rational Field - See :trac:`12517`:: + See :issue:`12517`:: sage: E = EllipticCurve([1..5]) sage: EllipticCurve(E.a_invariants()) Elliptic Curve defined by y^2 + x*y + 3*y = x^3 + 2*x^2 + 4*x + 5 over Rational Field - See :trac:`11773`:: + See :issue:`11773`:: sage: E = EllipticCurve() Traceback (most recent call last): @@ -1077,7 +1077,7 @@ def EllipticCurve_from_cubic(F, P=None, morphism=True): TESTS: - Here is a test for :trac:`21092`:: + Here is a test for :issue:`21092`:: sage: R. = QQ[] sage: cubic = -3*x^2*y + 3*x*y^2 + 4*x^2*z + 4*y^2*z - 3*x*z^2 + 3*y*z^2 - 8*z^3 @@ -1324,7 +1324,7 @@ def chord_and_tangent(F, P): <... 'sage.rings.rational.Rational'>, <... 'sage.rings.rational.Rational'>] - See :trac:`16068`:: + See :issue:`16068`:: sage: F = x**3 - 4*x**2*y - 65*x*y**2 + 3*x*y*z - 76*y*z**2 sage: chord_and_tangent(F, [0, 1, 0]) diff --git a/src/sage/schemes/elliptic_curves/ell_field.py b/src/sage/schemes/elliptic_curves/ell_field.py index 0c944f0f938..31e6d475bbe 100644 --- a/src/sage/schemes/elliptic_curves/ell_field.py +++ b/src/sage/schemes/elliptic_curves/ell_field.py @@ -716,7 +716,7 @@ def descend_to(self, K, f=None): TESTS: - Check that :trac:`16456` is fixed:: + Check that :issue:`16456` is fixed:: sage: # needs sage.rings.number_field sage: K. = NumberField(x^3 - 2) @@ -1057,7 +1057,7 @@ def division_field(self, n, names='t', map=False, **kwds): AUTHORS: - - Jeroen Demeyer (2014-01-06): :trac:`11905`, use + - Jeroen Demeyer (2014-01-06): :issue:`11905`, use ``splitting_field`` method, moved from ``gal_reps.py``, make it work over number fields. - Lorenz Panny (2022): extend to finite fields @@ -1300,7 +1300,7 @@ def isogeny(self, kernel, codomain=None, degree=None, model=None, check=True, al To: Elliptic Curve defined by y^2 = x^3 + 272790262*x + 1903695400 over Finite Field of size 4294967291 - Not all polynomials define a finite subgroup (:trac:`6384`):: + Not all polynomials define a finite subgroup (:issue:`6384`):: sage: E = EllipticCurve(GF(31), [1,0,0,1,2]) sage: phi = E.isogeny([14,27,4,1]) @@ -1319,8 +1319,8 @@ def isogeny(self, kernel, codomain=None, degree=None, model=None, check=True, al TESTS: Until the checking of kernel polynomials was implemented in - :trac:`23222`, the following raised no error but returned an - invalid morphism. See also :trac:`11578`:: + :issue:`23222`, the following raised no error but returned an + invalid morphism. See also :issue:`11578`:: sage: # needs sage.rings.number_field sage: R. = QQ[] diff --git a/src/sage/schemes/elliptic_curves/ell_finite_field.py b/src/sage/schemes/elliptic_curves/ell_finite_field.py index 367d79f703a..b751543e0f1 100644 --- a/src/sage/schemes/elliptic_curves/ell_finite_field.py +++ b/src/sage/schemes/elliptic_curves/ell_finite_field.py @@ -124,7 +124,7 @@ def _points_via_group_structure(self): sage: len(S) 100 - See :trac:`4687`, where the following example did not work:: + See :issue:`4687`, where the following example did not work:: sage: E = EllipticCurve(GF(2),[0, 0, 1, 1, 1]) sage: E.points() @@ -300,7 +300,7 @@ def random_element(self): AUTHORS: - Jeroen Demeyer (2014-09-09): choose points uniformly random, - see :trac:`16951`. + see :issue:`16951`. EXAMPLES:: @@ -346,7 +346,7 @@ def random_element(self): TESTS: - See :trac:`8311`:: + See :issue:`8311`:: sage: E = EllipticCurve(GF(3), [0,0,0,2,2]) sage: E.random_element() @@ -403,7 +403,7 @@ def trace_of_frobenius(self): sage: E.trace_of_frobenius() # needs sage.rings.finite_rings 802 - The following shows that the issue from :trac:`2849` is fixed:: + The following shows that the issue from :issue:`2849` is fixed:: sage: E = EllipticCurve(GF(3^5,'a'),[-1,-1]) # needs sage.rings.finite_rings sage: E.trace_of_frobenius() # needs sage.rings.finite_rings @@ -549,7 +549,7 @@ def cardinality(self, algorithm=None, extension_degree=1): sage: E.cardinality(algorithm='foobar') 10076 - Check that a bug noted at :trac:`15667` is fixed:: + Check that a bug noted at :issue:`15667` is fixed:: sage: # needs sage.rings.finite_rings sage: F. = GF(3^6) @@ -778,7 +778,7 @@ def cardinality_pari(self): sage: E.cardinality_pari() 999945 - Since :trac:`16931`, this now works over finite fields which + Since :issue:`16931`, this now works over finite fields which are not prime fields:: sage: # needs sage.rings.finite_rings @@ -1028,7 +1028,7 @@ def abelian_group(self): sage: E.cardinality(extension_degree=100) 1267650600228231653296516890625 - This tests the patch for :trac:`3111`, using 10 primes randomly + This tests the patch for :issue:`3111`, using 10 primes randomly selected:: sage: E = EllipticCurve('389a') @@ -1038,7 +1038,7 @@ def abelian_group(self): ....: if p != 389: ....: G = E.change_ring(GF(p)).abelian_group() - This tests that the bug reported in :trac:`3926` has been fixed:: + This tests that the bug reported in :issue:`3926` has been fixed:: sage: # needs sage.rings.number_field sage: K. = QuadraticField(-1) diff --git a/src/sage/schemes/elliptic_curves/ell_generic.py b/src/sage/schemes/elliptic_curves/ell_generic.py index 07271b9fd39..450d1a623e3 100644 --- a/src/sage/schemes/elliptic_curves/ell_generic.py +++ b/src/sage/schemes/elliptic_curves/ell_generic.py @@ -279,7 +279,7 @@ def _latex_(self): sage: E._latex_() 'y^2 + x y + 3 y = x^{3} + 2 x^{2} + 4 x + 5 ' - Check that :trac:`12524` is solved:: + Check that :issue:`12524` is solved:: sage: x = polygen(ZZ, 'x') sage: K. = NumberField(x^2 - x - 1) # needs sage.rings.number_field @@ -865,7 +865,7 @@ def lift_x(self, x, all=False, extend=False): sage: 2*P ((1/4*x^4 - 4*x)/(x^3 + 2) : ((-1/8*x^6 - 5*x^3 + 4)/(x^6 + 4*x^3 + 4))*y : 1) - Check that :trac:`30297` is fixed:: + Check that :issue:`30297` is fixed:: sage: K = Qp(5) # needs sage.rings.padics sage: E = EllipticCurve([K(0), K(1)]) # needs sage.rings.padics @@ -981,7 +981,7 @@ def _point_homset(self, *args, **kwds): Abelian group of points on Elliptic Curve defined by y^2 = x^3 + x + 1 over Finite Field in a of size 5^10 - Point sets of elliptic curves are unique (see :trac:`17008`):: + Point sets of elliptic curves are unique (see :issue:`17008`):: sage: E = EllipticCurve([2, 3]) sage: E.point_homset() is E.point_homset(QQ) @@ -1998,7 +1998,7 @@ def division_polynomial(self, m, x=None, two_torsion_multiplicity=2, force_evalu TESTS: - Check that :trac:`33164` is fixed:: + Check that :issue:`33164` is fixed:: sage: E = EllipticCurve('11a3') sage: R. = QQ[] @@ -2189,7 +2189,7 @@ def _multiple_x_numerator(self, n, x=None): sage: E._multiple_x_numerator(11) is E._multiple_x_numerator(11) True - Check for :trac:`33156`:: + Check for :issue:`33156`:: sage: # needs sage.rings.finite_rings sage: E = EllipticCurve(GF(65537), [5,5]) @@ -2286,7 +2286,7 @@ def _multiple_x_denominator(self, n, x=None): sage: E._multiple_x_denominator(11) is E._multiple_x_denominator(11) True - Check for :trac:`33156`:: + Check for :issue:`33156`:: sage: # needs sage.rings.finite_rings sage: E = EllipticCurve(GF(65537), [5,5]) @@ -2410,7 +2410,7 @@ def multiplication_by_m(self, m, x_only=False): ....: Q = -n*P ....: assert Q == E(eval(f,P)) - The following test shows that :trac:`4364` is indeed fixed:: + The following test shows that :issue:`4364` is indeed fixed:: sage: # needs sage.rings.finite_rings sage: p = next_prime(2^30 - 41) @@ -2422,7 +2422,7 @@ def multiplication_by_m(self, m, x_only=False): sage: f = E.multiplication_by_m(2) sage: assert(E(eval(f,P)) == 2*P) - The following test shows that :trac:`6413` is fixed for elliptic curves over finite fields:: + The following test shows that :issue:`6413` is fixed for elliptic curves over finite fields:: sage: p = 7 sage: K. = GF(p^2) sage: E = EllipticCurve(K, [a + 3, 5 - a]) @@ -2527,7 +2527,7 @@ def multiplication_by_m_isogeny(self, m): NOTE: This function is currently *much* slower than the result of ``self.multiplication_by_m()``, because constructing an isogeny precomputes a significant amount - of information. See :trac:`7368` and :trac:`8014` for the + of information. See :issue:`7368` and :issue:`8014` for the status of improving this situation. INPUT: @@ -2552,7 +2552,7 @@ def multiplication_by_m_isogeny(self, m): TESTS: - Tests for :trac:`32490`:: + Tests for :issue:`32490`:: sage: E = EllipticCurve(QQbar, [1,0]) # needs sage.rings.number_field sage: E.multiplication_by_m_isogeny(1).rational_maps() # needs sage.rings.number_field @@ -2574,7 +2574,7 @@ def multiplication_by_m_isogeny(self, m): ((1/4*x^4 + 33/4*x^2 - 121/2*x + 363/4)/(x^3 - 3/4*x^2 - 33/2*x + 121/4), (-1/256*x^7 + 1/128*x^6*y - 7/256*x^6 - 3/256*x^5*y - 105/256*x^5 - 165/256*x^4*y + 1255/256*x^4 + 605/128*x^3*y - 473/64*x^3 - 1815/128*x^2*y - 10527/256*x^2 + 2541/128*x*y + 4477/32*x - 1331/128*y - 30613/256)/(1/16*x^6 - 3/32*x^5 - 519/256*x^4 + 341/64*x^3 + 1815/128*x^2 - 3993/64*x + 14641/256)) - Test for :trac:`34727`:: + Test for :issue:`34727`:: sage: E = EllipticCurve([5,5]) sage: E.multiplication_by_m_isogeny(-1) @@ -2992,7 +2992,7 @@ def short_weierstrass_model(self, complete_cube=True): sage: E.short_weierstrass_model(complete_cube=False) Elliptic Curve defined by y^2 = x^3 + x + 2 over Finite Field of size 3 - This used to be different see :trac:`3973`:: + This used to be different see :issue:`3973`:: sage: E.short_weierstrass_model() Elliptic Curve defined by y^2 = x^3 + x + 2 over Finite Field of size 3 @@ -3313,7 +3313,7 @@ def plot(self, xmin=None, xmax=None, components='both', **args): sage: plot(E, xmin=25, xmax=26) # needs sage.plot Graphics object consisting of 2 graphics primitives - With :trac:`12766` we added the components keyword:: + With :issue:`12766` we added the components keyword:: sage: E.real_components() 2 @@ -3538,7 +3538,7 @@ def _p_primary_torsion_basis(self, p, m=None): TESTS: - This shows that the bug at :trac:`4937` is fixed:: + This shows that the bug at :issue:`4937` is fixed:: sage: a = 804515977734860566494239770982282063895480484302363715494873 sage: b = 584772221603632866665682322899297141793188252000674256662071 diff --git a/src/sage/schemes/elliptic_curves/ell_local_data.py b/src/sage/schemes/elliptic_curves/ell_local_data.py index a71bc7fd25f..5e897054c28 100644 --- a/src/sage/schemes/elliptic_curves/ell_local_data.py +++ b/src/sage/schemes/elliptic_curves/ell_local_data.py @@ -358,7 +358,7 @@ def minimal_model(self, reduce=True): sage: E.local_data(ZZ.ideal(2), algorithm="pari").minimal_model() Elliptic Curve defined by y^2 = x^3 - x^2 - 3*x + 2 over Rational Field - :trac:`14476`:: + :issue:`14476`:: sage: # needs sage.rings.number_field sage: t = QQ['t'].0 @@ -705,7 +705,7 @@ def _tate(self, proof=None, globally=False): - ``KS`` (string) is the Kodaira symbol - ``cp`` (int) is the Tamagawa number - EXAMPLES (this raised a type error in sage prior to 4.4.4, see :trac:`7930`) :: + EXAMPLES (this raised a type error in sage prior to 4.4.4, see :issue:`7930`) :: sage: # needs sage.rings.number_field sage: E = EllipticCurve('99d1') @@ -720,7 +720,7 @@ def _tate(self, proof=None, globally=False): EXAMPLES: - The following example shows that the bug at :trac:`9324` is fixed:: + The following example shows that the bug at :issue:`9324` is fixed:: sage: # needs sage.rings.number_field sage: x = polygen(ZZ, 'x') @@ -729,7 +729,7 @@ def _tate(self, proof=None, globally=False): sage: E.conductor() # indirect doctest Fractional ideal (18, 6*a) - The following example shows that the bug at :trac:`9417` is fixed:: + The following example shows that the bug at :issue:`9417` is fixed:: sage: # needs sage.rings.number_field sage: K. = NumberField(x^2 + 18*x + 1) @@ -737,7 +737,7 @@ def _tate(self, proof=None, globally=False): sage: E.tamagawa_number(K.ideal(2)) 4 - This is to show that the bug :trac:`11630` is fixed. (The computation of the class group would produce a warning):: + This is to show that the bug :issue:`11630` is fixed. (The computation of the class group would produce a warning):: sage: # needs sage.rings.number_field sage: K. = NumberField(x^7 - 2*x + 177) diff --git a/src/sage/schemes/elliptic_curves/ell_modular_symbols.py b/src/sage/schemes/elliptic_curves/ell_modular_symbols.py index 055c7eaec45..6fc75d2cabb 100644 --- a/src/sage/schemes/elliptic_curves/ell_modular_symbols.py +++ b/src/sage/schemes/elliptic_curves/ell_modular_symbols.py @@ -274,7 +274,7 @@ def __init__(self, E, sign, nap=1000): sage: [C.modular_symbol(implementation="eclib")(0) for C in E.isogeny_class()] [1/4, 1/8, 1/4, 1/2, 1/8, 1/16, 1/2, 1] - Since :trac:`10256`, the interface for negative modular symbols in eclib is available:: + Since :issue:`10256`, the interface for negative modular symbols in eclib is available:: sage: E = EllipticCurve('11a1') sage: Mplus = E.modular_symbol(+1); Mplus @@ -295,7 +295,7 @@ def __init__(self, E, sign, nap=1000): sage: [E.modular_symbol()._scaling for E in cremona_curves([14])] [1/2, 1, 1/2, 1/2, 1, 1] - TESTS (for :trac:`10236`):: + TESTS (for :issue:`10236`):: sage: E = EllipticCurve('11a1') sage: m = E.modular_symbol(implementation="eclib") @@ -305,7 +305,7 @@ def __init__(self, E, sign, nap=1000): 1/5 If ``nap`` is too small, the normalization in eclib used to be - incorrect (see :trac:`31317`), but since ``eclib`` version + incorrect (see :issue:`31317`), but since ``eclib`` version v20210310 the value of ``nap`` is increased automatically by ``eclib``:: diff --git a/src/sage/schemes/elliptic_curves/ell_number_field.py b/src/sage/schemes/elliptic_curves/ell_number_field.py index a2c3687a4bf..b0c07df78b6 100644 --- a/src/sage/schemes/elliptic_curves/ell_number_field.py +++ b/src/sage/schemes/elliptic_curves/ell_number_field.py @@ -150,7 +150,7 @@ def base_extend(self, R): with defining polynomial x^2 + 5 with a = 2.236067977499790?*I Check that non-torsion points are remembered when extending - the base field (see :trac:`16034`):: + the base field (see :issue:`16034`):: sage: E = EllipticCurve([1, 0, 1, -1751, -31352]) sage: K. = QuadraticField(5) @@ -266,7 +266,7 @@ def simon_two_descent(self, verbose=0, lim1=2, lim3=4, limtriv=2, sage: E.simon_two_descent() # long time (3s on sage.math, 2013), points can vary (1, 3, [...]) - Check that the bug reported in :trac:`15483` is fixed:: + Check that the bug reported in :issue:`15483` is fixed:: sage: K. = QuadraticField(229) sage: c4 = 2173 - 235*(1 - s)/2 @@ -615,7 +615,7 @@ def global_integral_model(self): y^2 + (-i)*x*y + (-25*i)*y = x^3 + 5*i*x^2 + 125*i*x + 3125*i over Number Field in i with defining polynomial x^2 + 1 - :trac:`7935`:: + :issue:`7935`:: sage: K. = NumberField(x^2 - 38) sage: E = EllipticCurve([a,1/2]) @@ -623,7 +623,7 @@ def global_integral_model(self): Elliptic Curve defined by y^2 = x^3 + 1444*a*x + 27436 over Number Field in a with defining polynomial x^2 - 38 - :trac:`9266`:: + :issue:`9266`:: sage: K. = NumberField(x^2 - 5) sage: w = (1+s)/2 @@ -632,7 +632,7 @@ def global_integral_model(self): Elliptic Curve defined by y^2 = x^3 + 2*x + (1/2*s+1/2) over Number Field in s with defining polynomial x^2 - 5 - :trac:`12151`:: + :issue:`12151`:: sage: K. = NumberField(x^2 + 161*x - 150) sage: E = EllipticCurve([25105/216*v - 3839/36, 634768555/7776*v - 98002625/1296, 634768555/7776*v - 98002625/1296, 0, 0]) @@ -641,7 +641,7 @@ def global_integral_model(self): y^2 + (2094779518028859*v-1940492905300351)*x*y + (477997268472544193101178234454165304071127500*v-442791377441346852919930773849502871958097500)*y = x^3 + (26519784690047674853185542622500*v-24566525306469707225840460652500)*x^2 over Number Field in v with defining polynomial x^2 + 161*x - 150 - :trac:`14476`:: + :issue:`14476`:: sage: R. = QQ[] sage: K. = NumberField(t^4 - t^3 - 3*t^2 - t + 1) @@ -800,7 +800,7 @@ def _scale_by_units(self): TESTS: - See :trac:`34174`. This used to raise an error due to insufficient precision:: + See :issue:`34174`. This used to raise an error due to insufficient precision:: sage: K. = QuadraticField(4569) sage: j = 46969655/32768 @@ -915,7 +915,7 @@ def local_data(self, P=None, proof=None, algorithm="pari", globally=False): Kodaira Symbol: I1 Tamagawa Number: 1 - An example raised in :trac:`3897`:: + An example raised in :issue:`3897`:: sage: E = EllipticCurve([1,1]) sage: E.local_data(3) @@ -1423,7 +1423,7 @@ def tamagawa_product_bsd(self): sage: [dav.tamagawa_number() for dav in da] [1, 1] - An example over `\QQ` (:trac:`9413`):: + An example over `\QQ` (:issue:`9413`):: sage: E = EllipticCurve('30a') sage: E.tamagawa_product_bsd() @@ -1511,14 +1511,14 @@ def conductor(self): sage: E.conductor() Fractional ideal (1) - An example which used to fail (see :trac:`5307`):: + An example which used to fail (see :issue:`5307`):: sage: K. = NumberField(x^2 + x + 6) sage: E = EllipticCurve([w, -1, 0, -w-6, 0]) sage: E.conductor() Fractional ideal (86304, w + 5898) - An example raised in :trac:`11346`:: + An example raised in :issue:`11346`:: sage: K. = NumberField(x^2 - x - 1) sage: E1 = EllipticCurve(K, [0, 0, 0, -1/48, -161/864]) @@ -1812,7 +1812,7 @@ def global_minimal_model(self, proof=None, semi_global=False): sage: E2.local_data() [] - See :trac:`11347`:: + See :issue:`11347`:: sage: K. = NumberField(x^2 - x - 1) sage: E = EllipticCurve(K, [0, 0, 0, -1/48, 161/864]) @@ -1824,7 +1824,7 @@ def global_minimal_model(self, proof=None, semi_global=False): sage: [(p.norm(), e) for p, e in E2.discriminant().factor()] [(-5, 2), (9, 1)] - See :trac:`14472`, this used not to work over a relative extension:: + See :issue:`14472`, this used not to work over a relative extension:: sage: K1. = NumberField(x^2 + x + 1) sage: m = polygen(K1) @@ -1834,7 +1834,7 @@ def global_minimal_model(self, proof=None, semi_global=False): Elliptic Curve defined by y^2 + y = x^3 over Number Field in v with defining polynomial x^2 - w + 1 over its base field - See :trac:`18662`: for fields of class number greater than 1, + See :issue:`18662`: for fields of class number greater than 1, even when global minimal models did exist, their computation was not implemented. Now it is:: @@ -2358,7 +2358,7 @@ def gens(self, **kwds): (-186948623/4656964 : 549438861195/10049728312*a : 1)] It can happen that no points are found if the height bounds - used in the search are too small (see :trac:`10745`):: + used in the search are too small (see :issue:`10745`):: sage: K. = NumberField(x^4 + x^2 - 7) sage: E = EllipticCurve(K, [1, 0, 5*t^2 + 16, 0, 0]) @@ -2385,7 +2385,7 @@ def gens(self, **kwds): sage: E.rank() 2 - Test that points of finite order are not included (see :trac:`13593`):: + Test that points of finite order are not included (see :issue:`13593`):: sage: E = EllipticCurve("17a3") sage: K. = NumberField(x^2 + 3) @@ -2864,7 +2864,7 @@ class number is only `3` is that the class also contains three forms of discriminant `-104`, from which we have selected a small prime:: - sage: CL.matrix() # long time # random (see :trac:`19229`) + sage: CL.matrix() # long time # random (see :issue:`19229`) [1 2 3 3 5 5] [2 1 5 5 3 3] [3 5 1 3 2 5] @@ -2874,7 +2874,7 @@ class number is only `3` is that the class also contains three To see the array of binary quadratic forms:: - sage: CL.qf_matrix() # long time # random (see :trac:`19229`) + sage: CL.qf_matrix() # long time # random (see :issue:`19229`) [[[1], [2, 0, 13], [3, -2, 9], [3, -2, 9], [5, -4, 6], [5, -4, 6]], [[2, 0, 13], [1], [5, -4, 6], [5, -4, 6], [3, -2, 9], [3, -2, 9]], [[3, -2, 9], [5, -4, 6], [1], [3, -2, 9], [2, 0, 13], [5, -4, 6]], @@ -2917,7 +2917,7 @@ class number is only `3` is that the class also contains three TESTS: - An example which failed until fixed at :trac:`19229`:: + An example which failed until fixed at :issue:`19229`:: sage: K. = NumberField(x^2 - x + 1) sage: E = EllipticCurve([a+1, 1, 1, 0, 0]) @@ -3153,7 +3153,7 @@ def is_isogenous(self, other, proof=True, maxnorm=100): TESTS: - Check that :trac:`15890` is fixed:: + Check that :issue:`15890` is fixed:: sage: K. = QuadraticField(229) sage: c4 = 2173 - 235*(1 - s)/2 @@ -3165,7 +3165,7 @@ def is_isogenous(self, other, proof=True, maxnorm=100): sage: E.is_isogenous(Ec) True - Check that :trac:`17295` is fixed:: + Check that :issue:`17295` is fixed:: sage: k. = QuadraticField(2) sage: K. = k.extension(x^2 - 3) @@ -3455,7 +3455,7 @@ def lll_reduce(self, points, height_matrix=None, precision=None): [(-4 : 1 : 1), (-3 : 5 : 1), (-2 : 6 : 1), (1 : -7 : 1)], [0 0 1 1] ) - Some examples over number fields (see :trac:`9411`):: + Some examples over number fields (see :issue:`9411`):: sage: K. = QuadraticField(-23, 'a') sage: E = EllipticCurve(K, [0,0,1,-1,0]) @@ -3990,7 +3990,7 @@ def saturation(self, points, verbose=False, 45, 0.152460177943144) - See :trac:`27387`:: + See :issue:`27387`:: sage: K. = NumberField(x^2 - x - 26) sage: E = EllipticCurve([a, 1-a, 0, 93-16*a, 3150-560*a]) @@ -4161,7 +4161,7 @@ def rational_points(self, **kwds): (2 : -3 : 1), (2 : 2 : 1)] - Check that :trac:`26677` is fixed:: + Check that :issue:`26677` is fixed:: sage: E = EllipticCurve("11a1") sage: E.rational_points(bound=5) diff --git a/src/sage/schemes/elliptic_curves/ell_padic_field.py b/src/sage/schemes/elliptic_curves/ell_padic_field.py index ba796d1b75b..2867ff51d23 100644 --- a/src/sage/schemes/elliptic_curves/ell_padic_field.py +++ b/src/sage/schemes/elliptic_curves/ell_padic_field.py @@ -61,7 +61,7 @@ def frobenius(self, P=None): sage: E.frobenius(point) (0 : 1 + O(13^20) : 1 + O(13^20)) - Check that :trac:`29709` is fixed:: + Check that :issue:`29709` is fixed:: sage: Qp = pAdicField(13) sage: E = EllipticCurve(Qp,[0,0,1,0,1]) diff --git a/src/sage/schemes/elliptic_curves/ell_point.py b/src/sage/schemes/elliptic_curves/ell_point.py index bcfe8d5c1d2..12c60e81482 100644 --- a/src/sage/schemes/elliptic_curves/ell_point.py +++ b/src/sage/schemes/elliptic_curves/ell_point.py @@ -228,7 +228,7 @@ class EllipticCurvePoint_field(SchemeMorphism_point_abelian_variety_field): sage: e = EllipticCurve([0, 0, 1, -1, 0]); g = e.gens(); loads(dumps(e)) == e True - Test that the refactoring from :trac:`14711` did preserve the behaviour + Test that the refactoring from :issue:`14711` did preserve the behaviour of domain and codomain:: sage: E = EllipticCurve(QQ,[1,1]) @@ -415,7 +415,7 @@ def __pari__(self): [Mod(1, 11), Mod(2, 11)] We no longer need to explicitly call ``pari(O)`` and ``pari(P)`` - after :trac:`11868`:: + after :issue:`11868`:: sage: pari(E).elladd(O, P) [Mod(1, 11), Mod(2, 11)] @@ -721,14 +721,14 @@ def _add_(self, right): sage: P._add_(Q) == P + Q True - Example to show that bug :trac:`4820` is fixed:: + Example to show that bug :issue:`4820` is fixed:: sage: [type(c) for c in 2*EllipticCurve('37a1').gen(0)] [<... 'sage.rings.rational.Rational'>, <... 'sage.rings.rational.Rational'>, <... 'sage.rings.rational.Rational'>] - Checks that :trac:`15964` is fixed:: + Checks that :issue:`15964` is fixed:: sage: N = 1715761513 sage: E = EllipticCurve(Integers(N), [3,-13]) @@ -748,7 +748,7 @@ def _add_(self, right): ZeroDivisionError: Inverse of 7 does not exist (characteristic = 35 = 7*5) - Checks that :trac:`34681` is fixed:: + Checks that :issue:`34681` is fixed:: sage: P+P (15 : 14 : 1) @@ -830,7 +830,7 @@ def __neg__(self): sage: Q + P (0 : 1 : 0) - Example to show that bug :trac:`4820` is fixed:: + Example to show that bug :issue:`4820` is fixed:: sage: [type(c) for c in -EllipticCurve('37a1').gen(0)] [<... 'sage.rings.rational.Rational'>, @@ -956,7 +956,7 @@ def is_divisible_by(self, m): TESTS: - This shows that the bug reported at :trac:`10076` is fixed:: + This shows that the bug reported at :issue:`10076` is fixed:: sage: # needs sage.rings.number_field sage: K = QuadraticField(8,'a') @@ -1111,7 +1111,7 @@ def division_points(self, m, poly_only=False): sage: P.division_points(5) # needs sage.rings.finite_rings [(1 : 1 : 1)] - An example over a number field (see :trac:`3383`):: + An example over a number field (see :issue:`3383`):: sage: # needs sage.rings.number_field sage: E = EllipticCurve('19a1') @@ -1130,7 +1130,7 @@ def division_points(self, m, poly_only=False): TESTS: - Check that :trac:`24844` is fixed:: + Check that :issue:`24844` is fixed:: sage: # needs sage.rings.finite_rings sage: p = next_prime(1000000) @@ -1540,7 +1540,7 @@ def _line_(self, R, Q): sage: P._line_(P,Q) == a^4 + a^3 + a^2 + 1 True - See :trac:`7116`:: + See :issue:`7116`:: sage: P._line_ (Q,O) # needs sage.rings.finite_rings Traceback (most recent call last): @@ -1810,7 +1810,7 @@ def weil_pairing(self, Q, n, algorithm=None): ... ValueError: points must both be n-torsion - A larger example (see :trac:`4964`):: + A larger example (see :issue:`4964`):: sage: # needs sage.rings.finite_rings sage: P, Q = EllipticCurve(GF((19,4),'a'), [-1,0]).gens() @@ -2648,7 +2648,7 @@ def has_good_reduction(self, P=None): TESTS: - An example showing that :trac:`8498` is fixed:: + An example showing that :issue:`8498` is fixed:: sage: E = EllipticCurve('11a1') sage: K. = NumberField(x^2 + 47) # needs sage.rings.number_field @@ -2938,7 +2938,7 @@ def height(self, precision=None, normalised=True, algorithm='pari'): sage: Q.height(precision=100) # needs sage.rings.number_field 0.051111408239968840235886099757 - An example to show that the bug at :trac:`5252` is fixed:: + An example to show that the bug at :issue:`5252` is fixed:: sage: E = EllipticCurve([1, -1, 1, -2063758701246626370773726978, 32838647793306133075103747085833809114881]) sage: P = E([-30987785091199, 258909576181697016447]) @@ -2954,7 +2954,7 @@ def height(self, precision=None, normalised=True, algorithm='pari'): sage: P.height(precision=100) == P.non_archimedean_local_height(prec=100)+P.archimedean_local_height(prec=100) True - An example to show that the bug at :trac:`8319` is fixed (correct height when the curve is not minimal):: + An example to show that the bug at :issue:`8319` is fixed (correct height when the curve is not minimal):: sage: E = EllipticCurve([-5580472329446114952805505804593498080000,-157339733785368110382973689903536054787700497223306368000000]) sage: xP = 204885147732879546487576840131729064308289385547094673627174585676211859152978311600/23625501907057948132262217188983681204856907657753178415430361 @@ -2967,7 +2967,7 @@ def height(self, precision=None, normalised=True, algorithm='pari'): sage: Q.height()-4*P.height() # long time 0.000000000000000 - An example to show that the bug at :trac:`12509` is fixed (precision issues):: + An example to show that the bug at :issue:`12509` is fixed (precision issues):: sage: # needs sage.rings.number_field sage: x = polygen(QQ) @@ -2984,7 +2984,7 @@ def height(self, precision=None, normalised=True, algorithm='pari'): sage: (2*P).height(precision=1000)/P.height(precision=1000) 4.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - This shows that the bug reported at :trac:`13951` has been fixed:: + This shows that the bug reported at :issue:`13951` has been fixed:: sage: E = EllipticCurve([0,17]) sage: P1 = E(2,5) @@ -3111,7 +3111,7 @@ def archimedean_local_height(self, v=None, prec=None, weighted=False): TESTS: - See :trac:`12509`:: + See :issue:`12509`:: sage: # needs sage.rings.number_field sage: x = polygen(QQ) @@ -3122,7 +3122,7 @@ def archimedean_local_height(self, v=None, prec=None, weighted=False): sage: P.archimedean_local_height() -0.220660795546828 - See :trac:`19276`:: + See :issue:`19276`:: sage: # needs sage.rings.number_field sage: K. = NumberField(x^2 - x - 104) @@ -3131,7 +3131,7 @@ def archimedean_local_height(self, v=None, prec=None, weighted=False): sage: P.height() 0.974232017827741 - See :trac:`29966`:: + See :issue:`29966`:: sage: # needs sage.rings.number_field sage: K. = NumberField(x^3 - x^2 - 6*x + 2) @@ -3366,7 +3366,7 @@ def non_archimedean_local_height(self, v=None, prec=None, sage: P.non_archimedean_local_height() 0 - This shows that the bug reported at :trac:`13951` has been fixed:: + This shows that the bug reported at :issue:`13951` has been fixed:: sage: E = EllipticCurve([0,17]) sage: P = E(2,5) @@ -3529,7 +3529,7 @@ def elliptic_logarithm(self, embedding=None, precision=100, sage: P.elliptic_logarithm(algorithm='sage') # 100 bits 0.27656204014107061464076203097 - This shows that the bug reported at :trac:`4901` has been fixed:: + This shows that the bug reported at :issue:`4901` has been fixed:: sage: E = EllipticCurve("4390c2") sage: P = E(683762969925/44944,-565388972095220019/9528128) @@ -3697,7 +3697,7 @@ def padic_elliptic_logarithm(self, p, absprec=20): .. TODO:: - See comments at :trac:`4805`. Currently the absolute + See comments at :issue:`4805`. Currently the absolute precision of the result may be less than the given value of absprec, and error-handling is imperfect. @@ -3719,7 +3719,7 @@ def padic_elliptic_logarithm(self, p, absprec=20): sage: [(5*P).padic_elliptic_logarithm(p)/P.padic_elliptic_logarithm(p) for p in prime_range(12)] # long time, needs sage.rings.padics [1 + 2^2 + O(2^19), 2 + 3 + O(3^20), 5 + O(5^19), 5 + O(7^19), 5 + O(11^19)] - An example which arose during reviewing :trac:`4741`:: + An example which arose during reviewing :issue:`4741`:: sage: E = EllipticCurve('794a1') sage: P = E(-1,2) @@ -4163,7 +4163,7 @@ def order(self): TESTS: - Check that the order actually gets cached (:trac:`32786`):: + Check that the order actually gets cached (:issue:`32786`):: sage: # needs sage.rings.finite_rings sage: E = EllipticCurve(GF(31337), [42,1]) diff --git a/src/sage/schemes/elliptic_curves/ell_rational_field.py b/src/sage/schemes/elliptic_curves/ell_rational_field.py index f4f13c112dc..f49ccfbc568 100644 --- a/src/sage/schemes/elliptic_curves/ell_rational_field.py +++ b/src/sage/schemes/elliptic_curves/ell_rational_field.py @@ -166,7 +166,7 @@ def __init__(self, ainvs, **kwds): When constructing a curve from the large database using a label, we must be careful that the copied generators have the - right curve (see :trac:`10999`: the following used not to work when + right curve (see :issue:`10999`: the following used not to work when the large database was installed):: sage: E = EllipticCurve('389a1') @@ -614,12 +614,12 @@ def pari_curve(self): sage: Epari [0, 0, 1, -1, 0, 0, -2, 1, -1, 48, -216, 37, 110592/37, Vecsmall([1]), [Vecsmall([64, 1])], [[2.99345864623196, -2.45138938198679*I], 0, [0.837565435283323, 0.269594436405445, -1.10715987168877, 1.37675430809421, 1.94472530697209, 0.567970998877878]~, 0, 0, 0, 0, 0]] - This shows that the bug uncovered by :trac:`4715` is fixed:: + This shows that the bug uncovered by :issue:`4715` is fixed:: sage: Ep = EllipticCurve('903b3').pari_curve() This still works, even when the curve coefficients are large - (see :trac:`13163`):: + (see :issue:`13163`):: sage: E = EllipticCurve([4382696457564794691603442338788106497, 28, 3992, 16777216, 298]) sage: E.pari_curve() @@ -697,7 +697,7 @@ def database_curve(self): Return the curve in the elliptic curve database isomorphic to this curve, if possible. Otherwise raise a ``LookupError`` exception. - Since :trac:`11474`, this returns exactly the same curve as + Since :issue:`11474`, this returns exactly the same curve as :meth:`minimal_model`; the only difference is the additional work of checking whether the curve is in the database. @@ -1260,7 +1260,7 @@ def modular_symbol(self, sign=+1, normalize=None, implementation='eclib', nap=0) sage: E.modular_symbol(implementation = 'sage', normalize='period')(0) 1/25 - Since :trac:`10256`, the interface for negative modular symbols in eclib is available:: + Since :issue:`10256`, the interface for negative modular symbols in eclib is available:: sage: E = EllipticCurve('11a1') sage: Mplus = E.modular_symbol(+1); Mplus @@ -1276,10 +1276,10 @@ def modular_symbol(self, sign=+1, normalize=None, implementation='eclib', nap=0) With older version of eclib, in the default 'eclib' implementation, if ``nap`` is too small, the normalization may - be computed incorrectly (see :trac:`31317`). This was fixed + be computed incorrectly (see :issue:`31317`). This was fixed in eclib version v20210310, since now eclib increase ``nap`` automatically. The following used to give incorrect results. - See :trac:`31443`:: + See :issue:`31443`:: sage: E = EllipticCurve('1590g1') sage: m = E.modular_symbol(nap=300) # long time @@ -1890,7 +1890,7 @@ def simon_two_descent(self, verbose=0, lim1=5, lim3=50, limtriv=3, sage: r, s, G = E.simon_two_descent(); r,s # long time (8, 8) - Example from :trac:`10832`:: + Example from :issue:`10832`:: sage: E = EllipticCurve([1,0,0,-6664,86543]) sage: E.simon_two_descent() @@ -1912,7 +1912,7 @@ def simon_two_descent(self, verbose=0, lim1=5, lim3=50, limtriv=3, sage: E.gens() # uses mwrank [(4311692542083/48594841 : -13035144436525227/338754636611 : 1)] - Example for :trac:`5153`:: + Example for :issue:`5153`:: sage: E = EllipticCurve([3,0]) sage: E.simon_two_descent() @@ -1920,7 +1920,7 @@ def simon_two_descent(self, verbose=0, lim1=5, lim3=50, limtriv=3, The upper bound on the 2-Selmer rank returned by this method need not be sharp. In following example, the upper bound - equals the actual 2-Selmer rank plus 2 (see :trac:`10735`):: + equals the actual 2-Selmer rank plus 2 (see :issue:`10735`):: sage: E = EllipticCurve('438e1') sage: E.simon_two_descent() @@ -2095,7 +2095,7 @@ def rank(self, use_database=True, verbose=False, sage: E.saturation(_)[1] 1 - Since :trac:`23962`, the default is to use the Cremona + Since :issue:`23962`, the default is to use the Cremona database. We also check that the result is cached correctly:: sage: E = EllipticCurve([-517, -4528]) # 1888b1 @@ -2745,7 +2745,7 @@ def saturation(self, points, verbose=False, max_prime=-1, min_prime=2): TESTS: - See :trac:`10590`. With ``eclib`` versions up to + See :issue:`10590`. With ``eclib`` versions up to ``v20190909``, this example would loop forever at default precision. Since version ``v20210310`` it runs fine:: @@ -2763,7 +2763,7 @@ def saturation(self, points, verbose=False, max_prime=-1, min_prime=2): sage: reg 113.302910926080 - See :trac:`10840`. This used to cause eclib to crash since the + See :issue:`10840`. This used to cause eclib to crash since the curve is non-minimal at 2:: sage: E = EllipticCurve([0,0,0,-13711473216,0]) @@ -2774,7 +2774,7 @@ def saturation(self, points, verbose=False, max_prime=-1, min_prime=2): sage: E.saturation([P,Q,R,S]) ([(-19992 : 16313472 : 1), (-24108 : -17791704 : 1), (-97104 : -20391840 : 1), (-113288 : -9969344 : 1)], 1, 172.792031341679) - See :trac:`34029`. With eclib versions prior to 20220621 this failed to saturate:: + See :issue:`34029`. With eclib versions prior to 20220621 this failed to saturate:: sage: E = EllipticCurve([0, 0, 0, -17607, -889490]) sage: Q = E([-82,54]) @@ -3359,7 +3359,7 @@ def tamagawa_exponent(self, p): sage: E.tamagawa_exponent(5) 2 - See :trac:`4715`:: + See :issue:`4715`:: sage: E = EllipticCurve('117a3') sage: E.tamagawa_exponent(13) @@ -4623,7 +4623,7 @@ def minimal_quadratic_twist(self): (Elliptic Curve defined by y^2 = x^3 + 4*x over Rational Field, 5) If the curve has square-free conductor then it is already - minimal (see :trac:`14060`):: + minimal (see :issue:`14060`):: sage: E = next(cremona_optimal_curves([2*3*5*7*11])) sage: (E, 1) == E.minimal_quadratic_twist() @@ -5270,7 +5270,7 @@ def manin_constant(self): sage: EllipticCurve('11a3').change_weierstrass_model([1/35,0,0,0]).manin_constant() 5 - Rather complicated examples (see :trac:`12080`) :: + Rather complicated examples (see :issue:`12080`) :: sage: [ EllipticCurve('27a%s'%i).manin_constant() for i in [1,2,3,4]] [1, 1, 3, 3] @@ -6005,7 +6005,7 @@ def integral_x_coords_in_interval(self,xmin,xmax): TESTS: - The bug reported on :trac:`22719` is now fixed:: + The bug reported on :issue:`22719` is now fixed:: sage: E = EllipticCurve("141d1") sage: E.integral_points() @@ -6110,7 +6110,7 @@ def integral_points(self, mw_base='auto', both_signs=False, verbose=False): TESTS: - The bug reported on :trac:`4525` is now fixed:: + The bug reported on :issue:`4525` is now fixed:: sage: EllipticCurve('91b1').integral_points() [(-1 : -4 : 1), (1 : -1 : 1), (3 : -5 : 1)] @@ -6120,12 +6120,12 @@ def integral_points(self, mw_base='auto', both_signs=False, verbose=False): sage: [len(e.integral_points(both_signs=False)) for e in cremona_curves([11..100])] # long time (15s on sage.math, 2011) [2, 0, 2, 3, 2, 1, 3, 0, 2, 4, 2, 4, 3, 0, 0, 1, 2, 1, 2, 0, 2, 1, 0, 1, 3, 3, 1, 1, 4, 2, 3, 2, 0, 0, 5, 3, 2, 2, 1, 1, 1, 0, 1, 3, 0, 1, 0, 1, 1, 3, 6, 1, 2, 2, 2, 0, 0, 2, 3, 1, 2, 2, 1, 1, 0, 3, 2, 1, 0, 1, 0, 1, 3, 3, 1, 1, 5, 1, 0, 1, 1, 0, 1, 2, 0, 2, 0, 1, 1, 3, 1, 2, 2, 4, 4, 2, 1, 0, 0, 5, 1, 0, 1, 2, 0, 2, 2, 0, 0, 0, 1, 0, 3, 1, 5, 1, 2, 4, 1, 0, 1, 0, 1, 0, 1, 0, 2, 2, 0, 0, 1, 0, 1, 1, 4, 1, 0, 1, 1, 0, 4, 2, 0, 1, 1, 2, 3, 1, 1, 1, 1, 6, 2, 1, 1, 0, 2, 0, 6, 2, 0, 4, 2, 2, 0, 0, 1, 2, 0, 2, 1, 0, 3, 1, 2, 1, 4, 6, 3, 2, 1, 0, 2, 2, 0, 0, 5, 4, 1, 0, 0, 1, 0, 2, 2, 0, 0, 2, 3, 1, 3, 1, 1, 0, 1, 0, 0, 1, 2, 2, 0, 2, 0, 0, 1, 2, 0, 0, 4, 1, 0, 1, 1, 0, 1, 2, 0, 1, 4, 3, 1, 2, 2, 1, 1, 1, 1, 6, 3, 3, 3, 3, 1, 1, 1, 1, 1, 0, 7, 3, 0, 1, 3, 2, 1, 0, 3, 2, 1, 0, 2, 2, 6, 0, 0, 6, 2, 2, 3, 3, 5, 5, 1, 0, 6, 1, 0, 3, 1, 1, 2, 3, 1, 2, 1, 1, 0, 1, 0, 1, 0, 5, 5, 2, 2, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1] - The bug reported at :trac:`4897` is now fixed:: + The bug reported at :issue:`4897` is now fixed:: sage: [P[0] for P in EllipticCurve([0,0,0,-468,2592]).integral_points()] [-24, -18, -14, -6, -3, 4, 6, 18, 21, 24, 36, 46, 102, 168, 186, 381, 1476, 2034, 67246] - See :trac:`22063`:: + See :issue:`22063`:: sage: for n in [67,71,74,91]: # long time ....: assert 4*n^6 + 4*n^2 in [P[0] for P in EllipticCurve([0,0,0,2,n^2]).integral_points()] @@ -6568,7 +6568,7 @@ def S_integral_points(self, S, mw_base='auto', both_signs=False, verbose=False, sage: E.rank(), len(E.S_integral_points([3,5,7])) # long time (5s on sage.math, 2011) (4, 72) - This is curve "7690e1" which failed until :trac:`4805` was fixed:: + This is curve "7690e1" which failed until :issue:`4805` was fixed:: sage: EllipticCurve([1,1,1,-301,-1821]).S_integral_points([13,2]) [(-13 : -4 : 1), (-9 : -12 : 1), (-7 : 2 : 1), (21 : -52 : 1), diff --git a/src/sage/schemes/elliptic_curves/ell_torsion.py b/src/sage/schemes/elliptic_curves/ell_torsion.py index 62b75c79fea..cc543b339a4 100644 --- a/src/sage/schemes/elliptic_curves/ell_torsion.py +++ b/src/sage/schemes/elliptic_curves/ell_torsion.py @@ -316,7 +316,7 @@ def torsion_bound(E, number_of_places=20): sage: [E.torsion_order() for E in CDB.iter([14])] [6, 6, 2, 6, 2, 6] - An example over a relative number field (see :trac:`16011`):: + An example over a relative number field (see :issue:`16011`):: sage: # needs sage.rings.number_field sage: R. = QQ[] diff --git a/src/sage/schemes/elliptic_curves/ell_wp.py b/src/sage/schemes/elliptic_curves/ell_wp.py index b7dd052a701..e421b2c285c 100644 --- a/src/sage/schemes/elliptic_curves/ell_wp.py +++ b/src/sage/schemes/elliptic_curves/ell_wp.py @@ -35,7 +35,7 @@ - Chris Wuthrich 11/09: major restructuring - Jeroen Demeyer (2014-03-06): code clean up, fix characteristic bound - for quadratic algorithm (see :trac:`15855`) + for quadratic algorithm (see :issue:`15855`) """ diff --git a/src/sage/schemes/elliptic_curves/formal_group.py b/src/sage/schemes/elliptic_curves/formal_group.py index a7dcb48d36c..ae3dceb8555 100644 --- a/src/sage/schemes/elliptic_curves/formal_group.py +++ b/src/sage/schemes/elliptic_curves/formal_group.py @@ -509,7 +509,7 @@ def group_law(self, prec=10): sage: e.formal_group().group_law(4) t1 + t2 + O(t1, t2)^4 - Test for :trac:`9646`:: + Test for :issue:`9646`:: sage: P. = PolynomialRing(ZZ, 5) sage: E = EllipticCurve(list(P.gens())) diff --git a/src/sage/schemes/elliptic_curves/gal_reps.py b/src/sage/schemes/elliptic_curves/gal_reps.py index 9543215ee24..e5b5c9bbe03 100644 --- a/src/sage/schemes/elliptic_curves/gal_reps.py +++ b/src/sage/schemes/elliptic_curves/gal_reps.py @@ -456,7 +456,7 @@ def _is_surjective(self, p, A): sage: rho._is_surjective(7,100) True - TEST for :trac:`8451`:: + TEST for :issue:`8451`:: sage: E = EllipticCurve('648a1') sage: rho = E.galois_representation() @@ -759,12 +759,12 @@ def image_type(self, p): sage: EllipticCurve([0,0,1,2580,549326]).galois_representation().image_type(7) 'The image is contained in the normalizer of a split Cartan group.' - Test :trac:`14577`:: + Test :issue:`14577`:: sage: EllipticCurve([0, 1, 0, -4788, 109188]).galois_representation().image_type(13) 'The image in PGL_2(F_13) is the exceptional group S_4.' - Test :trac:`14752`:: + Test :issue:`14752`:: sage: EllipticCurve([0, 0, 0, -1129345880,-86028258620304]).galois_representation().image_type(11) 'The image is contained in the normalizer of a non-split Cartan group.' diff --git a/src/sage/schemes/elliptic_curves/gal_reps_number_field.py b/src/sage/schemes/elliptic_curves/gal_reps_number_field.py index 875ed0b4a5c..397ff4dd4e6 100644 --- a/src/sage/schemes/elliptic_curves/gal_reps_number_field.py +++ b/src/sage/schemes/elliptic_curves/gal_reps_number_field.py @@ -205,7 +205,7 @@ def non_surjective(self, A=100): TESTS: - An example which failed until fixed at :trac:`19229`:: + An example which failed until fixed at :issue:`19229`:: sage: K. = NumberField(x^2-x+1) sage: E = EllipticCurve([a+1,1,1,0,0]) @@ -330,7 +330,7 @@ def isogeny_bound(self, A=100): An example (an elliptic curve with everywhere good reduction over an imaginary quadratic field with quite large - discriminant), which failed until fixed at :trac:`21776`:: + discriminant), which failed until fixed at :issue:`21776`:: sage: K. = NumberField(x^2 - x + 112941801) sage: E = EllipticCurve([a+1,a-1,a,-23163076*a + 266044005933275,57560769602038*a - 836483958630700313803]) @@ -844,7 +844,7 @@ def _semistable_reducible_primes(E, verbose=False): True This example, over a quintic field with Galois group `S_5`, took a - very long time before :trac:`22343`:: + very long time before :issue:`22343`:: sage: x = polygen(ZZ, 'x') sage: K. = NumberField(x^5 - 6*x^3 + 8*x - 1) @@ -1544,7 +1544,7 @@ def reducible_primes_Billerey(E, num_l=None, max_l=None, verbose=False): TESTS: - Test that this function works with non-integral models (see :trac:`34174`):: + Test that this function works with non-integral models (see :issue:`34174`):: sage: K. = QuadraticField(4569) sage: j = 46969655/32768 diff --git a/src/sage/schemes/elliptic_curves/gp_simon.py b/src/sage/schemes/elliptic_curves/gp_simon.py index 198ceed7218..39a60361ec6 100644 --- a/src/sage/schemes/elliptic_curves/gp_simon.py +++ b/src/sage/schemes/elliptic_curves/gp_simon.py @@ -76,7 +76,7 @@ def simon_two_descent(E, verbose=0, lim1=None, lim3=None, limtriv=None, sage: E.simon_two_descent(lim1=2, limtriv=3) (1, 1, ...) - Check that :trac:`16022` is fixed:: + Check that :issue:`16022` is fixed:: sage: # needs sage.rings.number_field sage: K. = NumberField(x^4 + x^2 - 7) @@ -84,7 +84,7 @@ def simon_two_descent(E, verbose=0, lim1=None, lim3=None, limtriv=None, sage: E.simon_two_descent(lim1=2, limtriv=3) # long time (about 3 s) (1, 1, ...) - An example that checks that :trac:`9322` is fixed (it should take less than a second to run):: + An example that checks that :issue:`9322` is fixed (it should take less than a second to run):: sage: # needs sage.rings.number_field sage: K. = NumberField(x^2 - x - 232) diff --git a/src/sage/schemes/elliptic_curves/heegner.py b/src/sage/schemes/elliptic_curves/heegner.py index 531a94449d2..df91b74b280 100644 --- a/src/sage/schemes/elliptic_curves/heegner.py +++ b/src/sage/schemes/elliptic_curves/heegner.py @@ -441,7 +441,7 @@ def degree_over_H(self): sage: heegner_point(37,-7,7^2).ring_class_field().degree_over_H() 49 - Check that :trac:`15218` is solved:: + Check that :issue:`15218` is solved:: sage: E = EllipticCurve("19a"); sage: s = E.heegner_point(-3,2).ring_class_field().galois_group().complex_conjugation() @@ -3455,7 +3455,7 @@ def x_poly_exact(self, prec=53, algorithm='lll'): sage: P.x_poly_exact(500) x^6 + 1108754853727159228/72351048803252547*x^5 + 88875505551184048168/1953478317687818769*x^4 - 2216200271166098662132/3255797196146364615*x^3 + 14941627504168839449851/9767391588439093845*x^2 - 3456417460183342963918/3255797196146364615*x + 1306572835857500500459/5426328660243941025 - See :trac:`34121`:: + See :issue:`34121`:: sage: E = EllipticCurve('11a1') sage: P = E.heegner_point(-7) diff --git a/src/sage/schemes/elliptic_curves/height.py b/src/sage/schemes/elliptic_curves/height.py index 309603a1aa5..7ddd080d5b1 100644 --- a/src/sage/schemes/elliptic_curves/height.py +++ b/src/sage/schemes/elliptic_curves/height.py @@ -72,7 +72,7 @@ class UnionOfIntervals: .. TODO:: Unify :class:`UnionOfIntervals` with the class ``RealSet`` - introduced by :trac:`13125`; see :trac:`16063`. + introduced by :issue:`13125`; see :issue:`16063`. """ def __init__(self, endpoints): r""" @@ -1950,7 +1950,7 @@ def min_gr(self, tol, n_max, verbose=False): TESTS: - This example from the LMFDB gave problems before the fix in :trac:`8829`:: + This example from the LMFDB gave problems before the fix in :issue:`8829`:: sage: # needs sage.rings.number_field sage: K. = NumberField(x^2 - x - 1) diff --git a/src/sage/schemes/elliptic_curves/hom_frobenius.py b/src/sage/schemes/elliptic_curves/hom_frobenius.py index 0c1254e15b0..66aa3a5b5a4 100644 --- a/src/sage/schemes/elliptic_curves/hom_frobenius.py +++ b/src/sage/schemes/elliptic_curves/hom_frobenius.py @@ -324,7 +324,7 @@ def rational_maps(self): TESTS: - See :trac:`34811`:: + See :issue:`34811`:: sage: pi.rational_maps()[0].parent() Fraction Field of Multivariate Polynomial Ring in x, y over Finite Field of size 11 @@ -349,7 +349,7 @@ def x_rational_map(self): TESTS: - See :trac:`34811`:: + See :issue:`34811`:: sage: pi.x_rational_map().parent() Fraction Field of Sparse Univariate Polynomial Ring in x over Finite Field of size 11 diff --git a/src/sage/schemes/elliptic_curves/hom_scalar.py b/src/sage/schemes/elliptic_curves/hom_scalar.py index 711c1c66edf..448fbdf1c8a 100644 --- a/src/sage/schemes/elliptic_curves/hom_scalar.py +++ b/src/sage/schemes/elliptic_curves/hom_scalar.py @@ -81,7 +81,7 @@ sage: zero(E.random_point()) (0 : 1 : 0) -Due to a bug (:trac:`6413`), retrieving multiplication-by-`m` maps +Due to a bug (:issue:`6413`), retrieving multiplication-by-`m` maps when `m` is divisible by the characteristic currently fails:: sage: E = EllipticCurve(GF(7), [1,0]) diff --git a/src/sage/schemes/elliptic_curves/hom_velusqrt.py b/src/sage/schemes/elliptic_curves/hom_velusqrt.py index 33bccacd137..fcde37f9536 100644 --- a/src/sage/schemes/elliptic_curves/hom_velusqrt.py +++ b/src/sage/schemes/elliptic_curves/hom_velusqrt.py @@ -682,7 +682,7 @@ def __init__(self, E, P, *, codomain=None, model=None, Q=None): over `\GF{3}`, the point `Q` required in the formulas has to be defined over a cubic extension rather than an at most quadratic extension, which can result in the constructed isogeny being - irrational. See :trac:`34467`. The assertion in the following + irrational. See :issue:`34467`. The assertion in the following example currently fails if the minimum degree is lowered:: sage: E = EllipticCurve(GF(3), [2,1]) diff --git a/src/sage/schemes/elliptic_curves/isogeny_class.py b/src/sage/schemes/elliptic_curves/isogeny_class.py index 1109fd9b93b..b20e173cff9 100644 --- a/src/sage/schemes/elliptic_curves/isogeny_class.py +++ b/src/sage/schemes/elliptic_curves/isogeny_class.py @@ -774,7 +774,7 @@ def _compute(self, verbose=False): TESTS: - Check that :trac:`19030` is fixed (codomains of reverse isogenies were wrong):: + Check that :issue:`19030` is fixed (codomains of reverse isogenies were wrong):: sage: K. = NumberField(x^2 + 1) sage: E = EllipticCurve([1, i + 1, 1, -72*i + 8, 95*i + 146]) diff --git a/src/sage/schemes/elliptic_curves/isogeny_small_degree.py b/src/sage/schemes/elliptic_curves/isogeny_small_degree.py index 01b0a28c4f6..4623828ccc5 100644 --- a/src/sage/schemes/elliptic_curves/isogeny_small_degree.py +++ b/src/sage/schemes/elliptic_curves/isogeny_small_degree.py @@ -535,7 +535,7 @@ def _sporadic_Q_data(j): 1]), ([-3267, -280962], [1480352841, -56169531, -2829222, 10890, 429, 1])] - See :trac:`22328`. This used to fail on l=37, + See :issue:`22328`. This used to fail on l=37, j=-162677523113838677 for which the kernel polynomial is not integral:: @@ -1008,7 +1008,7 @@ def isogenies_5_1728(E, minimal_models=True): to Elliptic Curve defined by y^2 = x^3 + (-753/4*a^2-4399)*x + (-2779*a^3-65072*a) over Number Field in a with defining polynomial x^4 + 20*x^2 - 80] - See :trac:`19840`:: + See :issue:`19840`:: sage: # needs sage.rings.number_field sage: K. = NumberField(x^4 - 5*x^2 + 5) @@ -2381,7 +2381,7 @@ def is_kernel_polynomial(E, m, f): False, False] - See :trac:`22232`:: + See :issue:`22232`:: sage: # needs sage.rings.finite_rings sage: K = GF(47^2) @@ -2583,7 +2583,7 @@ def isogenies_prime_degree_general(E, l, minimal_models=True): sage: len(E.change_ring(GF(3^2,'a')).isogenies_prime_degree(13)) # needs sage.rings.finite_rings 14 - See :trac:`18589`: the following example took 20s before, now only 4s:: + See :issue:`18589`: the following example took 20s before, now only 4s:: sage: K. = QuadraticField(-1) # needs sage.rings.number_field sage: E = EllipticCurve(K,[0,0,0,1,0]) # needs sage.rings.number_field @@ -2749,7 +2749,7 @@ def isogenies_prime_degree(E, l, minimal_models=True): sage: E.isogenies_prime_degree(73) # long time [] - Test that :trac:`32269` is fixed:: + Test that :issue:`32269` is fixed:: sage: K = QuadraticField(-11) # needs sage.rings.number_field sage: E = EllipticCurve(K, [0,1,0,-117,-541]) # needs sage.rings.number_field diff --git a/src/sage/schemes/elliptic_curves/kodaira_symbol.py b/src/sage/schemes/elliptic_curves/kodaira_symbol.py index b4bbe78b951..3b3b976fa66 100644 --- a/src/sage/schemes/elliptic_curves/kodaira_symbol.py +++ b/src/sage/schemes/elliptic_curves/kodaira_symbol.py @@ -98,7 +98,7 @@ def __init__(self, symbol): sage: KodairaSymbol_class('In') In - Check that :trac:`31147` is fixed:: + Check that :issue:`31147` is fixed:: sage: latex(KodairaSymbol_class(-14)) I_{10}^{*} diff --git a/src/sage/schemes/elliptic_curves/kraus.py b/src/sage/schemes/elliptic_curves/kraus.py index 92a74f4e718..334d28f0461 100644 --- a/src/sage/schemes/elliptic_curves/kraus.py +++ b/src/sage/schemes/elliptic_curves/kraus.py @@ -781,7 +781,7 @@ def check_Kraus_global(c4, c6, assume_nonsingular=False, debug=False): sage: check_Kraus_global(c4,c6) Elliptic Curve defined by y^2 = x^3 + (4536*a+14148)*x + (-163728*a-474336) over Number Field in a with defining polynomial x^2 - 15 - TESTS (see :trac:`17295`):: + TESTS (see :issue:`17295`):: sage: # needs sage.rings.number_field sage: K. = NumberField(x^3 - 7*x - 5) @@ -954,7 +954,7 @@ def semi_global_minimal_model(E, debug=False): TESTS: - Consider (see :trac:`20737`) a curve with no global minimal model + Consider (see :issue:`20737`) a curve with no global minimal model whose non-minimality class has order 3 in the class group, which has order 3315. The smallest prime in that ideal class has norm 23567:: diff --git a/src/sage/schemes/elliptic_curves/lseries_ell.py b/src/sage/schemes/elliptic_curves/lseries_ell.py index f3f1533f7d0..26d9042908f 100644 --- a/src/sage/schemes/elliptic_curves/lseries_ell.py +++ b/src/sage/schemes/elliptic_curves/lseries_ell.py @@ -842,7 +842,7 @@ def L_ratio(self): sage: E.lseries().L_ratio() 2 - See :trac:`3651` and :trac:`15299`:: + See :issue:`3651` and :issue:`15299`:: sage: EllipticCurve([0,0,0,-193^2,0]).sha().an() 4 diff --git a/src/sage/schemes/elliptic_curves/mod_sym_num.pyx b/src/sage/schemes/elliptic_curves/mod_sym_num.pyx index 556e4ec4f0b..daca96b9f97 100644 --- a/src/sage/schemes/elliptic_curves/mod_sym_num.pyx +++ b/src/sage/schemes/elliptic_curves/mod_sym_num.pyx @@ -2684,7 +2684,7 @@ cdef class ModularSymbolNumerical: sage: M._symbol_non_unitary(1/7,sign=-1) 5/28 - Test for :trac:`28476` :: + Test for :issue:`28476` :: sage: M = ModularSymbolNumerical(EllipticCurve("361a1")) sage: M._symbol_non_unitary(1/19) @@ -3302,7 +3302,7 @@ cdef class ModularSymbolNumerical: sage: M._evaluate_approx(1/17,0.01) # abs tol 1e-11 1.08712572498569 - 0.548379313090719*I - Test that is also works for non-unitary cusps (:trac:`29476`) :: + Test that is also works for non-unitary cusps (:issue:`29476`) :: sage: E = EllipticCurve("20a1") sage: m = E.modular_symbol_numerical() diff --git a/src/sage/schemes/elliptic_curves/padic_lseries.py b/src/sage/schemes/elliptic_curves/padic_lseries.py index 96177ed417c..113d7e16104 100644 --- a/src/sage/schemes/elliptic_curves/padic_lseries.py +++ b/src/sage/schemes/elliptic_curves/padic_lseries.py @@ -807,7 +807,7 @@ def series(self, n=2, quadratic_twist=+1, prec=5, eta=0): sage: L.series(3) O(3^5) + O(3^2)*T + (2 + 2*3 + O(3^2))*T^2 + (2 + O(3))*T^3 + (1 + O(3))*T^4 + O(T^5) - Checks if the precision can be changed (:trac:`5846`):: + Checks if the precision can be changed (:issue:`5846`):: sage: L.series(3,prec=4) O(3^5) + O(3^2)*T + (2 + 2*3 + O(3^2))*T^2 + (2 + O(3))*T^3 + O(T^4) @@ -835,7 +835,7 @@ def series(self, n=2, quadratic_twist=+1, prec=5, eta=0): 2 + O(5^6) + (1 + 5 + O(5^3))*T + (2 + 4*5 + 3*5^2 + O(5^3))*T^2 + (4 + 5 + 2*5^2 + O(5^3))*T^3 + (4 + O(5^3))*T^4 + O(T^5) 3 + 5 + 2*5^2 + 5^3 + 3*5^4 + 4*5^5 + O(5^6) + (1 + 2*5 + 4*5^2 + O(5^3))*T + (1 + 4*5 + O(5^3))*T^2 + (3 + 2*5 + 2*5^2 + O(5^3))*T^3 + (5 + 5^2 + O(5^3))*T^4 + O(T^5) - It should now also work with `p=2` (:trac:`20798`):: + It should now also work with `p=2` (:issue:`20798`):: sage: E = EllipticCurve("53a1") sage: lp = E.padic_lseries(2) @@ -847,7 +847,7 @@ def series(self, n=2, quadratic_twist=+1, prec=5, eta=0): sage: lp.series(6) 2^2 + 2^6 + O(2^7) + (2 + O(2^4))*T + O(2^3)*T^2 + (2^2 + O(2^3))*T^3 + (2 + O(2^2))*T^4 + O(T^5) - Check that twists by odd Teichmuller characters are ok (:trac:`32258`):: + Check that twists by odd Teichmuller characters are ok (:issue:`32258`):: sage: E = EllipticCurve("443c1") sage: lp = E.padic_lseries(17, implementation="num") @@ -1197,7 +1197,7 @@ def series(self, n=3, quadratic_twist=+1, prec=5, eta=0): sage: L.alpha(2).parent() 3-adic Eisenstein Extension Field in alpha defined by x^2 + 3*x + 3 - An example where we only compute the leading term (:trac:`15737`):: + An example where we only compute the leading term (:issue:`15737`):: sage: E = EllipticCurve("17a1") sage: L = E.padic_lseries(3) diff --git a/src/sage/schemes/elliptic_curves/padics.py b/src/sage/schemes/elliptic_curves/padics.py index 2fe45976b5d..63974e617f1 100644 --- a/src/sage/schemes/elliptic_curves/padics.py +++ b/src/sage/schemes/elliptic_curves/padics.py @@ -295,7 +295,7 @@ def padic_regulator(self, p, prec=20, height=None, check_hypotheses=True): ....: assert E.padic_regulator(5, prec) == full A case where the generator belongs to the formal group already - (:trac:`3632`):: + (:issue:`3632`):: sage: E = EllipticCurve([37,0]) sage: E.padic_regulator(5,10) @@ -481,7 +481,7 @@ def _multiply_point(E, R, P, m): sage: -67387681.sqrt() % 625 # sign is flipped here too 541 - Trivial cases (:trac:`3632`):: + Trivial cases (:issue:`3632`):: sage: _multiply_point(E, R, P, 1) (0, 624, 1) @@ -595,7 +595,7 @@ def _multiple_to_make_good_reduction(E): - a positive integer ``n2`` - EXAMPLE (:trac:`34790`):: + EXAMPLE (:issue:`34790`):: sage: from sage.schemes.elliptic_curves.padics import _multiple_to_make_good_reduction sage: E = EllipticCurve([-1728,-100656]) @@ -775,7 +775,7 @@ def padic_height(self, p, prec=20, sigma=None, check_hypotheses=True): TESTS: - Check that issue :trac:`20798` is solved:: + Check that issue :issue:`20798` is solved:: sage: E = EllipticCurve("91b") sage: h = E.padic_height(7,10) diff --git a/src/sage/schemes/elliptic_curves/period_lattice.py b/src/sage/schemes/elliptic_curves/period_lattice.py index c12e3f12cbc..1d3cbb020c2 100644 --- a/src/sage/schemes/elliptic_curves/period_lattice.py +++ b/src/sage/schemes/elliptic_curves/period_lattice.py @@ -70,7 +70,7 @@ sage: L.normalised_basis() (-1.37588604166076 - 2.58560946624443*I, -2.10339907847356 + 0.428378776460622*I) -We test that bug :trac:`8415` (caused by a PARI bug fixed in v2.3.5) is OK:: +We test that bug :issue:`8415` (caused by a PARI bug fixed in v2.3.5) is OK:: sage: # needs sage.rings.number_field sage: E = EllipticCurve('37a') @@ -426,7 +426,7 @@ def basis(self, prec=None, algorithm='sage'): sage: E.period_lattice().basis() (2.99345864623196, 2.45138938198679*I) - This shows that the issue reported at :trac:`3954` is fixed:: + This shows that the issue reported at :issue:`3954` is fixed:: sage: E = EllipticCurve('37a') sage: b1 = E.period_lattice().basis(prec=30) @@ -434,7 +434,7 @@ def basis(self, prec=None, algorithm='sage'): sage: b1 == b2 True - This shows that the issue reported at :trac:`4064` is fixed:: + This shows that the issue reported at :issue:`4064` is fixed:: sage: E = EllipticCurve('37a') sage: E.period_lattice().basis(prec=30)[0].parent() @@ -950,7 +950,7 @@ def omega(self, prec=None, bsd_normalise=False): A complex example (taken from J.E.Cremona and E.Whitley, *Periods of cusp forms and elliptic curves over imaginary quadratic fields*, Mathematics of Computation 62 No. 205 - (1994), 407-429). See :trac:`29645` and :trac:`29782`:: + (1994), 407-429). See :issue:`29645` and :issue:`29782`:: sage: # needs sage.rings.number_field sage: K. = QuadraticField(-1) @@ -1008,7 +1008,7 @@ def basis_matrix(self, prec=None, normalised=False): [ 3.81452977217854509 0.000000000000000000] [ 1.90726488608927255 1.34047785962440202] - See :trac:`4388`:: + See :issue:`4388`:: sage: L = EllipticCurve('11a1').period_lattice() sage: L.basis_matrix() @@ -1680,7 +1680,7 @@ def elliptic_logarithm(self, P, prec=None, reduce=True): TESTS: - See :trac:`10026` and :trac:`11767`:: + See :issue:`10026` and :issue:`11767`:: sage: # needs sage.rings.number_field sage: K. = QuadraticField(2) @@ -1817,7 +1817,7 @@ def elliptic_exponential(self, z, to_curve=True): sage: [embs[2](c) for c in Q] [0.259921049894873, -0.587401051968200, 1.00000000000000] - Test to show that :trac:`8820` is fixed:: + Test to show that :issue:`8820` is fixed:: sage: # needs sage.rings.number_field sage: E = EllipticCurve('37a') @@ -1852,7 +1852,7 @@ def elliptic_exponential(self, z, to_curve=True): y^2 + 1.00000000000000*y = x^3 + (-1.00000000000000)*x over Complex Field with 53 bits of precision - Very small `z` are handled properly (see :trac:`8820`):: + Very small `z` are handled properly (see :issue:`8820`):: sage: # needs sage.rings.number_field sage: K. = QuadraticField(-1) diff --git a/src/sage/schemes/elliptic_curves/saturation.py b/src/sage/schemes/elliptic_curves/saturation.py index 4526cf8a9e9..5f3e1dcd629 100644 --- a/src/sage/schemes/elliptic_curves/saturation.py +++ b/src/sage/schemes/elliptic_curves/saturation.py @@ -373,7 +373,7 @@ def p_saturation(self, Plist, p, sieve=True): TESTS: - See :trac:`27387`:: + See :issue:`27387`:: sage: K. = NumberField(x^2 - x - 26) sage: E = EllipticCurve([a, 1 - a, 0, 93 - 16*a, 3150 - 560*a]) diff --git a/src/sage/schemes/elliptic_curves/sha_tate.py b/src/sage/schemes/elliptic_curves/sha_tate.py index b5a7b48bf0a..006020f55f3 100644 --- a/src/sage/schemes/elliptic_curves/sha_tate.py +++ b/src/sage/schemes/elliptic_curves/sha_tate.py @@ -257,7 +257,7 @@ def an_numerical(self, prec=None, sage: EllipticCurve([0, 0, 1, -79, 342]).sha().an_numerical(prec=10, proof=False) # long time (22s on sage.math, 2011) 1.0 - See :trac:`1115`:: + See :issue:`1115`:: sage: sha = EllipticCurve('37a1').sha() sage: [sha.an_numerical(prec) for prec in range(40,100,10)] # long time (3s on sage.math, 2013) @@ -395,7 +395,7 @@ def an(self, use_database=False, descent_second_limit=12): sage: E.sha().an() 1 - See :trac:`10096`: this used to give the wrong result 6.0000 + See :issue:`10096`: this used to give the wrong result 6.0000 before since the minimal model was not used:: sage: E = EllipticCurve([1215*1216, 0]) # non-minimal model @@ -503,7 +503,7 @@ def an_padic(self, p, prec=0, use_twists=True): sage: EllipticCurve('130a1').sha().an_padic(5) # rank 1 1 + O(5) - Non-split, but rank 0 case (:trac:`7331`):: + Non-split, but rank 0 case (:issue:`7331`):: sage: EllipticCurve('270b1').sha().an_padic(5) # rank 0, long time (2s on sage.math, 2011) 1 + O(5^22) @@ -531,7 +531,7 @@ def an_padic(self, p, prec=0, use_twists=True): sage: EllipticCurve([-19,34]).sha().an_padic(5) # see trac #6455, long time (4s on sage.math, 2011) 1 + O(5) - Test for :trac:`15737`:: + Test for :issue:`15737`:: sage: E = EllipticCurve([-100,0]) sage: s = E.sha() @@ -835,7 +835,7 @@ def p_primary_bound(self, p): sage: e.sha().p_primary_bound(3) # long time (10s on sage.math, 2011) 0 - Some checks for :trac:`6406` and :trac:`16959`:: + Some checks for :issue:`6406` and :issue:`16959`:: sage: e.sha().p_primary_bound(7) # long time 2 diff --git a/src/sage/schemes/elliptic_curves/weierstrass_morphism.py b/src/sage/schemes/elliptic_curves/weierstrass_morphism.py index 952d19ad0a6..0857133279a 100644 --- a/src/sage/schemes/elliptic_curves/weierstrass_morphism.py +++ b/src/sage/schemes/elliptic_curves/weierstrass_morphism.py @@ -243,7 +243,7 @@ def _isomorphisms(E, F): TESTS: - Check that :trac:`32632` is fixed:: + Check that :issue:`32632` is fixed:: sage: z8 = GF(2^8).gen() sage: E1 = EllipticCurve([z8, z8, z8, z8, z8]) @@ -443,7 +443,7 @@ def __init__(self, E=None, urst=None, F=None): TESTS: - Check for :trac:`33215`:: + Check for :issue:`33215`:: sage: from sage.schemes.elliptic_curves.weierstrass_morphism import WeierstrassIsomorphism sage: E = EllipticCurve(GF(71^2), [5,5]) # needs sage.rings.finite_rings @@ -454,7 +454,7 @@ def __init__(self, E=None, urst=None, F=None): To: Elliptic Curve defined by y^2 = x^3 + 5*x + 5 over Finite Field in z2 of size 71^2 Via: (u,r,s,t) = (1, 69, 68, 2) - Test for :trac:`33312`:: + Test for :issue:`33312`:: sage: type(iso.degree()) # needs sage.rings.finite_rings @@ -798,7 +798,7 @@ def rational_maps(self): TESTS: - Check for :trac:`34811`:: + Check for :issue:`34811`:: sage: iso.rational_maps()[0].parent() Fraction Field of Multivariate Polynomial Ring in x, y over Rational Field @@ -829,7 +829,7 @@ def x_rational_map(self): TESTS: - Check for :trac:`34811`:: + Check for :issue:`34811`:: sage: iso.x_rational_map().parent() Fraction Field of Univariate Polynomial Ring in x over Rational Field diff --git a/src/sage/schemes/generic/algebraic_scheme.py b/src/sage/schemes/generic/algebraic_scheme.py index 7da5ea655b9..b7ee556f136 100644 --- a/src/sage/schemes/generic/algebraic_scheme.py +++ b/src/sage/schemes/generic/algebraic_scheme.py @@ -807,7 +807,7 @@ def _check_satisfies_equations(self, v): TESTS: - The bug reported at :trac:`12211` has been fixed:: + The bug reported at :issue:`12211` has been fixed:: sage: P. = ProjectiveSpace(3, QQ) sage: S = P.subscheme([x]) @@ -1219,7 +1219,7 @@ def irreducible_components(self): ] We verify that the irrelevant ideal is not accidentally returned - (see :trac:`6920`):: + (see :issue:`6920`):: sage: PP. = ProjectiveSpace(3, QQ) sage: f = x^3 + y^3 + z^3 + w^3 @@ -1322,7 +1322,7 @@ def Jacobian_matrix(self): [ z -y -x w] [ 0 z -2*y x] - This example addresses issue :trac:`20512`:: + This example addresses issue :issue:`20512`:: sage: X = P3.subscheme([]) sage: X.Jacobian_matrix().base_ring() == P3.coordinate_ring() # needs sage.libs.singular @@ -1369,7 +1369,7 @@ def Jacobian(self): Ideal (-x^2 + w*y, -x*y + w*z, -y^2 + x*z) of Multivariate Polynomial Ring in w, x, y, z over Rational Field - This example addresses issue :trac:`20512`:: + This example addresses issue :issue:`20512`:: sage: X = P3.subscheme([]) sage: X.Jacobian() == P3.coordinate_ring().unit_ideal() # needs sage.libs.singular diff --git a/src/sage/schemes/generic/divisor.py b/src/sage/schemes/generic/divisor.py index 6a55c3e8ce7..c6d99b12204 100644 --- a/src/sage/schemes/generic/divisor.py +++ b/src/sage/schemes/generic/divisor.py @@ -381,7 +381,7 @@ def support(self): TESTS: - This checks that :trac:`10732` is fixed:: + This checks that :issue:`10732` is fixed:: sage: R. = GF(5)[] sage: C = Curve(x^7 + y^7 + z^7) diff --git a/src/sage/schemes/generic/morphism.py b/src/sage/schemes/generic/morphism.py index 4405268fed6..31dc4010f5b 100644 --- a/src/sage/schemes/generic/morphism.py +++ b/src/sage/schemes/generic/morphism.py @@ -59,7 +59,7 @@ - Ben Hutz (June 2012): added support for projective ring - Simon King (2013-10): copy the changes of :class:`~sage.categories.morphism.Morphism` - that have been introduced in :trac:`14711`. + that have been introduced in :issue:`14711`. """ # **************************************************************************** @@ -129,7 +129,7 @@ class SchemeMorphism(Element): For historical reasons, :class:`SchemeMorphism` copies code from :class:`~sage.categories.map.Map` rather than inheriting from it. - Proper inheritance should be used instead. See :trac:`14711`. + Proper inheritance should be used instead. See :issue:`14711`. EXAMPLES:: @@ -504,7 +504,7 @@ def base_ring(self): sage: f.base_ring() Multivariate Polynomial Ring in t over Integer Ring - Points have correct base rings too (:trac:`34336`):: + Points have correct base rings too (:issue:`34336`):: sage: x = P(t, 5); x (t : 5) @@ -1402,7 +1402,7 @@ def change_ring(self, R, check=True): Defn: Defined on coordinates by sending (x : y) to (x : y) - Check that :trac:`16834` is fixed:: + Check that :issue:`16834` is fixed:: sage: # needs sage.rings.real_mpfr sage: A. = AffineSpace(RR, 3) diff --git a/src/sage/schemes/generic/point.py b/src/sage/schemes/generic/point.py index c65963e3eaa..5f8f3d024a6 100644 --- a/src/sage/schemes/generic/point.py +++ b/src/sage/schemes/generic/point.py @@ -88,7 +88,7 @@ def __init__(self, S): TESTS: The parent of a topological point is the scheme on which it - lies (see :trac:`7946`):: + lies (see :issue:`7946`):: sage: R = Zmod(8) sage: S = Spec(R) diff --git a/src/sage/schemes/generic/scheme.py b/src/sage/schemes/generic/scheme.py index 25a67a2c4c4..1c66ce9bb33 100644 --- a/src/sage/schemes/generic/scheme.py +++ b/src/sage/schemes/generic/scheme.py @@ -90,7 +90,7 @@ def __init__(self, X=None, category=None): TESTS: - The full test suite works since :trac:`7946`:: + The full test suite works since :issue:`7946`:: sage: R. = QQ[] sage: I = (x^2 - y^2)*R @@ -162,7 +162,7 @@ def _morphism(self, *args, **kwds): TESTS: - This shows that issue at :trac:`7389` is solved:: + This shows that issue at :issue:`7389` is solved:: sage: S = Spec(ZZ) sage: f = S.identity_morphism() @@ -243,7 +243,7 @@ def __call__(self, *args): sage: A(1, 0) (1, 0) - Check that :trac:`16832` is fixed:: + Check that :issue:`16832` is fixed:: sage: P. = ProjectiveSpace(ZZ, 2) sage: X = P.subscheme(x^2 - y^2) @@ -743,7 +743,7 @@ def zeta_series(self, n, t): provide the required approximation. Otherwise this function depends on ``count_points``, which is only defined for prime order fields for general schemes. - Nonetheless, since :trac:`15108` and :trac:`15148`, it supports + Nonetheless, since :issue:`15108` and :issue:`15148`, it supports hyperelliptic curves over non-prime fields:: sage: C.base_extend(GF(9, 'a')).zeta_series(4, t) # needs sage.rings.finite_rings sage.schemes @@ -961,7 +961,7 @@ def __call__(self, *args): in x, y, z over Rational Field defined by the Ideal (x, y, z) of Multivariate Polynomial Ring in x, y, z over Rational Field - This indicates the fix of :trac:`12734`:: + This indicates the fix of :issue:`12734`:: sage: S = Spec(ZZ) sage: S(ZZ) @@ -1198,7 +1198,7 @@ def hom(self, x, Y=None): TESTS: - We can construct a morphism to an affine curve (:trac:`7956`):: + We can construct a morphism to an affine curve (:issue:`7956`):: sage: S. = QQ[] sage: A1. = AffineSpace(QQ, 1) diff --git a/src/sage/schemes/generic/spec.py b/src/sage/schemes/generic/spec.py index 92453a86bf4..93fc8b7e43c 100644 --- a/src/sage/schemes/generic/spec.py +++ b/src/sage/schemes/generic/spec.py @@ -48,7 +48,7 @@ def Spec(R, S=None): sage: TestSuite(X).run() # needs sage.rings.finite_rings Applying ``Spec`` twice to the same ring gives identical output - (see :trac:`17008`):: + (see :issue:`17008`):: sage: A = Spec(ZZ); B = Spec(ZZ) sage: A is B diff --git a/src/sage/schemes/hyperelliptic_curves/constructor.py b/src/sage/schemes/hyperelliptic_curves/constructor.py index 776b49f394e..faba7145ba5 100644 --- a/src/sage/schemes/hyperelliptic_curves/constructor.py +++ b/src/sage/schemes/hyperelliptic_curves/constructor.py @@ -173,7 +173,7 @@ def HyperellipticCurve(f, h=0, names=None, PP=None, check_squarefree=True): TESTS: - Check that `f` can be a constant (see :trac:`15516`):: + Check that `f` can be a constant (see :issue:`15516`):: sage: R. = PolynomialRing(Rationals()) sage: HyperellipticCurve(-12, u^4 + 7) diff --git a/src/sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py b/src/sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py index a4cabb5bb93..f461132b1d1 100644 --- a/src/sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py +++ b/src/sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py @@ -489,7 +489,7 @@ def frobenius_polynomial_pari(self): TESTS: - Check that :trac:`28789` is fixed:: + Check that :issue:`28789` is fixed:: sage: P. = PolynomialRing(GF(3)) sage: u = x^10 + x^9 + x^8 + x @@ -569,7 +569,7 @@ def frobenius_polynomial(self): TESTS: - Check that :trac:`28789` is fixed:: + Check that :issue:`28789` is fixed:: sage: P. = PolynomialRing(GF(3)) sage: u = x^10 + x^9 + x^8 + x @@ -821,7 +821,7 @@ def points(self): sage: len(C.points()) 122 - Conics are allowed (the issue reported at :trac:`11800` + Conics are allowed (the issue reported at :issue:`11800` has been resolved):: sage: R. = GF(7)[] @@ -890,7 +890,7 @@ def count_points_matrix_traces(self, n=1, M=None, N=None): TESTS: - Check that :trac:`18831` is fixed:: + Check that :issue:`18831` is fixed:: sage: R. = PolynomialRing(GF(11)) sage: H = HyperellipticCurve(t^5 - t + 1) @@ -1180,7 +1180,7 @@ def count_points(self, n=1): sage: H.count_points(6) [2, 24, 74, 256, 1082, 4272] - This example shows that :trac:`20391` is resolved:: + This example shows that :issue:`20391` is resolved:: sage: x = polygen(GF(4099)) sage: H = HyperellipticCurve(x^6 + x + 1) @@ -1236,7 +1236,7 @@ def cardinality_exhaustive(self, extension_degree=1, algorithm=None): TESTS: - Check for :trac:`19122`:: + Check for :issue:`19122`:: sage: x = polygen(GF(19), 'x') sage: f = 15*x^4 + 7*x^3 + 3*x^2 + 7*x + 18 @@ -1244,7 +1244,7 @@ def cardinality_exhaustive(self, extension_degree=1, algorithm=None): 19 Points at infinity on general curves of genus 1 are counted - correctly (see :trac:`21195`):: + correctly (see :issue:`21195`):: sage: S. = PolynomialRing(ZZ) sage: C = HyperellipticCurve(-z^2 + z, z^2) @@ -1369,7 +1369,7 @@ def cardinality(self, extension_degree=1): sage: H.cardinality(3) 50116 - The following example shows that :trac:`20391` has been resolved:: + The following example shows that :issue:`20391` has been resolved:: sage: F=GF(23) sage: x=polygen(F) @@ -1723,7 +1723,7 @@ def _Hasse_Witt_cached(self): TESTS: - This shows that the bug at :trac:`23181` is fixed:: + This shows that the bug at :issue:`23181` is fixed:: sage: K. = PolynomialRing(GF(5)) sage: L. = GF(5).extension(z^3+3*z+3,'a') diff --git a/src/sage/schemes/hyperelliptic_curves/hyperelliptic_generic.py b/src/sage/schemes/hyperelliptic_curves/hyperelliptic_generic.py index 2be64e5ecd5..c18732064d4 100644 --- a/src/sage/schemes/hyperelliptic_curves/hyperelliptic_generic.py +++ b/src/sage/schemes/hyperelliptic_curves/hyperelliptic_generic.py @@ -885,7 +885,7 @@ def rational_points(self, **kwds): (1 : -1 : 1), (1 : 0 : 1)] - Check that :trac:`29509` is fixed for the LMFDB genus 2 curve + Check that :issue:`29509` is fixed for the LMFDB genus 2 curve `169.a.169.1 `_:: sage: C = HyperellipticCurve(R([0, 0, 0, 0, 1, 1]), R([1, 1, 0, 1])) diff --git a/src/sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.py b/src/sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.py index 5e18ef31544..018d60c22f8 100644 --- a/src/sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.py +++ b/src/sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.py @@ -107,7 +107,7 @@ def local_analytic_interpolation(self, P, Q): TESTS: - Check that :trac:`26005` is fixed:: + Check that :issue:`26005` is fixed:: sage: L = Qp(5, 100) sage: HL = H.change_ring(L) diff --git a/src/sage/schemes/hyperelliptic_curves/jacobian_morphism.py b/src/sage/schemes/hyperelliptic_curves/jacobian_morphism.py index e0dcc4bacfe..72024866cb6 100644 --- a/src/sage/schemes/hyperelliptic_curves/jacobian_morphism.py +++ b/src/sage/schemes/hyperelliptic_curves/jacobian_morphism.py @@ -703,7 +703,7 @@ def __neg__(self): TESTS: - The following was fixed in :trac:`14264`:: + The following was fixed in :issue:`14264`:: sage: # needs sage.rings.number_field sage: P. = QQ[] diff --git a/src/sage/schemes/hyperelliptic_curves/mestre.py b/src/sage/schemes/hyperelliptic_curves/mestre.py index 7687cff0916..f2de1a2eb36 100644 --- a/src/sage/schemes/hyperelliptic_curves/mestre.py +++ b/src/sage/schemes/hyperelliptic_curves/mestre.py @@ -108,7 +108,7 @@ def HyperellipticCurve_from_invariants(i, reduced=True, precision=None, Mestre's algorithm only works for generic curves of genus two, so another algorithm is needed for those curves with extra automorphism. See also - :trac:`12199`:: + :issue:`12199`:: sage: P. = QQ[] sage: C = HyperellipticCurve(x^6 + 1) @@ -121,7 +121,7 @@ def HyperellipticCurve_from_invariants(i, reduced=True, precision=None, Igusa-Clebsch invariants also only work over fields of characteristic different from 2, 3, and 5, so another algorithm will be needed for fields - of those characteristics. See also :trac:`12200`:: + of those characteristics. See also :issue:`12200`:: sage: P. = GF(3)[] sage: HyperellipticCurve(x^6 + x + 1).igusa_clebsch_invariants() diff --git a/src/sage/schemes/plane_conics/con_field.py b/src/sage/schemes/plane_conics/con_field.py index 26bea07db90..edb6cc82eb4 100644 --- a/src/sage/schemes/plane_conics/con_field.py +++ b/src/sage/schemes/plane_conics/con_field.py @@ -880,7 +880,7 @@ def parametrization(self, point=None, morphism=True): Defn: Defined on coordinates by sending (x : y) to ... sage: h[0]/h[1] x/y - sage: h.is_one() # known bug (see :trac:`31892`) + sage: h.is_one() # known bug (see :issue:`31892`) True sage: (x,y,z) = c.gens() sage: x.parent() @@ -893,7 +893,7 @@ def parametrization(self, point=None, morphism=True): 0 The morphisms are mathematically defined in all points, - but don't work completely in SageMath (see :trac:`31892`) :: + but don't work completely in SageMath (see :issue:`31892`) :: sage: # needs sage.libs.pari sage: f, g = c.parametrization([0,0,1]) diff --git a/src/sage/schemes/plane_conics/con_rational_function_field.py b/src/sage/schemes/plane_conics/con_rational_function_field.py index a5dcfb9bf1b..fec1a50fdbb 100644 --- a/src/sage/schemes/plane_conics/con_rational_function_field.py +++ b/src/sage/schemes/plane_conics/con_rational_function_field.py @@ -219,7 +219,7 @@ def has_rational_point(self, point=False, algorithm='default', ((-2/117*t^8 + 304/1053*t^7 + 40/117*t^6 - 1/27*t^5 - 110/351*t^4 - 2/195*t^3 + 11/351*t^2 + 1/117)/(t^4 + 2/39*t^3 + 4/117*t^2 + 2/39*t + 14/39) : -5/3*t^4 + 19*t^3 : 1)) ``has_rational_point`` used to fail for some conics over function fields - over finite fields, due to :trac:`20003`:: + over finite fields, due to :issue:`20003`:: sage: K. = PolynomialRing(GF(7)) sage: C = Conic([5*t^2 + 4, t^2 + 3*t + 3, 6*t^2 + 3*t + 2, diff --git a/src/sage/schemes/projective/projective_homset.py b/src/sage/schemes/projective/projective_homset.py index 2a61c1dd17c..91c01a51128 100644 --- a/src/sage/schemes/projective/projective_homset.py +++ b/src/sage/schemes/projective/projective_homset.py @@ -579,7 +579,7 @@ class SchemeHomset_points_abelian_variety_field(SchemeHomset_points_projective_f TESTS: - The bug reported at :trac:`1785` is fixed:: + The bug reported at :issue:`1785` is fixed:: sage: # needs sage.rings.number_field sage.schemes sage: x = polygen(ZZ, 'x') @@ -602,7 +602,7 @@ class SchemeHomset_points_abelian_variety_field(SchemeHomset_points_projective_f sage: P in X.extended_codomain() True - Check for :trac:`11982`:: + Check for :issue:`11982`:: sage: P2. = ProjectiveSpace(QQ,2) sage: d = 7 diff --git a/src/sage/schemes/projective/projective_morphism.py b/src/sage/schemes/projective/projective_morphism.py index 991da14db75..cefebbe5ff4 100644 --- a/src/sage/schemes/projective/projective_morphism.py +++ b/src/sage/schemes/projective/projective_morphism.py @@ -99,7 +99,7 @@ class SchemeMorphism_polynomial_projective_space(SchemeMorphism_polynomial): Defn: Defined on coordinates by sending (x : y) to (y : 2*x) - An example of a morphism between projective plane curves (see :trac:`10297`):: + An example of a morphism between projective plane curves (see :issue:`10297`):: sage: # needs sage.schemes sage: P2. = ProjectiveSpace(QQ, 2) @@ -357,7 +357,7 @@ def __call__(self, x, check=True): TESTS: - Check that :trac:`32209` is fixed:: + Check that :issue:`32209` is fixed:: sage: S. = ProjectiveSpace(ZZ, 1) sage: T. = ProjectiveSpace(ZZ, 1) @@ -1777,7 +1777,7 @@ def _number_field_from_algebraics(self): Defn: Defined on coordinates by sending (x : y) to (x^2 + (a^3 + 2*a)*x*y + 3*y^2 : y^2 : (2*a^2 + 3)*x*y) - The following was fixed in :trac:`23808`:: + The following was fixed in :issue:`23808`:: sage: # needs sage.rings.number_field sage: R. = PolynomialRing(QQ) diff --git a/src/sage/schemes/projective/projective_point.py b/src/sage/schemes/projective/projective_point.py index dea15db15e5..7fb61b37e1a 100644 --- a/src/sage/schemes/projective/projective_point.py +++ b/src/sage/schemes/projective/projective_point.py @@ -273,7 +273,7 @@ def _richcmp_(self, right, op): sage: P == Q False - Check that :trac:`17433` is fixed:: + Check that :issue:`17433` is fixed:: sage: P. = ProjectiveSpace(Zmod(10), 1) sage: p1 = P(1/3, 1) @@ -294,7 +294,7 @@ def _richcmp_(self, right, op): sage: P == Q True - Check that :trac:`17429` is fixed:: + Check that :issue:`17429` is fixed:: sage: # needs sage.rings.complex_interval_field sage: R. = PolynomialRing(QQ) @@ -1257,7 +1257,7 @@ def _number_field_from_algebraics(self): Projective Space of dimension 1 over Number Field in a with defining polynomial y^4 + 1 with a = 0.7071067811865475? + 0.7071067811865475?*I - The following was fixed in :trac:`23808`:: + The following was fixed in :issue:`23808`:: sage: # needs sage.rings.number_field sage.symbolic sage: R. = PolynomialRing(QQ) diff --git a/src/sage/schemes/toric/divisor.py b/src/sage/schemes/toric/divisor.py index 796d667c518..a67312516fa 100644 --- a/src/sage/schemes/toric/divisor.py +++ b/src/sage/schemes/toric/divisor.py @@ -1360,7 +1360,7 @@ def _sheaf_cohomology(self, cplx): sage: D._sheaf_cohomology( SimplicialComplex([[1,2],[2,3],[3,1]]) ) (0, 0, 1) - A more complicated example to test that :trac:`10731` is fixed:: + A more complicated example to test that :issue:`10731` is fixed:: sage: cell24 = Polyhedron(vertices=[ ....: (1,0,0,0),(0,1,0,0),(0,0,1,0),(0,0,0,1),(1,-1,-1,1),(0,0,-1,1), @@ -1806,7 +1806,7 @@ def _element_constructor_(self, x, check=True, reduce=True): TESTS: - Check for :trac:`12812`:: + Check for :issue:`12812`:: sage: TDiv(0) 0 diff --git a/src/sage/schemes/toric/fano_variety.py b/src/sage/schemes/toric/fano_variety.py index b7f2c2ab6ac..d6cbe751274 100644 --- a/src/sage/schemes/toric/fano_variety.py +++ b/src/sage/schemes/toric/fano_variety.py @@ -1303,7 +1303,7 @@ def __init__(self, P_Delta, monomial_points=None, coefficient_names=None, covered by 4 affine patches defined by: a0*s^2*x^2 + a3*t^2*x^2 + a6*s*t*x*y + a1*s^2*y^2 + a2*t^2*y^2 - Check that finite fields are handled correctly :trac:`14899`:: + Check that finite fields are handled correctly :issue:`14899`:: sage: F = GF(5^2, "a") # needs sage.rings.finite_rings sage: X = P1xP1.change_ring(F) # needs sage.rings.finite_rings diff --git a/src/sage/schemes/toric/morphism.py b/src/sage/schemes/toric/morphism.py index d6687a3e790..b5d11c0d808 100644 --- a/src/sage/schemes/toric/morphism.py +++ b/src/sage/schemes/toric/morphism.py @@ -284,7 +284,7 @@ sage: phi_d.codomain().fan().is_isomorphic(toric_varieties.P2().fan()) # known bug True -(Unfortunately it cannot be verified correctly until :trac:`16012` is fixed.) +(Unfortunately it cannot be verified correctly until :issue:`16012` is fixed.) We now have access to fiber methods:: diff --git a/src/sage/schemes/toric/toric_subscheme.py b/src/sage/schemes/toric/toric_subscheme.py index 3d481846b88..8d3bd985ed2 100644 --- a/src/sage/schemes/toric/toric_subscheme.py +++ b/src/sage/schemes/toric/toric_subscheme.py @@ -637,7 +637,7 @@ def is_nondegenerate(self): True This example is from Hamm, :arxiv:`1106.1826v1`. It addresses - an issue raised at :trac:`15239`:: + an issue raised at :issue:`15239`:: sage: X = toric_varieties.WP([1,4,2,3], names='z0 z1 z2 z3') sage: X.inject_variables() @@ -659,7 +659,7 @@ def is_nondegenerate(self): TESTS: - Some corner cases discussed at :trac:`15239`:: + Some corner cases discussed at :issue:`15239`:: sage: P2. = toric_varieties.P2() sage: P2.subscheme([]).is_nondegenerate() diff --git a/src/sage/schemes/toric/variety.py b/src/sage/schemes/toric/variety.py index a08c9947831..ac2adcfdb30 100644 --- a/src/sage/schemes/toric/variety.py +++ b/src/sage/schemes/toric/variety.py @@ -1182,7 +1182,7 @@ def inject_coefficients(self, scope=None, verbose=True): sage: P1xP1.inject_coefficients() Defining a, b - We check that we can use names ``a`` and ``b``, :trac:`10498` is fixed:: + We check that we can use names ``a`` and ``b``, :issue:`10498` is fixed:: sage: a + b a + b @@ -1927,8 +1927,8 @@ def cohomology_ring(self): TESTS: The cohomology ring is a circular reference that is - potentially troublesome on unpickling, see :trac:`15050` - and :trac:`15149` :: + potentially troublesome on unpickling, see :issue:`15050` + and :issue:`15149` :: sage: # needs sage.libs.singular sage: variety = toric_varieties.P(1) @@ -2376,7 +2376,7 @@ def divisor(self, arg, base_ring=None, check=True, reduce=True): TESTS: - We check that the issue :trac:`12812` is resolved:: + We check that the issue :issue:`12812` is resolved:: sage: sum(dP6.divisor(i) for i in range(3)) V(x) + V(u) + V(y) diff --git a/src/sage/sets/disjoint_set.pyx b/src/sage/sets/disjoint_set.pyx index 3d2f4dd1710..e8ae11fc3a1 100644 --- a/src/sage/sets/disjoint_set.pyx +++ b/src/sage/sets/disjoint_set.pyx @@ -13,7 +13,7 @@ AUTHORS: - Sébastien Labbé (2008) - Initial version. - Sébastien Labbé (2009-11-24) - Pickling support -- Sébastien Labbé (2010-01) - Inclusion into sage (:trac:`6775`). +- Sébastien Labbé (2010-01) - Inclusion into sage (:issue:`6775`). EXAMPLES: diff --git a/src/sage/sets/disjoint_union_enumerated_sets.py b/src/sage/sets/disjoint_union_enumerated_sets.py index d6e7fbdde72..030834993fa 100644 --- a/src/sage/sets/disjoint_union_enumerated_sets.py +++ b/src/sage/sets/disjoint_union_enumerated_sets.py @@ -562,7 +562,7 @@ def _element_constructor_facade(self, el): Partitions of the integer 0 Test that facade parents can create and properly access elements - that are tuples (fixed by :trac:`22382`):: + that are tuples (fixed by :issue:`22382`):: sage: # needs sage.combinat sage.libs.flint sage: f = lambda mu: cartesian_product([mu.standard_tableaux(), diff --git a/src/sage/sets/family.pyx b/src/sage/sets/family.pyx index d1c102261a8..0e1cafa1212 100644 --- a/src/sage/sets/family.pyx +++ b/src/sage/sets/family.pyx @@ -15,7 +15,7 @@ AUTHORS: TESTS: -Check :trac:`12482` (shall be run in a fresh session):: +Check :issue:`12482` (shall be run in a fresh session):: sage: P = Partitions(3) # needs sage.combinat sage: Family(P, lambda x: x).category() # needs sage.combinat @@ -373,7 +373,7 @@ def Family(indices, function=None, hidden_keys=[], hidden_function=None, lazy=Fa sage: list(f) ['cc', 'aa', 'bb'] - Even with hidden keys (see :trac:`22955`):: + Even with hidden keys (see :issue:`22955`):: sage: f = Family(["c", "a", "b"], lambda i: 2*i, ....: hidden_keys=[5], hidden_function=lambda i: i%2) @@ -590,7 +590,7 @@ cdef class FiniteFamily(AbstractFamily): sage: f = FiniteFamily({3: 'a', 4: 'b', 7: 'd'}) sage: TestSuite(f).run() - Check for bug :trac:`5538`:: + Check for bug :issue:`5538`:: sage: d = {1:"a", 3:"b", 4:"c"} sage: f = Family(d) @@ -959,7 +959,7 @@ class LazyFamily(AbstractFamily): Lazy family ((i))_{i in [3, 4, 7]} sage: TestSuite(f).run() - Check for :trac:`5538`:: + Check for :issue:`5538`:: sage: l = [3,4,7] sage: f = LazyFamily(l, lambda i: 2*i) @@ -1121,7 +1121,7 @@ class LazyFamily(AbstractFamily): TESTS: - Check that :trac:`15195` is fixed:: + Check that :issue:`15195` is fixed:: sage: C = cartesian_product([PositiveIntegers(), [1,2,3]]) sage: C.cardinality() @@ -1432,7 +1432,7 @@ class EnumeratedFamily(LazyFamily): TESTS: - Check that category and keys are set correctly (:trac:`28274`):: + Check that category and keys are set correctly (:issue:`28274`):: sage: from sage.sets.family import EnumeratedFamily sage: f = EnumeratedFamily(Permutations(4)) diff --git a/src/sage/sets/finite_enumerated_set.py b/src/sage/sets/finite_enumerated_set.py index cc8deaea4d8..6f205e5b70e 100644 --- a/src/sage/sets/finite_enumerated_set.py +++ b/src/sage/sets/finite_enumerated_set.py @@ -314,7 +314,7 @@ def __call__(self, el): to be instances of :class:`Element`). Since :class:`FiniteEnumeratedSets` is often a facade over - plain Python objects, :trac:`16280` introduced this method + plain Python objects, :issue:`16280` introduced this method which works around this limitation by calling directly :meth:`_element_constructor_` whenever ``el`` is not an :class:`Element`. Otherwise :meth:`Parent.__call__` is called @@ -328,7 +328,7 @@ def __call__(self, el): If the :meth:`Parent.__call__` fails, then we try :meth:`_element_constructor_` directly as the element returned may not be a subclass of :class:`Element`, which is currently - not supported (see :trac:`19553`). + not supported (see :issue:`19553`). EXAMPLES:: @@ -358,7 +358,7 @@ def __call__(self, el): sage: F('a') 'a' - Check that :trac:`19554` is fixed:: + Check that :issue:`19554` is fixed:: sage: S = FiniteEnumeratedSet(range(5)) sage: S(1) diff --git a/src/sage/sets/integer_range.py b/src/sage/sets/integer_range.py index d42f77a5307..31602abb5a6 100644 --- a/src/sage/sets/integer_range.py +++ b/src/sage/sets/integer_range.py @@ -201,7 +201,7 @@ class IntegerRange(UniqueRepresentation, Parent): ....: L2.sort() ....: assert L1 == L2 - Thanks to :trac:`8543` empty integer range are allowed:: + Thanks to :issue:`8543` empty integer range are allowed:: sage: TestSuite(IntegerRange(0, 5, -1)).run() """ diff --git a/src/sage/sets/real_set.py b/src/sage/sets/real_set.py index 2b431284e4d..168521ce6a8 100644 --- a/src/sage/sets/real_set.py +++ b/src/sage/sets/real_set.py @@ -358,7 +358,7 @@ def __richcmp__(self, other, op): TESTS: - Check if a bug in sorting is fixed (:trac:`17714`):: + Check if a bug in sorting is fixed (:issue:`17714`):: sage: RealSet((0, 1),[1, 1],(1, 2)) (0, 2) diff --git a/src/sage/sets/recursively_enumerated_set.pyx b/src/sage/sets/recursively_enumerated_set.pyx index 66720d924e5..bf2a9e9c363 100644 --- a/src/sage/sets/recursively_enumerated_set.pyx +++ b/src/sage/sets/recursively_enumerated_set.pyx @@ -575,7 +575,7 @@ cdef class RecursivelyEnumeratedSet_generic(Parent): def __len__(self): """ - Disable ``__len__()`` from :class:`Parent` :trac:`12955`. + Disable ``__len__()`` from :class:`Parent` :issue:`12955`. Because Python assumes ``__len__()`` is fast and we cannot have a fast default implementation. @@ -1065,7 +1065,7 @@ cdef class RecursivelyEnumeratedSet_symmetric(RecursivelyEnumeratedSet_generic): TESTS: - Check that :trac:`28674` is fixed:: + Check that :issue:`28674` is fixed:: sage: D = RecursivelyEnumeratedSet([(0,0)], f) sage: s == list(D.breadth_first_search_iterator(max_depth=2)) @@ -1207,7 +1207,7 @@ cdef class RecursivelyEnumeratedSet_symmetric(RecursivelyEnumeratedSet_generic): TESTS: - We make sure that :trac:`21312` is fixed:: + We make sure that :issue:`21312` is fixed:: sage: def f(a): ....: sleep(0.1r) @@ -1376,7 +1376,7 @@ cdef class RecursivelyEnumeratedSet_graded(RecursivelyEnumeratedSet_generic): TESTS: - Make sure that :trac:`20225` is fixed:: + Make sure that :issue:`20225` is fixed:: sage: child = lambda k:[2*k,2*k+1] if k<8 else [] sage: root = [0] @@ -1431,7 +1431,7 @@ cdef class RecursivelyEnumeratedSet_graded(RecursivelyEnumeratedSet_generic): TESTS: - We make sure that :trac:`21312` is fixed:: + We make sure that :issue:`21312` is fixed:: sage: # needs sage.symbolic sage: def f(a): diff --git a/src/sage/sets/set.py b/src/sage/sets/set.py index 8131c044e86..fe351298d0a 100644 --- a/src/sage/sets/set.py +++ b/src/sage/sets/set.py @@ -184,7 +184,7 @@ def Set(X=None, category=None): sage: S = Set([]) sage: TestSuite(S).run() - Check that :trac:`16090` is fixed:: + Check that :issue:`16090` is fixed:: sage: Set() {} @@ -461,7 +461,7 @@ class Set_object(Set_generic, Set_base, Set_boolean_operators, Set_add_sub_opera TESTS: - See :trac:`14486`:: + See :issue:`14486`:: sage: 0 == Set([1]), Set([1]) == 0 (False, False) @@ -1361,7 +1361,7 @@ def __hash__(self): TESTS: - Test that :trac:`14432` has been resolved:: + Test that :issue:`14432` has been resolved:: sage: S = Set(ZZ).union(Set([infinity])) sage: T = Set(ZZ).union(Set([infinity])) @@ -1645,7 +1645,7 @@ def __iter__(self): 2 Check that known finite intersections have finite iterators (see - :trac:`18159`):: + :issue:`18159`):: sage: P = Set(ZZ).intersection(Set(range(10,20))) sage: list(P) diff --git a/src/sage/sets/set_from_iterator.py b/src/sage/sets/set_from_iterator.py index bea50fbacd7..81cb4f11bbc 100644 --- a/src/sage/sets/set_from_iterator.py +++ b/src/sage/sets/set_from_iterator.py @@ -133,7 +133,7 @@ class EnumeratedSetFromIterator(Parent): 3 The following warning is due to ``E`` being a facade parent. For more, - see the discussion on :trac:`16239`:: + see the discussion on :issue:`16239`:: sage: TestSuite(E).run() doctest:...: UserWarning: Testing equality of infinite sets which will not end in case of equality diff --git a/src/sage/sets/totally_ordered_finite_set.py b/src/sage/sets/totally_ordered_finite_set.py index f28840c81f7..7efba359dc0 100644 --- a/src/sage/sets/totally_ordered_finite_set.py +++ b/src/sage/sets/totally_ordered_finite_set.py @@ -212,7 +212,7 @@ class TotallyOrderedFiniteSet(FiniteEnumeratedSet): sage: A('a') == 'a' False - Since :trac:`16280`, totally ordered sets support elements that do + Since :issue:`16280`, totally ordered sets support elements that do not inherit from :class:`sage.structure.element.Element`, whether they are facade or not:: diff --git a/src/sage/stats/basic_stats.py b/src/sage/stats/basic_stats.py index 15e85197f3e..96684023b71 100644 --- a/src/sage/stats/basic_stats.py +++ b/src/sage/stats/basic_stats.py @@ -335,7 +335,7 @@ def variance(v, bias=False): TESTS: - The performance issue from :trac:`10019` is solved:: + The performance issue from :issue:`10019` is solved:: sage: variance([1] * 2^18) 0 diff --git a/src/sage/stats/hmm/chmm.pyx b/src/sage/stats/hmm/chmm.pyx index fe09b3f9cfb..905a77ed385 100644 --- a/src/sage/stats/hmm/chmm.pyx +++ b/src/sage/stats/hmm/chmm.pyx @@ -382,7 +382,7 @@ cdef class GaussianHiddenMarkovModel(HiddenMarkovModel): sage: add_samples(10^5) sage: while abs(counter*1.0 / n - 0.1) > 0.01: add_samples(10^5) - Example in which the starting state is 0 (see :trac:`11452`):: + Example in which the starting state is 0 (see :issue:`11452`):: sage: set_random_seed(23); m.generate_sequence(2) ([0.6501, -2.0151], [0, 1]) diff --git a/src/sage/stats/hmm/hmm.pyx b/src/sage/stats/hmm/hmm.pyx index fe8ab69cc66..f4a61111794 100644 --- a/src/sage/stats/hmm/hmm.pyx +++ b/src/sage/stats/hmm/hmm.pyx @@ -1376,7 +1376,7 @@ def unpickle_discrete_hmm_v1(A, B, pi, n_out, emission_symbols, emission_symbols sage: m2 == m True - Test that :trac:`15711` has been resolved:: + Test that :issue:`15711` has been resolved:: sage: str(m2) == str(m) True diff --git a/src/sage/structure/category_object.pyx b/src/sage/structure/category_object.pyx index 3e1eb38c73d..51753e2257c 100644 --- a/src/sage/structure/category_object.pyx +++ b/src/sage/structure/category_object.pyx @@ -352,7 +352,7 @@ cdef class CategoryObject(SageObject): Univariate Polynomial Ring in x over Rational Field For orders, we correctly use the ring generator, see - :trac:`15348`:: + :issue:`15348`:: sage: A. = ZZ.extension(x^2 + 1) # needs sage.rings.number_field sage: i # needs sage.rings.number_field @@ -390,7 +390,7 @@ cdef class CategoryObject(SageObject): (x,) For orders, we correctly use the ring generator, see - :trac:`15348`:: + :issue:`15348`:: sage: B. = EquationOrder(x^2 + 3) # needs sage.rings.number_field sage: B._defining_names() # needs sage.rings.number_field @@ -503,7 +503,7 @@ cdef class CategoryObject(SageObject): In an old version, it was impossible to temporarily change the names if no names were previously assigned. But if one wants to print elements of the quotient of such an "unnamed" - ring, an error resulted. That was fixed in :trac:`11068`:: + ring, an error resulted. That was fixed in :issue:`11068`:: sage: # needs sage.modules sage: MS = MatrixSpace(GF(5), 2, 2) diff --git a/src/sage/structure/coerce.pyx b/src/sage/structure/coerce.pyx index 1e7c4dd1a49..63e84d84b94 100644 --- a/src/sage/structure/coerce.pyx +++ b/src/sage/structure/coerce.pyx @@ -331,7 +331,7 @@ cpdef bint parent_is_integers(P) except -1: sage: parent_is_integers(gmpy2.mpq) False - Ensure (:trac:`27893`) is fixed:: + Ensure (:issue:`27893`) is fixed:: sage: K. = QQ[] sage: gmpy2.mpz(2) * f @@ -446,7 +446,7 @@ cpdef bint is_numpy_type(t) noexcept: TESTS: - This used to crash Sage (:trac:`20715`):: + This used to crash Sage (:issue:`20715`):: sage: is_numpy_type(object) False @@ -514,7 +514,7 @@ cdef class CoercionModel: TESTS: - Check that :trac:`8426` is fixed (see also :trac:`18076`):: + Check that :issue:`8426` is fixed (see also :issue:`18076`):: sage: import numpy # needs numpy @@ -530,7 +530,7 @@ cdef class CoercionModel: sage: p(int('2')) 11.0000000000000 - This used to fail (see :trac:`18076`):: + This used to fail (see :issue:`18076`):: sage: 1/3 + numpy.int8('12') # needs numpy 37/3 @@ -616,7 +616,7 @@ cdef class CoercionModel: sage: left_morphism_ref, right_morphism_ref = maps[ZZ, QQ] - Note that by :trac:`14058` the coercion model only stores a weak + Note that by :issue:`14058` the coercion model only stores a weak reference to the coercion maps in this case:: sage: left_morphism_ref @@ -1438,7 +1438,7 @@ cdef class CoercionModel: .. NOTE:: - By :trac:`14711`, coerce maps should be copied when using them + By :issue:`14711`, coerce maps should be copied when using them outside of the coercion system, because they may become defunct by garbage collection. @@ -1502,7 +1502,7 @@ cdef class CoercionModel: TESTS: - We check that with :trac:`14058`, parents are still eligible for + We check that with :issue:`14058`, parents are still eligible for garbage collection after being involved in binary operations:: sage: # needs sage.libs.pari @@ -1871,7 +1871,7 @@ cdef class CoercionModel: From: Integer Ring To: Rational Field - Check that :trac:`17740` is fixed:: + Check that :issue:`17740` is fixed:: sage: R = GF(5)['x'] sage: cm.discover_action(R, ZZ, operator.truediv) @@ -1883,7 +1883,7 @@ cdef class CoercionModel: sage: cm.bin_op(R.gen(), 7, operator.truediv).parent() Univariate Polynomial Ring in x over Finite Field of size 5 - Check that :trac:`18221` is fixed:: + Check that :issue:`18221` is fixed:: sage: # needs sage.combinat sage.modules sage: F. = FreeAlgebra(QQ) diff --git a/src/sage/structure/coerce_actions.pyx b/src/sage/structure/coerce_actions.pyx index 06b897005e5..7b2e16da49e 100644 --- a/src/sage/structure/coerce_actions.pyx +++ b/src/sage/structure/coerce_actions.pyx @@ -53,7 +53,7 @@ cdef class GenericAction(Action): Note that coerce actions should only be used inside of the coercion model. For this test, we need to strongly reference the domains, for otherwise they could be garbage collected, giving rise to - random errors (see :trac:`18157`). :: + random errors (see :issue:`18157`). :: sage: from sage.structure.coerce_actions import ActedUponAction, GenericAction sage: M = MatrixSpace(ZZ, 2) # needs sage.modules @@ -92,7 +92,7 @@ cdef class GenericAction(Action): Note that coerce actions should only be used inside of the coercion model. For this test, we need to strongly reference the domains, for otherwise they could be garbage collected, giving rise to random - errors (see :trac:`18157`). :: + errors (see :issue:`18157`). :: sage: M = MatrixSpace(ZZ, 2) # needs sage.modules @@ -166,7 +166,7 @@ def detect_element_action(Parent X, Y, bint X_on_left, X_el=None, Y_el=None): Note that coerce actions should only be used inside of the coercion model. For this test, we need to strongly reference the domains, for otherwise they could be garbage collected, giving rise to - random errors (see :trac:`18157`). :: + random errors (see :issue:`18157`). :: sage: from sage.structure.coerce_actions import detect_element_action sage: ZZx = ZZ['x'] @@ -186,7 +186,7 @@ def detect_element_action(Parent X, Y, bint X_on_left, X_el=None, Y_el=None): TESTS: - This test checks that the issue in :trac:`7718` has been fixed:: + This test checks that the issue in :issue:`7718` has been fixed:: sage: class MyParent(Parent): ....: def an_element(self): @@ -264,7 +264,7 @@ cdef class ModuleAction(Action): :meth:`~sage.structure.parent.Parent.an_element`, which relies on the implementation of an ``_an_element_()`` method. This is not always available. But usually, the action is only needed when one already - *has* two elements. Hence, by :trac:`14249`, the coercion model will + *has* two elements. Hence, by :issue:`14249`, the coercion model will pass these two elements to the :class:`ModuleAction` constructor. The actual action is implemented by the ``_rmul_`` or ``_lmul_`` @@ -286,7 +286,7 @@ cdef class ModuleAction(Action): Note that coerce actions should only be used inside of the coercion model. For this test, we need to strongly reference the domains, for otherwise they could be garbage collected, giving rise to - random errors (see :trac:`18157`). :: + random errors (see :issue:`18157`). :: sage: from sage.structure.coerce_actions import LeftModuleAction @@ -304,7 +304,7 @@ cdef class ModuleAction(Action): Left scalar multiplication by Rational Field on Univariate Polynomial Ring in y over Univariate Polynomial Ring in x over Integer Ring The following tests against a problem that was relevant during work on - :trac:`9944`:: + :issue:`9944`:: sage: R. = PolynomialRing(ZZ) sage: S. = PolynomialRing(ZZ, sparse=True) @@ -377,7 +377,7 @@ cdef class ModuleAction(Action): TESTS: - Check that this action can be pickled (:trac:`29031`):: + Check that this action can be pickled (:issue:`29031`):: sage: A = ZZ['x'].get_action(QQ, self_on_left=False, op=operator.mul) sage: loads(dumps(A)) is not None @@ -394,7 +394,7 @@ cdef class ModuleAction(Action): Note that coerce actions should only be used inside of the coercion model. For this test, we need to strongly reference the domains, for otherwise they could be garbage collected, giving rise to - random errors (see :trac:`18157`). :: + random errors (see :issue:`18157`). :: sage: from sage.structure.coerce_actions import LeftModuleAction, RightModuleAction sage: ZZx = ZZ['x'] @@ -421,7 +421,7 @@ cdef class ModuleAction(Action): Note that coerce actions should only be used inside of the coercion model. For this test, we need to strongly reference the domains, for otherwise they could be garbage collected, giving rise to - random errors (see :trac:`18157`). :: + random errors (see :issue:`18157`). :: sage: from sage.structure.coerce_actions import LeftModuleAction sage: ZZxyz = ZZ['x,y,z'] @@ -442,7 +442,7 @@ cdef class ModuleAction(Action): Note that coerce actions should only be used inside of the coercion model. For this test, we need to strongly reference the domains, for otherwise they could be garbage collected, giving rise to - random errors (see :trac:`18157`). :: + random errors (see :issue:`18157`). :: sage: from sage.structure.coerce_actions import LeftModuleAction sage: ZZxyz = ZZ['x,y,z'] @@ -459,7 +459,7 @@ cdef class ModuleAction(Action): Note that coerce actions should only be used inside of the coercion model. For this test, we need to strongly reference the domains, for otherwise they could be garbage collected, giving rise to random - errors (see :trac:`18157`). :: + errors (see :issue:`18157`). :: sage: from sage.structure.coerce_actions import RightModuleAction @@ -523,7 +523,7 @@ cdef class ModuleAction(Action): TESTS: - See :trac:`19521`:: + See :issue:`19521`:: sage: # needs sage.symbolic sage: Q. = SR.subring(no_variables=True)[[]] @@ -597,7 +597,7 @@ cdef class LeftModuleAction(ModuleAction): Note that coerce actions should only be used inside of the coercion model. For this test, we need to strongly reference the domains, for otherwise they could be garbage collected, giving rise to - random errors (see :trac:`18157`). :: + random errors (see :issue:`18157`). :: sage: from sage.structure.coerce_actions import LeftModuleAction sage: R. = QQ['x'] @@ -634,7 +634,7 @@ cdef class RightModuleAction(ModuleAction): Note that coerce actions should only be used inside of the coercion model. For this test, we need to strongly reference the domains, for otherwise they could be garbage collected, giving rise to - random errors (see :trac:`18157`). :: + random errors (see :issue:`18157`). :: sage: from sage.structure.coerce_actions import RightModuleAction sage: R. = QQ['x'] @@ -685,7 +685,7 @@ cdef class IntegerAction(Action): TESTS: - Check that this action can be pickled (:trac:`29031`):: + Check that this action can be pickled (:issue:`29031`):: sage: from sage.structure.coerce_actions import IntegerMulAction sage: act = IntegerMulAction(ZZ, CDF) # needs sage.rings.complex_double @@ -750,7 +750,7 @@ cdef class IntegerMulAction(IntegerAction): Note that coerce actions should only be used inside of the coercion model. For this test, we need to strongly reference the field ``GF(101)``, for otherwise it could be garbage collected, giving rise - random errors (see :trac:`18157`). :: + random errors (see :issue:`18157`). :: sage: from sage.structure.coerce_actions import IntegerMulAction sage: GF101 = GF(101) @@ -771,7 +771,7 @@ cdef class IntegerMulAction(IntegerAction): sage: act(49, 1/49) == 49*RR(1/49) False - This used to hang before :trac:`17844`:: + This used to hang before :issue:`17844`:: sage: E = EllipticCurve(GF(5), [4,0]) # needs sage.schemes sage: P = E.random_element() # needs sage.schemes @@ -810,7 +810,7 @@ cdef class IntegerMulAction(IntegerAction): Note that coerce actions should only be used inside of the coercion model. For this test, we need to strongly reference the field ``GF(5)``, for otherwise it could be garbage collected, giving rise - random errors (see :trac:`18157`). :: + random errors (see :issue:`18157`). :: sage: from sage.structure.coerce_actions import IntegerMulAction sage: GF5 = GF(5) diff --git a/src/sage/structure/coerce_dict.pyx b/src/sage/structure/coerce_dict.pyx index bd0a7808664..c2d2be34873 100644 --- a/src/sage/structure/coerce_dict.pyx +++ b/src/sage/structure/coerce_dict.pyx @@ -16,8 +16,8 @@ as an entry in a normal dictionary: Its existence in :class:`TripleDict` prevents it from being garbage collected. That container currently is used to store coercion and conversion maps between -two parents (:trac:`715`) and to store homsets of pairs of objects of a -category (:trac:`11521`). In both cases, it is essential that the parent +two parents (:issue:`715`) and to store homsets of pairs of objects of a +category (:issue:`11521`). In both cases, it is essential that the parent structures remain garbage collectable, it is essential that the data access is faster than with a usual :class:`~weakref.WeakKeyDictionary`, and we enforce the "unique parent condition" in Sage (parent structures should be identical @@ -25,15 +25,15 @@ if they are equal). :class:`MonoDict` behaves similarly, but it takes a single item as a key. It is used for caching the parents which allow a coercion map into a fixed other -parent (:trac:`12313`). +parent (:issue:`12313`). -By :trac:`14159`, :class:`MonoDict` and :class:`TripleDict` can be optionally +By :issue:`14159`, :class:`MonoDict` and :class:`TripleDict` can be optionally used with weak references on the values. Note that this kind of dictionary is also used for caching actions and coerce maps. In previous versions of Sage, the cache was by strong references and resulted in a memory leak in the following example. -However, this leak was fixed by :trac:`715`, using weak references:: +However, this leak was fixed by :issue:`715`, using weak references:: sage: # needs sage.combinat sage.modules sage.rings.finite_rings sage: K. = GF(2^55) @@ -368,7 +368,7 @@ cdef class MonoDict: The following demonstrates that :class:`MonoDict` is safer than :class:`~weakref.WeakKeyDictionary` against recursions created by nested - callbacks; compare :trac:`15069` (the mechanism used now is different, though):: + callbacks; compare :issue:`15069` (the mechanism used now is different, though):: sage: M = MonoDict() sage: class A: pass diff --git a/src/sage/structure/coerce_maps.pyx b/src/sage/structure/coerce_maps.pyx index 2e72311bd65..edad8231091 100644 --- a/src/sage/structure/coerce_maps.pyx +++ b/src/sage/structure/coerce_maps.pyx @@ -30,7 +30,7 @@ cdef class DefaultConvertMap(Map): TESTS: Maps of this type are morphisms in the category of sets with - partial maps (see :trac:`15618`):: + partial maps (see :issue:`15618`):: sage: f = GF(11).convert_map_from(GF(7)); f # needs sage.rings.finite_rings Conversion map: @@ -42,7 +42,7 @@ cdef class DefaultConvertMap(Map): to Finite Field of size 11 in Category of sets with partial maps - Test that :trac:`23211` is resolved:: + Test that :issue:`23211` is resolved:: sage: f._is_coercion # needs sage.rings.finite_rings False diff --git a/src/sage/structure/dynamic_class.py b/src/sage/structure/dynamic_class.py index cd72c1832a0..f8df20a02ae 100644 --- a/src/sage/structure/dynamic_class.py +++ b/src/sage/structure/dynamic_class.py @@ -212,7 +212,7 @@ def dynamic_class(name, bases, cls=None, reduction=None, doccls=None, If all the base classes have a zero ``__dictoffset__``, the dynamic class also has a zero ``__dictoffset__``. This means that the instances of the class don't have a ``__dict__`` - (see :trac:`23435`):: + (see :issue:`23435`):: sage: dyn = dynamic_class("dyn", (Integer,)) sage: dyn.__dictoffset__ @@ -381,7 +381,7 @@ def dynamic_class_internal(name, bases, cls=None, reduction=None, doccls=None, p sage: sage_getsourcelines(Foo3().bla) ([' def bla():...'], ...) - We check that :trac:`21895` has been resolved:: + We check that :issue:`21895` has been resolved:: sage: C1 = sage.structure.dynamic_class.dynamic_class_internal("C1", (Morphism, UniqueRepresentation)) sage: type(C1) @@ -390,7 +390,7 @@ def dynamic_class_internal(name, bases, cls=None, reduction=None, doccls=None, p sage: type(C2) - We check that :trac:`28392` has been resolved:: + We check that :issue:`28392` has been resolved:: sage: class A: ....: pass diff --git a/src/sage/structure/element.pyx b/src/sage/structure/element.pyx index 078647717a3..df5e2a6a1c3 100644 --- a/src/sage/structure/element.pyx +++ b/src/sage/structure/element.pyx @@ -26,7 +26,7 @@ AUTHORS: - Maarten Derickx (2010-07): added architecture for is_square and sqrt - Jeroen Demeyer (2016-08): moved all coercion to the base class - :class:`Element`, see :trac:`20767` + :class:`Element`, see :issue:`20767` The Abstract Element Class Hierarchy ==================================== @@ -524,7 +524,7 @@ cdef class Element(SageObject): TESTS: - Check that morphism classes are handled correctly (:trac:`29776`):: + Check that morphism classes are handled correctly (:issue:`29776`):: sage: R. = QQ[] sage: f = R.hom([x, y+1], R) @@ -880,7 +880,7 @@ cdef class Element(SageObject): TESTS: - Check that :trac:`14778` is fixed:: + Check that :issue:`14778` is fixed:: sage: (0).n(algorithm='foo') # needs sage.rings.real_mpfr 0.000000000000000 @@ -1015,7 +1015,7 @@ cdef class Element(SageObject): TESTS: - Verify that :trac:`5185` is fixed:: + Verify that :issue:`5185` is fixed:: sage: # needs sage.modules sage: v = vector({1: 1, 3: -1}) @@ -2155,7 +2155,7 @@ cdef class ElementWithCachedMethod(Element): The :class:`~sage.misc.cachefunc.cached_method` decorator provides a convenient way to automatically cache the result of a computation. - Since :trac:`11115`, the cached method decorator applied to a + Since :issue:`11115`, the cached method decorator applied to a method without optional arguments is faster than a hand-written cache in Python, and a cached method without any arguments (except ``self``) is actually faster than a Python method that does nothing more but @@ -2697,7 +2697,7 @@ cdef class RingElement(ModuleElement): sage: 2r^(1/2) # needs sage.symbolic sqrt(2) - Exponent overflow should throw an :class:`OverflowError` (:trac:`2956`):: + Exponent overflow should throw an :class:`OverflowError` (:issue:`2956`):: sage: K. = AA[] # needs sage.rings.number_field sage: x^(2^64 + 12345) # needs sage.rings.number_field @@ -2705,7 +2705,7 @@ cdef class RingElement(ModuleElement): ... OverflowError: exponent overflow (2147483648) - Another example from :trac:`2956` which always overflows + Another example from :issue:`2956` which always overflows with Singular 4:: sage: K. = ZZ[] @@ -3032,7 +3032,7 @@ cdef class CommutativeRingElement(RingElement): sage: (x^2 + 2).divides(x) False - :trac:`5347` has been fixed:: + :issue:`5347` has been fixed:: sage: K = GF(7) sage: K(3).divides(1) @@ -3058,7 +3058,7 @@ cdef class CommutativeRingElement(RingElement): If ``x`` has different parent than ``self``, they are first coerced to a common parent if possible. If this coercion fails, it returns a - TypeError. This fixes :trac:`5759`. :: + TypeError. This fixes :issue:`5759`. :: sage: Zmod(2)(0).divides(Zmod(2)(0)) True @@ -3850,7 +3850,7 @@ cdef class Matrix(ModuleElement): 'Full MatrixSpace of 2 by 2 dense matrices over Univariate Polynomial Ring in x over Rational Field' and 'Full MatrixSpace of 2 by 2 dense matrices over Univariate Polynomial Ring in y over Rational Field' - We test that the bug reported in :trac:`27352` has been fixed:: + We test that the bug reported in :issue:`27352` has been fixed:: sage: A = matrix(QQ, [[1, 2], [-1, 0], [1, 1]]) # needs sage.modules sage: B = matrix(QQ, [[0, 4], [1, -1], [1, 2]]) # needs sage.modules @@ -4191,7 +4191,7 @@ cdef class PrincipalIdealDomainElement(DedekindDomainElement): TESTS: - :trac:`30849`:: + :issue:`30849`:: sage: 2.gcd(pari(3)) # needs sage.libs.pari 1 @@ -4230,7 +4230,7 @@ cdef class PrincipalIdealDomainElement(DedekindDomainElement): TESTS: - :trac:`30849`:: + :issue:`30849`:: sage: 2.lcm(pari(3)) # needs sage.libs.pari 6 @@ -4403,7 +4403,7 @@ cdef class FieldElement(CommutativeRingElement): TESTS: - Test if :trac:`8671` is fixed:: + Test if :issue:`8671` is fixed:: sage: # needs sage.libs.pari sage.libs.singular sage: R. = QQ[] @@ -4667,7 +4667,7 @@ def coerce_binop(method): TESTS: Test that additional arguments given to the method do not override - the ``self`` argument, see :trac:`21322`:: + the ``self`` argument, see :issue:`21322`:: sage: f.gcd(g, 1) Traceback (most recent call last): diff --git a/src/sage/structure/element_wrapper.pyx b/src/sage/structure/element_wrapper.pyx index 42dedbf03c3..1585401e48c 100644 --- a/src/sage/structure/element_wrapper.pyx +++ b/src/sage/structure/element_wrapper.pyx @@ -84,7 +84,7 @@ cdef class ElementWrapper(Element): .. WARNING:: - Versions before :trac:`14519` had parent as the second argument and + Versions before :issue:`14519` had parent as the second argument and the value as the first. """ def __init__(self, parent, value): @@ -112,7 +112,7 @@ cdef class ElementWrapper(Element): This emulates :meth:`Element.__getstate__`, playing as if ``self.value`` was in the dictionary of ``self`` as it used to - be before :trac:`14519`. + be before :issue:`14519`. EXAMPLES:: @@ -143,7 +143,7 @@ cdef class ElementWrapper(Element): This emulates :meth:`Element.__setstate__`, playing as if ``self.value`` was to be put in the dictionary of ``self`` as - it used to be before :trac:`14519`. + it used to be before :issue:`14519`. EXAMPLES:: @@ -273,7 +273,7 @@ cdef class ElementWrapper(Element): TESTS: Check that elements of equal-but-not-identical parents compare - properly (see :trac:`19488`):: + properly (see :issue:`19488`):: sage: from sage.misc.test_nested_class import TestParent4 sage: P = TestParent4() diff --git a/src/sage/structure/factorization_integer.py b/src/sage/structure/factorization_integer.py index 4d01cea5a6f..139a3580e48 100644 --- a/src/sage/structure/factorization_integer.py +++ b/src/sage/structure/factorization_integer.py @@ -57,7 +57,7 @@ def __init__(self, x, unit=None, cr=False, sort=True, simplify=True, sage: factor(15) 3 * 5 - We check that :trac:`13139` is fixed:: + We check that :issue:`13139` is fixed:: sage: from sage.structure.factorization_integer import IntegerFactorization sage: IntegerFactorization([(3, 1)], unsafe=True) diff --git a/src/sage/structure/factory.pyx b/src/sage/structure/factory.pyx index d3f551ef24d..ba692e1852b 100644 --- a/src/sage/structure/factory.pyx +++ b/src/sage/structure/factory.pyx @@ -395,7 +395,7 @@ cdef class UniqueFactory(SageObject): TESTS: - Check that :trac:`16317` has been fixed, i.e., caching works for + Check that :issue:`16317` has been fixed, i.e., caching works for unhashable objects:: sage: K. = Qq(4) # needs sage.rings.padics @@ -518,7 +518,7 @@ cdef class UniqueFactory(SageObject): EXAMPLES: The ``GF`` factory used to have a custom :meth:`other_keys` - method, but this was removed in :trac:`16934`:: + method, but this was removed in :issue:`16934`:: sage: # needs sage.libs.linbox sage.ring.finite_rings sage: key, _ = GF.create_key_and_extra_args(27, 'k'); key @@ -653,7 +653,7 @@ def generic_factory_unpickle(factory, *args): TESTS: - The following was enabled in :trac:`16349`. Suppose we have defined + The following was enabled in :issue:`16349`. Suppose we have defined (somewhere in the library of an old Sage version) a unique factory; in our example below, it returns polynomial rings. Now suppose that we want to replace the factory by something else, say, a class that provides the diff --git a/src/sage/structure/formal_sum.py b/src/sage/structure/formal_sum.py index b1dbfdf6c22..f8f9b4d16de 100644 --- a/src/sage/structure/formal_sum.py +++ b/src/sage/structure/formal_sum.py @@ -409,7 +409,7 @@ def base_extend(self, R): sage: F7 = FormalSums(ZZ).base_extend(GF(7)); F7 Abelian Group of all Formal Finite Sums over Finite Field of size 7 - The following tests against a bug that was fixed at :trac:`18795`:: + The following tests against a bug that was fixed at :issue:`18795`:: sage: isinstance(F7, F7.category().parent_class) True diff --git a/src/sage/structure/global_options.py b/src/sage/structure/global_options.py index 2c55464e145..01bbfd79ad9 100644 --- a/src/sage/structure/global_options.py +++ b/src/sage/structure/global_options.py @@ -648,7 +648,7 @@ def __call__(self, *args, **kwds): TESTS: - Check that values can be set to ``None`` (:trac:`30763`):: + Check that values can be set to ``None`` (:issue:`30763`):: sage: from sage.structure.global_options import GlobalOptions sage: class config(GlobalOptions): diff --git a/src/sage/structure/parent.pyx b/src/sage/structure/parent.pyx index 6ac939db3c8..b63e8aa9341 100644 --- a/src/sage/structure/parent.pyx +++ b/src/sage/structure/parent.pyx @@ -55,7 +55,7 @@ A simple example of registering coercions:: When implementing an element of a ring, one would typically provide the element class with ``_rmul_`` and/or ``_lmul_`` methods for the action of a base ring, and with ``_mul_`` for the ring multiplication. However, prior to -:trac:`14249`, it would have been necessary to additionally define a method +:issue:`14249`, it would have been necessary to additionally define a method ``_an_element_()`` for the parent. But now, the following example works:: sage: from sage.structure.element import RingElement @@ -185,7 +185,7 @@ cdef inline bint good_as_coerce_domain(S) noexcept: If an instance `S` is not suitable as domain of a map, then the non-existence of a coercion or conversion map from `S` - to some other parent is not cached, by :trac:`13378`:: + to some other parent is not cached, by :issue:`13378`:: sage: P. = QQ[] sage: P._is_coercion_cached(x) @@ -248,7 +248,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): - ``self._element_init_pass_parent == guess_pass_parent(self, self._element_constructor)`` Ensures that :meth:`__call__` passes down the parent properly to - :meth:`_element_constructor`. See :trac:`5979`. + :meth:`_element_constructor`. See :issue:`5979`. .. TODO:: @@ -380,7 +380,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): TESTS: - Here is a test against :trac:`14471`. Refining the category will issue + Here is a test against :issue:`14471`. Refining the category will issue a warning, if this change affects the hash value (note that this will only be seen in doctest mode):: @@ -560,7 +560,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): So for backwards compatibility, we only use dynamic classes by default if the class has a non-zero ``__dictoffset__``. But it works regardless: just pass ``inherit=True`` to - ``__make_element_class__``. See also :trac:`24715`. + ``__make_element_class__``. See also :issue:`24715`. When we do not use a dynamic element class, the ``__getattr__`` implementation from :class:`Element` provides fake @@ -859,7 +859,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): self._element_init_pass_parent == guess_pass_parent(self, self._element_constructor) - is preserved (see :trac:`5979`):: + is preserved (see :issue:`5979`):: sage: class MyParent(Parent): ....: def _element_constructor_(self, x): @@ -911,7 +911,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): is because ``__mul__`` cannot be implemented via inheritance from the parent methods of the category, but ``_mul_`` can be inherited. This is, e.g., used when creating twosided - ideals of matrix algebras. See :trac:`7797`. + ideals of matrix algebras. See :issue:`7797`. EXAMPLES:: @@ -1137,7 +1137,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): TESTS: - Check that :trac:`13824` is fixed:: + Check that :issue:`13824` is fixed:: sage: 4/3 in GF(3) False @@ -1148,7 +1148,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): sage: 15/36 in Integers(6) False - Check that :trac:`32078` is fixed:: + Check that :issue:`32078` is fixed:: sage: P = Frac(ZZ['x,y']) sage: P(1) in ZZ @@ -1156,7 +1156,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): sage: P(1/2) in ZZ False - Check that :trac:`24209` is fixed:: + Check that :issue:`24209` is fixed:: sage: I in QQbar # needs sage.rings.number_field True @@ -1257,7 +1257,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): TESTS: - We test the workaround described in :trac:`12956` to let categories + We test the workaround described in :issue:`12956` to let categories override this default implementation:: sage: class As(Category): @@ -1638,7 +1638,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): TESTS: - We check that :trac:`29517` has been fixed:: + We check that :issue:`29517` has been fixed:: sage: A. = ZZ[] sage: B. = ZZ[] @@ -1799,7 +1799,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): sage: S3._unset_coercions_used() sage: S3.register_embedding(phi) - By :trac:`14711`, coerce maps should be copied when using outside of + By :issue:`14711`, coerce maps should be copied when using outside of the coercion system:: sage: phi = copy(S3.coerce_embedding()); phi # needs sage.groups @@ -1812,7 +1812,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): [0 1 0] This does not work since matrix groups are still old-style - parents (see :trac:`14014`):: + parents (see :issue:`14014`):: sage: G(p) # not implemented # needs sage.groups @@ -1918,7 +1918,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): TESTS: - We check that :trac:`23184` has been resolved:: + We check that :issue:`23184` has been resolved:: sage: QQ['x', 'y']._generic_coerce_map(QQ).category_for() Category of infinite unique factorization domains @@ -1960,7 +1960,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): TESTS: - We check that :trac:`23184` has been resolved:: + We check that :issue:`23184` has been resolved:: sage: QQ[['x']].coerce_map_from(QQ).category_for() Category of euclidean domains @@ -2024,7 +2024,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): EXAMPLES: - By :trac:`14711`, coerce maps should be copied for usage outside + By :issue:`14711`, coerce maps should be copied for usage outside of the coercion system:: sage: copy(CDF._coerce_map_via([ZZ, RR, CC], int)) # needs sage.rings.complex_double @@ -2114,7 +2114,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): EXAMPLES: - By :trac:`12313`, a special kind of weak key dictionary is used to + By :issue:`12313`, a special kind of weak key dictionary is used to store coercion and conversion maps, namely :class:`~sage.structure.coerce_dict.MonoDict`. In that way, a memory leak was fixed that would occur in the following test:: @@ -2132,7 +2132,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): TESTS: - The following was fixed in :trac:`12969`:: + The following was fixed in :issue:`12969`:: sage: # needs sage.combinat sage.modules sage: R = QQ['q,t'].fraction_field() @@ -2153,7 +2153,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): EXAMPLES: - By :trac:`14711`, coerce maps should be copied when using them + By :issue:`14711`, coerce maps should be copied when using them outside of the coercion system, because they may become defunct by garbage collection:: @@ -2197,7 +2197,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): From: Symmetric Functions over Fraction Field of Multivariate Polynomial Ring in q, t over Rational Field in the Schur basis To: Symmetric Functions over Fraction Field of Multivariate Polynomial Ring in q, t over Rational Field in the Macdonald Ht basis - The following was fixed in :trac:`4740`:: + The following was fixed in :issue:`4740`:: sage: F = GF(13) sage: F._internal_coerce_map_from(F) is F._internal_coerce_map_from(F) @@ -2291,7 +2291,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): TESTS: - Regression test for :trac:`12919` (probably not 100% robust):: + Regression test for :issue:`12919` (probably not 100% robust):: sage: class P(Parent): ....: def __init__(self): @@ -2328,7 +2328,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): From: Rational Field To: Number Field in a with defining polynomial x^2 - 2 over its base field - Test that :trac:`17981` is fixed:: + Test that :issue:`17981` is fixed:: sage: class P(Parent): ....: def __init__(self): @@ -2342,7 +2342,7 @@ cdef class Parent(sage.structure.category_object.CategoryObject): sage: X.has_coerce_map_from(ZZ) True - Check that :trac:`14982` is fixed, and more generally that we discover + Check that :issue:`14982` is fixed, and more generally that we discover sensible coercion paths in the presence of embeddings:: sage: # needs sage.rings.number_field @@ -2994,7 +2994,7 @@ cdef class EltPair: TESTS: - Verify that :trac:`16341` has been resolved:: + Verify that :issue:`16341` has been resolved:: sage: K. = Qq(9) # needs sage.rings.padics sage: E = EllipticCurve_from_j(0).base_extend(K) # needs sage.rings.padics diff --git a/src/sage/structure/sage_object.pyx b/src/sage/structure/sage_object.pyx index 391b7e1d11b..b5b9f59334d 100644 --- a/src/sage/structure/sage_object.pyx +++ b/src/sage/structure/sage_object.pyx @@ -346,7 +346,7 @@ cdef class SageObject: sage: type(_) - Check that breakpoints and baseline are preserved (:trac:`29202`):: + Check that breakpoints and baseline are preserved (:issue:`29202`):: sage: # needs sage.groups sage: F = FreeAbelianMonoid(index_set=ZZ) @@ -626,7 +626,7 @@ cdef class SageObject: AssertionError: Not implemented method: bla Check that only errors triggered by ``AbstractMethod`` are caught - (:trac:`29694`):: + (:issue:`29694`):: sage: class NotAbstract(SageObject): ....: @lazy_attribute diff --git a/src/sage/structure/sequence.py b/src/sage/structure/sequence.py index c3972532ac3..92d464241e6 100644 --- a/src/sage/structure/sequence.py +++ b/src/sage/structure/sequence.py @@ -859,7 +859,7 @@ def __getattr__(self, name): sage: S.universe() 'foobar' - We test that :trac:`13998` is fixed:: + We test that :issue:`13998` is fixed:: sage: S = Sequence([]) sage: S.set_immutable() diff --git a/src/sage/structure/unique_representation.py b/src/sage/structure/unique_representation.py index 3bbea183fc6..ce0e84cd9be 100644 --- a/src/sage/structure/unique_representation.py +++ b/src/sage/structure/unique_representation.py @@ -601,7 +601,7 @@ class CachedRepresentation(metaclass=ClasscallMetaclass): ....: return self.value == other.value Two coexisting instances of ``MyClass`` created with the same argument data - are guaranteed to share the same identity. Since :trac:`12215`, this is + are guaranteed to share the same identity. Since :issue:`12215`, this is only the case if there is some strong reference to the returned instance, since otherwise it may be garbage collected:: @@ -1252,7 +1252,7 @@ class UniqueRepresentation(CachedRepresentation, WithEqualityById): ....: self.value = value Two coexisting instances of ``MyClass`` created with the same argument - data are guaranteed to share the same identity. Since :trac:`12215`, this + data are guaranteed to share the same identity. Since :issue:`12215`, this is only the case if there is some strong reference to the returned instance, since otherwise it may be garbage collected:: diff --git a/src/sage/symbolic/assumptions.py b/src/sage/symbolic/assumptions.py index d6aa6d561ba..9ef8dd39212 100644 --- a/src/sage/symbolic/assumptions.py +++ b/src/sage/symbolic/assumptions.py @@ -595,7 +595,7 @@ def assume(*args): TESTS: Test that you can do two non-relational - declarations at once (fixing :trac:`7084`):: + declarations at once (fixing :issue:`7084`):: sage: var('m,n') (m, n) @@ -610,7 +610,7 @@ def assume(*args): sage: sin(m*pi).simplify() sin(pi*m) - Check that positive integers can be created (:trac:`20132`) + Check that positive integers can be created (:issue:`20132`) sage: x = SR.var('x', domain='positive') sage: assume(x, 'integer') @@ -662,7 +662,7 @@ def assume(*args): [0 < x] sage: forget() - Check that :trac:`28538` is fixed:: + Check that :issue:`28538` is fixed:: sage: x, y = SR.var('x, y') sage: assume(x > 0) @@ -815,7 +815,7 @@ def _forget_all(): TESTS: - Check that :trac:`7315` is fixed:: + Check that :issue:`7315` is fixed:: sage: var('m,n') (m, n) diff --git a/src/sage/symbolic/callable.py b/src/sage/symbolic/callable.py index 6db7f38745d..f578454706a 100644 --- a/src/sage/symbolic/callable.py +++ b/src/sage/symbolic/callable.py @@ -33,7 +33,7 @@ TESTS: -The arguments in the definition must be symbolic variables (:trac:`10747`):: +The arguments in the definition must be symbolic variables (:issue:`10747`):: sage: f(1)=2 Traceback (most recent call last): @@ -303,7 +303,7 @@ def _repr_(self): sage: R._repr_() 'Callable function ring with arguments (x, y, theta)' - We verify that :trac:`12298` has been fixed:: + We verify that :issue:`12298` has been fixed:: sage: S = CallableSymbolicExpressionRing([var('z')]) sage: S._repr_() diff --git a/src/sage/symbolic/comparison_impl.pxi b/src/sage/symbolic/comparison_impl.pxi index e4b80ad6fad..b729babcd58 100644 --- a/src/sage/symbolic/comparison_impl.pxi +++ b/src/sage/symbolic/comparison_impl.pxi @@ -72,7 +72,7 @@ cpdef int print_order(lhs, rhs) except -2: sage: print_order(1, sqrt(2)) 1 - Check that :trac:`12967` is fixed:: + Check that :issue:`12967` is fixed:: sage: print_order(SR(oo), sqrt(2)) 1 @@ -200,7 +200,7 @@ class _math_key(): sage: _math_key(1) < _math_key(sqrt(2)) True - Check that :trac:`12967` is fixed:: + Check that :issue:`12967` is fixed:: sage: _math_key(1) < _math_key(oo) True @@ -272,12 +272,12 @@ cpdef int mixed_order(lhs, rhs) except -2: sage: mixed_order(x + x^2, x*(x+1)) -1 - Check that :trac:`12967` is fixed:: + Check that :issue:`12967` is fixed:: sage: mixed_order(SR(oo), sqrt(2)) 1 - Ensure that :trac:`32185` is fixed:: + Ensure that :issue:`32185` is fixed:: sage: mixed_order(pi, 0) 1 @@ -352,7 +352,7 @@ class _mixed_key(): sage: _mixed_key(1) < _mixed_key(sqrt(2)) True - Check that :trac:`12967` is fixed:: + Check that :issue:`12967` is fixed:: sage: _mixed_key(1) < _mixed_key(oo) True diff --git a/src/sage/symbolic/constants.py b/src/sage/symbolic/constants.py index c87bef3471b..e36f74733d6 100644 --- a/src/sage/symbolic/constants.py +++ b/src/sage/symbolic/constants.py @@ -196,7 +196,7 @@ sage: ComplexField(230)(a) 13.271347940197249310098819199575813940871106820003074817832971189555 -Check that :trac:`8237` is fixed:: +Check that :issue:`8237` is fixed:: sage: maxima('infinity').sage() Infinity diff --git a/src/sage/symbolic/constants_c_impl.pxi b/src/sage/symbolic/constants_c_impl.pxi index 3818926a9a2..61e237baf1e 100644 --- a/src/sage/symbolic/constants_c_impl.pxi +++ b/src/sage/symbolic/constants_c_impl.pxi @@ -115,7 +115,7 @@ cdef class E(Expression): sage: SR(1).exp() e - Testing that it works with matrices (see :trac:`4735`):: + Testing that it works with matrices (see :issue:`4735`):: sage: m = matrix(QQ, 2, 2, [1,0,0,1]) sage: e^m @@ -152,7 +152,7 @@ cdef class E(Expression): sage: u.operands() [a] - It also works with matrices (see :trac:`4735`):: + It also works with matrices (see :issue:`4735`):: sage: m = matrix(QQ, 2, 2, [1,0,0,1]) sage: e^m diff --git a/src/sage/symbolic/expression.pyx b/src/sage/symbolic/expression.pyx index ab19b46c181..6a725a35102 100644 --- a/src/sage/symbolic/expression.pyx +++ b/src/sage/symbolic/expression.pyx @@ -91,7 +91,7 @@ We mix Singular variables with symbolic variables:: TESTS: -Test Jacobian on Pynac expressions. (:trac:`5546`) :: +Test Jacobian on Pynac expressions. (:issue:`5546`) :: sage: var('x,y') (x, y) @@ -99,7 +99,7 @@ Test Jacobian on Pynac expressions. (:trac:`5546`) :: sage: jacobian(f, [x,y]) [1 1] -Test if matrices work (:trac:`5546`) :: +Test if matrices work (:issue:`5546`) :: sage: var('x,y,z') (x, y, z) @@ -110,7 +110,7 @@ Test if matrices work (:trac:`5546`) :: sage: v*M (x^2 + y*z, 2*x*y) -Test if comparison bugs from :trac:`6256` are fixed:: +Test if comparison bugs from :issue:`6256` are fixed:: sage: t = exp(sqrt(x)); u = 1/t sage: t*u @@ -120,7 +120,7 @@ Test if comparison bugs from :trac:`6256` are fixed:: sage: t e^sqrt(x) -Test if :trac:`9947` is fixed:: +Test if :issue:`9947` is fixed:: sage: r = real_part(1+2*(sqrt(2)+1)*(sqrt(2)-1)); r 2*(sqrt(2) + 1)*(sqrt(2) - 1) + 1 @@ -132,7 +132,7 @@ Test if :trac:`9947` is fixed:: sage: a.imag_part() 2*sqrt(10)/(sqrt(3) + 5) -Check the fix for :trac:`25251` and :trac:`25252`:: +Check the fix for :issue:`25251` and :issue:`25252`:: sage: e1 = sqrt(2)*I - sqrt(2) - 2 sage: e2 = sqrt(2) @@ -141,14 +141,14 @@ Check the fix for :trac:`25251` and :trac:`25252`:: sage: (1 + exp(I*pi/4)) * exp(I*pi/4) -(1/4*I + 1/4)*sqrt(2)*(-(I + 1)*sqrt(2) - 2) -Test if :trac:`24883` is fixed:: +Test if :issue:`24883` is fixed:: sage: a = exp(I*pi/4) + 1 sage: b = 1 - exp(I*pi/4) sage: a*b 1/4*((I + 1)*sqrt(2) - 2)*(-(I + 1)*sqrt(2) - 2) -Test that :trac:`20784` is fixed (equations should stay unevaluated):: +Test that :issue:`20784` is fixed (equations should stay unevaluated):: sage: limit(1/x, x=0) == unsigned_infinity Infinity == Infinity @@ -188,7 +188,7 @@ you do not want to get a formal inequality:: sage: float(sin(SR(1))) 0.8414709848078965 -Check that :trac:`9880` is fixed:: +Check that :issue:`9880` is fixed:: sage: b = [var('b_%s'%i) for i in range(4)] sage: precomp = (2^b_2 + 2)*(2^b_1 + 2^(-b_1) + 2^b_1*2^b_0 - \ @@ -254,7 +254,7 @@ Check that :trac:`9880` is fixed:: sage: (-x+t)^3 (t - x)^3 -This example is from :trac:`10833`:: +This example is from :issue:`10833`:: sage: R. = PolynomialRing(QQ,2) sage: phi(x) = x^2 + c @@ -268,7 +268,7 @@ This example is from :trac:`10833`:: sage: g.nops() 480 -Check if :trac:`10849` is fixed:: +Check if :issue:`10849` is fixed:: sage: t = I.parent()(-1/2) sage: t > 0 @@ -278,7 +278,7 @@ Check if :trac:`10849` is fixed:: sage: t.subs(x=I*x).subs(x=0).is_positive() False -Check if :trac:`16397` is fixed: +Check if :issue:`16397` is fixed: sage: mixed_order(1, sqrt(2)) -1 @@ -881,7 +881,7 @@ cdef class Expression(Expression_abc): 1 (numeric) ... ===== - Check that user-defined functions get the same treatment (:trac:`19194`):: + Check that user-defined functions get the same treatment (:issue:`19194`):: sage: f = function('f')(x) sage: f._dbgprinttree() @@ -1045,14 +1045,14 @@ cdef class Expression(Expression_abc): sage: (-x)^(1/4) (-x)^(1/4) - Check if :trac:`7876` is fixed:: + Check if :issue:`7876` is fixed:: sage: (1/2-1/2*I)*sqrt(2) -(1/2*I - 1/2)*sqrt(2) sage: latex((1/2-1/2*I)*sqrt(2)) -\left(\frac{1}{2} i - \frac{1}{2}\right) \, \sqrt{2} - Check if :trac:`9632` is fixed:: + Check if :issue:`9632` is fixed:: sage: zeta(x) + cos(x) cos(x) + zeta(x) @@ -1147,7 +1147,7 @@ cdef class Expression(Expression_abc): TESTS: - Check that :trac:`28891` is fixed:: + Check that :issue:`28891` is fixed:: sage: unicode_art(exp(x).series(x, 4)) # needs sympy 2 3 @@ -1160,7 +1160,7 @@ cdef class Expression(Expression_abc): ℯ + ℯ⋅(x - 1) + ────────── + O⎝(x - 1) ; x → 1⎠ 2 - Check that complex numbers are handled correctly (:trac:`28903`):: + Check that complex numbers are handled correctly (:issue:`28903`):: sage: # needs sympy sage: unicode_art(SR(I)) @@ -1215,7 +1215,7 @@ cdef class Expression(Expression_abc): TESTS: We test that unicode characters are handled correctly - :trac:`30122`:: + :issue:`30122`:: sage: var('ξ')._maxima_() _SAGE_VAR_ξ @@ -1252,7 +1252,7 @@ cdef class Expression(Expression_abc): TESTS: Check if complex numbers are converted to Maxima correctly - :trac:`7557`:: + :issue:`7557`:: sage: SR(1.5*I)._maxima_init_() '1.5000000000000000*%i' @@ -1333,8 +1333,8 @@ cdef class Expression(Expression_abc): sage: latex(x*(1/(x^2)+sqrt(x^7))) x {\left(\sqrt{x^{7}} + \frac{1}{x^{2}}\right)} - Check spacing of coefficients of mul expressions (:trac:`3202` and - :trac:`13356`):: + Check spacing of coefficients of mul expressions (:issue:`3202` and + :issue:`13356`):: sage: latex(2*3^x) 2 \cdot 3^{x} @@ -1364,7 +1364,7 @@ cdef class Expression(Expression_abc): sage: latex((-x)^(1/4)) \left(-x\right)^{\frac{1}{4}} - More powers (:trac:`7406`):: + More powers (:issue:`7406`):: sage: latex((x^pi)^e) {\left(x^{\pi}\right)}^{e} @@ -1376,7 +1376,7 @@ cdef class Expression(Expression_abc): sage: latex((a^b)^c) {\left(a^{b}\right)}^{c} - Separate coefficients to numerator and denominator (:trac:`7363`):: + Separate coefficients to numerator and denominator (:issue:`7363`):: sage: latex(2/(x+1)) \frac{2}{x + 1} @@ -1384,12 +1384,12 @@ cdef class Expression(Expression_abc): \frac{1}{2 \, {\left(x + 1\right)}} Check if rational function coefficients without a ``numerator()`` method - are printed correctly. :trac:`8491`:: + are printed correctly. :issue:`8491`:: sage: latex(6.5/x) \frac{6.50000000000000}{x} - Check if we avoid extra parenthesis in rational functions (:trac:`8688`):: + Check if we avoid extra parenthesis in rational functions (:issue:`8688`):: sage: latex((x+2)/(x^3+1)) \frac{x + 2}{x^{3} + 1} @@ -1398,14 +1398,14 @@ cdef class Expression(Expression_abc): sage: latex((x+2)/(x^3+1)/(x+1)) \frac{x + 2}{{\left(x^{3} + 1\right)} {\left(x + 1\right)}} - Check that the sign is correct (:trac:`9086`):: + Check that the sign is correct (:issue:`9086`):: sage: latex(-1/x) -\frac{1}{x} sage: latex(1/-x) -\frac{1}{x} - More tests for the sign (:trac:`9314`):: + More tests for the sign (:issue:`9314`):: sage: latex(-2/x) -\frac{2}{x} @@ -1416,7 +1416,7 @@ cdef class Expression(Expression_abc): sage: latex(-x/z/y) -\frac{x}{y z} - Check if :trac:`9394` is fixed:: + Check if :issue:`9394` is fixed:: sage: var('n') n @@ -1430,7 +1430,7 @@ cdef class Expression(Expression_abc): x - \left(2 i - 1\right) \, y Check if complex coefficients with denominators are displayed - correctly (:trac:`10769`):: + correctly (:issue:`10769`):: sage: var('a x') (a, x) @@ -1440,12 +1440,12 @@ cdef class Expression(Expression_abc): sage: latex(ratio) \frac{i \, x^{2}}{2 \, a} - Parenthesis in powers (:trac:`13262`):: + Parenthesis in powers (:issue:`13262`):: sage: latex(1+x^(2/3)+x^(-2/3)) x^{\frac{2}{3}} + \frac{1}{x^{\frac{2}{3}}} + 1 - Check that pynac understands rational powers (:trac:`30446`):: + Check that pynac understands rational powers (:issue:`30446`):: sage: QQ((24*sqrt(3))^(100/50))==1728 True @@ -2098,7 +2098,7 @@ cdef class Expression(Expression_abc): TESTS: Test if hashes for fderivatives with different parameters collide. - :trac:`6243`:: + :issue:`6243`:: sage: f = function('f'); t = f(x,y) sage: u = t.derivative(x); v = t.derivative(y) @@ -2107,7 +2107,7 @@ cdef class Expression(Expression_abc): sage: d = {u: 3, v: 5}; sorted(d.values()) [3, 5] - More checks for fderivative hashes :trac:`6851` :: + More checks for fderivative hashes :issue:`6851` :: sage: hash(f(x).derivative(x)) == hash(f(x).derivative(x,2)) False @@ -2117,7 +2117,7 @@ cdef class Expression(Expression_abc): We create a function with 10 arguments and test if there are hash collisions between any of its derivatives of order at - most 7. :trac:`7508` :: + most 7. :issue:`7508` :: sage: num_vars = 10; max_order=7 sage: X = var(' '.join('x' + str(i) for i in range(num_vars))) @@ -2132,7 +2132,7 @@ cdef class Expression(Expression_abc): ....: else: ....: hashes.add(n) - Check whether `oo` keeps its hash in `SR` (:trac:`19928`):: + Check whether `oo` keeps its hash in `SR` (:issue:`19928`):: sage: hash(oo) == hash(SR(oo)) True @@ -2145,7 +2145,7 @@ cdef class Expression(Expression_abc): sage: hash(unsigned_infinity) == hash(SR(unsigned_infinity)) True - Check a corner case for rational numbers (:trac:`28219`):: + Check a corner case for rational numbers (:issue:`28219`):: sage: hash(-1/3) == hash(SR(-1/3)) True @@ -2197,7 +2197,7 @@ cdef class Expression(Expression_abc): sage: x^2 > x x^2 > x - Testing :trac:`11309` which changes the behavior of comparison of + Testing :issue:`11309` which changes the behavior of comparison of comparisons:: sage: (-x + y < 0) in [x - y < 0] @@ -2397,7 +2397,7 @@ cdef class Expression(Expression_abc): TESTS: - Check if :trac:`7507` is fixed:: + Check if :issue:`7507` is fixed:: sage: forget() sage: n = var('n') @@ -2649,7 +2649,7 @@ cdef class Expression(Expression_abc): TESTS: - Check that :trac:`23093` is fixed:: + Check that :issue:`23093` is fixed:: sage: sqrt(-2).is_real() False @@ -2693,7 +2693,7 @@ cdef class Expression(Expression_abc): TESTS: - Check if :trac:`18630` is fixed:: + Check if :issue:`18630` is fixed:: sage: (log(1/2)).is_negative() True @@ -2794,7 +2794,7 @@ cdef class Expression(Expression_abc): TESTS: - Check that integer variables are recognized (:trac:`18921`):: + Check that integer variables are recognized (:issue:`18921`):: sage: _ = var('n', domain='integer') sage: n.is_integer() @@ -2973,19 +2973,19 @@ cdef class Expression(Expression_abc): TESTS: - Check if we can handle derivatives. :trac:`6523`:: + Check if we can handle derivatives. :issue:`6523`:: sage: f(x) = function('f')(x) sage: f(x).diff(x).is_zero() False - Check if :trac:`11352` is fixed:: + Check if :issue:`11352` is fixed:: sage: el = -1/2*(2*x^2 - sqrt(2*x - 1)*sqrt(2*x + 1) - 1) sage: el.is_polynomial(x) False - Check that negative exponents are handled (:trac:`15304`):: + Check that negative exponents are handled (:issue:`15304`):: sage: y = var('y') sage: (y/x).is_polynomial(x) @@ -3394,7 +3394,7 @@ cdef class Expression(Expression_abc): sage: assert( sqrt(2)*oo != I*oo ) The expression may be zero with integers but is not - when in the complex domain (:trac:`15571`):: + when in the complex domain (:issue:`15571`):: sage: a,x = var('a,x') sage: assume(a, 'integer') @@ -3409,11 +3409,11 @@ cdef class Expression(Expression_abc): False sage: forget() - Check that :trac:`13326` is fixed:: + Check that :issue:`13326` is fixed:: sage: assert(log(2)*Infinity == Infinity) - More checks for comparisons with infinity (see :trac:`12967`):: + More checks for comparisons with infinity (see :issue:`12967`):: sage: assert(SR(oo) > 5) sage: assert(5 < SR(oo)) @@ -3435,30 +3435,30 @@ cdef class Expression(Expression_abc): sage: assert(SR(-oo) < sqrt(2)) sage: assert(sqrt(2) > SR(-oo)) - Check that :trac:`18360` is fixed:: + Check that :issue:`18360` is fixed:: sage: f(x) = matrix() sage: bool(f(x) - f(x) == 0) True - Check that :trac:`22857` is fixed:: + Check that :issue:`22857` is fixed:: sage: a, b = var('a b', domain='positive') sage: bool((a-b)*b == 0) False - Check that :trac:`24658` is fixed:: + Check that :issue:`24658` is fixed:: sage: val = pi - 2286635172367940241408/1029347477390786609545*sqrt(2) sage: bool(val>0) False - Check that :trac:`34341` is fixed:: + Check that :issue:`34341` is fixed:: sage: bool(x^2 + 2*x + 1 != (x + 1)^2) False - Check that :trac:`16031` is fixed:: + Check that :issue:`16031` is fixed:: sage: expr = reduce(lambda u, v: 1/u -v, [1/pi] + list(continued_fraction(pi)[:20])) sage: expr.is_zero() @@ -3603,7 +3603,7 @@ cdef class Expression(Expression_abc): sage: (cot(-x) == -cot(x)).test_relation() NotImplemented - Check that :trac:`18896` is fixed:: + Check that :issue:`18896` is fixed:: sage: m = 540579833922455191419978421211010409605356811833049025*sqrt(1/2) sage: m1 = 382247666339265723780973363167714496025733124557617743 @@ -3612,7 +3612,7 @@ cdef class Expression(Expression_abc): sage: (m == m1).test_relation() False - Try the examples from :trac:`31424` and :trac:`31665`:: + Try the examples from :issue:`31424` and :issue:`31665`:: sage: k = 26 sage: bool(2/(2*pi)^(2*k) <= abs(bernoulli(2*k)/factorial(2*k))) @@ -3996,7 +3996,7 @@ cdef class Expression(Expression_abc): sage: (y-1)*(y-2) (y - 1)*(y - 2) - Check if Pynac can compute inverses of Python longs (:trac:`13107`):: + Check if Pynac can compute inverses of Python longs (:issue:`13107`):: sage: SR(4L)*SR(2L)^(-1) 2 @@ -4048,8 +4048,8 @@ cdef class Expression(Expression_abc): Infinity Check if we are returning informative error messages in case of - nonsensical arithmetic (:trac:`10960`:, :trac:`13739` and - :trac:`24072`):: + nonsensical arithmetic (:issue:`10960`:, :issue:`13739` and + :issue:`24072`):: sage: GF(5)(3) * SR.var('x') Traceback (most recent call last): @@ -4062,14 +4062,14 @@ cdef class Expression(Expression_abc): ... TypeError: positive characteristic not allowed in symbolic computations - Check that :trac:`18360` is fixed:: + Check that :issue:`18360` is fixed:: sage: f(x) = matrix() sage: f(x)*1 [] Check that floating point numbers +/- 1.0 are treated - differently from integers +/- 1 (:trac:`12257`):: + differently from integers +/- 1 (:issue:`12257`):: sage: (1*x).operator() sage: (1.0*x).operator() @@ -4087,7 +4087,7 @@ cdef class Expression(Expression_abc): sage: sin(1.0*pi) sin(1.00000000000000*pi) - Check that infinities multiply correctly (:trac:`23427`):: + Check that infinities multiply correctly (:issue:`23427`):: sage: SR(-oo) * SR(-oo) +Infinity @@ -4193,7 +4193,7 @@ cdef class Expression(Expression_abc): ... ZeroDivisionError: symbolic division by zero - Check if Pynac can compute divisions of Python longs (:trac:`13107`):: + Check if Pynac can compute divisions of Python longs (:issue:`13107`):: sage: SR(1L)/SR(2L) 1/2 @@ -4424,7 +4424,7 @@ cdef class Expression(Expression_abc): sage: (2*symI)^(1/2) sqrt(2*I) - Test if we can take powers of elements of `\QQ(i)` (:trac:`8659`):: + Test if we can take powers of elements of `\QQ(i)` (:issue:`8659`):: sage: t = QuadraticField(-1, 'I')(8) sage: t^(1/2) @@ -4432,12 +4432,12 @@ cdef class Expression(Expression_abc): sage: (t^2)^(1/4) 2*4^(1/4) - Test if we can compute inverses of Python longs (:trac:`13107`):: + Test if we can compute inverses of Python longs (:issue:`13107`):: sage: SR(2L)^(-1) 1/2 - Symbolic powers with ``None`` shouldn't crash (:trac:`17523`):: + Symbolic powers with ``None`` shouldn't crash (:issue:`17523`):: sage: None^pi Traceback (most recent call last): @@ -4448,13 +4448,13 @@ cdef class Expression(Expression_abc): ... TypeError: unsupported operand type(s) for ** or pow(): 'sage.symbolic.expression.Expression' and 'NoneType' - Check that :trac:`18088` is fixed:: + Check that :issue:`18088` is fixed:: sage: SR(0)^SR(0) 1 Check that floating point numbers +/- 1.0 are treated - differently from integers +/- 1 (:trac:`12257`):: + differently from integers +/- 1 (:issue:`12257`):: sage: (x^1).operator() sage: (x^1.0).operator() @@ -4468,7 +4468,7 @@ cdef class Expression(Expression_abc): sage: exp(x)^1.0 e^(1.00000000000000*x) - Check that :trac:`23921` is resolved:: + Check that :issue:`23921` is resolved:: sage: assume(SR.an_element() > 0) sage: A. = AsymptoticRing('(SR_+)^n * n^SR', SR) @@ -4476,8 +4476,8 @@ cdef class Expression(Expression_abc): sage: (elem, elem.parent()) (2^n, Asymptotic Ring over Symbolic Ring) - Check that pynac understands rational powers (:trac:`30446`, - :trac:`28620`, :trac:`30304`, and :trac:`30786`):: + Check that pynac understands rational powers (:issue:`30446`, + :issue:`28620`, :issue:`30304`, and :issue:`30786`):: sage: QQ((24*sqrt(3))^(100/50))==1728 True @@ -4491,7 +4491,7 @@ cdef class Expression(Expression_abc): sage: exp(-3*ln(-9*x)/3) -1/9/x - Check that :trac:`31137` is also fixed:: + Check that :issue:`31137` is also fixed:: sage: _ = var('A, L, G, R, f, k, n, q, u, beta, gamma', domain="positive") sage: a = I*R^2*f^3*k*q*A*u @@ -4691,7 +4691,7 @@ cdef class Expression(Expression_abc): ... ValueError: No differentiation variable specified. - Check if :trac:`6524` is fixed:: + Check if :issue:`6524` is fixed:: sage: f = function('f') sage: f(x)*f(x).derivative(x)*f(x).derivative(x,2) @@ -4870,7 +4870,7 @@ cdef class Expression(Expression_abc): TESTS: - Check if :trac:`8943` is fixed:: + Check if :issue:`8943` is fixed:: sage: ((1+arctan(x))**(1/x)).series(x==0, 3) (e) + (-1/2*e)*x + (1/8*e)*x^2 + Order(x^3) @@ -4887,17 +4887,17 @@ cdef class Expression(Expression_abc): 1 + 2*x + 4*x^2 + Order(x^3) sage: set_series_precision(20) - Check that :trac:`31645` is fixed:: + Check that :issue:`31645` is fixed:: sage: (x^(-1) + 1).series(x,1) 1*x^(-1) + 1 + Order(x) - Check that :trac:`32115` is fixed:: + Check that :issue:`32115` is fixed:: sage: exp(log(1+x)*(1/x)).series(x) (e) + (-1/2*e)*x + (11/24*e)*x^2 + (-7/16*e)*x^3 + (2447/5760*e)*x^4 + ... - Check that :trac:`32640` is fixed:: + Check that :issue:`32640` is fixed:: sage: ((1 - x)^-x).series(x, 8) 1 + 1*x^2 + 1/2*x^3 + 5/6*x^4 + 3/4*x^5 + 33/40*x^6 + 5/6*x^7 + Order(x^8) @@ -4980,12 +4980,12 @@ cdef class Expression(Expression_abc): sage: (exp(x)/sin(x)^4).residue(x == 0) 5/6 - Check that :trac:`18372` is resolved:: + Check that :issue:`18372` is resolved:: sage: (1/(x^2 - x - 1)).residue(x == 1/2*sqrt(5) + 1/2) 1/5*sqrt(5) - Check that :trac:`20084` is fixed:: + Check that :issue:`20084` is fixed:: sage: (1/(1 - 2^-x)).residue(x == 2*pi*I/log(2)) 1/log(2) @@ -5054,7 +5054,7 @@ cdef class Expression(Expression_abc): TESTS: - Check that issue :trac:`7472` is fixed (Taylor polynomial in + Check that issue :issue:`7472` is fixed (Taylor polynomial in more variables):: sage: x,y = var('x y'); taylor(x*y^3,(x,1),(y,1),4) @@ -5173,12 +5173,12 @@ cdef class Expression(Expression_abc): (a^3*b^3*x^3*y^3)^(1/2*c)*p^(3*c) sage: x,y,p,q = var('x,y,p,q', domain='complex') - Check that :trac:`18568` is fixed:: + Check that :issue:`18568` is fixed:: sage: ((x+sqrt(2)*x)^2).expand() 2*sqrt(2)*x^2 + 3*x^2 - Check that :trac:`21360` is fixed:: + Check that :issue:`21360` is fixed:: sage: ((x^(x/2) + 1)^2).expand() 2*x^(1/2*x) + x^x + 1 @@ -5194,14 +5194,14 @@ cdef class Expression(Expression_abc): sage: ((x+1.001)^3).expand() x^3 + 3.00300000000000*x^2 + 3.00600300000000*x + 1.00300300100000 - Check that :trac:`21302` is fixed:: + Check that :issue:`21302` is fixed:: sage: ((x+1)^-2).expand() 1/(x^2 + 2*x + 1) sage: (((x-1)/(x+1))^2).expand() x^2/(x^2 + 2*x + 1) - 2*x/(x^2 + 2*x + 1) + 1/(x^2 + 2*x + 1) - Check that :trac:`30688` is fixed:: + Check that :issue:`30688` is fixed:: sage: assume(x < 0) sage: sqrt(-x).expand() @@ -5210,13 +5210,13 @@ cdef class Expression(Expression_abc): (-x)^(3/4) sage: forget() - Check that :trac:`31077` and :trac:`31585` are fixed (also see :trac:`31679`):: + Check that :issue:`31077` and :issue:`31585` are fixed (also see :issue:`31679`):: sage: a,b,c,d = var("a b c d") sage: ((a + b + c)^30 * (3*b + d - 5/d)^3).expand().subs(a=0,b=2,c=-1) d^3 + 18*d^2 + 93*d - 465/d + 450/d^2 - 125/d^3 + 36 - Check that :trac:`31411` is fixed:: + Check that :issue:`31411` is fixed:: sage: q, j = var("q, j") sage: A = q^(2/3) + q^(2/5) @@ -5651,7 +5651,7 @@ cdef class Expression(Expression_abc): (x + y)^3 + b^2 + c^2 Substitutions are done term by term, in other words Sage is not - able to identify partial sums in a substitution (see :trac:`18396`):: + able to identify partial sums in a substitution (see :issue:`18396`):: sage: f = x + x^2 + x^4 sage: f.subs(x = y) @@ -5773,7 +5773,7 @@ cdef class Expression(Expression_abc): 0 Verify that this operation does not modify the passed - dictionary (:trac:`6622`):: + dictionary (:issue:`6622`):: sage: var('v t') (v, t) @@ -5784,12 +5784,12 @@ cdef class Expression(Expression_abc): sage: D {v: 2} - Check if :trac:`9891` is fixed:: + Check if :issue:`9891` is fixed:: sage: exp(x).subs(x=log(x)) x - Check if :trac:`13587` is fixed:: + Check if :issue:`13587` is fixed:: sage: t = tan(x)^2 - tan(x) sage: t.subs(x=pi/2) @@ -5827,7 +5827,7 @@ cdef class Expression(Expression_abc): sage: (sqrt(x) + 1/sqrt(x)).subs({x: 1/x}) sqrt(x) + 1/sqrt(x) - Check that :trac:`30378` is fixed:: + Check that :issue:`30378` is fixed:: sage: (x^2).subs({x: sqrt(x)}) x @@ -5839,20 +5839,20 @@ cdef class Expression(Expression_abc): sage: integrate(f(x), x, 0, a).subs(a=cos(a)) integrate(f(x), x, 0, cos(a)) - Check that :trac:`31554` is fixed:: + Check that :issue:`31554` is fixed:: sage: a,b,c,d,x,y = var("a b c d x y") sage: with hold: ....: print((2*x^0*a + b*y^1).subs({x:c, y:c*d})) b*c*d + 2*a - Check that :trac:`31530` is fixed:: + Check that :issue:`31530` is fixed:: sage: a, b = var("a b") sage: (a + b*x).series(x, 2).subs(a=a, b=b) (a) + (b)*x + Order(x^2) - Check that :trac:`31585` is fixed:: + Check that :issue:`31585` is fixed:: sage: m = -2^31 sage: (-x).subs(x=m) @@ -6019,7 +6019,7 @@ cdef class Expression(Expression_abc): TESTS: - Make sure :trac:`17849` is fixed:: + Make sure :issue:`17849` is fixed:: sage: ex = sin(x) + atan2(0,0,hold=True) sage: ex.substitute_function(sin,cos) @@ -6625,13 +6625,13 @@ cdef class Expression(Expression_abc): TypeError: cannot evaluate symbolic expression numerically Make sure we've rounded up log(10,2) enough to guarantee - sufficient precision (:trac:`10164`):: + sufficient precision (:issue:`10164`):: sage: ks = 4*10**5, 10**6 sage: all(len(str(e.n(digits=k)))-1 >= k for k in ks) True - Symbolic sums with definite endpoints are expanded (:trac:`9424`):: + Symbolic sums with definite endpoints are expanded (:issue:`9424`):: sage: (k,n) = var('k,n') sage: f(n) = sum(abs(-k*k+n),k,1,n) @@ -6642,7 +6642,7 @@ cdef class Expression(Expression_abc): sage: (ex+1).n() 163.000000000000 - Check if :trac:`24418` is fixed:: + Check if :issue:`24418` is fixed:: sage: numerical_approx(2^(450232897/4888643760)) 1.06591892580915 @@ -6953,7 +6953,7 @@ cdef class Expression(Expression_abc): TESTS: - Check if :trac:`9505` is fixed:: + Check if :issue:`9505` is fixed:: sage: var('x,y,z') (x, y, z) @@ -6965,7 +6965,7 @@ cdef class Expression(Expression_abc): ... TypeError: n != 1 only allowed for s being a variable - Check that :trac:`19996` is fixed:: + Check that :issue:`19996` is fixed:: sage: (x^(1/2)).coefficient(x, QQ(1)/3) 0 @@ -7047,7 +7047,7 @@ cdef class Expression(Expression_abc): ... ValueError: cannot return dense coefficient list with noninteger exponents - Series coefficients are now handled correctly (:trac:`17399`):: + Series coefficients are now handled correctly (:issue:`17399`):: sage: s = (1/(1-x)).series(x,6); s @@ -7062,7 +7062,7 @@ cdef class Expression(Expression_abc): sage: s.coefficients(x, sparse=False) [1, y + 1, (y + 1)^2] - We can find coefficients of symbolic functions, :trac:`12255`:: + We can find coefficients of symbolic functions, :issue:`12255`:: sage: g = function('g')(var('t')) sage: f = 3*g + g**2 + t @@ -7076,7 +7076,7 @@ cdef class Expression(Expression_abc): sage: (sin(1+x)*sin(1+x^2)*x).coefficients(x) [[sin(x^2 + 1)*sin(x + 1), 1]] - Check that :trac:`23545` is fixed:: + Check that :issue:`23545` is fixed:: sage: (x^2/(1+x)).coefficients() [[x^2/(x + 1), 0]] @@ -7675,7 +7675,7 @@ cdef class Expression(Expression_abc): TESTS: - This shows that the issue at :trac:`5755` is fixed (attempting to + This shows that the issue at :issue:`5755` is fixed (attempting to coerce a symbolic expression to a non-symbolic polynomial ring caused an error:: @@ -7689,7 +7689,7 @@ cdef class Expression(Expression_abc): sage: RR['xx'](2.0*xx) 2.00000000000000*xx - This shows that the issue at :trac:`4246` is fixed (attempting to + This shows that the issue at :issue:`4246` is fixed (attempting to coerce an expression containing at least one variable that's not in `R` raises an error):: @@ -7743,7 +7743,7 @@ cdef class Expression(Expression_abc): TESTS: - Check that :trac:`17736` is fixed:: + Check that :issue:`17736` is fixed:: sage: a,b,c = var('a,b,c') sage: fr = (1/a).fraction(QQ); fr @@ -7838,7 +7838,7 @@ cdef class Expression(Expression_abc): TESTS: - Check if :trac:`10284` is fixed:: + Check if :issue:`10284` is fixed:: sage: u = var('u') sage: v = var('v') @@ -7863,12 +7863,12 @@ cdef class Expression(Expression_abc): sage: gcd(d,e) / (u^4*z^2) in QQ True - Check that :trac:`23793` is fixed:: + Check that :issue:`23793` is fixed:: sage: gcd(I + I*x, x^2 - 1) x + 1 - Check that arguments are expanded before GCD (:trac:`23845`):: + Check that arguments are expanded before GCD (:issue:`23845`):: sage: P = (x+1)^2 + 1 sage: gcd(P, P.expand()) @@ -8198,7 +8198,7 @@ cdef class Expression(Expression_abc): sage: bool(str(f) == str(g)) True - Check if :trac:`9046` is fixed:: + Check if :issue:`9046` is fixed:: sage: var('a b x y z') (a, b, x, y, z) @@ -8354,7 +8354,7 @@ cdef class Expression(Expression_abc): TESTS: - Check if :trac:`11155` is fixed:: + Check if :issue:`11155` is fixed:: sage: abs(pi+i) abs(pi + I) @@ -8391,7 +8391,7 @@ cdef class Expression(Expression_abc): TESTS: - From :trac:`7557`:: + From :issue:`7557`:: sage: var('y', domain='real') y @@ -8616,12 +8616,12 @@ cdef class Expression(Expression_abc): TESTS: - Check that :trac:`12807` is fixed:: + Check that :issue:`12807` is fixed:: sage: (6*exp(i*pi/3)-6*exp(i*2*pi/3)).real_part() 6 - Check that :trac:`28357` is fixed:: + Check that :issue:`28357` is fixed:: sage: m = var('m') sage: assume(m, 'integer') @@ -8631,7 +8631,7 @@ cdef class Expression(Expression_abc): sin(1/2*pi*m) sage: forget() - Check that :trac:`29400` is fixed:: + Check that :issue:`29400` is fixed:: sage: cot(1 + i).imag().n() - (1/tan(1 + i)).imag().n() # abs tol 10^-12 0.00000000000000 @@ -9567,7 +9567,7 @@ cdef class Expression(Expression_abc): TESTS: - Test if :trac:`6377` is fixed:: + Test if :issue:`6377` is fixed:: sage: SR(oo).exp() +Infinity @@ -9768,7 +9768,7 @@ cdef class Expression(Expression_abc): TESTS: - Check if we handle zero correctly (:trac:`8561`):: + Check if we handle zero correctly (:issue:`8561`):: sage: x.binomial(0) 1 @@ -10009,7 +10009,7 @@ cdef class Expression(Expression_abc): TESTS: - Check that :trac:`19775` is fixed:: + Check that :issue:`19775` is fixed:: sage: a,b,c,d,e,y = var('a,b,c,d,e,y') sage: ((x - 2*y)^4/(x^2 - 4*y^2)^2).normalize() @@ -10022,7 +10022,7 @@ cdef class Expression(Expression_abc): sage: (e + c/a - b*c^2/(a^2*(b*c/a-d)) + c*d/(a*(b*c/a-d))).normalize() e - Check that :trac:`23861` is fixed:: + Check that :issue:`23861` is fixed:: sage: (x^(2*pi) + x^(-2*pi) - 2).normalize() (x^(4*pi) - 2*x^(2*pi) + 1)/x^(2*pi) @@ -10534,7 +10534,7 @@ cdef class Expression(Expression_abc): - ``self`` -- an expression with held operations - ``exclude`` -- (default: None) a list of operators to exclude from evaluation. Excluding arithmetic operators does not yet work (see - :trac:`10169`). + :issue:`10169`). OUTPUT: @@ -10632,7 +10632,7 @@ cdef class Expression(Expression_abc): TESTS: - Check that :trac:`14637` is fixed:: + Check that :issue:`14637` is fixed:: sage: assume(x > 0, x < pi/2) sage: acos(cos(x)).simplify() @@ -10686,14 +10686,14 @@ cdef class Expression(Expression_abc): TESTS: There are two square roots of `(x + 1)^2`, so this should - not be simplified to `x + 1`, see :trac:`12737`:: + not be simplified to `x + 1`, see :issue:`12737`:: sage: f = sqrt((x + 1)^2) sage: f.simplify_full() sqrt(x^2 + 2*x + 1) The imaginary part of an expression should not change under - simplification; :trac:`11934`:: + simplification; :issue:`11934`:: sage: f = sqrt(-8*(4*sqrt(2) - 7)*x^4 + 16*(3*sqrt(2) - 5)*x^3) sage: original = f.imag_part() @@ -10701,8 +10701,8 @@ cdef class Expression(Expression_abc): sage: original - simplified 0 - The invalid simplification from :trac:`12322` should not occur - after :trac:`12737`:: + The invalid simplification from :issue:`12322` should not occur + after :issue:`12737`:: sage: t = var('t') sage: assume(t, 'complex') @@ -10713,7 +10713,7 @@ cdef class Expression(Expression_abc): 1/2*log(2*t) - 1/2*log(t) sage: forget() - Complex logs are not contracted, :trac:`17556`:: + Complex logs are not contracted, :issue:`17556`:: sage: x,y = SR.var('x,y') sage: assume(y, 'complex') @@ -10723,13 +10723,13 @@ cdef class Expression(Expression_abc): sage: forget() The simplifications from :meth:`simplify_rectform` are - performed, :trac:`17556`:: + performed, :issue:`17556`:: sage: f = ( e^(I*x) - e^(-I*x) ) / ( I*e^(I*x) + I*e^(-I*x) ) sage: f.simplify_full() sin(x)/cos(x) - Check that :trac:`20846` is fixed:: + Check that :issue:`20846` is fixed:: sage: ((1/6*pi^2).series(x)).simplify_full() 1/6*pi^2 @@ -11203,7 +11203,7 @@ cdef class Expression(Expression_abc): TESTS: Check that the problem with applying ``full_simplify()`` to gamma - functions (:trac:`9240`) has been fixed:: + functions (:issue:`9240`) has been fixed:: sage: gamma(1/3) gamma(1/3) @@ -11258,7 +11258,7 @@ cdef class Expression(Expression_abc): sage: (gamma(n+2)*gamma(m-1)/gamma(n)/gamma(m+1)).gamma_normalize() (n + 1)*n/((m - 1)*m) - Check that :trac:`22826` is fixed:: + Check that :issue:`22826` is fixed:: sage: _ = var('n') sage: (n-1).gcd(n+1) @@ -11312,7 +11312,7 @@ cdef class Expression(Expression_abc): sage: f(8).expand_sum().n() 31.7752256945384 - See :trac:`9424` for making the following no longer raise + See :issue:`9424` for making the following no longer raise an error:: sage: f(8).n() @@ -11452,7 +11452,7 @@ cdef class Expression(Expression_abc): sage: (e1-e2).canonicalize_radical() 0 - The issue reported in :trac:`3520` is a case where + The issue reported in :issue:`3520` is a case where ``canonicalize_radical()`` causes a numerical integral to be calculated incorrectly:: @@ -11465,7 +11465,7 @@ cdef class Expression(Expression_abc): TESTS: - This tests that :trac:`11668` has been fixed (by :trac:`12780`):: + This tests that :issue:`11668` has been fixed (by :issue:`12780`):: sage: a,b = var('a b', domain='real') sage: A = abs((a+I*b))^2 @@ -11595,7 +11595,7 @@ cdef class Expression(Expression_abc): sage: f.simplify_log() log(x*y^2) + 1/2*log(t) - This shows that the issue at :trac:`7334` is fixed. Maxima + This shows that the issue at :issue:`7334` is fixed. Maxima intentionally keeps the expression inside the log factored:: sage: log_expr = (log(sqrt(2)-1)+log(sqrt(2)+1)) @@ -11605,7 +11605,7 @@ cdef class Expression(Expression_abc): 0 We should use the current simplification domain rather than - set it to 'real' explicitly (:trac:`12780`):: + set it to 'real' explicitly (:issue:`12780`):: sage: f = sqrt(x^2) sage: f.simplify_log() @@ -11726,7 +11726,7 @@ cdef class Expression(Expression_abc): reals. So, we should set the Maxima ``domain`` variable to 'real' before we call out to Maxima. When we return, however, we should set the ``domain`` back to what it was, rather than - assuming that it was 'complex'. See :trac:`12780`:: + assuming that it was 'complex'. See :issue:`12780`:: sage: from sage.calculus.calculus import maxima sage: maxima('domain: real;') @@ -11915,13 +11915,13 @@ cdef class Expression(Expression_abc): TESTS: - Check that :trac:`21529` is fixed:: + Check that :issue:`21529` is fixed:: sage: f(x) = function('f')(x) sage: (f(x).diff(x)^2-1).factor() (diff(f(x), x) + 1)*(diff(f(x), x) - 1) - Check that :trac:`27304` is fixed:: + Check that :issue:`27304` is fixed:: sage: factor(2*exp(x) + exp(-x)) (2*e^(2*x) + 1)*e^(-x) @@ -11932,7 +11932,7 @@ cdef class Expression(Expression_abc): sage: factor((x + sqrt(x))/(x - sqrt(x))) (x + sqrt(x))/(x - sqrt(x)) - Check that :trac:`33640` is fixed:: + Check that :issue:`33640` is fixed:: sage: ((x + 1)^2 - 2*x - 1).factor() x^2 @@ -12286,7 +12286,7 @@ cdef class Expression(Expression_abc): ... TypeError: unable to convert sqrt(3) to a rational - Check if :trac:`9538` is fixed:: + Check if :issue:`9538` is fixed:: sage: var('f6,f5,f4,x') (f6, f5, f4, x) @@ -12363,7 +12363,7 @@ cdef class Expression(Expression_abc): TESTS: - Check that :trac:`20755` is indeed fixed:: + Check that :issue:`20755` is indeed fixed:: sage: w = x^4 - (1+3*i)*x^3 - (2-4*i)*x^2 + (6-2*i)*x - 4 - 4*i sage: w.solve(x,multiplicities=True) @@ -12563,7 +12563,7 @@ cdef class Expression(Expression_abc): sage: sin(x).find_root(-1,1) # needs scipy 0.0 - This example was fixed along with :trac:`4942` - + This example was fixed along with :issue:`4942` - there was an error in the example pi is a root for tan(x), but an asymptote to 1/tan(x) added an example to show handling of both cases:: @@ -12625,7 +12625,7 @@ cdef class Expression(Expression_abc): TESTS: Test the special case that failed for the first attempt to fix - :trac:`3980`:: + :issue:`3980`:: sage: t = var('t') sage: find_root(1/t - x,0,2) @@ -12635,7 +12635,7 @@ cdef class Expression(Expression_abc): in 1 dimension. Ensure that complex expressions do not cause a problem if they - appear only as intermediate results as in :trac:`24536`:: + appear only as intermediate results as in :issue:`24536`:: sage: x = SR.symbol('x', domain='real') sage: f = (sqrt(x) - I).abs() @@ -12746,7 +12746,7 @@ cdef class Expression(Expression_abc): TESTS: Ensure that complex expressions do not cause a problem if they - appear only as intermediate results as in :trac:`24536`:: + appear only as intermediate results as in :issue:`24536`:: sage: x = SR.symbol('x', domain='real') sage: f = (x + I).abs() @@ -12960,7 +12960,7 @@ cdef class Expression(Expression_abc): sage: plot(s) # needs sage.plot Graphics object consisting of 1 graphics primitive - Check that :trac:`15030` is fixed:: + Check that :issue:`15030` is fixed:: sage: abs(log(x))._plot_fast_callable(x)(-0.2) # abs tol 1e-10 3.52985761682672 @@ -13107,12 +13107,12 @@ cdef class Expression(Expression_abc): TESTS: - Check that the sum in :trac:`10682` is done right:: + Check that the sum in :issue:`10682` is done right:: sage: sum(binomial(n,k)*k^2, k, 2, n) 1/4*(n^2 + n)*2^n - n - This sum used to give a wrong result (:trac:`9635`) but + This sum used to give a wrong result (:issue:`9635`) but now gives correct results with all relevant assumptions:: sage: (n,k,j)=var('n,k,j') @@ -13135,13 +13135,13 @@ cdef class Expression(Expression_abc): -(-1)^j*sum((-1)^k*binomial(k - 1, j)*binomial(n, k), k, j + 1, n) sage: forget() - Check that :trac:`16176` is fixed:: + Check that :issue:`16176` is fixed:: sage: n = var('n') sage: sum(log(1-1/n^2),n,2,oo) -log(2) - Check that :trac:`21801` is fixed:: + Check that :issue:`21801` is fixed:: sage: n = SR.var('n') sage: sum(1/((n+1)*(2*n-1)), n, 0, oo) @@ -13217,7 +13217,7 @@ cdef class Expression(Expression_abc): TESTS: - We check that :trac:`12438` is resolved:: + We check that :issue:`12438` is resolved:: sage: f(x) = x; f x |--> x @@ -13242,7 +13242,7 @@ cdef class Expression(Expression_abc): sage: integral(f, z) (x, y) |--> (x + y)*z - We check that :trac:`13097` is resolved:: + We check that :issue:`13097` is resolved:: sage: integrate(ln(1+4/5*sin(x)), x, -3.1415, 3.1415) # tol 10e-6 -1.40205228301000 diff --git a/src/sage/symbolic/expression_conversion_algebraic.py b/src/sage/symbolic/expression_conversion_algebraic.py index f1b30784598..d5764cb2421 100644 --- a/src/sage/symbolic/expression_conversion_algebraic.py +++ b/src/sage/symbolic/expression_conversion_algebraic.py @@ -83,7 +83,7 @@ def arithmetic(self, ex, operator): ... TypeError: unable to convert pi^6 to Algebraic Field - Test that :trac:`14602` is fixed:: + Test that :issue:`14602` is fixed:: sage: K = QuadraticField(3) sage: K(sqrt(3)).parent() is K @@ -157,7 +157,7 @@ def composition(self, ex, operator): ... TypeError: unable to convert zeta(7) to Algebraic Field - Test :trac:`22571`:: + Test :issue:`22571`:: sage: a.composition(exp(0, hold=True), exp) 1 @@ -176,7 +176,7 @@ def composition(self, ex, operator): sage: bool(sin(pi*RR("0.7000000000000002")) > 0) True - Check that :trac:`24440` is fixed:: + Check that :issue:`24440` is fixed:: sage: QQbar(tanh(pi + 0.1)) Traceback (most recent call last): diff --git a/src/sage/symbolic/expression_conversion_sympy.py b/src/sage/symbolic/expression_conversion_sympy.py index c2c1b3e2634..e7aaf3bd656 100644 --- a/src/sage/symbolic/expression_conversion_sympy.py +++ b/src/sage/symbolic/expression_conversion_sympy.py @@ -46,7 +46,7 @@ class SympyConverter(Converter): TESTS: - Make sure we can convert I (:trac:`6424`):: + Make sure we can convert I (:issue:`6424`):: sage: bool(I._sympy_() == I) True @@ -244,7 +244,7 @@ def derivative(self, ex, operator): sage: df_sympy == f_sympy.diff(x, 2, y, 1) True - Check that :trac:`28964` is fixed:: + Check that :issue:`28964` is fixed:: sage: f = function('f') sage: _ = var('x,t') @@ -252,7 +252,7 @@ def derivative(self, ex, operator): (Derivative(f(x, t), x), Derivative(f(x, t), t)) Check differentiating by variables with multiple occurrences - (:trac:`28964`):: + (:issue:`28964`):: sage: f = function('f') sage: _ = var('x1,x2,x3,x,t') diff --git a/src/sage/symbolic/expression_conversions.py b/src/sage/symbolic/expression_conversions.py index 2f44dd34a3e..3944390c746 100644 --- a/src/sage/symbolic/expression_conversions.py +++ b/src/sage/symbolic/expression_conversions.py @@ -234,7 +234,7 @@ def get_fake_div(self, ex): sage: c.get_fake_div((2*x^3+2*x-1)/((x-2)*(x+1))) FakeExpression([2*x^3 + 2*x - 1, FakeExpression([x + 1, x - 2], )], ) - Check if :trac:`8056` is fixed, i.e., if numerator is 1.:: + Check if :issue:`8056` is fixed, i.e., if numerator is 1.:: sage: c.get_fake_div(1/pi/x) FakeExpression([1, FakeExpression([pi, x], )], ) @@ -512,7 +512,7 @@ def derivative(self, ex, operator): TESTS: - Most of these confirm that :trac:`7401` was fixed:: + Most of these confirm that :issue:`7401` was fixed:: sage: t = var('t'); f = function('f')(t) sage: a = 2^e^t * f.subs(t=e^t) * diff(f, t).subs(t=e^t) + 2*t @@ -574,7 +574,7 @@ def derivative(self, ex, operator): sage: bool(b.sage() == a) True - Test a special case (:trac:`16697`):: + Test a special case (:issue:`16697`):: sage: x,y = var('x,y') sage: (gamma_inc(x,y).diff(x)) @@ -690,7 +690,7 @@ def pyobject(self, ex, obj): `Expression Integer` and `Expression Complex Integer` to make sure that elements of the symbolic ring are translated to these. In particular, this is needed for integration, see - :trac:`28641` and :trac:`28647`. + :issue:`28641` and :issue:`28647`. EXAMPLES:: @@ -792,7 +792,7 @@ def derivative(self, ex, operator): F (x,y,z) ,1,1,3 - Check that :trac:`25838` is fixed:: + Check that :issue:`25838` is fixed:: sage: var('x') x @@ -803,7 +803,7 @@ def derivative(self, ex, operator): sage: integrate(diff(F(x), x)*sin(F(x)), x, algorithm="fricas") # optional - fricas -cos(F(x)) - Check that :trac:`27310` is fixed:: + Check that :issue:`27310` is fixed:: sage: f = function("F") sage: var("y") @@ -1235,7 +1235,7 @@ def arithmetic(self, ex, operator): TESTS: Check if rational functions with numerator 1 can - be converted. (:trac:`8056`):: + be converted. (:issue:`8056`):: sage: (1/pi/x)._fast_callable_(etb) div(1, mul(pi, v_0)) @@ -1642,7 +1642,7 @@ def derivative(self, ex, operator): TESTS: We can substitute functions under a derivative operator, - :trac:`12801`:: + :issue:`12801`:: sage: f = function('f') sage: g = function('g') diff --git a/src/sage/symbolic/function.pyx b/src/sage/symbolic/function.pyx index e349fe20100..78e2cd7b51b 100644 --- a/src/sage/symbolic/function.pyx +++ b/src/sage/symbolic/function.pyx @@ -257,9 +257,9 @@ cdef class Function(SageObject): TESTS: - After :trac:`9240`, pickling and unpickling of symbolic + After :issue:`9240`, pickling and unpickling of symbolic functions was broken. We check here that this is fixed - (:trac:`11919`):: + (:issue:`11919`):: sage: # needs sage.symbolic sage: f = function('f')(x) @@ -488,14 +488,14 @@ cdef class Function(SageObject): [e^x 0] [ 0 -1] - Make sure we can pass mpmath arguments (:trac:`13608`):: + Make sure we can pass mpmath arguments (:issue:`13608`):: sage: import mpmath # needs mpmath sage: with mpmath.workprec(128): sin(mpmath.mpc('0.5', '1.2')) # needs mpmath mpc(real='0.86807452059118713192871150787046523179886', imag='1.3246769633571289324095313649562791720086') - Check that :trac:`10133` is fixed:: + Check that :issue:`10133` is fixed:: sage: # needs sage.symbolic sage: out = sin(0) @@ -511,7 +511,7 @@ cdef class Function(SageObject): sage: (out, parent(out)) (0, Integer Ring) - Check that ``real_part`` and ``imag_part`` still works after :trac:`21216`:: + Check that ``real_part`` and ``imag_part`` still works after :issue:`21216`:: sage: # needs numpy sage.symbolic sage: import numpy @@ -1090,7 +1090,7 @@ cdef class BuiltinFunction(Function): """ TESTS: - Check if :trac:`13586` is fixed:: + Check if :issue:`13586` is fixed:: sage: from sage.symbolic.function import BuiltinFunction sage: class AFunction(BuiltinFunction): diff --git a/src/sage/symbolic/function_factory.py b/src/sage/symbolic/function_factory.py index 4c2542c77e3..43779c4fb42 100644 --- a/src/sage/symbolic/function_factory.py +++ b/src/sage/symbolic/function_factory.py @@ -328,7 +328,7 @@ def function(s, **kwds) -> Union[SymbolicFunction, list[SymbolicFunction]]: TESTS: - Make sure that :trac:`15860` is fixed and whitespaces are removed:: + Make sure that :issue:`15860` is fixed and whitespaces are removed:: sage: C, D, E = function(' C D E') sage: C(D(x)) diff --git a/src/sage/symbolic/integration/external.py b/src/sage/symbolic/integration/external.py index 1e242c3f442..ea73c69ff74 100644 --- a/src/sage/symbolic/integration/external.py +++ b/src/sage/symbolic/integration/external.py @@ -27,7 +27,7 @@ def maxima_integrator(expression, v, a=None, b=None): TESTS: - Check that :trac:`25817` is fixed:: + Check that :issue:`25817` is fixed:: sage: maxima_integrator(log(e^x*log(x)*sin(x))/x^2, x) 1/2*(x*(Ei(-log(x)) + conjugate(Ei(-log(x)))) @@ -86,7 +86,7 @@ def mma_free_integrator(expression, v, a=None, b=None): TESTS: - Check that :trac:`18212` is resolved:: + Check that :issue:`18212` is resolved:: sage: var('y') # optional - internet y @@ -94,7 +94,7 @@ def mma_free_integrator(expression, v, a=None, b=None): sage: result.simplify_trig() # optional - internet -1/2*cos(y)*sin(y) + 1/2*y - Check that :trac:`14764` is resolved:: + Check that :issue:`14764` is resolved:: sage: integrate(x^2, x, 0, 1, algorithm="mathematica_free") # optional - internet 1/3 @@ -149,7 +149,7 @@ def fricas_integrator(expression, v, a=None, b=None, noPole=True): TESTS: - Check that :trac:`25220` is fixed:: + Check that :issue:`25220` is fixed:: sage: integral(sqrt(1-cos(x)), x, 0, 2*pi, algorithm="fricas") # optional - fricas 4*sqrt(2) @@ -162,7 +162,7 @@ def fricas_integrator(expression, v, a=None, b=None, noPole=True): sage: integral(cos(ln(cos(x))), x, algorithm='fricas') # optional - fricas integral(cos(log(cos(x))), x) - Check that :trac:`28641` is fixed:: + Check that :issue:`28641` is fixed:: sage: integrate(sqrt(2)*x^2 + 2*x, x, algorithm="fricas") # optional - fricas 1/3*sqrt(2)*x^3 + x^2 @@ -173,13 +173,13 @@ def fricas_integrator(expression, v, a=None, b=None, noPole=True): sage: integrate(1, x, algorithm="fricas") # optional - fricas x - Check that :trac:`28630` is fixed:: + Check that :issue:`28630` is fixed:: sage: f = polylog(3, x) sage: f.integral(x, algorithm='fricas') # optional - fricas -x*dilog(x) - (x - 1)*log(-x + 1) + x*polylog(3, x) + x - Check that :trac:`29043` is fixed:: + Check that :issue:`29043` is fixed:: sage: var("a c d"); f = (I*a*tan(d*x + c) + a)*sec(d*x + c)^10 (a, c, d) @@ -233,7 +233,7 @@ def giac_integrator(expression, v, a=None, b=None): sage: giac_integrator(e^(-x^2)*log(x), x) integrate(e^(-x^2)*log(x), x) - Check that :trac:`30133` is fixed:: + Check that :issue:`30133` is fixed:: sage: ee = SR.var('e') sage: giac_integrator(ee^x, x) @@ -242,7 +242,7 @@ def giac_integrator(expression, v, a=None, b=None): sage: giac_integrator(cos(y), y) sin(π) - Check that :trac:`29966` is fixed:: + Check that :issue:`29966` is fixed:: sage: giac_integrator(sqrt(x + sqrt(x)), x) 1/12*(2*sqrt(x)*(4*sqrt(x) + 1) - 3)*sqrt(x + sqrt(x))... @@ -278,7 +278,7 @@ def libgiac_integrator(expression, v, a=None, b=None): integrate(e^(-x^2)*log(x), x) The following integral fails with the Giac Pexpect interface, but works - with libgiac (:trac:`31873`):: + with libgiac (:issue:`31873`):: sage: a, x = var('a,x') sage: f = sec(2*a*x) diff --git a/src/sage/symbolic/integration/integral.py b/src/sage/symbolic/integration/integral.py index e431e76a767..61e1513d87f 100644 --- a/src/sage/symbolic/integration/integral.py +++ b/src/sage/symbolic/integration/integral.py @@ -57,13 +57,13 @@ def __init__(self): TESTS: - Check for :trac:`28913`:: + Check for :issue:`28913`:: sage: Ex = (1-2*x^(1/3))^(3/4)/x sage: integrate(Ex, x, algorithm="giac") # long time 4*(-2*x^(1/3) + 1)^(3/4) + 6*arctan((-2*x^(1/3) + 1)^(1/4)) - 3*log((-2*x^(1/3) + 1)^(1/4) + 1) + 3*log(abs((-2*x^(1/3) + 1)^(1/4) - 1)) - Check for :trac:`29833`:: + Check for :issue:`29833`:: sage: (x,a,b)=var('x a b') sage: assume(b > 0) @@ -71,7 +71,7 @@ def __init__(self): sage: (f*f).integrate(x, algorithm="mathematica_free") # optional -- internet -b*log(e^(a/b) + e^(x/b)) + x + b/(e^(-(a - x)/b) + 1) - Check for :trac:`25119`:: + Check for :issue:`25119`:: sage: result = integrate(sqrt(x^2)/x,x) ... @@ -101,12 +101,12 @@ def _eval_(self, f, x): TESTS: - Check that :trac:`28842` is fixed:: + Check that :issue:`28842` is fixed:: sage: integrate(1/(x^4 + x^3 + 1), x) integrate(1/(x^4 + x^3 + 1), x) - Check that :trac:`32002` is fixed:: + Check that :issue:`32002` is fixed:: sage: result = integral(2*min_symbolic(x,2*x),x) ... @@ -198,7 +198,7 @@ def __init__(self): TESTS: - Check for :trac:`32354`:: + Check for :issue:`32354`:: sage: ex = 1/max_symbolic(x, 1)**2 sage: integral(ex, x, 0, 2, algorithm='giac') @@ -229,7 +229,7 @@ def _eval_(self, f, x, a, b): TESTS: - Check that :trac:`32002` is fixed:: + Check that :issue:`32002` is fixed:: sage: result = integral(2*min_symbolic(x,2*x),x,-1,1) ... @@ -282,7 +282,7 @@ def _evalf_(self, f, x, a, b, parent=None, algorithm=None): TESTS: - Check if :trac:`3863` is fixed:: + Check if :issue:`3863` is fixed:: sage: integrate(x^2.7 * e^(-2.4*x), x, 0, 3).n() 0.154572952320790 @@ -311,7 +311,7 @@ def _tderivative_(self, f, x, a, b, diff_param=None): TESTS: - Check for :trac:`28656`:: + Check for :issue:`28656`:: sage: t = var("t") sage: f = function("f") @@ -718,7 +718,7 @@ def integrate(expression, v=None, a=None, b=None, algorithm=None, hold=False): TESTS: The following integral was broken prior to Maxima 5.15.0 - - see :trac:`3013`:: + see :issue:`3013`:: sage: integrate(sin(x)*cos(10*x)*log(x), x) -1/198*(9*cos(11*x) - 11*cos(9*x))*log(x) + 1/44*Ei(11*I*x) - 1/36*Ei(9*I*x) - 1/36*Ei(-9*I*x) + 1/44*Ei(-11*I*x) @@ -737,7 +737,7 @@ def integrate(expression, v=None, a=None, b=None, algorithm=None, hold=False): sage: integrate(sin(x), x, 0, 1) -cos(1) + 1 - Check if :trac:`780` is fixed:: + Check if :issue:`780` is fixed:: sage: _ = var('x,y') sage: f = log(x^2+y^2) @@ -758,7 +758,7 @@ def integrate(expression, v=None, a=None, b=None, algorithm=None, hold=False): sage: res.subs(y=.5).n() -0.669511708872807 - Check if :trac:`6816` is fixed:: + Check if :issue:`6816` is fixed:: sage: var('t,theta') (t, theta) @@ -787,7 +787,7 @@ def integrate(expression, v=None, a=None, b=None, algorithm=None, hold=False): ... ValueError: Computation failed since Maxima requested additional constraints;... - Check if :trac:`6189` is fixed:: + Check if :issue:`6189` is fixed:: sage: n = N; n @@ -805,7 +805,7 @@ def integrate(expression, v=None, a=None, b=None, algorithm=None, hold=False): sage: exp(-x*i).integral(x,0,1) I*e^(-I) - I - Test that :trac:`8729` is fixed:: + Test that :issue:`8729` is fixed:: sage: t = var('t') sage: a = sqrt((sin(t))^2 + (cos(t))^2) @@ -816,13 +816,13 @@ def integrate(expression, v=None, a=None, b=None, algorithm=None, hold=False): Maxima uses Cauchy Principal Value calculations to integrate certain convergent integrals. Here we test - that this does not raise an error message (see :trac:`11987`):: + that this does not raise an error message (see :issue:`11987`):: sage: integrate(sin(x)*sin(x/3)/x^2, x, 0, oo) 1/6*pi Maxima returned a negative value for this integral prior to - maxima-5.24 (:trac:`10923`). Ideally we would get an answer in terms + maxima-5.24 (:issue:`10923`). Ideally we would get an answer in terms of the gamma function; however, we get something equivalent:: sage: actual_result = integral(e^(-1/x^2), x, 0, 1) @@ -834,7 +834,7 @@ def integrate(expression, v=None, a=None, b=None, algorithm=None, hold=False): 0 We will get a correct answer here, which is better than - the previous (wrong) answer of zero. See :trac:`10914`:: + the previous (wrong) answer of zero. See :issue:`10914`:: sage: f = abs(sin(x)) sage: result = integrate(f, x, 0, 2*pi) @@ -843,7 +843,7 @@ def integrate(expression, v=None, a=None, b=None, algorithm=None, hold=False): 4 Another incorrect integral fixed upstream in Maxima, from - :trac:`11233`:: + :issue:`11233`:: sage: a,t = var('a,t') sage: assume(a>0) @@ -854,26 +854,26 @@ def integrate(expression, v=None, a=None, b=None, algorithm=None, hold=False): 4.32025625668262 sage: forget() - Verify that MinusInfinity works with sympy (:trac:`12345`):: + Verify that MinusInfinity works with sympy (:issue:`12345`):: sage: integral(1/x^2, x, -infinity, -1, algorithm='sympy') # needs sympy 1 - Check that :trac:`11737` is fixed:: + Check that :issue:`11737` is fixed:: sage: N(integrate(sin(x^2)/(x^2), x, 1, infinity), prec=54) 0.285736646322853 sage: N(integrate(sin(x^2)/(x^2), x, 1, infinity)) # known bug (non-zero imag part) 0.285736646322853 - Check that :trac:`14209` is fixed:: + Check that :issue:`14209` is fixed:: sage: integral(e^(-abs(x))/cosh(x),x,-infinity,infinity) 2*log(2) sage: integral(e^(-abs(x))/cosh(x),x,-infinity,infinity) 2*log(2) - Check that :trac:`12628` is fixed:: + Check that :issue:`12628` is fixed:: sage: var('z,n') (z, n) @@ -892,12 +892,12 @@ def integrate(expression, v=None, a=None, b=None, algorithm=None, hold=False): 193359161/6227020800*pi 5799919/227026800*pi - Check that :trac:`12628` is fixed:: + Check that :issue:`12628` is fixed:: sage: integrate(1/(sqrt(x)*((1+sqrt(x))^2)),x,1,9) 1/2 - Check that :trac:`8728` is fixed:: + Check that :issue:`8728` is fixed:: sage: forget() sage: c,w,T = var('c,w,T') @@ -907,14 +907,14 @@ def integrate(expression, v=None, a=None, b=None, algorithm=None, hold=False): sage: integrate(cos(w+T) / (1+c*cos(T))^2, T, 0, 2*pi) 2*pi*sqrt(-c^2 + 1)*c*cos(w)/(c^4 - 2*c^2 + 1) - Check that :trac:`13733` is fixed (but the bug reappeared, see :trac:`30063`):: + Check that :issue:`13733` is fixed (but the bug reappeared, see :issue:`30063`):: sage: a = integral(log(cot(x) - 1), x, 0, pi/4); a # long time (about 6 s) # known bug -1/4*pi*log(2) - 1/2*I*dilog(I + 1) + 1/2*I*dilog(-I + 1) + 1/2*I*dilog(1/2*I + 1/2) - 1/2*I*dilog(-1/2*I + 1/2) sage: abs(N(a - pi*log(2)/8)) < 1e-15 # long time # known bug True - Check that :trac:`17968` is fixed:: + Check that :issue:`17968` is fixed:: sage: a = N(integrate(exp(x^3), (x, 1, 2)), prec=54) sage: a.real_part() # abs tol 1e-13 @@ -933,7 +933,7 @@ def integrate(expression, v=None, a=None, b=None, algorithm=None, hold=False): sage: integrate(f, (x, -infinity, infinity)) 1/3*pi^2 - Some integrals are now working (:trac:`27958`, using giac or sympy):: + Some integrals are now working (:issue:`27958`, using giac or sympy):: sage: result = integrate(1/(1 + abs(x)), x) ... @@ -994,14 +994,14 @@ def integrate(expression, v=None, a=None, b=None, algorithm=None, hold=False): sage: result 4 - Some tests for :trac:`17468`:: + Some tests for :issue:`17468`:: sage: integral(log(abs(2*sin(x))), x, 0, pi/3) 1/36*I*pi^2 + I*dilog(1/2*I*sqrt(3) + 1/2) + I*dilog(-1/2*I*sqrt(3) - 1/2) sage: integral(log(abs(sin(x))), x, 0, pi/2) -1/2*pi*log(2) - Check that :trac:`25823` is fixed:: + Check that :issue:`25823` is fixed:: sage: f = log(sin(x))*sin(x)^2 sage: g = integrate(f, x) ; g @@ -1020,12 +1020,12 @@ def integrate(expression, v=None, a=None, b=None, algorithm=None, hold=False): sage: (g.derivative() - f).full_simplify().full_simplify() 0 - Test for :trac:`24117`:: + Test for :issue:`24117`:: sage: integrate(sqrt(1-4*sin(x)^2),x, algorithm='maxima') integrate(sqrt(-4*sin(x)^2 + 1), x) - Check that :trac:`30353` is fixed:: + Check that :issue:`30353` is fixed:: sage: a = SR.var('a') sage: assume(a > 0) @@ -1033,7 +1033,7 @@ def integrate(expression, v=None, a=None, b=None, algorithm=None, hold=False): sage: integrate(x*log(1/(a*x+(1-x)^2)), x, 0, 1, algorithm='maxima') 1/4*a^2*log(a) + 1/2*sqrt(-a^2 + 4*a)*a*arctan(sqrt(-a^2 + 4*a)*(a - 2)/(a^2 - 4*a)) - 1/2*sqrt(-a^2 + 4*a)*a*arctan(sqrt(-a^2 + 4*a)/(a - 4)) - a*log(a) - sqrt(-a^2 + 4*a)*arctan(sqrt(-a^2 + 4*a)*(a - 2)/(a^2 - 4*a)) + sqrt(-a^2 + 4*a)*arctan(sqrt(-a^2 + 4*a)/(a - 4)) - 1/2*a + 3/2 - Check that :trac:`25905` is fixed:: + Check that :issue:`25905` is fixed:: sage: var('a d x c') (a, d, x, c) @@ -1042,13 +1042,13 @@ def integrate(expression, v=None, a=None, b=None, algorithm=None, hold=False): -2/3*(24*a^3*e^(4*I*d*x + 4*I*c) + 33*a^3*e^(2*I*d*x + 2*I*c) + 13*a^3 + 6*(a^3*e^(6*I*d*x + 6*I*c) + 3*a^3*e^(4*I*d*x + 4*I*c) + 3*a^3*e^(2*I*d*x + 2*I*c) + a^3)*log(e^(2*I*d*x + 2*I*c) + 1))/(d*e^(6*I*d*x + 6*I*c) + 3*d*e^(4*I*d*x + 4*I*c) + 3*d*e^(2*I*d*x + 2*I*c) + d) The fundamental theorem of calculus holds for elliptic integrals - of the second kind, :trac:`26563`:: + of the second kind, :issue:`26563`:: sage: x,m = SR.var('x,m', domain='real') # long time sage: integrate(elliptic_e(x,m).diff(x), x) # long time elliptic_e(x, m) - Check that :trac:`20467` is fixed:: + Check that :issue:`20467` is fixed:: sage: k = var('k') sage: integral(sin(k*x)/x*erf(x^2), x, 0, oo, algorithm='maxima') diff --git a/src/sage/symbolic/operators.py b/src/sage/symbolic/operators.py index 738f792f853..07add13f71e 100644 --- a/src/sage/symbolic/operators.py +++ b/src/sage/symbolic/operators.py @@ -116,7 +116,7 @@ def __call__(self, *args): TESTS: We should be able to operate on functions evaluated at a - point, not just a symbolic variable, :trac:`12796`:: + point, not just a symbolic variable, :issue:`12796`:: sage: from sage.symbolic.operators import FDerivativeOperator sage: f = function('f') diff --git a/src/sage/symbolic/pynac.pxi b/src/sage/symbolic/pynac.pxi index 09f0ad032d5..8eaed90ea15 100644 --- a/src/sage/symbolic/pynac.pxi +++ b/src/sage/symbolic/pynac.pxi @@ -1,7 +1,7 @@ """ Declarations for pynac, a Python frontend for ginac -Check that we can externally cimport this (:trac:`18825`):: +Check that we can externally cimport this (:issue:`18825`):: sage: cython( # needs sage.misc.cython ....: ''' diff --git a/src/sage/symbolic/pynac_impl.pxi b/src/sage/symbolic/pynac_impl.pxi index b2091522c49..4656de09d28 100644 --- a/src/sage/symbolic/pynac_impl.pxi +++ b/src/sage/symbolic/pynac_impl.pxi @@ -836,7 +836,7 @@ cdef int py_get_parent_char(o) except -1: """ TESTS: - :trac:`24072` fixes the workaround provided in :trac:`21187`:: + :issue:`24072` fixes the workaround provided in :issue:`21187`:: sage: p = next_prime(2^100) sage: R. = FiniteField(p)[] @@ -1848,26 +1848,26 @@ cdef py_atan2(x, y) noexcept: sage: py_atan2(RR100(0), RR100(1)) 1.5707963267948966192313216916 - Check that :trac:`21428` is fixed:: + Check that :issue:`21428` is fixed:: sage: plot(real(sqrt(x - 1.*I)), (x,0,1)) Graphics object consisting of 1 graphics primitive - Check that :trac:`22553` is fixed:: + Check that :issue:`22553` is fixed:: sage: arctan2(1.5, -1.300000000000001) 2.284887025407... sage: atan2(2.1000000000000000000000000000000000000, -1.20000000000000000000000000000000) 2.089942441041419571002776071... - Check that :trac:`22877` is fixed:: + Check that :issue:`22877` is fixed:: sage: atan2(CC(I), CC(I+1)) 0.553574358897045 + 0.402359478108525*I sage: atan2(CBF(I), CBF(I+1)) [0.55357435889705 +/- ...] + [0.402359478108525 +/- ...]*I - Check that :trac:`23776` is fixed and RDF input gives real output:: + Check that :issue:`23776` is fixed and RDF input gives real output:: sage: atan2(RDF(-3), RDF(-1)) -1.8925468811915387 @@ -2446,7 +2446,7 @@ def init_pynac_I(): sage: type(I.pyobject()) - Check that :trac:`10064` is fixed:: + Check that :issue:`10064` is fixed:: sage: y = symbolic_I*symbolic_I*x / x # so y is the expression -1 sage: y.is_positive() @@ -2457,7 +2457,7 @@ def init_pynac_I(): sage: bool(z == y) True - Check that :trac:`31869` is fixed:: + Check that :issue:`31869` is fixed:: sage: x * ((3*I + 4)*x - 5) ((3*I + 4)*x - 5)*x diff --git a/src/sage/symbolic/random_tests.py b/src/sage/symbolic/random_tests.py index ebed9407776..552cf61a5b6 100644 --- a/src/sage/symbolic/random_tests.py +++ b/src/sage/symbolic/random_tests.py @@ -428,7 +428,7 @@ def test_symbolic_expression_order(repetitions=100): This is important because the C++ extension class uses ``std::sort()`` which requires a strict weak order. See also - :trac:`9880`. + :issue:`9880`. EXAMPLES:: diff --git a/src/sage/symbolic/relation.py b/src/sage/symbolic/relation.py index ea3f5b170ea..6d2e4ec79be 100644 --- a/src/sage/symbolic/relation.py +++ b/src/sage/symbolic/relation.py @@ -286,7 +286,7 @@ sage: (SR(I)+1)^4 > 0 -4 > 0 -Nevertheless, if you force the comparison, you get the right answer (:trac:`7160`):: +Nevertheless, if you force the comparison, you get the right answer (:issue:`7160`):: sage: bool(SR(I)^2 == -1) True @@ -427,7 +427,7 @@ def test_relation_maxima(relation): TESTS: Ensure that ``canonicalize_radical()`` and ``simplify_log`` are not - used inappropriately, :trac:`17389`. Either one would simplify ``f`` + used inappropriately, :issue:`17389`. Either one would simplify ``f`` to zero below:: sage: x,y = SR.var('x,y') @@ -950,7 +950,7 @@ def solve(f, *args, **kwds): TypeError: The first argument must be a symbolic expression or a list of symbolic expressions. Test if the empty list is returned, too, when (a list of) - dictionaries (is) are requested (:trac:`8553`):: + dictionaries (is) are requested (:issue:`8553`):: sage: solve([SR(0)==1],x) [] @@ -963,7 +963,7 @@ def solve(f, *args, **kwds): sage: solve((x==1,x==-1),x,solution_dict=0) [] - Relaxed form, suggested by Mike Hansen (:trac:`8553`):: + Relaxed form, suggested by Mike Hansen (:issue:`8553`):: sage: solve([x^2-1],x,solution_dict=-1) [{x: -1}, {x: 1}] @@ -974,12 +974,12 @@ def solve(f, *args, **kwds): sage: solve((x==1,x==-1),x,solution_dict=1) [] - This inequality holds for any real ``x`` (:trac:`8078`):: + This inequality holds for any real ``x`` (:issue:`8078`):: sage: solve(x^4+2>0,x) [x < +Infinity] - Test for user friendly input handling :trac:`13645`:: + Test for user friendly input handling :issue:`13645`:: sage: poly. = PolynomialRing(RR) sage: solve([a+b+a*b == 1], a) @@ -1003,7 +1003,7 @@ def solve(f, *args, **kwds): TypeError: 1 is not a valid variable. Test that the original version of a system in the French Sage book - now works (:trac:`14306`):: + now works (:issue:`14306`):: sage: var('y,z') (y, z) @@ -1014,13 +1014,13 @@ def solve(f, *args, **kwds): z == (0.9324722294... - 0.3612416661...*I)], ...] - :trac:`13286` fixed:: + :issue:`13286` fixed:: sage: solve([x-4], [x]) [x == 4] Test for a list of non-symbolic expressions as first argument - (:trac:`31714`):: + (:issue:`31714`):: sage: solve([1], x) Traceback (most recent call last): @@ -1186,7 +1186,7 @@ def _solve_expression(f, x, explicit_solutions, multiplicities, TESTS: - :trac:`7325` (solving inequalities):: + :issue:`7325` (solving inequalities):: sage: (x^2>1).solve(x) [[x < -1], [x > 1]] @@ -1205,7 +1205,7 @@ def _solve_expression(f, x, explicit_solutions, multiplicities, ... TypeError: ECL says: cot: argument 0 isn't in the domain of cot. - :trac:`7491` fixed:: + :issue:`7491` fixed:: sage: y = var('y') sage: solve(y==y,y) @@ -1219,7 +1219,7 @@ def _solve_expression(f, x, explicit_solutions, multiplicities, [] sage: forget() - :trac:`8390` fixed:: + :issue:`8390` fixed:: sage: solve(sin(x)==1/2,x) [x == 1/6*pi] @@ -1234,13 +1234,13 @@ def _solve_expression(f, x, explicit_solutions, multiplicities, sage: solve(sin(x)==1/2, x, to_poly_solve='force') [x == 5/6*pi + 2*pi*z..., x == 1/6*pi + 2*pi*z...] - :trac:`11618` fixed:: + :issue:`11618` fixed:: sage: g(x)=0 sage: solve(g(x)==0,x,solution_dict=True) [{x: r1}] - :trac:`17128`: fixed:: + :issue:`17128`: fixed:: sage: var('x,y') (x, y) @@ -1249,7 +1249,7 @@ def _solve_expression(f, x, explicit_solutions, multiplicities, sage: sol[0].get(x) + sol[0].get(y) 0 - :trac:`16651` fixed:: + :issue:`16651` fixed:: sage: (x^7-x-1).solve(x, to_poly_solve=True) # abs tol 1e-6 [x == 1.11277569705, @@ -1260,7 +1260,7 @@ def _solve_expression(f, x, explicit_solutions, multiplicities, x == (0.617093477784 + 0.900864951949*I), x == (-0.363623519329 + 0.952561195261*I)] - :trac:`31452` fixed:: + :issue:`31452` fixed:: sage: solve([x==3], [x], solution_dict=True) [{x: 3}] diff --git a/src/sage/symbolic/ring.pyx b/src/sage/symbolic/ring.pyx index 539c3bdf21e..ef8a690714d 100644 --- a/src/sage/symbolic/ring.pyx +++ b/src/sage/symbolic/ring.pyx @@ -158,7 +158,7 @@ cdef class SymbolicRing(sage.rings.abc.SymbolicRing): sage: SR.has_coerce_map_from(pari) False - Check if arithmetic with bools works (see :trac:`9560`):: + Check if arithmetic with bools works (see :issue:`9560`):: sage: SR.has_coerce_map_from(bool) True @@ -339,7 +339,7 @@ cdef class SymbolicRing(sage.rings.abc.SymbolicRing): ... TypeError: unsupported operand type(s) for ** or pow(): 'R' and 'sage.rings.rational.Rational' - Check that :trac:`22068` is fixed:: + Check that :issue:`22068` is fixed:: sage: _ = var('x') sage: sin(x).subs(x=RR('NaN')) @@ -353,7 +353,7 @@ cdef class SymbolicRing(sage.rings.abc.SymbolicRing): sage: sin(x).subs(x=complex('NaN')) sin(NaN) - Check that :trac:`24072` is solved:: + Check that :issue:`24072` is solved:: sage: x = polygen(GF(3)) sage: a = SR.var('a') @@ -362,7 +362,7 @@ cdef class SymbolicRing(sage.rings.abc.SymbolicRing): ... TypeError: positive characteristic not allowed in symbolic computations - Check support for unicode characters (:trac:`29280`):: + Check support for unicode characters (:issue:`29280`):: sage: SR('λ + 2λ') 3*λ @@ -461,12 +461,12 @@ cdef class SymbolicRing(sage.rings.abc.SymbolicRing): TESTS: - Check that :trac:`15047` is fixed:: + Check that :issue:`15047` is fixed:: sage: latex(SR.wild(0)) \$0 - Check that :trac:`21455` is fixed:: + Check that :issue:`21455` is fixed:: sage: coth(SR.wild(0)) coth($0) @@ -599,7 +599,7 @@ cdef class SymbolicRing(sage.rings.abc.SymbolicRing): TESTS: - Test that :trac:`32404` is fixed:: + Test that :issue:`32404` is fixed:: sage: SR0 = SR.subring(no_variables=True) sage: SR0.I().parent() @@ -832,7 +832,7 @@ cdef class SymbolicRing(sage.rings.abc.SymbolicRing): ... ValueError: The name "x,y" is not a valid Python identifier. - Check that :trac:`17206` is fixed:: + Check that :issue:`17206` is fixed:: sage: var1 = var('var1', latex_name=r'\sigma^2_1'); latex(var1) {\sigma^2_1} @@ -851,7 +851,7 @@ cdef class SymbolicRing(sage.rings.abc.SymbolicRing): ... ValueError: cannot specify n for multiple symbol names - Check that :trac:`28353` is fixed: Constructions that suggest multiple + Check that :issue:`28353` is fixed: Constructions that suggest multiple variables but actually only give one variable name return a 1-tuple:: sage: SR.var(['x']) @@ -1157,7 +1157,7 @@ cdef class NumpyToSRMorphism(Morphism): TESTS: - We check that :trac:`8949` and :trac:`9769` are fixed (see also :trac:`18076`):: + We check that :issue:`8949` and :issue:`9769` are fixed (see also :issue:`18076`):: sage: import numpy # needs numpy sage: f(x) = x^2 @@ -1318,7 +1318,7 @@ def var(name, **kwds): TESTS: These examples test that variables can only be made from valid - identifiers. See :trac:`7496` (and :trac:`9724`) for details:: + identifiers. See :issue:`7496` (and :issue:`9724`) for details:: sage: var(' ') Traceback (most recent call last): diff --git a/src/sage/symbolic/series_impl.pxi b/src/sage/symbolic/series_impl.pxi index 1d979dbc505..3f869920d6b 100644 --- a/src/sage/symbolic/series_impl.pxi +++ b/src/sage/symbolic/series_impl.pxi @@ -85,19 +85,19 @@ expanded to a series. This must be explicitly done by the user:: TESTS: -Check that :trac:`20088` is fixed:: +Check that :issue:`20088` is fixed:: sage: ((1+x).series(x)^pi).series(x,3) 1 + pi*x + (-1/2*pi + 1/2*pi^2)*x^2 + Order(x^3) -Check that :trac:`14878` is fixed, this should take only microseconds:: +Check that :issue:`14878` is fixed, this should take only microseconds:: sage: sin(x*sin(x*sin(x*sin(x)))).series(x,8) 1*x^4 + (-1/6)*x^6 + Order(x^8) sage: sin(x*sin(x*sin(x*sin(x)))).series(x,12) 1*x^4 + (-1/6)*x^6 + (-19/120)*x^8 + (-421/5040)*x^10 + Order(x^12) -Check that :trac:`22959` is fixed:: +Check that :issue:`22959` is fixed:: sage: (x/(1-x^2)).series(x==0, 10) 1*x + 1*x^3 + 1*x^5 + 1*x^7 + 1*x^9 + Order(x^10) @@ -108,7 +108,7 @@ Check that :trac:`22959` is fixed:: sage: (x^2/(1-x^2)).series(x==0, 11) 1*x^2 + 1*x^4 + 1*x^6 + 1*x^8 + 1*x^10 + Order(x^11) -Check that :trac:`22733` is fixed:: +Check that :issue:`22733` is fixed:: sage: _ = var('z') sage: z.series(x) diff --git a/src/sage/symbolic/tests.py b/src/sage/symbolic/tests.py index c1ef2cd14f2..a7c6a9a6cb2 100644 --- a/src/sage/symbolic/tests.py +++ b/src/sage/symbolic/tests.py @@ -21,7 +21,7 @@ def rational_powers_memleak(): Boolean. Whether the memory leak was detected. - See :trac:`9129`. + See :issue:`9129`. EXAMPLES:: diff --git a/src/sage/symbolic/units.py b/src/sage/symbolic/units.py index fe629bad49d..5e1abf675c9 100644 --- a/src/sage/symbolic/units.py +++ b/src/sage/symbolic/units.py @@ -65,7 +65,7 @@ TESTS: -Check that :trac:`12373` is fixed:: +Check that :issue:`12373` is fixed:: sage: b = units.amount_of_substance.mole sage: b.convert(units.amount_of_substance.elementary_entity) diff --git a/src/sage/tensor/modules/all.py b/src/sage/tensor/modules/all.py index 72f37f49fe9..92b555136b4 100644 --- a/src/sage/tensor/modules/all.py +++ b/src/sage/tensor/modules/all.py @@ -3,4 +3,4 @@ 'FiniteRankFreeModule') # NB: in Sage 8.8.beta2, the lazy import of FiniteRankFreeModule is necessary # to avoid some import order issue when Chart is imported in -# free_module_tensor, see comments 12 to 18 in :trac:`27655`. +# free_module_tensor, see comments 12 to 18 in :issue:`27655`. diff --git a/src/sage/tensor/modules/comp.py b/src/sage/tensor/modules/comp.py index e4061826e83..7912b9269f8 100644 --- a/src/sage/tensor/modules/comp.py +++ b/src/sage/tensor/modules/comp.py @@ -39,7 +39,7 @@ - Eric Gourgoulhon, Michal Bejger (2014-2015): initial version - Joris Vankerschaver (2010): for the idea of storing only the non-zero components as dictionaries, whose keys are the component indices (implemented - in the old class ``DifferentialForm``; see :trac:`24444`) + in the old class ``DifferentialForm``; see :issue:`24444`) - Marco Mancini (2015) : parallelization of some computations EXAMPLES: @@ -1233,7 +1233,7 @@ def display(self, symbol, latex_symbol=None, index_positions=None, C_01 = 0.33 C_21 = 0.29 - Check that the bug reported in :trac:`22520` is fixed:: + Check that the bug reported in :issue:`22520` is fixed:: sage: c = Components(SR, [1, 2], 1) # needs sage.symbolic sage: c[0] = SR.var('t', domain='real') # needs sage.symbolic @@ -2194,7 +2194,7 @@ def contract(self, *args): TESTS: - Check that :trac:`32355` is fixed:: + Check that :issue:`32355` is fixed:: sage: from sage.tensor.modules.comp import CompFullyAntiSym sage: a = CompFullyAntiSym(QQ, V.basis(), 2) diff --git a/src/sage/tensor/modules/finite_rank_free_module.py b/src/sage/tensor/modules/finite_rank_free_module.py index 23b043bf5c4..0434ed84c53 100644 --- a/src/sage/tensor/modules/finite_rank_free_module.py +++ b/src/sage/tensor/modules/finite_rank_free_module.py @@ -39,7 +39,7 @@ class :class:`~sage.modules.free_module.FreeModule_generic` - Eric Gourgoulhon, Michal Bejger (2014-2015): initial version - Travis Scrimshaw (2016): category set to ``Modules(ring).FiniteDimensional()`` - (:trac:`20770`) + (:issue:`20770`) - Michael Jung (2019): improve treatment of the zero element - Eric Gourgoulhon (2021): unicode symbols for tensor and exterior products - Matthias Koeppe (2022): ``FiniteRankFreeModule_abstract``, symmetric powers @@ -998,7 +998,7 @@ class :class:`~sage.modules.free_module.FreeModule_generic` :class:`~sage.combinat.free_module.CombinatorialFreeModule`, since both classes deal with modules with a *distinguished basis* (see details :ref:`above `). - Moreover, following the recommendation exposed in :trac:`16427` + Moreover, following the recommendation exposed in :issue:`16427` the class :class:`FiniteRankFreeModule` inherits directly from :class:`~sage.structure.parent.Parent` (with the category set to :class:`~sage.categories.modules.Modules`) and not from the Cython diff --git a/src/sage/tensor/modules/free_module_alt_form.py b/src/sage/tensor/modules/free_module_alt_form.py index a11d3a447c9..4285b90cb41 100644 --- a/src/sage/tensor/modules/free_module_alt_form.py +++ b/src/sage/tensor/modules/free_module_alt_form.py @@ -552,7 +552,7 @@ def display(self, basis=None, format_spec=None): sage: b.display(format_spec=10) # 10 bits of precision b = 0.33 e^1∧e^2 + 2.5 e^1∧e^3 + 4.0 e^2∧e^3 - Check that the bug reported in :trac:`22520` is fixed:: + Check that the bug reported in :issue:`22520` is fixed:: sage: # needs sage.symbolic sage: M = FiniteRankFreeModule(SR, 2, name='M') diff --git a/src/sage/tensor/modules/free_module_basis.py b/src/sage/tensor/modules/free_module_basis.py index e44276a4317..9d112ef48d7 100644 --- a/src/sage/tensor/modules/free_module_basis.py +++ b/src/sage/tensor/modules/free_module_basis.py @@ -10,9 +10,9 @@ - Eric Gourgoulhon, Michal Bejger (2014-2015): initial version - Travis Scrimshaw (2016): ABC Basis_abstract and list functionality for bases - (:trac:`20770`) + (:issue:`20770`) - Eric Gourgoulhon (2018): some refactoring and more functionalities in the - choice of symbols for basis elements (:trac:`24792`) + choice of symbols for basis elements (:issue:`24792`) REFERENCES: diff --git a/src/sage/tensor/modules/free_module_tensor.py b/src/sage/tensor/modules/free_module_tensor.py index 1412638f64a..2dd54a64c1a 100644 --- a/src/sage/tensor/modules/free_module_tensor.py +++ b/src/sage/tensor/modules/free_module_tensor.py @@ -678,7 +678,7 @@ def display(self, basis=None, format_spec=None): sage: v.display(format_spec=10) # 10 bits of precision v = 0.33 e_1 - 2.0 e_2 - Check that the bug reported in :trac:`22520` is fixed:: + Check that the bug reported in :issue:`22520` is fixed:: sage: # needs sage.symbolic sage: M = FiniteRankFreeModule(SR, 3, name='M') diff --git a/src/sage/tests/book_stein_ent.py b/src/sage/tests/book_stein_ent.py index 2c43a840cdc..e7dbcaf37a1 100644 --- a/src/sage/tests/book_stein_ent.py +++ b/src/sage/tests/book_stein_ent.py @@ -283,7 +283,7 @@ sage: e = 22601762315966221465875845336488389513 sage: d = 31940292321834506197902778067109010093 sage: n = 268494924039590992469444675130990465673 -sage: p = crack_given_decrypt(n, e*d - 1) # not tested, known bug (see :trac:`32097`) +sage: p = crack_given_decrypt(n, e*d - 1) # not tested, known bug (see :issue:`32097`) sage: p # random output (could be other prime divisor) # not tested 13432418150982799907 sage: n % p # not tested diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/graphique_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/graphique_doctest.py index 549f48e1b77..a939dc4471c 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/graphique_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/graphique_doctest.py @@ -42,7 +42,7 @@ sage: g = plot([c*e^(-1/x) for c in srange(-8, 8, 0.4)], (x, -3, 3)) sage: y = var('y') sage: g += plot_vector_field((x^2, y), (x,-3,3), (y,-5,5)) - sage: g.show() # not tested, known bug, see :trac:`32657` + sage: g.show() # not tested, known bug, see :issue:`32657` Sage example in ./sol/graphique.tex, line 124:: diff --git a/src/sage/tests/cmdline.py b/src/sage/tests/cmdline.py index 5a577d1ff83..523cbef436c 100644 --- a/src/sage/tests/cmdline.py +++ b/src/sage/tests/cmdline.py @@ -49,7 +49,7 @@ AUTHORS: -- Jeroen Demeyer (2010-11-20): initial version (:trac:`10300`) +- Jeroen Demeyer (2010-11-20): initial version (:issue:`10300`) """ from subprocess import Popen, PIPE @@ -390,10 +390,10 @@ def test_executable(args, input="", timeout=100.0, pydebug_ignore_warnings=False 1 Now run a test for the fixdoctests script and, in particular, check that the - issues raised in :trac:`10589` are fixed. We have to go to slightly silly + issues raised in :issue:`10589` are fixed. We have to go to slightly silly lengths to doctest the output.:: - sage: test='r\"\"\"Add a doc-test for the fixdoctest command line option and, in particular, check that\n:trac:`10589` is fixed.\n\nEXAMPLES::\n\n sage: 1+1 # incorrect output\n 3\n sage: m=matrix(ZZ,3) # output when none is expected\n [0 0 0]\n [0 0 0]\n [1 0 0]\n sage: (2/3)*m # no output when it is expected\n sage: mu=PartitionTuple([[4,4],[3,3,2,1],[1,1]]) # output when none is expected\n [4, 4, 3, 3, 2, 1, 1]\n sage: mu.pp() # uneven indentation\n ****\n ****\n sage: PartitionTuples.options(convention="French")\n sage: mu.pp() # fix doctest with uneven indentation\n sage: PartitionTuples.options._reset()\n\"\"\"\n' + sage: test='r\"\"\"Add a doc-test for the fixdoctest command line option and, in particular, check that\n:issue:`10589` is fixed.\n\nEXAMPLES::\n\n sage: 1+1 # incorrect output\n 3\n sage: m=matrix(ZZ,3) # output when none is expected\n [0 0 0]\n [0 0 0]\n [1 0 0]\n sage: (2/3)*m # no output when it is expected\n sage: mu=PartitionTuple([[4,4],[3,3,2,1],[1,1]]) # output when none is expected\n [4, 4, 3, 3, 2, 1, 1]\n sage: mu.pp() # uneven indentation\n ****\n ****\n sage: PartitionTuples.options(convention="French")\n sage: mu.pp() # fix doctest with uneven indentation\n sage: PartitionTuples.options._reset()\n\"\"\"\n' sage: test_file = os.path.join(tmp_dir(), 'test_file.py') sage: F = open(test_file, 'w') sage: _ = F.write(test) diff --git a/src/sage/tests/cython.pyx b/src/sage/tests/cython.pyx index 3036085fdf2..431de078431 100644 --- a/src/sage/tests/cython.pyx +++ b/src/sage/tests/cython.pyx @@ -17,7 +17,7 @@ from sage.misc.fast_methods cimport FastHashable_class cdef class ClassWithLargeHash(FastHashable_class): """ This class tests against a bug with :class:`FastHashable_class` - (in an earlier version of the patch at :trac:`11900`) that occurred + (in an earlier version of the patch at :issue:`11900`) that occurred on systems where ``sys.maxsize`` does not fit into a C int. TESTS:: diff --git a/src/sage/tests/lazy_imports.py b/src/sage/tests/lazy_imports.py index 8ea93a15ab5..a1c72e64468 100644 --- a/src/sage/tests/lazy_imports.py +++ b/src/sage/tests/lazy_imports.py @@ -3,7 +3,7 @@ TESTS: Check that all non deprecated lazy imports resolve correctly. We avoid libgiac -on purpose because it does print stuff, see :trac:`31655`.:: +on purpose because it does print stuff, see :issue:`31655`.:: sage: from sage.misc.lazy_import import LazyImport sage: G = globals() diff --git a/src/sage/tests/numpy.py b/src/sage/tests/numpy.py index 5cd78b148d2..e6dd28afb5a 100644 --- a/src/sage/tests/numpy.py +++ b/src/sage/tests/numpy.py @@ -2,7 +2,7 @@ r""" TESTS: -Sage integers can index NumPy matrices (see :trac:`10928`):: +Sage integers can index NumPy matrices (see :issue:`10928`):: sage: import numpy as np sage: m = np.matrix(np.arange(4).reshape(2, 2)) diff --git a/src/sage/tests/parigp.py b/src/sage/tests/parigp.py index 1049149a147..c7cf9ab5b96 100644 --- a/src/sage/tests/parigp.py +++ b/src/sage/tests/parigp.py @@ -3,14 +3,14 @@ This file is meant to catch errors in the PARI/GP package which are not caught by any other tests. -Check that :trac:`9876` has been fixed, this test comes from PARI's +Check that :issue:`9876` has been fixed, this test comes from PARI's self-test :pari:`rnfkummer` but was modified such that the answer is canonical:: sage: pari('K = bnfinit(y^4-52*y^2+26,1); pol = rnfkummer(bnrinit(K,3,1),Mat(5)); L = rnfinit(K, [pol, 10^6]); polredabs(polredbest(L.polabs))') # long time x^20 - 112*x^18 + 5108*x^16 - 123460*x^14 + 1724337*x^12 - 14266996*x^10 + 69192270*x^8 - 188583712*x^6 + 260329852*x^4 - 141461008*x^2 + 19860776 -Check that :trac:`10195` (PARI bug 1153) has been fixed:: +Check that :issue:`10195` (PARI bug 1153) has been fixed:: sage: print(gp.eval("mathnf([0,0,0,0,0,0,0,0,0,13;0,0,0,0,0,0,0,0,23,6;0,0,0,0,0,0,0,23,-4,-7;0,0,0,0,0,0,17,-3,5,-5;0,0,0,0,0,56,16,-16,-15,-17;0,0,0,0,57,24,-16,-25,2,-21;0,0,0,114,9,56,51,-52,25,-55;0,0,113,-31,-11,24,0,28,34,-16;0,50,3,2,16,-6,-2,7,-19,-21;118,43,51,23,37,-52,18,38,51,28],0)")) [787850171872400 32189386376004 356588299060422 742392731867995 282253457851430 665185047494955 664535243562463 744564809133574 113975061998590 527459013372200] @@ -24,13 +24,13 @@ [0 0 0 0 0 0 0 0 1 0] [0 0 0 0 0 0 0 0 0 1] -Check that :trac:`11604` (PARI bug 1154) has been fixed:: +Check that :issue:`11604` (PARI bug 1154) has been fixed:: sage: A = Matrix(ZZ,4,4,[32982266684193100, 1368614777139719, 224591013270052693, 276460184982223238,1368614777139719, 56791380087354, 9319512049770279, 11471848267545007,224591013270052693, 9319512049770279,1529340971891522140, 1882541434053596358,276460184982223238, 11471848267545007, 1882541434053596358, 2317313350044091414]) sage: pari(A).qfminim(2,0) [0, 0, [;]] -Check :trac:`13314`, the following should not give a +Check :issue:`13314`, the following should not give a Segmentation Fault:: sage: x = polygen(ComplexField(128)) diff --git a/src/sage/tests/startup.py b/src/sage/tests/startup.py index 70629908446..00142bc6ba7 100644 --- a/src/sage/tests/startup.py +++ b/src/sage/tests/startup.py @@ -1,7 +1,7 @@ r""" Ensure that certain modules are not loaded on startup. -Check that IPython is not imported at startup (:trac:`18726`). It is +Check that IPython is not imported at startup (:issue:`18726`). It is imported by the doctest framework, so the simple test like above would not work. Instead, we test this by starting a new Python process:: @@ -11,8 +11,8 @@ sage: print(test_executable(["sage", "--python"], cmd)[0]) # long time False -Check that numpy (:trac:`11714`) and pyparsing are not imported on startup -as they increase the startup time. Since :trac:`23696` those are imported +Check that numpy (:issue:`11714`) and pyparsing are not imported on startup +as they increase the startup time. Since :issue:`23696` those are imported by the doctest framework via a matplotlib import. Again the simple test would not work (but we don't have to avoid loading IPython):: diff --git a/src/sage/tests/sympy.py b/src/sage/tests/sympy.py index 2f98f95e00c..6ff569cae57 100644 --- a/src/sage/tests/sympy.py +++ b/src/sage/tests/sympy.py @@ -3,7 +3,7 @@ TESTS: Checking that sympy handles correctly Sage real numbers as -coefficients of polynomials (see :trac:`24380`):: +coefficients of polynomials (see :issue:`24380`):: sage: import sympy, sympy.polys sage: x = sympy.Symbol('x') diff --git a/src/sage/topology/cubical_complex.py b/src/sage/topology/cubical_complex.py index 0c70fcd079a..4e8e80a564b 100644 --- a/src/sage/topology/cubical_complex.py +++ b/src/sage/topology/cubical_complex.py @@ -1186,7 +1186,7 @@ def chain_complex(self, subcomplex=None, augmented=False, sage: C1.homology(subcomplex=S0) {0: 0, 1: Z} - Check that :trac:`32203` has been fixed:: + Check that :issue:`32203` has been fixed:: sage: # needs sage.modules sage: Square = CubicalComplex([([0,1],[0,1])]) diff --git a/src/sage/topology/simplicial_complex.py b/src/sage/topology/simplicial_complex.py index 36128a5405f..275a64f5c79 100644 --- a/src/sage/topology/simplicial_complex.py +++ b/src/sage/topology/simplicial_complex.py @@ -111,7 +111,7 @@ sage: X.is_pure() True -Mutability (see :trac:`12587`):: +Mutability (see :issue:`12587`):: sage: S = SimplicialComplex([[1,4], [2,4]]) sage: S.add_face([1,3]) @@ -139,7 +139,7 @@ True We can also make mutable copies of an immutable simplicial complex -(see :trac:`14142`):: +(see :issue:`14142`):: sage: S = SimplicialComplex([[1,4], [2,4]]) sage: S.set_immutable() @@ -922,7 +922,7 @@ class SimplicialComplex(Parent, GenericCellComplex): TESTS: - Check that we can make mutable copies (see :trac:`14142`):: + Check that we can make mutable copies (see :issue:`14142`):: sage: S = SimplicialComplex([[0,2], [0,3]], is_mutable=False) sage: S.is_mutable() @@ -974,8 +974,8 @@ def __init__(self, sage: S == S3 True - Test that we have fixed a problem revealed in :trac:`20718`; - see also :trac:`20720`:: + Test that we have fixed a problem revealed in :issue:`20718`; + see also :issue:`20720`:: sage: SimplicialComplex([2]) Simplicial complex with vertex set (0, 1, 2) and facets {(0, 1, 2)} @@ -2582,7 +2582,7 @@ def add_face(self, face): TESTS: - Check that the bug reported at :trac:`14354` has been fixed:: + Check that the bug reported at :issue:`14354` has been fixed:: sage: T = SimplicialComplex([range(1,5)]).n_skeleton(1) sage: T.homology() # needs sage.modules @@ -2592,7 +2592,7 @@ def add_face(self, face): {0: 0, 1: Z x Z, 2: 0} Check that the ``_faces`` cache is treated correctly - (:trac:`20758`):: + (:issue:`20758`):: sage: T = SimplicialComplex([range(1,5)]).n_skeleton(1) sage: _ = T.faces() # populate the _faces attribute @@ -2602,7 +2602,7 @@ def add_face(self, face): True Check that the ``__enlarged`` cache is treated correctly - (:trac:`20758`):: + (:issue:`20758`):: sage: T = SimplicialComplex([range(1,5)]).n_skeleton(1) sage: T.homology() # to populate the __enlarged attribute # needs sage.modules @@ -2611,7 +2611,7 @@ def add_face(self, face): sage: len(T._SimplicialComplex__enlarged) > 0 # needs sage.modules True - Check we've fixed the bug reported at :trac:`14578`:: + Check we've fixed the bug reported at :issue:`14578`:: sage: t0 = SimplicialComplex() sage: t0.add_face(('a', 'b')) @@ -2620,7 +2620,7 @@ def add_face(self, face): sage: t0.homology() # needs sage.modules {0: Z, 1: 0, 2: 0} - Check that we've fixed the bug reported at :trac:`22880`:: + Check that we've fixed the bug reported at :issue:`22880`:: sage: X = SimplicialComplex([[0], [1]]) sage: temp = X.faces(SimplicialComplex(())) @@ -2728,7 +2728,7 @@ def remove_face(self, face, check=False): TESTS: Check that the ``_faces`` cache is treated properly: see - :trac:`20758`:: + :issue:`20758`:: sage: T = SimplicialComplex([range(1,5)]).n_skeleton(1) sage: _ = T.faces() # populate the _faces attribute @@ -3460,7 +3460,7 @@ def minimal_nonfaces(self): sage: SC = SimplicialComplex([(0,1,2),(0,2,3),(2,3,4),(1,2,4), \ (1,4,5),(0,3,6),(3,6,7),(4,5,7)]) - This was taking a long time before :trac:`20078`:: + This was taking a long time before :issue:`20078`:: sage: sorted(SC.minimal_nonfaces()) [(0, 4), @@ -4229,7 +4229,7 @@ def is_isomorphic(self, other, certificate=False): sage: Z3.is_isomorphic(Z2) False - We check that :trac:`20751` is fixed:: + We check that :issue:`20751` is fixed:: sage: C1 = SimplicialComplex([[1,2,3], [2,4], [3,5], [5,6]]) sage: C2 = SimplicialComplex([['a','b','c'], ['b','d'], ['c','e'], ['e','f']]) @@ -4282,7 +4282,7 @@ def automorphism_group(self): .. WARNING:: - Since :trac:`14319` the domain of the automorphism group is equal to + Since :issue:`14319` the domain of the automorphism group is equal to the graph's vertex set, and the ``translation`` argument has become useless. @@ -4303,7 +4303,7 @@ def automorphism_group(self): sage: sorted(group.domain()) # needs sage.groups ['1', '2', '3', 'a'] - Check that :trac:`17032` is fixed:: + Check that :issue:`17032` is fixed:: sage: s = SimplicialComplex([[(0,1),(2,3)]]) sage: s.automorphism_group().cardinality() # needs sage.groups diff --git a/src/sage/topology/simplicial_complex_examples.py b/src/sage/topology/simplicial_complex_examples.py index 5dda630feb0..9f5a4185eb2 100644 --- a/src/sage/topology/simplicial_complex_examples.py +++ b/src/sage/topology/simplicial_complex_examples.py @@ -195,7 +195,7 @@ class UniqueSimplicialComplex(SimplicialComplex, UniqueRepresentation): """ This combines :class:`SimplicialComplex` and :class:`UniqueRepresentation`. It is intended to be used to make - standard examples of simplicial complexes unique. See :trac:`13566`. + standard examples of simplicial complexes unique. See :issue:`13566`. INPUT: diff --git a/src/sage/typeset/character_art.py b/src/sage/typeset/character_art.py index 239e35a7df3..d9ada8ac1c7 100644 --- a/src/sage/typeset/character_art.py +++ b/src/sage/typeset/character_art.py @@ -75,7 +75,7 @@ def __init__(self, lines=[], breakpoints=[], baseline=None): ***** If there are nested breakpoints, line breaks are avoided inside the - nested elements (:trac:`29204`):: + nested elements (:issue:`29204`):: sage: s = ascii_art([[1..5], [1..17], [1..25]]) sage: s._breakpoints @@ -210,7 +210,7 @@ def get_breakpoints(self): This method is deprecated, as its output is an implementation detail. The mere breakpoints of a character art element do not reflect the best way to split it if nested structures are involved. For details, see - :trac:`29204`. + :issue:`29204`. For example the expression:: @@ -383,7 +383,7 @@ def _split_repr_(self, size): sage: ascii_art(['a' * k for k in (1..10)])._split_repr_(20) '[ a, aa, aaa, aaaa,\n\n aaaaa, aaaaaa,\n\n aaaaaaa, aaaaaaaa,\n\n aaaaaaaaa,\n\n aaaaaaaaaa ]' - Check that wrapping happens exactly at the given size (:trac:`28527`):: + Check that wrapping happens exactly at the given size (:issue:`28527`):: sage: len(ascii_art(*(['']*90), sep=',')._split_repr_(80).split('\n')[0]) 80 @@ -632,7 +632,7 @@ def __add__(self, Nelt): / \ [7 8 9] o o - Since :trac:`28527`, the baseline must always be a number. + Since :issue:`28527`, the baseline must always be a number. TESTS:: diff --git a/src/sage/typeset/character_art_factory.py b/src/sage/typeset/character_art_factory.py index cc3855d8f10..4439f7b7144 100644 --- a/src/sage/typeset/character_art_factory.py +++ b/src/sage/typeset/character_art_factory.py @@ -251,7 +251,7 @@ def build_container(self, content, left_border, right_border, baseline=0): sage: l._breakpoints # needs sage.combinat [9, 17, 25, 33] - Check that zero-height strings are handled (:trac:`28527`):: + Check that zero-height strings are handled (:issue:`28527`):: sage: s = ascii_art(''); s.height() 0 @@ -326,7 +326,7 @@ def build_dict(self, d, baseline=0): sage: art._breakpoints [11, 21, 31, 41] - Check that :trac:`29447` is fixed:: + Check that :issue:`29447` is fixed:: sage: ascii_art({'a': '', '': ''}) { a:, : } @@ -372,13 +372,13 @@ def build_list(self, l, baseline=0): sage: l._breakpoints # needs sage.combinat [(2, [7]), 17, (18, [7])] - The parentheses only stretch as high as the content (:trac:`28527`):: + The parentheses only stretch as high as the content (:issue:`28527`):: sage: ascii_art([ascii_art('a', baseline=1)]) [ a ] Line breaks inside list elements are avoided if possible - (:trac:`29204`):: + (:issue:`29204`):: sage: str(ascii_art([[1..5], [1..5], [1..25], [1..5], [1..15]])) '[ [ 1, 2, 3, 4, 5 ], [ 1, 2, 3, 4, 5 ],\n\n @@ -459,7 +459,7 @@ def concatenate(self, iterable, separator, empty=None, baseline=0, [ ] Check that ``empty`` is not prepended to non-empty objects - (:trac:`28527`):: + (:issue:`28527`):: sage: s = 'abc' sage: [sage.typeset.ascii_art._ascii_art_factory.concatenate( From 837ddc8a47365ac8e232e4b1b3437858c710c6eb Mon Sep 17 00:00:00 2001 From: Giacomo Pope Date: Sun, 25 Feb 2024 21:45:14 +0000 Subject: [PATCH 02/16] Fix indentation --- src/sage/schemes/elliptic_curves/hom_scalar.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sage/schemes/elliptic_curves/hom_scalar.py b/src/sage/schemes/elliptic_curves/hom_scalar.py index 04659c309ed..de3a02c9b9d 100644 --- a/src/sage/schemes/elliptic_curves/hom_scalar.py +++ b/src/sage/schemes/elliptic_curves/hom_scalar.py @@ -81,8 +81,8 @@ sage: zero(E.random_point()) (0 : 1 : 0) - Retrieving multiplication-by-`m` maps when `m` is divisible by the - characteristic also works (since :issue:`37096`):: +Retrieving multiplication-by-`m` maps when `m` is divisible by the +characteristic also works (since :issue:`37096`):: sage: E = EllipticCurve(GF(7), [1,0]) sage: phi = E.scalar_multiplication(7); phi From c94fcd094b780b27ead369cbb242ece889a1825f Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 14 Feb 2024 21:02:28 -0800 Subject: [PATCH 03/16] Add free disk space option to Docker build `default` --- .github/workflows/ci-linux.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml index 7c0d22118c0..7e86f010b42 100644 --- a/.github/workflows/ci-linux.yml +++ b/.github/workflows/ci-linux.yml @@ -39,6 +39,7 @@ jobs: uses: ./.github/workflows/docker.yml with: # Build from scratch + free_disk_space: true docker_targets: "with-system-packages configured with-targets-pre with-targets" # FIXME: duplicated from env.TARGETS targets_pre: all-sage-local From e1968f2a535a6a59af25de33c9477cad41d5383e Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 5 Mar 2024 10:03:52 -0800 Subject: [PATCH 04/16] build/pkgs/sagemath_doc_html/dependencies: Add 'graphs' --- build/pkgs/sagemath_doc_html/dependencies | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/sagemath_doc_html/dependencies b/build/pkgs/sagemath_doc_html/dependencies index a72297f8f7d..1d286fe50bc 100644 --- a/build/pkgs/sagemath_doc_html/dependencies +++ b/build/pkgs/sagemath_doc_html/dependencies @@ -1,4 +1,4 @@ -sagelib sphinx sphinx_copybutton sphinx_inline_tabs pplpy_doc | $(SAGERUNTIME) maxima networkx scipy sympy matplotlib pillow mathjax mpmath ipykernel jupyter_client conway_polynomials tachyon jmol ipywidgets jupyter_sphinx sage_docbuild elliptic_curves furo fpylll +sagelib sphinx sphinx_copybutton sphinx_inline_tabs pplpy_doc | $(SAGERUNTIME) maxima networkx scipy sympy matplotlib pillow mathjax mpmath ipykernel jupyter_client conway_polynomials tachyon jmol ipywidgets jupyter_sphinx sage_docbuild elliptic_curves furo fpylll graphs # Building the documentation has many dependencies, because all # documented modules are imported and because we use matplotlib to From c38b7ab95701227f076dc66bc029573e43f9ea79 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Wed, 6 Mar 2024 11:19:49 +0900 Subject: [PATCH 05/16] Upgrade prompt-toolkit to 3.0.43 --- build/pkgs/prompt_toolkit/checksums.ini | 6 +++--- build/pkgs/prompt_toolkit/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/prompt_toolkit/checksums.ini b/build/pkgs/prompt_toolkit/checksums.ini index 47d7ffa3c1c..1d0b8a0a02b 100644 --- a/build/pkgs/prompt_toolkit/checksums.ini +++ b/build/pkgs/prompt_toolkit/checksums.ini @@ -1,5 +1,5 @@ tarball=prompt_toolkit-VERSION.tar.gz -sha1=d36c3286a16c09b9bc02c2733b9fc7a8a9c30ba1 -md5=252a5d200e41d46b65a3076d2bc0a4bd -cksum=361343842 +sha1=b5ada8cb45c11f9184c990bd33a98d3d690e6edc +md5=f33c0f4ae8d11addababf6d90c98f8bc +cksum=1262534330 upstream_url=https://pypi.io/packages/source/p/prompt_toolkit/prompt_toolkit-VERSION.tar.gz diff --git a/build/pkgs/prompt_toolkit/package-version.txt b/build/pkgs/prompt_toolkit/package-version.txt index dad0d9dd27c..b43c2183205 100644 --- a/build/pkgs/prompt_toolkit/package-version.txt +++ b/build/pkgs/prompt_toolkit/package-version.txt @@ -1 +1 @@ -3.0.41 +3.0.43 From b1695bd20c382346e97ccc0ae29656fe424cce3e Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 3 Mar 2024 14:30:16 -0800 Subject: [PATCH 06/16] build/pkgs/jupyterlab: Update to 4.1.2 --- build/pkgs/jupyterlab/checksums.ini | 6 +++--- build/pkgs/jupyterlab/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/jupyterlab/checksums.ini b/build/pkgs/jupyterlab/checksums.ini index 8ce07466089..0e0d6e823a2 100644 --- a/build/pkgs/jupyterlab/checksums.ini +++ b/build/pkgs/jupyterlab/checksums.ini @@ -1,5 +1,5 @@ tarball=jupyterlab-VERSION-py3-none-any.whl -sha1=06ca895226e055d4bf92f3971eab23035d9c18c7 -md5=a608fbbd9a4616afcc8b0f2e9e0c76ef -cksum=1688505838 +sha1=9579d2c7cb36db3c40637f12a8caa2d69d9d52e9 +md5=7c4a30c4a322b78ffc3eae53800ad7ef +cksum=3781581462 upstream_url=https://pypi.io/packages/py3/j/jupyterlab/jupyterlab-VERSION-py3-none-any.whl diff --git a/build/pkgs/jupyterlab/package-version.txt b/build/pkgs/jupyterlab/package-version.txt index d13e837c8ec..4d0dcda01c4 100644 --- a/build/pkgs/jupyterlab/package-version.txt +++ b/build/pkgs/jupyterlab/package-version.txt @@ -1 +1 @@ -4.0.6 +4.1.2 From dbba40898077e532c97073dde4bb28aa30e5dcf9 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 3 Mar 2024 14:30:25 -0800 Subject: [PATCH 07/16] build/pkgs/notebook: Update to 7.1.1 --- build/pkgs/notebook/checksums.ini | 6 +++--- build/pkgs/notebook/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/notebook/checksums.ini b/build/pkgs/notebook/checksums.ini index 434646c23c3..1fe102fa1f0 100644 --- a/build/pkgs/notebook/checksums.ini +++ b/build/pkgs/notebook/checksums.ini @@ -1,5 +1,5 @@ tarball=notebook-VERSION-py3-none-any.whl -sha1=cd0c99c8a267ced6a451f712007665df88c60d71 -md5=e61e0d6c55bf3920c013554c6dd071b9 -cksum=2202937268 +sha1=90ec65091058ac541a55cc2417de83c1bcb24985 +md5=bf0fe0b56048113cd8a9e2df7add9fe9 +cksum=1004716816 upstream_url=https://pypi.io/packages/py3/n/notebook/notebook-VERSION-py3-none-any.whl diff --git a/build/pkgs/notebook/package-version.txt b/build/pkgs/notebook/package-version.txt index 024b4b9b53a..21c8c7b46b8 100644 --- a/build/pkgs/notebook/package-version.txt +++ b/build/pkgs/notebook/package-version.txt @@ -1 +1 @@ -7.0.6 +7.1.1 From 085073d28ee599d7218bb670ca792df1d7d75825 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 3 Mar 2024 14:37:20 -0800 Subject: [PATCH 08/16] build/pkgs/httpx: New (jupyterlab 4.1.2 dependency) --- build/pkgs/httpx/SPKG.rst | 16 ++++++++++++++++ build/pkgs/httpx/checksums.ini | 5 +++++ build/pkgs/httpx/dependencies | 4 ++++ build/pkgs/httpx/install-requires.txt | 1 + build/pkgs/httpx/package-version.txt | 1 + build/pkgs/httpx/type | 1 + build/pkgs/jupyterlab/dependencies | 2 +- 7 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 build/pkgs/httpx/SPKG.rst create mode 100644 build/pkgs/httpx/checksums.ini create mode 100644 build/pkgs/httpx/dependencies create mode 100644 build/pkgs/httpx/install-requires.txt create mode 100644 build/pkgs/httpx/package-version.txt create mode 100644 build/pkgs/httpx/type diff --git a/build/pkgs/httpx/SPKG.rst b/build/pkgs/httpx/SPKG.rst new file mode 100644 index 00000000000..205a9045614 --- /dev/null +++ b/build/pkgs/httpx/SPKG.rst @@ -0,0 +1,16 @@ +httpx: The next generation HTTP client. +======================================= + +Description +----------- + +The next generation HTTP client. + +License +------- + +Upstream Contact +---------------- + +https://pypi.org/project/httpx/ + diff --git a/build/pkgs/httpx/checksums.ini b/build/pkgs/httpx/checksums.ini new file mode 100644 index 00000000000..11b2b37b2f2 --- /dev/null +++ b/build/pkgs/httpx/checksums.ini @@ -0,0 +1,5 @@ +tarball=httpx-VERSION-py3-none-any.whl +sha1=01f2a657e43842cb7c8dda30d38860fa741acb7e +md5=9bab916547b4c85999c568d12e04edc4 +cksum=4048488492 +upstream_url=https://pypi.io/packages/py3/h/httpx/httpx-VERSION-py3-none-any.whl diff --git a/build/pkgs/httpx/dependencies b/build/pkgs/httpx/dependencies new file mode 100644 index 00000000000..47296a7bace --- /dev/null +++ b/build/pkgs/httpx/dependencies @@ -0,0 +1,4 @@ + | $(PYTHON_TOOLCHAIN) $(PYTHON) + +---------- +All lines of this file are ignored except the first. diff --git a/build/pkgs/httpx/install-requires.txt b/build/pkgs/httpx/install-requires.txt new file mode 100644 index 00000000000..f7621d172eb --- /dev/null +++ b/build/pkgs/httpx/install-requires.txt @@ -0,0 +1 @@ +httpx diff --git a/build/pkgs/httpx/package-version.txt b/build/pkgs/httpx/package-version.txt new file mode 100644 index 00000000000..1b58cc10180 --- /dev/null +++ b/build/pkgs/httpx/package-version.txt @@ -0,0 +1 @@ +0.27.0 diff --git a/build/pkgs/httpx/type b/build/pkgs/httpx/type new file mode 100644 index 00000000000..a6a7b9cd726 --- /dev/null +++ b/build/pkgs/httpx/type @@ -0,0 +1 @@ +standard diff --git a/build/pkgs/jupyterlab/dependencies b/build/pkgs/jupyterlab/dependencies index 5d2f8f03d6a..e32c10b4fd4 100644 --- a/build/pkgs/jupyterlab/dependencies +++ b/build/pkgs/jupyterlab/dependencies @@ -1,4 +1,4 @@ -async_lru importlib_metadata ipykernel jinja2 jupyter_core jupyter_lsp jupyter_server jupyterlab_server notebook_shim packaging traitlets tornado tomli | $(PYTHON_TOOLCHAIN) $(PYTHON) +async_lru importlib_metadata ipykernel jinja2 jupyter_core jupyter_lsp jupyter_server jupyterlab_server notebook_shim packaging traitlets tornado tomli httpx | $(PYTHON_TOOLCHAIN) $(PYTHON) ---------- All lines of this file are ignored except the first. From f262926197f759d52ee9e2f82218260c043ccd5f Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 3 Mar 2024 15:03:08 -0800 Subject: [PATCH 09/16] build/pkgs/h11: New (httpcore dep) --- build/pkgs/h11/SPKG.rst | 18 ++++++++++++++++++ build/pkgs/h11/checksums.ini | 5 +++++ build/pkgs/h11/dependencies | 4 ++++ build/pkgs/h11/install-requires.txt | 1 + build/pkgs/h11/package-version.txt | 1 + build/pkgs/h11/type | 1 + 6 files changed, 30 insertions(+) create mode 100644 build/pkgs/h11/SPKG.rst create mode 100644 build/pkgs/h11/checksums.ini create mode 100644 build/pkgs/h11/dependencies create mode 100644 build/pkgs/h11/install-requires.txt create mode 100644 build/pkgs/h11/package-version.txt create mode 100644 build/pkgs/h11/type diff --git a/build/pkgs/h11/SPKG.rst b/build/pkgs/h11/SPKG.rst new file mode 100644 index 00000000000..c0690498e36 --- /dev/null +++ b/build/pkgs/h11/SPKG.rst @@ -0,0 +1,18 @@ +h11: A pure-Python, bring-your-own-I/O implementation of HTTP/1.1 +================================================================= + +Description +----------- + +A pure-Python, bring-your-own-I/O implementation of HTTP/1.1 + +License +------- + +MIT + +Upstream Contact +---------------- + +https://pypi.org/project/h11/ + diff --git a/build/pkgs/h11/checksums.ini b/build/pkgs/h11/checksums.ini new file mode 100644 index 00000000000..19d629f0852 --- /dev/null +++ b/build/pkgs/h11/checksums.ini @@ -0,0 +1,5 @@ +tarball=h11-VERSION-py3-none-any.whl +sha1=c502d56dc3288212142a398704a5109749331dd8 +md5=47f19bfed53c8f9278749c532490977e +cksum=462065947 +upstream_url=https://pypi.io/packages/py3/h/h11/h11-VERSION-py3-none-any.whl diff --git a/build/pkgs/h11/dependencies b/build/pkgs/h11/dependencies new file mode 100644 index 00000000000..47296a7bace --- /dev/null +++ b/build/pkgs/h11/dependencies @@ -0,0 +1,4 @@ + | $(PYTHON_TOOLCHAIN) $(PYTHON) + +---------- +All lines of this file are ignored except the first. diff --git a/build/pkgs/h11/install-requires.txt b/build/pkgs/h11/install-requires.txt new file mode 100644 index 00000000000..0d24def7113 --- /dev/null +++ b/build/pkgs/h11/install-requires.txt @@ -0,0 +1 @@ +h11 diff --git a/build/pkgs/h11/package-version.txt b/build/pkgs/h11/package-version.txt new file mode 100644 index 00000000000..a803cc227fe --- /dev/null +++ b/build/pkgs/h11/package-version.txt @@ -0,0 +1 @@ +0.14.0 diff --git a/build/pkgs/h11/type b/build/pkgs/h11/type new file mode 100644 index 00000000000..a6a7b9cd726 --- /dev/null +++ b/build/pkgs/h11/type @@ -0,0 +1 @@ +standard From b190680725bcccd548e5ae27abfbdc4d9d8d7e7e Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 3 Mar 2024 15:03:22 -0800 Subject: [PATCH 10/16] build/pkgs/httpcore: New (httpx dep) --- build/pkgs/httpcore/SPKG.rst | 16 ++++++++++++++++ build/pkgs/httpcore/checksums.ini | 5 +++++ build/pkgs/httpcore/dependencies | 4 ++++ build/pkgs/httpcore/install-requires.txt | 1 + build/pkgs/httpcore/package-version.txt | 1 + build/pkgs/httpcore/type | 1 + build/pkgs/httpx/dependencies | 2 +- 7 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 build/pkgs/httpcore/SPKG.rst create mode 100644 build/pkgs/httpcore/checksums.ini create mode 100644 build/pkgs/httpcore/dependencies create mode 100644 build/pkgs/httpcore/install-requires.txt create mode 100644 build/pkgs/httpcore/package-version.txt create mode 100644 build/pkgs/httpcore/type diff --git a/build/pkgs/httpcore/SPKG.rst b/build/pkgs/httpcore/SPKG.rst new file mode 100644 index 00000000000..fed1a457967 --- /dev/null +++ b/build/pkgs/httpcore/SPKG.rst @@ -0,0 +1,16 @@ +httpcore: A minimal low-level HTTP client. +========================================== + +Description +----------- + +A minimal low-level HTTP client. + +License +------- + +Upstream Contact +---------------- + +https://pypi.org/project/httpcore/ + diff --git a/build/pkgs/httpcore/checksums.ini b/build/pkgs/httpcore/checksums.ini new file mode 100644 index 00000000000..81e08584fbe --- /dev/null +++ b/build/pkgs/httpcore/checksums.ini @@ -0,0 +1,5 @@ +tarball=httpcore-VERSION-py3-none-any.whl +sha1=e83eb30232906df8ac673d6c49c657957dc00ce1 +md5=9f99e1b4ed8ba940bd698e21af54ef6d +cksum=2564019022 +upstream_url=https://pypi.io/packages/py3/h/httpcore/httpcore-VERSION-py3-none-any.whl diff --git a/build/pkgs/httpcore/dependencies b/build/pkgs/httpcore/dependencies new file mode 100644 index 00000000000..36787c2193d --- /dev/null +++ b/build/pkgs/httpcore/dependencies @@ -0,0 +1,4 @@ +h11 | $(PYTHON_TOOLCHAIN) $(PYTHON) + +---------- +All lines of this file are ignored except the first. diff --git a/build/pkgs/httpcore/install-requires.txt b/build/pkgs/httpcore/install-requires.txt new file mode 100644 index 00000000000..3adbfb876d5 --- /dev/null +++ b/build/pkgs/httpcore/install-requires.txt @@ -0,0 +1 @@ +httpcore diff --git a/build/pkgs/httpcore/package-version.txt b/build/pkgs/httpcore/package-version.txt new file mode 100644 index 00000000000..ee90284c27f --- /dev/null +++ b/build/pkgs/httpcore/package-version.txt @@ -0,0 +1 @@ +1.0.4 diff --git a/build/pkgs/httpcore/type b/build/pkgs/httpcore/type new file mode 100644 index 00000000000..a6a7b9cd726 --- /dev/null +++ b/build/pkgs/httpcore/type @@ -0,0 +1 @@ +standard diff --git a/build/pkgs/httpx/dependencies b/build/pkgs/httpx/dependencies index 47296a7bace..8df93e6d599 100644 --- a/build/pkgs/httpx/dependencies +++ b/build/pkgs/httpx/dependencies @@ -1,4 +1,4 @@ - | $(PYTHON_TOOLCHAIN) $(PYTHON) +httpcore | $(PYTHON_TOOLCHAIN) $(PYTHON) ---------- All lines of this file are ignored except the first. From 04b6d8ee30ffb280f68e58eec1d4a67b123a2f07 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 6 Mar 2024 18:53:32 -0800 Subject: [PATCH 11/16] build/pkgs/jupyterlab: Update to 4.1.3 --- build/pkgs/jupyterlab/checksums.ini | 6 +++--- build/pkgs/jupyterlab/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/jupyterlab/checksums.ini b/build/pkgs/jupyterlab/checksums.ini index 0e0d6e823a2..f98b0077323 100644 --- a/build/pkgs/jupyterlab/checksums.ini +++ b/build/pkgs/jupyterlab/checksums.ini @@ -1,5 +1,5 @@ tarball=jupyterlab-VERSION-py3-none-any.whl -sha1=9579d2c7cb36db3c40637f12a8caa2d69d9d52e9 -md5=7c4a30c4a322b78ffc3eae53800ad7ef -cksum=3781581462 +sha1=4efdd879660e719fd49be6ec169272f32a16593e +md5=968a2b0458440a6b018ff2863a66e4af +cksum=2309499829 upstream_url=https://pypi.io/packages/py3/j/jupyterlab/jupyterlab-VERSION-py3-none-any.whl diff --git a/build/pkgs/jupyterlab/package-version.txt b/build/pkgs/jupyterlab/package-version.txt index 4d0dcda01c4..de197cc337f 100644 --- a/build/pkgs/jupyterlab/package-version.txt +++ b/build/pkgs/jupyterlab/package-version.txt @@ -1 +1 @@ -4.1.2 +4.1.3 From cd652c675fe358390d764dc2fcf8603e120e6b8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sat, 9 Mar 2024 11:28:34 -0300 Subject: [PATCH 12/16] Workaround warning in cython 3.0.9 (#37560) A new warning breaks doctests. We filter it out. --- src/sage/misc/cython.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/sage/misc/cython.py b/src/sage/misc/cython.py index 081d0562d05..c36374dbfe9 100644 --- a/src/sage/misc/cython.py +++ b/src/sage/misc/cython.py @@ -236,7 +236,7 @@ def cython(filename, verbose=0, compile_message=False, ... RuntimeError: Error compiling Cython file: ... - ...: 'sage/misc.pxd' not found + ...: 'sage/misc.pxd' not found... """ if not filename.endswith('pyx'): print("Warning: file (={}) should have extension .pyx".format(filename), file=sys.stderr) @@ -382,6 +382,12 @@ def cython(filename, verbose=0, compile_message=False, "Placing it before 'except' or 'noexcept' will be disallowed in a future version of Cython.\n", "", cython_messages, 0, re.MULTILINE) + # workaround for https://github.com/sagemath/sage/issues/37560 + # triggered by Cython 3.0.9 + cython_messages = re.sub( + "^warning: .*noexcept clause is ignored for function returning Python object\n", + "", cython_messages, 0, re.MULTILINE) + sys.stderr.write(cython_messages) sys.stderr.flush() From e417e2205be84d6d567b8897527fa6945ad09bdb Mon Sep 17 00:00:00 2001 From: Release Manager Date: Sun, 10 Mar 2024 15:20:41 +0100 Subject: [PATCH 13/16] Updated SageMath version to 10.3.rc3 --- CITATION.cff | 4 ++-- VERSION.txt | 2 +- build/pkgs/configure/checksums.ini | 6 +++--- build/pkgs/configure/package-version.txt | 2 +- build/pkgs/sage_conf/install-requires.txt | 2 +- build/pkgs/sage_docbuild/install-requires.txt | 2 +- build/pkgs/sage_setup/install-requires.txt | 2 +- build/pkgs/sage_sws2rst/install-requires.txt | 2 +- build/pkgs/sagelib/install-requires.txt | 2 +- build/pkgs/sagemath_bliss/install-requires.txt | 2 +- build/pkgs/sagemath_categories/install-requires.txt | 2 +- build/pkgs/sagemath_coxeter3/install-requires.txt | 2 +- build/pkgs/sagemath_environment/install-requires.txt | 2 +- build/pkgs/sagemath_mcqd/install-requires.txt | 2 +- build/pkgs/sagemath_meataxe/install-requires.txt | 2 +- build/pkgs/sagemath_objects/install-requires.txt | 2 +- build/pkgs/sagemath_repl/install-requires.txt | 2 +- build/pkgs/sagemath_sirocco/install-requires.txt | 2 +- build/pkgs/sagemath_tdlib/install-requires.txt | 2 +- pkgs/sage-conf/VERSION.txt | 2 +- pkgs/sage-conf_conda/VERSION.txt | 2 +- pkgs/sage-conf_pypi/VERSION.txt | 2 +- pkgs/sage-docbuild/VERSION.txt | 2 +- pkgs/sage-setup/VERSION.txt | 2 +- pkgs/sage-sws2rst/VERSION.txt | 2 +- pkgs/sagemath-bliss/VERSION.txt | 2 +- pkgs/sagemath-categories/VERSION.txt | 2 +- pkgs/sagemath-coxeter3/VERSION.txt | 2 +- pkgs/sagemath-environment/VERSION.txt | 2 +- pkgs/sagemath-mcqd/VERSION.txt | 2 +- pkgs/sagemath-meataxe/VERSION.txt | 2 +- pkgs/sagemath-objects/VERSION.txt | 2 +- pkgs/sagemath-repl/VERSION.txt | 2 +- pkgs/sagemath-sirocco/VERSION.txt | 2 +- pkgs/sagemath-tdlib/VERSION.txt | 2 +- src/VERSION.txt | 2 +- src/bin/sage-version.sh | 6 +++--- src/sage/version.py | 6 +++--- 38 files changed, 45 insertions(+), 45 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index 30175dfb598..d5f292bfe0c 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -4,8 +4,8 @@ title: SageMath abstract: SageMath is a free open-source mathematics software system. authors: - name: "The SageMath Developers" -version: 10.3.rc2 +version: 10.3.rc3 doi: 10.5281/zenodo.593563 -date-released: 2024-03-04 +date-released: 2024-03-10 repository-code: "https://github.com/sagemath/sage" url: "https://www.sagemath.org/" diff --git a/VERSION.txt b/VERSION.txt index 0480b077d09..8060c85cf47 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -SageMath version 10.3.rc2, Release Date: 2024-03-04 +SageMath version 10.3.rc3, Release Date: 2024-03-10 diff --git a/build/pkgs/configure/checksums.ini b/build/pkgs/configure/checksums.ini index 24005ec2fb6..7a868333768 100644 --- a/build/pkgs/configure/checksums.ini +++ b/build/pkgs/configure/checksums.ini @@ -1,4 +1,4 @@ tarball=configure-VERSION.tar.gz -sha1=94530947a520c68ddae7116631005832824b8095 -md5=f0c0956b247562b6f1295a8f1c13fe17 -cksum=1215395867 +sha1=facd0b123855a68d836680b22177058ac3333aad +md5=180414ef1a73c5cc12a657abb5affb63 +cksum=101476296 diff --git a/build/pkgs/configure/package-version.txt b/build/pkgs/configure/package-version.txt index 3e29e1c6247..a61b0a3134a 100644 --- a/build/pkgs/configure/package-version.txt +++ b/build/pkgs/configure/package-version.txt @@ -1 +1 @@ -6563daf1aa9ba83260fc8e370e1999e3418c4957 +5c45eed9e45a60223067282bb70cdb805d66eeff diff --git a/build/pkgs/sage_conf/install-requires.txt b/build/pkgs/sage_conf/install-requires.txt index 09f1d4383d6..950b2d85e30 100644 --- a/build/pkgs/sage_conf/install-requires.txt +++ b/build/pkgs/sage_conf/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-conf ~= 10.3rc2 +sage-conf ~= 10.3rc3 diff --git a/build/pkgs/sage_docbuild/install-requires.txt b/build/pkgs/sage_docbuild/install-requires.txt index 0308591fab7..fb8bd4c6ec8 100644 --- a/build/pkgs/sage_docbuild/install-requires.txt +++ b/build/pkgs/sage_docbuild/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-docbuild ~= 10.3rc2 +sage-docbuild ~= 10.3rc3 diff --git a/build/pkgs/sage_setup/install-requires.txt b/build/pkgs/sage_setup/install-requires.txt index 003624a1377..bc940c95321 100644 --- a/build/pkgs/sage_setup/install-requires.txt +++ b/build/pkgs/sage_setup/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-setup ~= 10.3rc2 +sage-setup ~= 10.3rc3 diff --git a/build/pkgs/sage_sws2rst/install-requires.txt b/build/pkgs/sage_sws2rst/install-requires.txt index 0f0f949e8e1..13d17bb1db4 100644 --- a/build/pkgs/sage_sws2rst/install-requires.txt +++ b/build/pkgs/sage_sws2rst/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-sws2rst ~= 10.3rc2 +sage-sws2rst ~= 10.3rc3 diff --git a/build/pkgs/sagelib/install-requires.txt b/build/pkgs/sagelib/install-requires.txt index a0c5acf57f9..0b0a3eaf0c3 100644 --- a/build/pkgs/sagelib/install-requires.txt +++ b/build/pkgs/sagelib/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-standard ~= 10.3rc2 +sagemath-standard ~= 10.3rc3 diff --git a/build/pkgs/sagemath_bliss/install-requires.txt b/build/pkgs/sagemath_bliss/install-requires.txt index 54d8411557b..c200c1b020f 100644 --- a/build/pkgs/sagemath_bliss/install-requires.txt +++ b/build/pkgs/sagemath_bliss/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-bliss ~= 10.3rc2 +sagemath-bliss ~= 10.3rc3 diff --git a/build/pkgs/sagemath_categories/install-requires.txt b/build/pkgs/sagemath_categories/install-requires.txt index 4b5c9e13f31..df3db476971 100644 --- a/build/pkgs/sagemath_categories/install-requires.txt +++ b/build/pkgs/sagemath_categories/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-categories ~= 10.3rc2 +sagemath-categories ~= 10.3rc3 diff --git a/build/pkgs/sagemath_coxeter3/install-requires.txt b/build/pkgs/sagemath_coxeter3/install-requires.txt index 49fc98261eb..9045ba17ccb 100644 --- a/build/pkgs/sagemath_coxeter3/install-requires.txt +++ b/build/pkgs/sagemath_coxeter3/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-coxeter3 ~= 10.3rc2 +sagemath-coxeter3 ~= 10.3rc3 diff --git a/build/pkgs/sagemath_environment/install-requires.txt b/build/pkgs/sagemath_environment/install-requires.txt index af5d0708df9..84043a926a3 100644 --- a/build/pkgs/sagemath_environment/install-requires.txt +++ b/build/pkgs/sagemath_environment/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-environment ~= 10.3rc2 +sagemath-environment ~= 10.3rc3 diff --git a/build/pkgs/sagemath_mcqd/install-requires.txt b/build/pkgs/sagemath_mcqd/install-requires.txt index 10521420f3c..b2eb7ac5cb8 100644 --- a/build/pkgs/sagemath_mcqd/install-requires.txt +++ b/build/pkgs/sagemath_mcqd/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-mcqd ~= 10.3rc2 +sagemath-mcqd ~= 10.3rc3 diff --git a/build/pkgs/sagemath_meataxe/install-requires.txt b/build/pkgs/sagemath_meataxe/install-requires.txt index aa01559a846..4abbc869ca9 100644 --- a/build/pkgs/sagemath_meataxe/install-requires.txt +++ b/build/pkgs/sagemath_meataxe/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-meataxe ~= 10.3rc2 +sagemath-meataxe ~= 10.3rc3 diff --git a/build/pkgs/sagemath_objects/install-requires.txt b/build/pkgs/sagemath_objects/install-requires.txt index 65e5a6adcee..106eef70a91 100644 --- a/build/pkgs/sagemath_objects/install-requires.txt +++ b/build/pkgs/sagemath_objects/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-objects ~= 10.3rc2 +sagemath-objects ~= 10.3rc3 diff --git a/build/pkgs/sagemath_repl/install-requires.txt b/build/pkgs/sagemath_repl/install-requires.txt index 8048e7ac060..752e7f07956 100644 --- a/build/pkgs/sagemath_repl/install-requires.txt +++ b/build/pkgs/sagemath_repl/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-repl ~= 10.3rc2 +sagemath-repl ~= 10.3rc3 diff --git a/build/pkgs/sagemath_sirocco/install-requires.txt b/build/pkgs/sagemath_sirocco/install-requires.txt index 64ff32019a5..c40c697ee2f 100644 --- a/build/pkgs/sagemath_sirocco/install-requires.txt +++ b/build/pkgs/sagemath_sirocco/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-sirocco ~= 10.3rc2 +sagemath-sirocco ~= 10.3rc3 diff --git a/build/pkgs/sagemath_tdlib/install-requires.txt b/build/pkgs/sagemath_tdlib/install-requires.txt index fad2b2a87eb..f43f4c1fbc5 100644 --- a/build/pkgs/sagemath_tdlib/install-requires.txt +++ b/build/pkgs/sagemath_tdlib/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-tdlib ~= 10.3rc2 +sagemath-tdlib ~= 10.3rc3 diff --git a/pkgs/sage-conf/VERSION.txt b/pkgs/sage-conf/VERSION.txt index b33291c9c02..befccbfa1a1 100644 --- a/pkgs/sage-conf/VERSION.txt +++ b/pkgs/sage-conf/VERSION.txt @@ -1 +1 @@ -10.3.rc2 +10.3.rc3 diff --git a/pkgs/sage-conf_conda/VERSION.txt b/pkgs/sage-conf_conda/VERSION.txt index b33291c9c02..befccbfa1a1 100644 --- a/pkgs/sage-conf_conda/VERSION.txt +++ b/pkgs/sage-conf_conda/VERSION.txt @@ -1 +1 @@ -10.3.rc2 +10.3.rc3 diff --git a/pkgs/sage-conf_pypi/VERSION.txt b/pkgs/sage-conf_pypi/VERSION.txt index b33291c9c02..befccbfa1a1 100644 --- a/pkgs/sage-conf_pypi/VERSION.txt +++ b/pkgs/sage-conf_pypi/VERSION.txt @@ -1 +1 @@ -10.3.rc2 +10.3.rc3 diff --git a/pkgs/sage-docbuild/VERSION.txt b/pkgs/sage-docbuild/VERSION.txt index b33291c9c02..befccbfa1a1 100644 --- a/pkgs/sage-docbuild/VERSION.txt +++ b/pkgs/sage-docbuild/VERSION.txt @@ -1 +1 @@ -10.3.rc2 +10.3.rc3 diff --git a/pkgs/sage-setup/VERSION.txt b/pkgs/sage-setup/VERSION.txt index b33291c9c02..befccbfa1a1 100644 --- a/pkgs/sage-setup/VERSION.txt +++ b/pkgs/sage-setup/VERSION.txt @@ -1 +1 @@ -10.3.rc2 +10.3.rc3 diff --git a/pkgs/sage-sws2rst/VERSION.txt b/pkgs/sage-sws2rst/VERSION.txt index b33291c9c02..befccbfa1a1 100644 --- a/pkgs/sage-sws2rst/VERSION.txt +++ b/pkgs/sage-sws2rst/VERSION.txt @@ -1 +1 @@ -10.3.rc2 +10.3.rc3 diff --git a/pkgs/sagemath-bliss/VERSION.txt b/pkgs/sagemath-bliss/VERSION.txt index b33291c9c02..befccbfa1a1 100644 --- a/pkgs/sagemath-bliss/VERSION.txt +++ b/pkgs/sagemath-bliss/VERSION.txt @@ -1 +1 @@ -10.3.rc2 +10.3.rc3 diff --git a/pkgs/sagemath-categories/VERSION.txt b/pkgs/sagemath-categories/VERSION.txt index b33291c9c02..befccbfa1a1 100644 --- a/pkgs/sagemath-categories/VERSION.txt +++ b/pkgs/sagemath-categories/VERSION.txt @@ -1 +1 @@ -10.3.rc2 +10.3.rc3 diff --git a/pkgs/sagemath-coxeter3/VERSION.txt b/pkgs/sagemath-coxeter3/VERSION.txt index b33291c9c02..befccbfa1a1 100644 --- a/pkgs/sagemath-coxeter3/VERSION.txt +++ b/pkgs/sagemath-coxeter3/VERSION.txt @@ -1 +1 @@ -10.3.rc2 +10.3.rc3 diff --git a/pkgs/sagemath-environment/VERSION.txt b/pkgs/sagemath-environment/VERSION.txt index b33291c9c02..befccbfa1a1 100644 --- a/pkgs/sagemath-environment/VERSION.txt +++ b/pkgs/sagemath-environment/VERSION.txt @@ -1 +1 @@ -10.3.rc2 +10.3.rc3 diff --git a/pkgs/sagemath-mcqd/VERSION.txt b/pkgs/sagemath-mcqd/VERSION.txt index b33291c9c02..befccbfa1a1 100644 --- a/pkgs/sagemath-mcqd/VERSION.txt +++ b/pkgs/sagemath-mcqd/VERSION.txt @@ -1 +1 @@ -10.3.rc2 +10.3.rc3 diff --git a/pkgs/sagemath-meataxe/VERSION.txt b/pkgs/sagemath-meataxe/VERSION.txt index b33291c9c02..befccbfa1a1 100644 --- a/pkgs/sagemath-meataxe/VERSION.txt +++ b/pkgs/sagemath-meataxe/VERSION.txt @@ -1 +1 @@ -10.3.rc2 +10.3.rc3 diff --git a/pkgs/sagemath-objects/VERSION.txt b/pkgs/sagemath-objects/VERSION.txt index b33291c9c02..befccbfa1a1 100644 --- a/pkgs/sagemath-objects/VERSION.txt +++ b/pkgs/sagemath-objects/VERSION.txt @@ -1 +1 @@ -10.3.rc2 +10.3.rc3 diff --git a/pkgs/sagemath-repl/VERSION.txt b/pkgs/sagemath-repl/VERSION.txt index b33291c9c02..befccbfa1a1 100644 --- a/pkgs/sagemath-repl/VERSION.txt +++ b/pkgs/sagemath-repl/VERSION.txt @@ -1 +1 @@ -10.3.rc2 +10.3.rc3 diff --git a/pkgs/sagemath-sirocco/VERSION.txt b/pkgs/sagemath-sirocco/VERSION.txt index b33291c9c02..befccbfa1a1 100644 --- a/pkgs/sagemath-sirocco/VERSION.txt +++ b/pkgs/sagemath-sirocco/VERSION.txt @@ -1 +1 @@ -10.3.rc2 +10.3.rc3 diff --git a/pkgs/sagemath-tdlib/VERSION.txt b/pkgs/sagemath-tdlib/VERSION.txt index b33291c9c02..befccbfa1a1 100644 --- a/pkgs/sagemath-tdlib/VERSION.txt +++ b/pkgs/sagemath-tdlib/VERSION.txt @@ -1 +1 @@ -10.3.rc2 +10.3.rc3 diff --git a/src/VERSION.txt b/src/VERSION.txt index b33291c9c02..befccbfa1a1 100644 --- a/src/VERSION.txt +++ b/src/VERSION.txt @@ -1 +1 @@ -10.3.rc2 +10.3.rc3 diff --git a/src/bin/sage-version.sh b/src/bin/sage-version.sh index f0cad7cda6a..48feed6d1e2 100644 --- a/src/bin/sage-version.sh +++ b/src/bin/sage-version.sh @@ -4,6 +4,6 @@ # which stops "setup.py develop" from rewriting it as a Python file. : # This file is auto-generated by the sage-update-version script, do not edit! -SAGE_VERSION='10.3.rc2' -SAGE_RELEASE_DATE='2024-03-04' -SAGE_VERSION_BANNER='SageMath version 10.3.rc2, Release Date: 2024-03-04' +SAGE_VERSION='10.3.rc3' +SAGE_RELEASE_DATE='2024-03-10' +SAGE_VERSION_BANNER='SageMath version 10.3.rc3, Release Date: 2024-03-10' diff --git a/src/sage/version.py b/src/sage/version.py index e92696ee471..db691f276ef 100644 --- a/src/sage/version.py +++ b/src/sage/version.py @@ -1,5 +1,5 @@ # Sage version information for Python scripts # This file is auto-generated by the sage-update-version script, do not edit! -version = '10.3.rc2' -date = '2024-03-04' -banner = 'SageMath version 10.3.rc2, Release Date: 2024-03-04' +version = '10.3.rc3' +date = '2024-03-10' +banner = 'SageMath version 10.3.rc3, Release Date: 2024-03-10' From 40de3565cf9711518d073eb5397bee5728c577cd Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 11 Mar 2024 13:33:53 +0000 Subject: [PATCH 14/16] Update Conda installation instructions to use Miniforge --- src/doc/en/installation/conda.rst | 53 +++++++++++++++++-------------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/src/doc/en/installation/conda.rst b/src/doc/en/installation/conda.rst index 58c29b1e424..8e514f3a529 100644 --- a/src/doc/en/installation/conda.rst +++ b/src/doc/en/installation/conda.rst @@ -9,17 +9,17 @@ SageMath can be installed on Linux and macOS via Conda from the Both the ``x86_64`` (Intel) architecture and the ``arm64``/``aarch64`` architectures (including Apple Silicon, M1) are supported. -You will need a working Conda installation: either Mambaforge/Miniforge, +You will need a working Conda installation: either Miniforge (or Mambaforge), Miniconda or Anaconda. If you don't have one yet, we recommend installing -`Mambaforge `_ as +`Miniforge `_ as follows. In a terminal, .. code-block:: shell - $ curl -L -O https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh - $ sh Mambaforge-$(uname)-$(uname -m).sh + $ curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" + $ bash Miniforge3-$(uname)-$(uname -m).sh -* Mambaforge and Miniforge use conda-forge as the default channel. +* Miniforge (and Mambaforge) use conda-forge as the default channel. * If you are using Miniconda or Anaconda, set it up to use conda-forge: @@ -27,14 +27,9 @@ follows. In a terminal, * Change channel priority to strict: ``conda config --set channel_priority strict`` -Optionally, use `mamba `_, +If you installed Miniforge (or Mambaforge), we recommend to use +`mamba `_ in the following, which uses a faster dependency solver than ``conda``. -If you installed Mambaforge, it is already provided. Otherwise, use - -.. code-block:: shell - - $ conda install mamba - .. _sec-installation-conda-binary: @@ -43,10 +38,17 @@ Installing all of SageMath from conda (not for development) Create a new conda environment containing SageMath, either with ``mamba`` or ``conda``: -.. code-block:: shell +.. tab:: mamba + + .. code-block:: shell - $ mamba create -n sage sage python=X # either - $ conda create -n sage sage python=X # or + $ mamba create -n sage sage python=X + +.. tab:: conda + + .. code-block:: shell + + $ conda create -n sage sage python=X where ``X`` is version of Python, e.g. ``3.9``. @@ -109,17 +111,22 @@ Here we assume that you are using a git checkout. $ export SAGE_NUM_THREADS=24 - - As a recommended step, install the ``mamba`` package manager. If - you skip this step, replace ``mamba`` by ``conda`` in the - following steps:: - - $ conda install mamba - - Create and activate a new conda environment with the dependencies of Sage and a few additional developer tools:: - $ mamba env create --file src/environment-dev-3.11-linux.yml --name sage-dev - $ conda activate sage-dev + .. tab:: mamba + + .. code-block:: shell + + $ mamba env create --file src/environment-dev-3.11-linux.yml --name sage-dev + $ conda activate sage-dev + + .. tab:: conda + + .. code-block:: shell + + $ conda env create --file src/environment-dev-3.11-linux.yml --name sage-dev + $ conda activate sage-dev Alternatively, you can use ``src/environment-3.11-linux.yml`` or ``src/environment-optional-3.11-linux.yml``, which will only install standard From ab1a517b64b02bf15bbcb8d7c2d4d643bd5eff9b Mon Sep 17 00:00:00 2001 From: Release Manager Date: Sun, 17 Mar 2024 15:08:46 +0100 Subject: [PATCH 15/16] Updated SageMath version to 10.3.rc4 --- CITATION.cff | 4 ++-- VERSION.txt | 2 +- build/pkgs/configure/checksums.ini | 6 +++--- build/pkgs/configure/package-version.txt | 2 +- build/pkgs/sage_conf/install-requires.txt | 2 +- build/pkgs/sage_docbuild/install-requires.txt | 2 +- build/pkgs/sage_setup/install-requires.txt | 2 +- build/pkgs/sage_sws2rst/install-requires.txt | 2 +- build/pkgs/sagelib/install-requires.txt | 2 +- build/pkgs/sagemath_bliss/install-requires.txt | 2 +- build/pkgs/sagemath_categories/install-requires.txt | 2 +- build/pkgs/sagemath_coxeter3/install-requires.txt | 2 +- build/pkgs/sagemath_environment/install-requires.txt | 2 +- build/pkgs/sagemath_mcqd/install-requires.txt | 2 +- build/pkgs/sagemath_meataxe/install-requires.txt | 2 +- build/pkgs/sagemath_objects/install-requires.txt | 2 +- build/pkgs/sagemath_repl/install-requires.txt | 2 +- build/pkgs/sagemath_sirocco/install-requires.txt | 2 +- build/pkgs/sagemath_tdlib/install-requires.txt | 2 +- pkgs/sage-conf/VERSION.txt | 2 +- pkgs/sage-conf_conda/VERSION.txt | 2 +- pkgs/sage-conf_pypi/VERSION.txt | 2 +- pkgs/sage-docbuild/VERSION.txt | 2 +- pkgs/sage-setup/VERSION.txt | 2 +- pkgs/sage-sws2rst/VERSION.txt | 2 +- pkgs/sagemath-bliss/VERSION.txt | 2 +- pkgs/sagemath-categories/VERSION.txt | 2 +- pkgs/sagemath-coxeter3/VERSION.txt | 2 +- pkgs/sagemath-environment/VERSION.txt | 2 +- pkgs/sagemath-mcqd/VERSION.txt | 2 +- pkgs/sagemath-meataxe/VERSION.txt | 2 +- pkgs/sagemath-objects/VERSION.txt | 2 +- pkgs/sagemath-repl/VERSION.txt | 2 +- pkgs/sagemath-sirocco/VERSION.txt | 2 +- pkgs/sagemath-tdlib/VERSION.txt | 2 +- src/VERSION.txt | 2 +- src/bin/sage-version.sh | 6 +++--- src/sage/version.py | 6 +++--- 38 files changed, 45 insertions(+), 45 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index d5f292bfe0c..95876d7d4e4 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -4,8 +4,8 @@ title: SageMath abstract: SageMath is a free open-source mathematics software system. authors: - name: "The SageMath Developers" -version: 10.3.rc3 +version: 10.3.rc4 doi: 10.5281/zenodo.593563 -date-released: 2024-03-10 +date-released: 2024-03-17 repository-code: "https://github.com/sagemath/sage" url: "https://www.sagemath.org/" diff --git a/VERSION.txt b/VERSION.txt index 8060c85cf47..ba55211dc5e 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -SageMath version 10.3.rc3, Release Date: 2024-03-10 +SageMath version 10.3.rc4, Release Date: 2024-03-17 diff --git a/build/pkgs/configure/checksums.ini b/build/pkgs/configure/checksums.ini index 3b5a2be2e85..f175ddc1636 100644 --- a/build/pkgs/configure/checksums.ini +++ b/build/pkgs/configure/checksums.ini @@ -1,4 +1,4 @@ tarball=configure-VERSION.tar.gz -sha1=ecd112699d45a08acc904081495200200aa5375d -md5=15351e13c37ab18a3dca25db30f45e33 -cksum=1274317165 +sha1=f06e82486ef07850394e6b6d7f226b70c8330d47 +md5=9dd6037651626866f7b6cf790e45b2dd +cksum=2951679715 diff --git a/build/pkgs/configure/package-version.txt b/build/pkgs/configure/package-version.txt index 3237b99e65b..303ba93c6f2 100644 --- a/build/pkgs/configure/package-version.txt +++ b/build/pkgs/configure/package-version.txt @@ -1 +1 @@ -86e1c3569bfb8b90061cf3aa01801677d0b9cc9e +83d81f55354e4732096fbe0c0cd750eb6334e033 diff --git a/build/pkgs/sage_conf/install-requires.txt b/build/pkgs/sage_conf/install-requires.txt index 950b2d85e30..b73225585e4 100644 --- a/build/pkgs/sage_conf/install-requires.txt +++ b/build/pkgs/sage_conf/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-conf ~= 10.3rc3 +sage-conf ~= 10.3rc4 diff --git a/build/pkgs/sage_docbuild/install-requires.txt b/build/pkgs/sage_docbuild/install-requires.txt index fb8bd4c6ec8..7d8263cbc62 100644 --- a/build/pkgs/sage_docbuild/install-requires.txt +++ b/build/pkgs/sage_docbuild/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-docbuild ~= 10.3rc3 +sage-docbuild ~= 10.3rc4 diff --git a/build/pkgs/sage_setup/install-requires.txt b/build/pkgs/sage_setup/install-requires.txt index bc940c95321..89568499d00 100644 --- a/build/pkgs/sage_setup/install-requires.txt +++ b/build/pkgs/sage_setup/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-setup ~= 10.3rc3 +sage-setup ~= 10.3rc4 diff --git a/build/pkgs/sage_sws2rst/install-requires.txt b/build/pkgs/sage_sws2rst/install-requires.txt index 13d17bb1db4..3cc53bf8f37 100644 --- a/build/pkgs/sage_sws2rst/install-requires.txt +++ b/build/pkgs/sage_sws2rst/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-sws2rst ~= 10.3rc3 +sage-sws2rst ~= 10.3rc4 diff --git a/build/pkgs/sagelib/install-requires.txt b/build/pkgs/sagelib/install-requires.txt index 0b0a3eaf0c3..417573d6f4d 100644 --- a/build/pkgs/sagelib/install-requires.txt +++ b/build/pkgs/sagelib/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-standard ~= 10.3rc3 +sagemath-standard ~= 10.3rc4 diff --git a/build/pkgs/sagemath_bliss/install-requires.txt b/build/pkgs/sagemath_bliss/install-requires.txt index c200c1b020f..699d6d369b9 100644 --- a/build/pkgs/sagemath_bliss/install-requires.txt +++ b/build/pkgs/sagemath_bliss/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-bliss ~= 10.3rc3 +sagemath-bliss ~= 10.3rc4 diff --git a/build/pkgs/sagemath_categories/install-requires.txt b/build/pkgs/sagemath_categories/install-requires.txt index df3db476971..e78428baa84 100644 --- a/build/pkgs/sagemath_categories/install-requires.txt +++ b/build/pkgs/sagemath_categories/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-categories ~= 10.3rc3 +sagemath-categories ~= 10.3rc4 diff --git a/build/pkgs/sagemath_coxeter3/install-requires.txt b/build/pkgs/sagemath_coxeter3/install-requires.txt index 9045ba17ccb..1e3289d9826 100644 --- a/build/pkgs/sagemath_coxeter3/install-requires.txt +++ b/build/pkgs/sagemath_coxeter3/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-coxeter3 ~= 10.3rc3 +sagemath-coxeter3 ~= 10.3rc4 diff --git a/build/pkgs/sagemath_environment/install-requires.txt b/build/pkgs/sagemath_environment/install-requires.txt index 84043a926a3..0ad75840b0b 100644 --- a/build/pkgs/sagemath_environment/install-requires.txt +++ b/build/pkgs/sagemath_environment/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-environment ~= 10.3rc3 +sagemath-environment ~= 10.3rc4 diff --git a/build/pkgs/sagemath_mcqd/install-requires.txt b/build/pkgs/sagemath_mcqd/install-requires.txt index b2eb7ac5cb8..28daaa77a8b 100644 --- a/build/pkgs/sagemath_mcqd/install-requires.txt +++ b/build/pkgs/sagemath_mcqd/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-mcqd ~= 10.3rc3 +sagemath-mcqd ~= 10.3rc4 diff --git a/build/pkgs/sagemath_meataxe/install-requires.txt b/build/pkgs/sagemath_meataxe/install-requires.txt index 4abbc869ca9..43ff0fd958e 100644 --- a/build/pkgs/sagemath_meataxe/install-requires.txt +++ b/build/pkgs/sagemath_meataxe/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-meataxe ~= 10.3rc3 +sagemath-meataxe ~= 10.3rc4 diff --git a/build/pkgs/sagemath_objects/install-requires.txt b/build/pkgs/sagemath_objects/install-requires.txt index 106eef70a91..385101bcc9a 100644 --- a/build/pkgs/sagemath_objects/install-requires.txt +++ b/build/pkgs/sagemath_objects/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-objects ~= 10.3rc3 +sagemath-objects ~= 10.3rc4 diff --git a/build/pkgs/sagemath_repl/install-requires.txt b/build/pkgs/sagemath_repl/install-requires.txt index 752e7f07956..ef39766e021 100644 --- a/build/pkgs/sagemath_repl/install-requires.txt +++ b/build/pkgs/sagemath_repl/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-repl ~= 10.3rc3 +sagemath-repl ~= 10.3rc4 diff --git a/build/pkgs/sagemath_sirocco/install-requires.txt b/build/pkgs/sagemath_sirocco/install-requires.txt index c40c697ee2f..5b072cd2588 100644 --- a/build/pkgs/sagemath_sirocco/install-requires.txt +++ b/build/pkgs/sagemath_sirocco/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-sirocco ~= 10.3rc3 +sagemath-sirocco ~= 10.3rc4 diff --git a/build/pkgs/sagemath_tdlib/install-requires.txt b/build/pkgs/sagemath_tdlib/install-requires.txt index f43f4c1fbc5..9ed823b39ee 100644 --- a/build/pkgs/sagemath_tdlib/install-requires.txt +++ b/build/pkgs/sagemath_tdlib/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-tdlib ~= 10.3rc3 +sagemath-tdlib ~= 10.3rc4 diff --git a/pkgs/sage-conf/VERSION.txt b/pkgs/sage-conf/VERSION.txt index befccbfa1a1..8c5dddbbe19 100644 --- a/pkgs/sage-conf/VERSION.txt +++ b/pkgs/sage-conf/VERSION.txt @@ -1 +1 @@ -10.3.rc3 +10.3.rc4 diff --git a/pkgs/sage-conf_conda/VERSION.txt b/pkgs/sage-conf_conda/VERSION.txt index befccbfa1a1..8c5dddbbe19 100644 --- a/pkgs/sage-conf_conda/VERSION.txt +++ b/pkgs/sage-conf_conda/VERSION.txt @@ -1 +1 @@ -10.3.rc3 +10.3.rc4 diff --git a/pkgs/sage-conf_pypi/VERSION.txt b/pkgs/sage-conf_pypi/VERSION.txt index befccbfa1a1..8c5dddbbe19 100644 --- a/pkgs/sage-conf_pypi/VERSION.txt +++ b/pkgs/sage-conf_pypi/VERSION.txt @@ -1 +1 @@ -10.3.rc3 +10.3.rc4 diff --git a/pkgs/sage-docbuild/VERSION.txt b/pkgs/sage-docbuild/VERSION.txt index befccbfa1a1..8c5dddbbe19 100644 --- a/pkgs/sage-docbuild/VERSION.txt +++ b/pkgs/sage-docbuild/VERSION.txt @@ -1 +1 @@ -10.3.rc3 +10.3.rc4 diff --git a/pkgs/sage-setup/VERSION.txt b/pkgs/sage-setup/VERSION.txt index befccbfa1a1..8c5dddbbe19 100644 --- a/pkgs/sage-setup/VERSION.txt +++ b/pkgs/sage-setup/VERSION.txt @@ -1 +1 @@ -10.3.rc3 +10.3.rc4 diff --git a/pkgs/sage-sws2rst/VERSION.txt b/pkgs/sage-sws2rst/VERSION.txt index befccbfa1a1..8c5dddbbe19 100644 --- a/pkgs/sage-sws2rst/VERSION.txt +++ b/pkgs/sage-sws2rst/VERSION.txt @@ -1 +1 @@ -10.3.rc3 +10.3.rc4 diff --git a/pkgs/sagemath-bliss/VERSION.txt b/pkgs/sagemath-bliss/VERSION.txt index befccbfa1a1..8c5dddbbe19 100644 --- a/pkgs/sagemath-bliss/VERSION.txt +++ b/pkgs/sagemath-bliss/VERSION.txt @@ -1 +1 @@ -10.3.rc3 +10.3.rc4 diff --git a/pkgs/sagemath-categories/VERSION.txt b/pkgs/sagemath-categories/VERSION.txt index befccbfa1a1..8c5dddbbe19 100644 --- a/pkgs/sagemath-categories/VERSION.txt +++ b/pkgs/sagemath-categories/VERSION.txt @@ -1 +1 @@ -10.3.rc3 +10.3.rc4 diff --git a/pkgs/sagemath-coxeter3/VERSION.txt b/pkgs/sagemath-coxeter3/VERSION.txt index befccbfa1a1..8c5dddbbe19 100644 --- a/pkgs/sagemath-coxeter3/VERSION.txt +++ b/pkgs/sagemath-coxeter3/VERSION.txt @@ -1 +1 @@ -10.3.rc3 +10.3.rc4 diff --git a/pkgs/sagemath-environment/VERSION.txt b/pkgs/sagemath-environment/VERSION.txt index befccbfa1a1..8c5dddbbe19 100644 --- a/pkgs/sagemath-environment/VERSION.txt +++ b/pkgs/sagemath-environment/VERSION.txt @@ -1 +1 @@ -10.3.rc3 +10.3.rc4 diff --git a/pkgs/sagemath-mcqd/VERSION.txt b/pkgs/sagemath-mcqd/VERSION.txt index befccbfa1a1..8c5dddbbe19 100644 --- a/pkgs/sagemath-mcqd/VERSION.txt +++ b/pkgs/sagemath-mcqd/VERSION.txt @@ -1 +1 @@ -10.3.rc3 +10.3.rc4 diff --git a/pkgs/sagemath-meataxe/VERSION.txt b/pkgs/sagemath-meataxe/VERSION.txt index befccbfa1a1..8c5dddbbe19 100644 --- a/pkgs/sagemath-meataxe/VERSION.txt +++ b/pkgs/sagemath-meataxe/VERSION.txt @@ -1 +1 @@ -10.3.rc3 +10.3.rc4 diff --git a/pkgs/sagemath-objects/VERSION.txt b/pkgs/sagemath-objects/VERSION.txt index befccbfa1a1..8c5dddbbe19 100644 --- a/pkgs/sagemath-objects/VERSION.txt +++ b/pkgs/sagemath-objects/VERSION.txt @@ -1 +1 @@ -10.3.rc3 +10.3.rc4 diff --git a/pkgs/sagemath-repl/VERSION.txt b/pkgs/sagemath-repl/VERSION.txt index befccbfa1a1..8c5dddbbe19 100644 --- a/pkgs/sagemath-repl/VERSION.txt +++ b/pkgs/sagemath-repl/VERSION.txt @@ -1 +1 @@ -10.3.rc3 +10.3.rc4 diff --git a/pkgs/sagemath-sirocco/VERSION.txt b/pkgs/sagemath-sirocco/VERSION.txt index befccbfa1a1..8c5dddbbe19 100644 --- a/pkgs/sagemath-sirocco/VERSION.txt +++ b/pkgs/sagemath-sirocco/VERSION.txt @@ -1 +1 @@ -10.3.rc3 +10.3.rc4 diff --git a/pkgs/sagemath-tdlib/VERSION.txt b/pkgs/sagemath-tdlib/VERSION.txt index befccbfa1a1..8c5dddbbe19 100644 --- a/pkgs/sagemath-tdlib/VERSION.txt +++ b/pkgs/sagemath-tdlib/VERSION.txt @@ -1 +1 @@ -10.3.rc3 +10.3.rc4 diff --git a/src/VERSION.txt b/src/VERSION.txt index befccbfa1a1..8c5dddbbe19 100644 --- a/src/VERSION.txt +++ b/src/VERSION.txt @@ -1 +1 @@ -10.3.rc3 +10.3.rc4 diff --git a/src/bin/sage-version.sh b/src/bin/sage-version.sh index 48feed6d1e2..0f483e4713f 100644 --- a/src/bin/sage-version.sh +++ b/src/bin/sage-version.sh @@ -4,6 +4,6 @@ # which stops "setup.py develop" from rewriting it as a Python file. : # This file is auto-generated by the sage-update-version script, do not edit! -SAGE_VERSION='10.3.rc3' -SAGE_RELEASE_DATE='2024-03-10' -SAGE_VERSION_BANNER='SageMath version 10.3.rc3, Release Date: 2024-03-10' +SAGE_VERSION='10.3.rc4' +SAGE_RELEASE_DATE='2024-03-17' +SAGE_VERSION_BANNER='SageMath version 10.3.rc4, Release Date: 2024-03-17' diff --git a/src/sage/version.py b/src/sage/version.py index db691f276ef..feec9728c2f 100644 --- a/src/sage/version.py +++ b/src/sage/version.py @@ -1,5 +1,5 @@ # Sage version information for Python scripts # This file is auto-generated by the sage-update-version script, do not edit! -version = '10.3.rc3' -date = '2024-03-10' -banner = 'SageMath version 10.3.rc3, Release Date: 2024-03-10' +version = '10.3.rc4' +date = '2024-03-17' +banner = 'SageMath version 10.3.rc4, Release Date: 2024-03-17' From ccc11b6285ce0ee89dbbc3a7645d3b1af5db7534 Mon Sep 17 00:00:00 2001 From: Release Manager Date: Tue, 19 Mar 2024 23:59:45 +0100 Subject: [PATCH 16/16] Updated SageMath version to 10.3 --- CITATION.cff | 4 ++-- VERSION.txt | 2 +- build/pkgs/configure/checksums.ini | 6 +++--- build/pkgs/configure/package-version.txt | 2 +- build/pkgs/sage_conf/install-requires.txt | 2 +- build/pkgs/sage_docbuild/install-requires.txt | 2 +- build/pkgs/sage_setup/install-requires.txt | 2 +- build/pkgs/sage_sws2rst/install-requires.txt | 2 +- build/pkgs/sagelib/install-requires.txt | 2 +- build/pkgs/sagemath_bliss/install-requires.txt | 2 +- build/pkgs/sagemath_categories/install-requires.txt | 2 +- build/pkgs/sagemath_coxeter3/install-requires.txt | 2 +- build/pkgs/sagemath_environment/install-requires.txt | 2 +- build/pkgs/sagemath_mcqd/install-requires.txt | 2 +- build/pkgs/sagemath_meataxe/install-requires.txt | 2 +- build/pkgs/sagemath_objects/install-requires.txt | 2 +- build/pkgs/sagemath_repl/install-requires.txt | 2 +- build/pkgs/sagemath_sirocco/install-requires.txt | 2 +- build/pkgs/sagemath_tdlib/install-requires.txt | 2 +- pkgs/sage-conf/VERSION.txt | 2 +- pkgs/sage-conf_conda/VERSION.txt | 2 +- pkgs/sage-conf_pypi/VERSION.txt | 2 +- pkgs/sage-docbuild/VERSION.txt | 2 +- pkgs/sage-setup/VERSION.txt | 2 +- pkgs/sage-sws2rst/VERSION.txt | 2 +- pkgs/sagemath-bliss/VERSION.txt | 2 +- pkgs/sagemath-categories/VERSION.txt | 2 +- pkgs/sagemath-coxeter3/VERSION.txt | 2 +- pkgs/sagemath-environment/VERSION.txt | 2 +- pkgs/sagemath-mcqd/VERSION.txt | 2 +- pkgs/sagemath-meataxe/VERSION.txt | 2 +- pkgs/sagemath-objects/VERSION.txt | 2 +- pkgs/sagemath-repl/VERSION.txt | 2 +- pkgs/sagemath-sirocco/VERSION.txt | 2 +- pkgs/sagemath-tdlib/VERSION.txt | 2 +- src/VERSION.txt | 2 +- src/bin/sage-version.sh | 6 +++--- src/sage/version.py | 6 +++--- 38 files changed, 45 insertions(+), 45 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index 95876d7d4e4..757b3ed976f 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -4,8 +4,8 @@ title: SageMath abstract: SageMath is a free open-source mathematics software system. authors: - name: "The SageMath Developers" -version: 10.3.rc4 +version: 10.3 doi: 10.5281/zenodo.593563 -date-released: 2024-03-17 +date-released: 2024-03-19 repository-code: "https://github.com/sagemath/sage" url: "https://www.sagemath.org/" diff --git a/VERSION.txt b/VERSION.txt index ba55211dc5e..84f8c01cbe3 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -SageMath version 10.3.rc4, Release Date: 2024-03-17 +SageMath version 10.3, Release Date: 2024-03-19 diff --git a/build/pkgs/configure/checksums.ini b/build/pkgs/configure/checksums.ini index f175ddc1636..f35c061f7c4 100644 --- a/build/pkgs/configure/checksums.ini +++ b/build/pkgs/configure/checksums.ini @@ -1,4 +1,4 @@ tarball=configure-VERSION.tar.gz -sha1=f06e82486ef07850394e6b6d7f226b70c8330d47 -md5=9dd6037651626866f7b6cf790e45b2dd -cksum=2951679715 +sha1=f4a7dd60c09ac2f3e1f8e388cbf2a527dcd5547c +md5=c16cb118d9ad6a495f6c5d509b2ec570 +cksum=3417350968 diff --git a/build/pkgs/configure/package-version.txt b/build/pkgs/configure/package-version.txt index 303ba93c6f2..9ceddfa865f 100644 --- a/build/pkgs/configure/package-version.txt +++ b/build/pkgs/configure/package-version.txt @@ -1 +1 @@ -83d81f55354e4732096fbe0c0cd750eb6334e033 +ab1a517b64b02bf15bbcb8d7c2d4d643bd5eff9b diff --git a/build/pkgs/sage_conf/install-requires.txt b/build/pkgs/sage_conf/install-requires.txt index b73225585e4..9316e759dad 100644 --- a/build/pkgs/sage_conf/install-requires.txt +++ b/build/pkgs/sage_conf/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-conf ~= 10.3rc4 +sage-conf ~= 10.3 diff --git a/build/pkgs/sage_docbuild/install-requires.txt b/build/pkgs/sage_docbuild/install-requires.txt index 7d8263cbc62..5c8d7443cd7 100644 --- a/build/pkgs/sage_docbuild/install-requires.txt +++ b/build/pkgs/sage_docbuild/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-docbuild ~= 10.3rc4 +sage-docbuild ~= 10.3 diff --git a/build/pkgs/sage_setup/install-requires.txt b/build/pkgs/sage_setup/install-requires.txt index 89568499d00..b8ad6e4a775 100644 --- a/build/pkgs/sage_setup/install-requires.txt +++ b/build/pkgs/sage_setup/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-setup ~= 10.3rc4 +sage-setup ~= 10.3 diff --git a/build/pkgs/sage_sws2rst/install-requires.txt b/build/pkgs/sage_sws2rst/install-requires.txt index 3cc53bf8f37..38499a27e81 100644 --- a/build/pkgs/sage_sws2rst/install-requires.txt +++ b/build/pkgs/sage_sws2rst/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-sws2rst ~= 10.3rc4 +sage-sws2rst ~= 10.3 diff --git a/build/pkgs/sagelib/install-requires.txt b/build/pkgs/sagelib/install-requires.txt index 417573d6f4d..40a8880c8ca 100644 --- a/build/pkgs/sagelib/install-requires.txt +++ b/build/pkgs/sagelib/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-standard ~= 10.3rc4 +sagemath-standard ~= 10.3 diff --git a/build/pkgs/sagemath_bliss/install-requires.txt b/build/pkgs/sagemath_bliss/install-requires.txt index 699d6d369b9..65de9ee76bb 100644 --- a/build/pkgs/sagemath_bliss/install-requires.txt +++ b/build/pkgs/sagemath_bliss/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-bliss ~= 10.3rc4 +sagemath-bliss ~= 10.3 diff --git a/build/pkgs/sagemath_categories/install-requires.txt b/build/pkgs/sagemath_categories/install-requires.txt index e78428baa84..b9b3b499694 100644 --- a/build/pkgs/sagemath_categories/install-requires.txt +++ b/build/pkgs/sagemath_categories/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-categories ~= 10.3rc4 +sagemath-categories ~= 10.3 diff --git a/build/pkgs/sagemath_coxeter3/install-requires.txt b/build/pkgs/sagemath_coxeter3/install-requires.txt index 1e3289d9826..d39eeb439be 100644 --- a/build/pkgs/sagemath_coxeter3/install-requires.txt +++ b/build/pkgs/sagemath_coxeter3/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-coxeter3 ~= 10.3rc4 +sagemath-coxeter3 ~= 10.3 diff --git a/build/pkgs/sagemath_environment/install-requires.txt b/build/pkgs/sagemath_environment/install-requires.txt index 0ad75840b0b..86896f667e5 100644 --- a/build/pkgs/sagemath_environment/install-requires.txt +++ b/build/pkgs/sagemath_environment/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-environment ~= 10.3rc4 +sagemath-environment ~= 10.3 diff --git a/build/pkgs/sagemath_mcqd/install-requires.txt b/build/pkgs/sagemath_mcqd/install-requires.txt index 28daaa77a8b..320a9322aec 100644 --- a/build/pkgs/sagemath_mcqd/install-requires.txt +++ b/build/pkgs/sagemath_mcqd/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-mcqd ~= 10.3rc4 +sagemath-mcqd ~= 10.3 diff --git a/build/pkgs/sagemath_meataxe/install-requires.txt b/build/pkgs/sagemath_meataxe/install-requires.txt index 43ff0fd958e..3dc2baaae6a 100644 --- a/build/pkgs/sagemath_meataxe/install-requires.txt +++ b/build/pkgs/sagemath_meataxe/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-meataxe ~= 10.3rc4 +sagemath-meataxe ~= 10.3 diff --git a/build/pkgs/sagemath_objects/install-requires.txt b/build/pkgs/sagemath_objects/install-requires.txt index 385101bcc9a..fbc36ea88b3 100644 --- a/build/pkgs/sagemath_objects/install-requires.txt +++ b/build/pkgs/sagemath_objects/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-objects ~= 10.3rc4 +sagemath-objects ~= 10.3 diff --git a/build/pkgs/sagemath_repl/install-requires.txt b/build/pkgs/sagemath_repl/install-requires.txt index ef39766e021..4665036e331 100644 --- a/build/pkgs/sagemath_repl/install-requires.txt +++ b/build/pkgs/sagemath_repl/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-repl ~= 10.3rc4 +sagemath-repl ~= 10.3 diff --git a/build/pkgs/sagemath_sirocco/install-requires.txt b/build/pkgs/sagemath_sirocco/install-requires.txt index 5b072cd2588..538b5712e82 100644 --- a/build/pkgs/sagemath_sirocco/install-requires.txt +++ b/build/pkgs/sagemath_sirocco/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-sirocco ~= 10.3rc4 +sagemath-sirocco ~= 10.3 diff --git a/build/pkgs/sagemath_tdlib/install-requires.txt b/build/pkgs/sagemath_tdlib/install-requires.txt index 9ed823b39ee..140461c5a72 100644 --- a/build/pkgs/sagemath_tdlib/install-requires.txt +++ b/build/pkgs/sagemath_tdlib/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-tdlib ~= 10.3rc4 +sagemath-tdlib ~= 10.3 diff --git a/pkgs/sage-conf/VERSION.txt b/pkgs/sage-conf/VERSION.txt index 8c5dddbbe19..260e37521a9 100644 --- a/pkgs/sage-conf/VERSION.txt +++ b/pkgs/sage-conf/VERSION.txt @@ -1 +1 @@ -10.3.rc4 +10.3 diff --git a/pkgs/sage-conf_conda/VERSION.txt b/pkgs/sage-conf_conda/VERSION.txt index 8c5dddbbe19..260e37521a9 100644 --- a/pkgs/sage-conf_conda/VERSION.txt +++ b/pkgs/sage-conf_conda/VERSION.txt @@ -1 +1 @@ -10.3.rc4 +10.3 diff --git a/pkgs/sage-conf_pypi/VERSION.txt b/pkgs/sage-conf_pypi/VERSION.txt index 8c5dddbbe19..260e37521a9 100644 --- a/pkgs/sage-conf_pypi/VERSION.txt +++ b/pkgs/sage-conf_pypi/VERSION.txt @@ -1 +1 @@ -10.3.rc4 +10.3 diff --git a/pkgs/sage-docbuild/VERSION.txt b/pkgs/sage-docbuild/VERSION.txt index 8c5dddbbe19..260e37521a9 100644 --- a/pkgs/sage-docbuild/VERSION.txt +++ b/pkgs/sage-docbuild/VERSION.txt @@ -1 +1 @@ -10.3.rc4 +10.3 diff --git a/pkgs/sage-setup/VERSION.txt b/pkgs/sage-setup/VERSION.txt index 8c5dddbbe19..260e37521a9 100644 --- a/pkgs/sage-setup/VERSION.txt +++ b/pkgs/sage-setup/VERSION.txt @@ -1 +1 @@ -10.3.rc4 +10.3 diff --git a/pkgs/sage-sws2rst/VERSION.txt b/pkgs/sage-sws2rst/VERSION.txt index 8c5dddbbe19..260e37521a9 100644 --- a/pkgs/sage-sws2rst/VERSION.txt +++ b/pkgs/sage-sws2rst/VERSION.txt @@ -1 +1 @@ -10.3.rc4 +10.3 diff --git a/pkgs/sagemath-bliss/VERSION.txt b/pkgs/sagemath-bliss/VERSION.txt index 8c5dddbbe19..260e37521a9 100644 --- a/pkgs/sagemath-bliss/VERSION.txt +++ b/pkgs/sagemath-bliss/VERSION.txt @@ -1 +1 @@ -10.3.rc4 +10.3 diff --git a/pkgs/sagemath-categories/VERSION.txt b/pkgs/sagemath-categories/VERSION.txt index 8c5dddbbe19..260e37521a9 100644 --- a/pkgs/sagemath-categories/VERSION.txt +++ b/pkgs/sagemath-categories/VERSION.txt @@ -1 +1 @@ -10.3.rc4 +10.3 diff --git a/pkgs/sagemath-coxeter3/VERSION.txt b/pkgs/sagemath-coxeter3/VERSION.txt index 8c5dddbbe19..260e37521a9 100644 --- a/pkgs/sagemath-coxeter3/VERSION.txt +++ b/pkgs/sagemath-coxeter3/VERSION.txt @@ -1 +1 @@ -10.3.rc4 +10.3 diff --git a/pkgs/sagemath-environment/VERSION.txt b/pkgs/sagemath-environment/VERSION.txt index 8c5dddbbe19..260e37521a9 100644 --- a/pkgs/sagemath-environment/VERSION.txt +++ b/pkgs/sagemath-environment/VERSION.txt @@ -1 +1 @@ -10.3.rc4 +10.3 diff --git a/pkgs/sagemath-mcqd/VERSION.txt b/pkgs/sagemath-mcqd/VERSION.txt index 8c5dddbbe19..260e37521a9 100644 --- a/pkgs/sagemath-mcqd/VERSION.txt +++ b/pkgs/sagemath-mcqd/VERSION.txt @@ -1 +1 @@ -10.3.rc4 +10.3 diff --git a/pkgs/sagemath-meataxe/VERSION.txt b/pkgs/sagemath-meataxe/VERSION.txt index 8c5dddbbe19..260e37521a9 100644 --- a/pkgs/sagemath-meataxe/VERSION.txt +++ b/pkgs/sagemath-meataxe/VERSION.txt @@ -1 +1 @@ -10.3.rc4 +10.3 diff --git a/pkgs/sagemath-objects/VERSION.txt b/pkgs/sagemath-objects/VERSION.txt index 8c5dddbbe19..260e37521a9 100644 --- a/pkgs/sagemath-objects/VERSION.txt +++ b/pkgs/sagemath-objects/VERSION.txt @@ -1 +1 @@ -10.3.rc4 +10.3 diff --git a/pkgs/sagemath-repl/VERSION.txt b/pkgs/sagemath-repl/VERSION.txt index 8c5dddbbe19..260e37521a9 100644 --- a/pkgs/sagemath-repl/VERSION.txt +++ b/pkgs/sagemath-repl/VERSION.txt @@ -1 +1 @@ -10.3.rc4 +10.3 diff --git a/pkgs/sagemath-sirocco/VERSION.txt b/pkgs/sagemath-sirocco/VERSION.txt index 8c5dddbbe19..260e37521a9 100644 --- a/pkgs/sagemath-sirocco/VERSION.txt +++ b/pkgs/sagemath-sirocco/VERSION.txt @@ -1 +1 @@ -10.3.rc4 +10.3 diff --git a/pkgs/sagemath-tdlib/VERSION.txt b/pkgs/sagemath-tdlib/VERSION.txt index 8c5dddbbe19..260e37521a9 100644 --- a/pkgs/sagemath-tdlib/VERSION.txt +++ b/pkgs/sagemath-tdlib/VERSION.txt @@ -1 +1 @@ -10.3.rc4 +10.3 diff --git a/src/VERSION.txt b/src/VERSION.txt index 8c5dddbbe19..260e37521a9 100644 --- a/src/VERSION.txt +++ b/src/VERSION.txt @@ -1 +1 @@ -10.3.rc4 +10.3 diff --git a/src/bin/sage-version.sh b/src/bin/sage-version.sh index 0f483e4713f..9837cfb3fae 100644 --- a/src/bin/sage-version.sh +++ b/src/bin/sage-version.sh @@ -4,6 +4,6 @@ # which stops "setup.py develop" from rewriting it as a Python file. : # This file is auto-generated by the sage-update-version script, do not edit! -SAGE_VERSION='10.3.rc4' -SAGE_RELEASE_DATE='2024-03-17' -SAGE_VERSION_BANNER='SageMath version 10.3.rc4, Release Date: 2024-03-17' +SAGE_VERSION='10.3' +SAGE_RELEASE_DATE='2024-03-19' +SAGE_VERSION_BANNER='SageMath version 10.3, Release Date: 2024-03-19' diff --git a/src/sage/version.py b/src/sage/version.py index feec9728c2f..1f26e7a6b8b 100644 --- a/src/sage/version.py +++ b/src/sage/version.py @@ -1,5 +1,5 @@ # Sage version information for Python scripts # This file is auto-generated by the sage-update-version script, do not edit! -version = '10.3.rc4' -date = '2024-03-17' -banner = 'SageMath version 10.3.rc4, Release Date: 2024-03-17' +version = '10.3' +date = '2024-03-19' +banner = 'SageMath version 10.3, Release Date: 2024-03-19'