Spaces:
Sleeping
Sleeping
File size: 1,464 Bytes
6a86ad5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
from sympy.printing.codeprinter import CodePrinter, PrintMethodNotImplementedError
from sympy.core import symbols
from sympy.core.symbol import Dummy
from sympy.testing.pytest import raises
def setup_test_printer(**kwargs):
p = CodePrinter(settings=kwargs)
p._not_supported = set()
p._number_symbols = set()
return p
def test_print_Dummy():
d = Dummy('d')
p = setup_test_printer()
assert p._print_Dummy(d) == "d_%i" % d.dummy_index
def test_print_Symbol():
x, y = symbols('x, if')
p = setup_test_printer()
assert p._print(x) == 'x'
assert p._print(y) == 'if'
p.reserved_words.update(['if'])
assert p._print(y) == 'if_'
p = setup_test_printer(error_on_reserved=True)
p.reserved_words.update(['if'])
with raises(ValueError):
p._print(y)
p = setup_test_printer(reserved_word_suffix='_He_Man')
p.reserved_words.update(['if'])
assert p._print(y) == 'if_He_Man'
def test_issue_15791():
class CrashingCodePrinter(CodePrinter):
def emptyPrinter(self, obj):
raise NotImplementedError
from sympy.matrices import (
MutableSparseMatrix,
ImmutableSparseMatrix,
)
c = CrashingCodePrinter()
# these should not silently succeed
with raises(PrintMethodNotImplementedError):
c.doprint(ImmutableSparseMatrix(2, 2, {}))
with raises(PrintMethodNotImplementedError):
c.doprint(MutableSparseMatrix(2, 2, {}))
|