Skip to content

Commit 0ae9698

Browse files
author
Release Manager
committed
gh-35181: Document, lint, and fix placement of magic comments in multiline doctests <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes #1234" use "Introduce new method to calculate 1+1" --> ### 📚 Description <!-- Describe your changes here in detail --> <!-- Why is this change required? What problem does it solve? --> <!-- If it resolves an open issue, please link to the issue here. For example "Closes #1337" --> Fixes #33091 **tldr:** - `# optional` tags go on the `sage: ` lines. - they don't go on the `....: ` lines. ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> - [ ] I have made sure that the title is self-explanatory and the description concisely explains the PR. - [x] I have linked an issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open pull requests that this PR logically depends on --> <!-- - #xyz: short description why this is a dependency - #abc: ... --> URL: #35181 Reported by: Matthias Köppe Reviewer(s): Gonzalo Tornaría
2 parents db7af74 + 2861163 commit 0ae9698

File tree

77 files changed

+409
-359
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+409
-359
lines changed

src/.relint.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,12 @@
5252
pattern: 'from\s+sage(|[.](arith|categories|combinat|ext|graphs(|[.]decompositions)|interfaces|libs|matrix|misc|numerical(|[.]backends)|rings(|[.]finite_rings)|sets))[.]all\s+import'
5353
# imports from .all are allowed in all.py; also allow in some modules that need sage.all
5454
filePattern: '(.*/|)(?!(all|benchmark|dev_tools|parsing|sage_eval))[^/.]*[.](py|pyx|pxi)$'
55+
56+
# Magic doctest comments
57+
58+
- name: 'multiline_doctest_comment: magic comment on a continuation line'
59+
hint: |
60+
magic doctest comments should appear on the "sage:" line, not "....:" lines
61+
# see optional_regex in src/sage/doctest/parsing.py
62+
# "indirect doctest" is from src/bin/sage-coverage
63+
pattern: '^[ ]*[.][.][.][.]:.*#.*(arb216|arb218|py2|py3|long time|not implemented|not tested|known bug|optional|indirect doctest)'

src/doc/en/constructions/plotting.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,10 +301,10 @@ Here is an example of a plot of a parametric surface in 3-space:
301301
::
302302

303303
sage: maxima.plot3d_parametric(["v*sin(u)","v*cos(u)","v"], ["u","v"],
304-
....: [-3.2,3.2],[0,3]) # optional -- pops up a window.
304+
....: [-3.2,3.2],[0,3])
305305
sage: opts = '[gnuplot_term, ps], [gnuplot_out_file, "sin-cos-plot.eps"]'
306306
sage: maxima.plot3d_parametric(["v*sin(u)","v*cos(u)","v"], ["u","v"],
307-
....: [-3.2,3.2],[0,3],opts) # optional -- pops up a window.
307+
....: [-3.2,3.2],[0,3],opts)
308308

309309
To illustrate how to pass gnuplot options in , here is an example
310310
of a plot of a set of points involving the Riemann zeta function

src/doc/en/developer/coding_basics.rst

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1092,9 +1092,9 @@ framework. Here is a comprehensive list:
10921092

10931093
sage: print("The sum of 1 and 1 equals 5") # abs tol 1
10941094
The sum of 2 and 2 equals 4
1095-
sage: e^(i*pi/4).n() # rel tol 1e-1
1095+
sage: e^(i*pi/4).n() # rel tol 1e-1
10961096
0.7 + 0.7*I
1097-
sage: ((x+1.001)^4).expand() # rel tol 2
1097+
sage: ((x+1.001)^4).expand() # rel tol 2
10981098
x^4 + 4*x^3 + 6*x^2 + 4*x + 1
10991099
sage: M = matrix.identity(3) + random_matrix(RR,3,3)/10^3
11001100
sage: M^2 # abs tol 1e-2
@@ -1219,6 +1219,22 @@ framework. Here is a comprehensive list:
12191219
8193 # 32-bit
12201220
2147491840 # 64-bit
12211221

