Extend testsuit
This MR extends the test cases of pystencils.
Other changes made in this MR:
- Usage of correct backends for the codegen instead of C Backend for all
- Deletion of unusable function.
- Correction of CUDA and OpenCL Array handler
Merge request reports
Activity
- Resolved by Michael Kuron
added 11 commits
-
8836e8bc...43bdbcb8 - 10 commits from branch
pycodegen:master
- 75d1bce8 - Merge remote-tracking branch 'upstream/master' into Extend_testsuit
-
8836e8bc...43bdbcb8 - 10 commits from branch
added 1 commit
- 20a4cf3a - Removed toml writer and added test cases to json backend
Das Json/toml Zeug kann doch auch weg. Ich habe auch einen debug printer der hinter allen was er printed den Typ hinschreibt (als Kommentar).
Edited by Stephan SeitzIch weiß nicht, ob das in pystencils gehört. Hast du jemals das json gebraucht? Es war ab und zu zum debuggen ganz nett aber wirklich brauchen tut mans nicht.
Der debug printer ist in pystencils_autodiff. FrameworkIntegrationPrinter könnte man auch durch
CBackend
ersetzen. Denke das ist besser, wenn jeder das einfach selber in seinem code hat. Dann kann man in die Kommentare seine eigenen Infos schreiben, die man braucht. Die Implementierung ist auch destruktiv. D.h. einmal den debug printer benutzen heißt, dass man den immer bis zum Python Neustart hat.class DebugFrameworkPrinter(FrameworkIntegrationPrinter): """ Printer with information on nodes inlined in code as comments. Should not be used in production, will modify your SymPy printer, destroy your whole life! """ def __init__(self): super().__init__() self.sympy_printer._old_print = self.sympy_printer._print self.sympy_printer.__class__._print = self._print def _print(self, node): if isinstance(node, sp.Expr): return self.sympy_printer._old_print(node) + f'/* {node.__class__.__name__}: free_symbols: {node.free_symbols} */' # noqa elif isinstance(node, pystencils.astnodes.Node): return super()._print(node) + f'/* {node.__class__.__name__} symbols_undefined: {node.undefined_symbols}, symbols_defined: {node.symbols_defined}, args {[a if isinstance(a,str) else a.__class__.__name__ for a in node.args]} */' # noqa else: return super()._print(node)
Edited by Stephan Seitzmentioned in commit d1f332bd