diff options
author | Jean-Michel Vedrine <vedrine@vedrine.org> | 2012-09-09 16:54:35 +0200 |
---|---|---|
committer | Jean-Michel Vedrine <vedrine@vedrine.org> | 2012-09-09 16:54:35 +0200 |
commit | 96bee2b33467a1ce54f88c77b8a867ef1f7a9a97 (patch) | |
tree | 27fe7dd14fd3742ad3a9b0eed2b1adbcddd4c3a8 /sage_server.py |
First version of algebra question type initially written by Roger Moore for Moodle 2.3
Diffstat (limited to 'sage_server.py')
-rw-r--r-- | sage_server.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/sage_server.py b/sage_server.py new file mode 100644 index 0000000..8b41bf7 --- /dev/null +++ b/sage_server.py @@ -0,0 +1,29 @@ +#!/usr/bin/env sage -python + +from SimpleXMLRPCServer import SimpleXMLRPCServer + +from sage.all import Sage + +s=Sage() + +server=SimpleXMLRPCServer(("localhost",7777)) +server.register_introspection_functions() + +def full_symbolic_compare(expr1,expr2,vars): + varstr=",".join(vars) + print "Comparing %s to %s with variables %s" % (expr1,expr2,varstr) + s.eval('%s=var("%s")' % (varstr,varstr)) + s.eval("_func=(%s)-(%s)" % (expr1,expr2)) + result=s.eval("_func.simplify_full()") + if result=='0': + print "Equal" + return 0 + else: + print "Not equal" + return 1 + +server.register_function(full_symbolic_compare) + +print full_symbolic_compare('x^2+2*x+1', 'x^2+2*x+1', ['x']) + +server.serve_forever() |