1222+
Per coding style (:ref:`section-coding-python`), the magic comment
1223+
should be separated by at least 2 spaces.
1224+
1225+
For multiline doctests, the comment should appear on the first
1226+
`physical line <https://docs.python.org/3/reference/lexical_analysis.html#physical-lines>`_
1227+
of the doctest (the line with the prompt ``sage:``), not on the
1228+
continuation lines (the lines with the prompt ``....:``)::
1229+
1230+
sage: print(ZZ.random_element()) # random
1231+
42
1232+
sage: for _ in range(3): # random
1233+
....: print(QQ.random_element())
1234+
1
1235+
1/77
1236+
-1/2
1237+
12221238
Using ``search_src`` from the Sage prompt (or ``grep``), one can
12231239
easily find the aforementioned keywords. In the case of ``todo: not
12241240
implemented``, one can use the results of such a search to direct

src/doc/pt/tutorial/interfaces.rst

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -233,8 +233,8 @@ cálculos). Não digite ``...``:
233233

234234
sage: x, y = QQ['x, y'].gens()
235235
sage: f = 9*y^8 - 9*x^2*y^7 - 18*x^3*y^6 - 18*x^5*y^6 + 9*x^6*y^4 \
236-
....: + 18*x^7*y^5 + 36*x^8*y^4 + 9*x^10*y^4 - 18*x^11*y^2 - 9*x^12*y^3 \
237-
....: - 18*x^13*y^2 + 9*x^16
236+
....: + 18*x^7*y^5 + 36*x^8*y^4 + 9*x^10*y^4 - 18*x^11*y^2 - 9*x^12*y^3 \
237+
....: - 18*x^13*y^2 + 9*x^16
238238
sage: factor(f)
239239
(9) * (-x^5 + y^2)^2 * (x^6 - 2*x^3*y^2 - x^2*y^3 + y^4)
240240

@@ -305,38 +305,38 @@ Um gráfico em duas dimensões de diversas funções (não digite ``...``):
305305

306306
::
307307

308-
sage: maxima.plot2d('[cos(7*x),cos(23*x)^4,sin(13*x)^3]','[x,0,1]', # not tested
309-
....: '[plot_format,openmath]') # not tested
308+
sage: maxima.plot2d('[cos(7*x),cos(23*x)^4,sin(13*x)^3]', '[x,0,1]', # not tested
309+
....: '[plot_format,openmath]')
310310

311311
Um gráfico em 3D que você pode mover com o seu mouse:
312312

313313
::
314314

315315
sage: maxima.plot3d("2^(-u^2 + v^2)", "[u, -3, 3]", "[v, -2, 2]", # not tested
316-
....: '[plot_format, openmath]') # not tested
316+
....: '[plot_format, openmath]')
317317

318-
sage: maxima.plot3d("atan(-x^2 + y^3/4)", "[x, -4, 4]", "[y, -4, 4]", # not tested
319-
....: "[grid, 50, 50]",'[plot_format, openmath]') # not tested
318+
sage: maxima.plot3d("atan(-x^2 + y^3/4)", "[x, -4, 4]", "[y, -4, 4]", # not tested
319+
....: "[grid, 50, 50]",'[plot_format, openmath]')
320320

321321
O próximo gráfico é a famosa faixa de Möbious:
322322

323323
::
324324

325-
sage: maxima.plot3d("[cos(x)*(3 + y*cos(x/2)), sin(x)*(3 + y*cos(x/2))," \ # not tested
326-
....: "y*sin(x/2)]", "[x, -4, 4]", "[y, -4, 4]", # not tested
327-
....: '[plot_format, openmath]') # not tested
325+
sage: maxima.plot3d("[cos(x)*(3 + y*cos(x/2)), sin(x)*(3 + y*cos(x/2))," # not tested
326+
....: "y*sin(x/2)]", "[x, -4, 4]", "[y, -4, 4]",
327+
....: '[plot_format, openmath]')
328328

329329
E agora a famosa garrafa de Klein:
330330

331331
::
332332

