aboutsummaryrefslogtreecommitdiff
path: root/sage_server.py
diff options
context:
space:
mode:
authorJean-Michel Vedrine <vedrine@vedrine.org>2012-09-09 16:54:35 +0200
committerJean-Michel Vedrine <vedrine@vedrine.org>2012-09-09 16:54:35 +0200
commit96bee2b33467a1ce54f88c77b8a867ef1f7a9a97 (patch)
tree27fe7dd14fd3742ad3a9b0eed2b1adbcddd4c3a8 /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.py29
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()