Skip to content

Commit 5b13ee9

Browse files
committed
Renable some previously disabled tests (due to old FLINT versions)
1 parent 3d3380a commit 5b13ee9

6 files changed

Lines changed: 84 additions & 65 deletions

File tree

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,9 +172,9 @@ Contributors (0.10.0):
172172

173173
Changes (0.10.0):
174174

175-
- Drop support for FLINT versions older than 3.4.0 and remove the associated
175+
- [gh-424](https://github.com/flintlib/python-flint/pull/424),
176+
Drop support for FLINT versions older than 3.4.0 and remove the associated
176177
compatibility code. (OB)
177-
178178
- [gh-421](https://github.com/flintlib/python-flint/pull/421),
179179
Add `zpoly` and `zcontent` methods to `fmpq_mpoly`, to get
180180
the primitive integer polynomial and the `fmpq` content, which

doc/source/_gr.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ variables over the Gaussian integers :math:`\mathbb{Z}[i][x,y]` we would do::
2020
>>> ctx.gens()
2121
[x, y]
2222

23-
# >>> ctx.gens_recursive()
24-
# [I, x, y]
25-
# >>> I, x, y = ctx.gens_recursive()
23+
>>> ctx.gens_recursive()
24+
[I, x, y]
25+
>>> I, x, y = ctx.gens_recursive()
2626

2727
>>> x, y = ctx.gens()
2828
>>> p = (x + y)**2

src/flint/test/test_docstrings.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,15 @@
77

88
dunder_test_regex = re.compile(r'^(.*?)__test__\.(.*?) \(line (\d+)\)$')
99

10+
# Minimum FLINT release required by doctests that use newer FLINT features.
11+
# Keys are doctest names and values are encoded __FLINT_RELEASE values, e.g.:
12+
#
13+
# test_flint_at_least = {
14+
# "flint.types.example.example_method": 30700,
15+
# }
16+
test_flint_at_least = {}
17+
18+
1019
def find_doctests(module):
1120
finder = doctest.DocTestFinder()
1221
tests = []
@@ -32,6 +41,10 @@ def find_doctests(module):
3241
raise Exception(f"Duplicate test name: {test.name}")
3342
tests_seen.remove(test.name)
3443

44+
if test.name in test_flint_at_least:
45+
if test_flint_at_least[test.name] > flint.__FLINT_RELEASE__:
46+
continue
47+
3548
if test.name not in tests_seen:
3649
tests_seen.add(test.name)
3750
res.append(test)

src/flint/types/_gr.pxd

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ from flint.flintlib.functions.gr cimport (
105105
gr_one,
106106
gr_gen,
107107
gr_gens,
108-
# gr_gens_recursive,
108+
gr_gens_recursive,
109109
gr_ctx_set_gen_names,
110110

111111
gr_i,
@@ -1017,25 +1017,25 @@ cdef class gr_ctx(flint_ctx):
10171017
raise self._error(err, "Cannot compute min(x) in this context")
10181018
return res
10191019

1020-
# @cython.final
1021-
# cdef inline list _gens_recursive(self):
1022-
# cdef int err
1023-
# cdef gr g
1024-
# cdef gr_vec_t gens
1025-
# gr_vec_init(gens, 0, self.ctx_t)
1026-
# err = gr_gens_recursive(gens, self.ctx_t)
1027-
# if err != GR_SUCCESS:
1028-
# raise self._error(err, "Cannot get recursive generators")
1029-
# length = gr_vec_length(gens, self.ctx_t)
1030-
# py_gens = [None] * length
1031-
# for 0 <= i < length:
1032-
# g = self.new_gr()
1033-
# err = gr_set(g.pval, gr_vec_entry_ptr(gens, i, self.ctx_t), self.ctx_t)
1034-
# if err != GR_SUCCESS:
1035-
# raise self._error(err, "Failed to copy generator.")
1036-
# py_gens[i] = g
1037-
# gr_vec_clear(gens, self.ctx_t)
1038-
# return py_gens
1020+
@cython.final
1021+
cdef inline list _gens_recursive(self):
1022+
cdef int err
1023+
cdef gr g
1024+
cdef gr_vec_t gens
1025+
gr_vec_init(gens, 0, self.ctx_t)
1026+
err = gr_gens_recursive(gens, self.ctx_t)
1027+
if err != GR_SUCCESS:
1028+
raise self._error(err, "Cannot get recursive generators")
1029+
length = gr_vec_length(gens, self.ctx_t)
1030+
py_gens = [None] * length
1031+
for 0 <= i < length:
1032+
g = self.new_gr()
1033+
err = gr_set(g.pval, gr_vec_entry_ptr(gens, i, self.ctx_t), self.ctx_t)
1034+
if err != GR_SUCCESS:
1035+
raise self._error(err, "Failed to copy generator.")
1036+
py_gens[i] = g
1037+
gr_vec_clear(gens, self.ctx_t)
1038+
return py_gens
10391039

10401040

10411041
cdef class gr_scalar_ctx(gr_ctx):

src/flint/types/_gr.pyx

Lines changed: 46 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -344,17 +344,25 @@ cdef class gr_ctx(flint_ctx):
344344
def gens(self) -> list[gr]:
345345
"""Return the top-level generators of the domain
346346

347-
# >>> from flint.types._gr import gr_fmpzi_ctx, gr_gr_mpoly_ctx
348-
# >>> ctx = gr_gr_mpoly_ctx.new(gr_fmpzi_ctx, ['x', 'y'])
349-
# >>> ctx.gens()
350-
# [x, y]
351-
# >>> gr_fmpzi_ctx.gens()
352-
# [I]
353-
# >>> ctx.gens_recursive()
354-
# [I, x, y]
347+
>>> from flint.types._gr import gr_fmpzi_ctx, gr_gr_mpoly_ctx
348+
>>> ctx = gr_gr_mpoly_ctx.new(gr_fmpzi_ctx, ['x', 'y'])
349+
>>> ctx.gens()
350+
[x, y]
351+
>>> gr_fmpzi_ctx.gens()
352+
[I]
355353
"""
356354
return self._gens()
357355

356+
def gens_recursive(self) -> list[gr]:
357+
"""Return the generators of the domain and its coefficient domains.
358+
359+
>>> from flint.types._gr import gr_fmpzi_ctx, gr_gr_mpoly_ctx
360+
>>> ctx = gr_gr_mpoly_ctx.new(gr_fmpzi_ctx, ['x', 'y'])
361+
>>> ctx.gens_recursive()
362+
[I, x, y]
363+
"""
364+
return self._gens_recursive()
365+
358366
def is_zero(self, x) -> bool | None:
359367
"""
360368
Returns whether x is equal to the ring element 0.
@@ -1096,21 +1104,21 @@ cdef class gr_fq_nmod_ctx(gr_scalar_ctx):
10961104
def new(p, d, name=None) -> gr_fq_nmod_ctx:
10971105
"""Create a new context for finite fields.
10981106

1099-
# >>> from flint.types._gr import gr_fq_nmod_ctx
1100-
# >>> F9 = gr_fq_nmod_ctx.new(3, 2)
1101-
# >>> F9
1102-
# gr_fq_nmod_ctx(3, 2)
1103-
# >>> F9(2) + F9(3)
1104-
# 2
1105-
# >>> F9.characteristic()
1106-
# 3
1107-
# >>> F9.degree()
1108-
# 2
1109-
# >>> F9.gen()
1110-
# a
1111-
# >>> a = F9.gen()
1112-
# >>> (1 + a) ** 2 + a
1113-
# a+2
1107+
>>> from flint.types._gr import gr_fq_nmod_ctx
1108+
>>> F9 = gr_fq_nmod_ctx.new(3, 2)
1109+
>>> F9
1110+
gr_fq_nmod_ctx(3, 2)
1111+
>>> F9(2) + F9(3)
1112+
2
1113+
>>> F9.characteristic()
1114+
3
1115+
>>> F9.degree()
1116+
2
1117+
>>> F9.gen()
1118+
a
1119+
>>> a = F9.gen()
1120+
>>> (1 + a) ** 2 + a
1121+
a+2
11141122
"""
11151123
cdef bytes name_b
11161124
cdef char *name_c
@@ -1148,21 +1156,21 @@ cdef class gr_fq_zech_ctx(gr_scalar_ctx):
11481156
def new(p, d, name=None) -> gr_fq_zech_ctx:
11491157
"""Create a new context for finite fields with small characteristic.
11501158

1151-
# >>> from flint.types._gr import gr_fq_zech_ctx
1152-
# >>> F9 = gr_fq_zech_ctx.new(3, 2)
1153-
# >>> F9
1154-
# gr_fq_zech_ctx(3, 2)
1155-
# >>> F9(2) + F9(3) # XXX: Is this correct?
1156-
# a^4
1157-
# >>> F9.characteristic()
1158-
# 3
1159-
# >>> F9.degree()
1160-
# 2
1161-
# >>> F9.gen()
1162-
# a^1
1163-
# >>> a = F9.gen()
1164-
# >>> (1 + a) ** 2 + a # doctest: +SKIP
1165-
# a+2
1159+
>>> from flint.types._gr import gr_fq_zech_ctx
1160+
>>> F9 = gr_fq_zech_ctx.new(3, 2)
1161+
>>> F9
1162+
gr_fq_zech_ctx(3, 2)
1163+
>>> F9(2) + F9(3)
1164+
a^4
1165+
>>> F9.characteristic()
1166+
3
1167+
>>> F9.degree()
1168+
2
1169+
>>> F9.gen()
1170+
a^1
1171+
>>> a = F9.gen()
1172+
>>> (1 + a) ** 2 + a
1173+
a^7
11661174
"""
11671175
cdef bytes name_b
11681176
cdef char *name_c

src/flint/types/acb_theta.pyx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@ from flint.types.acb cimport acb
33
from flint.types.acb_mat cimport acb_mat
44
from flint.flintlib.functions.acb cimport *
55
from flint.flintlib.types.acb cimport (
6-
acb_mat_t,
76
acb_mat_entry,
87
acb_ptr,
9-
acb_srcptr,
108
)
119
from flint.flintlib.functions.acb_mat cimport *
1210
from flint.flintlib.functions.acb_theta cimport *

0 commit comments

Comments
 (0)