333-
sage: maxima("expr_1: 5*cos(x)*(cos(x/2)*cos(y) + sin(x/2)*sin(2*y)+ 3.0)"\
334-
....: "- 10.0")
333+
sage: maxima("expr_1: 5*cos(x)*(cos(x/2)*cos(y) + sin(x/2)*sin(2*y)+ 3.0)"
334+
....: "- 10.0")
335335
5*cos(x)*(sin(x/2)*sin(2*y)+cos(x/2)*cos(y)+3.0)-10.0
336336
sage: maxima("expr_2: -5*sin(x)*(cos(x/2)*cos(y) + sin(x/2)*sin(2*y)+ 3.0)")
337337
-5*sin(x)*(sin(x/2)*sin(2*y)+cos(x/2)*cos(y)+3.0)
338338
sage: maxima("expr_3: 5*(-sin(x/2)*cos(y) + cos(x/2)*sin(2*y))")
339339
5*(cos(x/2)*sin(2*y)-sin(x/2)*cos(y))
340340
sage: maxima.plot3d("[expr_1, expr_2, expr_3]", "[x, -%pi, %pi]", # not tested
341-
....: "[y, -%pi, %pi]", "['grid, 40, 40]", # not tested
342-
....: '[plot_format, openmath]') # not tested
341+
....: "[y, -%pi, %pi]", "['grid, 40, 40]",
342+
....: '[plot_format, openmath]')

src/sage/calculus/ode.pyx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -327,12 +327,12 @@ class ode_solver():
327327
sage: T = ode_solver() # not tested
328328
sage: T.algorithm = "bsimp" # not tested
329329
sage: vander = van_der_pol() # not tested
330-
sage: T.function=vander # not tested
331-
sage: T.ode_solve(y_0 = [1,0], t_span=[0,2000], # not tested
332-
....: num_points=1000) # not tested
330+
sage: T.function = vander # not tested
331+
sage: T.ode_solve(y_0=[1, 0], t_span=[0, 2000], # not tested
332+
....: num_points=1000)
333333
sage: from tempfile import NamedTemporaryFile # not tested
334334
sage: with NamedTemporaryFile(suffix=".png") as f: # not tested
335-
....: T.plot_solution(i=0, filename=f.name) # not tested
335+
....: T.plot_solution(i=0, filename=f.name)
336336
337337
"""
338338
def __init__(self,function=None,jacobian=None,h = 1e-2,error_abs=1e-10,error_rel=1e-10, a=False,a_dydt=False,scale_abs=False,algorithm="rkf45",y_0=None,t_span=None,params = []):

src/sage/categories/complex_reflection_or_generalized_coxeter_groups.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ def simple_reflection(self, i):
197197
198198
sage: W = ReflectionGroup((1,1,4), index_set=[1,3,'asdf']) # optional - gap3
199199
sage: for i in W.index_set(): # optional - gap3
200-
....: print('%s %s'%(i, W.simple_reflection(i))) # optional - gap3
200+
....: print('%s %s'%(i, W.simple_reflection(i)))
201201
1 (1,7)(2,4)(5,6)(8,10)(11,12)
202202
3 (1,4)(2,8)(3,5)(7,10)(9,11)
203203
asdf (2,5)(3,9)(4,6)(8,11)(10,12)
@@ -447,7 +447,7 @@ def reflection(self, i):
447447
448448
sage: W = ReflectionGroup((1,1,4)) # optional - gap3
449449
sage: for i in W.reflection_index_set(): # optional - gap3
450-
....: print('%s %s'%(i, W.reflection(i))) # optional - gap3
450+
....: print('%s %s'%(i, W.reflection(i)))
451451
1 (1,7)(2,4)(5,6)(8,10)(11,12)
452452
2 (1,4)(2,8)(3,5)(7,10)(9,11)
453453
3 (2,5)(3,9)(4,6)(8,11)(10,12)
@@ -472,30 +472,30 @@ def reflections(self):
472472
sage: W = ReflectionGroup((1,1,3)) # optional - gap3
473473
sage: reflections = W.reflections() # optional - gap3
474474
sage: for index in sorted(reflections.keys()): # optional - gap3
475-
....: print('%s %s'%(index, reflections[index])) # optional - gap3
475+
....: print('%s %s'%(index, reflections[index]))
476476
1 (1,4)(2,3)(5,6)
477477
2 (1,3)(2,5)(4,6)
478478
3 (1,5)(2,4)(3,6)
479479
480480
sage: W = ReflectionGroup((1,1,3),reflection_index_set=['a','b','c']) # optional - gap3
481481
sage: reflections = W.reflections() # optional - gap3
482482
sage: for index in sorted(reflections.keys()): # optional - gap3
483-
....: print('%s %s'%(index, reflections[index])) # optional - gap3
483+
....: print('%s %s'%(index, reflections[index]))
484484
a (1,4)(2,3)(5,6)
485485
b (1,3)(2,5)(4,6)
486486
c (1,5)(2,4)(3,6)
487487
488488
sage: W = ReflectionGroup((3,1,1)) # optional - gap3
489489
sage: reflections = W.reflections() # optional - gap3
490490
sage: for index in sorted(reflections.keys()): # optional - gap3
491-
....: print('%s %s'%(index, reflections[index])) # optional - gap3
491+
....: print('%s %s'%(index, reflections[index]))
492492
1 (1,2,3)
493493
2 (1,3,2)
494494
495495
sage: W = ReflectionGroup((1,1,3), (3,1,2)) # optional - gap3
496496
sage: reflections = W.reflections() # optional - gap3
497497
sage: for index in sorted(reflections.keys()): # optional - gap3
498-
....: print('%s %s'%(index, reflections[index])) # optional - gap3
498+
....: print('%s %s'%(index, reflections[index]))
499499
1 (1,6)(2,5)(7,8)
500500
2 (1,5)(2,7)(6,8)
501501
3 (3,9,15)(4,10,16)(12,17,23)(14,18,24)(20,25,29)(21,22,26)(27,28,30)
@@ -562,7 +562,7 @@ def distinguished_reflection(self, i):
562562
563563
sage: W = ReflectionGroup((1,1,4), hyperplane_index_set=('a','b','c','d','e','f')) # optional - gap3
564564
sage: for i in W.hyperplane_index_set(): # optional - gap3
565-
....: print('%s %s'%(i, W.distinguished_reflection(i))) # optional - gap3
565+
....: print('%s %s'%(i, W.distinguished_reflection(i)))
566566
a (1,7)(2,4)(5,6)(8,10)(11,12)
567567
b (1,4)(2,8)(3,5)(7,10)(9,11)
568568
c (2,5)(3,9)(4,6)(8,11)(10,12)
@@ -596,29 +596,29 @@ def distinguished_reflections(self):
596596
sage: W = ReflectionGroup((1,1,3)) # optional - gap3
597597
sage: distinguished_reflections = W.distinguished_reflections() # optional - gap3
598598
sage: for index in sorted(distinguished_reflections.keys()): # optional - gap3
599-
....: print('%s %s'%(index, distinguished_reflections[index])) # optional - gap3
599+
....: print('%s %s'%(index, distinguished_reflections[index]))
600600
1 (1,4)(2,3)(5,6)
601601
2 (1,3)(2,5)(4,6)
602602
3 (1,5)(2,4)(3,6)
603603
604604
sage: W = ReflectionGroup((1,1,3),hyperplane_index_set=['a','b','c']) # optional - gap3
605605
sage: distinguished_reflections = W.distinguished_reflections() # optional - gap3
606606
sage: for index in sorted(distinguished_reflections.keys()): # optional - gap3
607-
....: print('%s %s'%(index, distinguished_reflections[index])) # optional - gap3
607+
....: print('%s %s'%(index, distinguished_reflections[index]))
608608
a (1,4)(2,3)(5,6)
609609
b (1,3)(2,5)(4,6)
610610
c (1,5)(2,4)(3,6)
611611
612612
sage: W = ReflectionGroup((3,1,1)) # optional - gap3
613613
sage: distinguished_reflections = W.distinguished_reflections() # optional - gap3
614614
sage: for index in sorted(distinguished_reflections.keys()): # optional - gap3
615-
....: print('%s %s'%(index, distinguished_reflections[index])) # optional - gap3
615+
....: print('%s %s'%(index, distinguished_reflections[index]))
616616
1 (1,2,3)
617617
618618
sage: W = ReflectionGroup((1,1,3), (3,1,2)) # optional - gap3
619619
sage: distinguished_reflections = W.distinguished_reflections() # optional - gap3
620620
sage: for index in sorted(distinguished_reflections.keys()): # optional - gap3
621-
....: print('%s %s'%(index, distinguished_reflections[index])) # optional - gap3
621+
....: print('%s %s'%(index, distinguished_reflections[index]))
622622
1 (1,6)(2,5)(7,8)
623623
2 (1,5)(2,7)(6,8)
624624
3 (3,9,15)(4,10,16)(12,17,23)(14,18,24)(20,25,29)(21,22,26)(27,28,30)

src/sage/categories/finite_complex_reflection_groups.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -898,7 +898,7 @@ def generalized_noncrossing_partitions(self, m, c=None, positive=False):
898898
sage: W = ReflectionGroup((1,1,3)) # optional - gap3
899899
900900
sage: sorted([w.reduced_word() for w in chain] # optional - gap3
901-
....: for chain in W.generalized_noncrossing_partitions(2)) # optional - gap3
901+
....: for chain in W.generalized_noncrossing_partitions(2))
902902
[[[], [], [1, 2]],
903903
[[], [1], [2]],
904904
[[], [1, 2], []],
@@ -913,7 +913,7 @@ def generalized_noncrossing_partitions(self, m, c=None, positive=False):
913913
[[2], [1, 2, 1], []]]
914914
915915
sage: sorted([w.reduced_word() for w in chain] # optional - gap3
916-
....: for chain in W.generalized_noncrossing_partitions(2, positive=True)) # optional - gap3
916+
....: for chain in W.generalized_noncrossing_partitions(2, positive=True))
917917
[[[], [1, 2], []],
918918
[[], [1, 2, 1], [1]],
919919
[[1], [2], []],

src/sage/combinat/abstract_tree.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1937,8 +1937,8 @@ def __setitem_rec__(self, idx, i, value):
19371937
TESTS::
19381938
19391939
sage: x = OrderedTree([[[], []],[[]]])
1940-
sage: with x.clone() as x:
1941-
....: x[0,1] = OrderedTree([[[]]]) # indirect doctest
1940+
sage: with x.clone() as x: # indirect doctest
1941+
....: x[0,1] = OrderedTree([[[]]])
19421942
sage: x
19431943
[[[], [[[]]]], [[]]]
19441944
"""

src/sage/combinat/crystals/alcove_path.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -193,9 +193,9 @@ class CrystalOfAlcovePaths(UniqueRepresentation, Parent):
193193
sage: K = crystals.KirillovReshetikhin(['B',3,1],2,1)
194194
sage: T = crystals.TensorProduct(K,K)
195195
sage: g = T.digraph() #long time
196-
sage: for e in g.edges(sort=False): #long time
197-
....: if e[0].phi(0) == 1 and e[2] == 0: #long time
198-
....: g.delete_edge(e) #long time
196+
sage: for e in g.edges(sort=False): #long time
197+
....: if e[0].phi(0) == 1 and e[2] == 0:
198+
....: g.delete_edge(e)
199199
200200
sage: C = crystals.AlcovePaths(['B',3,1],[0,2,0], highest_weight_crystal=False)
201201
sage: g2 = C.digraph() #long time

src/sage/combinat/designs/bibd.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -772,8 +772,8 @@ def v_4_1_BIBD(v, check=True):
772772
773773
sage: from sage.combinat.designs.bibd import v_4_1_BIBD # long time
774774
sage: for n in range(13,100): # long time
775-
....: if n%12 in [1,4]: # long time
776-
....: _ = v_4_1_BIBD(n, check = True) # long time
775+
....: if n%12 in [1,4]:
776+
....: _ = v_4_1_BIBD(n, check = True)
777777
778778
TESTS:
779779
@@ -787,8 +787,8 @@ def v_4_1_BIBD(v, check=True):
787787
Check some larger `(v,4,1)`-BIBD (see :trac:`17557`)::
788788
789789
sage: for v in range(400): # long time
790-
....: if v%12 in [1,4]: # long time
791-
....: _ = designs.balanced_incomplete_block_design(v,4) # long time
790+
....: if v%12 in [1,4]:
791+
....: _ = designs.balanced_incomplete_block_design(v,4)
792792
"""
793793
k = 4
794794
if v == 0:
@@ -1262,7 +1262,7 @@ def BIBD_5q_5_for_q_prime_power(q):
12621262
12631263
sage: from sage.combinat.designs.bibd import BIBD_5q_5_for_q_prime_power
12641264
sage: for q in [25, 45, 65, 85, 125, 145, 185, 205, 305, 405, 605]: # long time
1265-
....: _ = BIBD_5q_5_for_q_prime_power(q/5) # long time
1265+
....: _ = BIBD_5q_5_for_q_prime_power(q/5)
12661266
"""
12671267
from sage.rings.finite_rings.finite_field_constructor import FiniteField
12681268

src/sage/combinat/designs/incidence_structures.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2201,7 +2201,7 @@ def _latex_(self):
22012201
# verify that :trac:`30976` is fixed
22022202
sage: IS = IncidenceStructure([1,2,3], [[1,2], [2,3]])
22032203
sage: if latex.has_file("tikz.sty"): # optional - latex
2204-
....: IS._latex_() # optional - latex
2204+
....: IS._latex_()
22052205
...UserWarning:
22062206
The hypergraph is drawn as a set of closed curves...
22072207
\begin{tikzpicture}...

src/sage/combinat/designs/orthogonal_arrays.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1183,7 +1183,7 @@ def incomplete_orthogonal_array(k,n,holes,resolvable=False, existence=False):
11831183
sage: iOA = designs.incomplete_orthogonal_array(10,153,[9]*10) # long time
11841184
sage: OA9 = designs.orthogonal_arrays.build(10,9) # long time
11851185
sage: for i in range(10): # long time
1186-
....: iOA.extend([[153-9*(i+1)+x for x in B] for B in OA9]) # long time
1186+
....: iOA.extend([[153-9*(i+1)+x for x in B] for B in OA9])
11871187
sage: is_orthogonal_array(iOA,10,153) # long time
11881188
True
11891189

src/sage/combinat/designs/orthogonal_arrays_build_recursive.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -668,8 +668,8 @@ def thwart_lemma_3_5(k,n,m,a,b,c,d=0,complement=False,explain_construction=False
668668
....: [10, 13, 78, 9, 9, 13, 1],
669669
....: [10, 13, 79, 9, 9, 13, 1]]
670670
sage: for k,n,m,a,b,c,d in l: # not tested -- too long
671-
....: OA = thwart_lemma_3_5(k,n,m,a,b,c,d,complement=True) # not tested -- too long
672-
....: assert is_orthogonal_array(OA,k,n*m+a+b+c+d,verbose=True) # not tested -- too long
671+
....: OA = thwart_lemma_3_5(k,n,m,a,b,c,d,complement=True)
672+
....: assert is_orthogonal_array(OA,k,n*m+a+b+c+d,verbose=True)
673673
674674
sage: print(designs.orthogonal_arrays.explain_construction(10,1046))
675675
Lemma 3.5 with n=13,m=79,a=9,b=1,c=0,d=9 from:

src/sage/combinat/designs/orthogonal_arrays_find_recursive.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,7 @@ cpdef find_thwart_lemma_3_5(int k,int N):
541541
12 3994 (12, 19, 207, 16, 13, 13, 19, True)
542542
543543
sage: for k,n in kn: # not tested -- too long
544-
....: assert designs.orthogonal_array(k,n,existence=True) is True # not tested -- too long
544+
....: assert designs.orthogonal_array(k,n,existence=True) is True
545545
"""
546546
from .orthogonal_arrays_build_recursive import thwart_lemma_3_5
547547
cdef int n,m,a,b,c,d,NN,na,nb,nc

src/sage/combinat/designs/resolvable_bibd.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -399,9 +399,9 @@ def v_4_1_rbibd(v,existence=False):
399399
400400
TESTS::
401401
402-
sage: for q in prime_powers(2,30):
402+
sage: for q in prime_powers(2,30): # indirect doctest
403403
....: if (3*q+1)%12 == 4:
404-
....: _ = designs.resolvable_balanced_incomplete_block_design(3*q+1,4) # indirect doctest
404+
....: _ = designs.resolvable_balanced_incomplete_block_design(3*q+1,4)
405405
"""
406406
# Volume 1, VII.7.5.a from [BJL99]_
407407
if v%3 != 1 or not is_prime_power((v-1)//3):

src/sage/combinat/designs/steiner_quadruple_systems.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -705,8 +705,8 @@ def steiner_quadruple_system(n, check = False):
705705
TESTS::
706706
707707
sage: for n in range(4, 100): # long time
708-
....: if (n%6) in [2,4]: # long time
709-
....: sqs = designs.steiner_quadruple_system(n, check=True) # long time
708+
....: if (n%6) in [2,4]:
709+
....: sqs = designs.steiner_quadruple_system(n, check=True)
710710
"""
711711
n = int(n)
712712
if not ((n%6) in [2, 4]):

0 commit comments

Comments
 (0)