Esempio n. 1
0
def make_q(new_quest):
    """ need a new question, make one """
    if new_quest:
        x_alg = Algebra()
        x_alg.make_question()
        session['_alg_obj']=pickle.dumps(x_alg,-1)
    else:
        x_alg = pickle.loads(session['_alg_obj'])

    if x_alg.variable['q_type'] == 1:
        syslog.syslog(
            "Algebra: New simultaneous equations { Q1: %s, Q2: %s, X = %s, Y = %s } from %s" % (
                x_alg.variable['disp1'],
                x_alg.variable['disp2'],
                x_alg.variable['x'],
                x_alg.variable['y'],
                request.environ['REMOTE_ADDR']
               )
        )
        syslog.syslog("Q1: %s" % (x_alg.variable['disp1']))
        syslog.syslog("Q2: %s" % (x_alg.variable['disp2']))
        syslog.syslog("X: %s" % (x_alg.variable['x']))
        syslog.syslog("Y: %s" % (x_alg.variable['y']))
    elif x_alg.variable['q_type'] == 2:
        syslog.syslog(
            "Algebra: New expand / simplify { Q: %s, X^2 = %s, XY = %s, Y^2 = %s } from %s" % (
                x_alg.variable['exp_question'],
                x_alg.variable['x_squared'],
                x_alg.variable['x_y'],
                x_alg.variable['y_squared'],
                request.environ['REMOTE_ADDR']
              )
        )
        syslog.syslog("Q: %s" % (x_alg.variable['exp_question']))
        syslog.syslog("X^2: %s" % (x_alg.variable['x_squared']))
        syslog.syslog("XY: %s" % (x_alg.variable['x_y']))
        syslog.syslog("Y^2: %s" % (x_alg.variable['y_squared']))
    elif x_alg.variable['q_type'] == 3:
        syslog.syslog(
            "Algebra: New heron { (%d,%d,%d), p = %f, A = %s } from %s" % (
                x_alg.variable['side'][0],
                x_alg.variable['side'][1],
                x_alg.variable['side'][2],
                x_alg.variable['perm'],
                x_alg.variable['heron'],
                request.environ['REMOTE_ADDR']
            )
        )

    return x_alg
from algebra import Algebra
from node import Kind


def isConnected(const, term):
    for i in range(len(term.data)):
        if term.data[i] == const.data[i]:
            return True

    return False


pos_data = ["1100", "0011"]
neg_data = ["1010", "1000", "0010", "0101"]
constants = ["0---", "-0--", "--0-", "---0", "1---", "-1--", "--1-", "---1"]

algebra = Algebra()
algebra.insert_data(pos_data, neg_data, constants, isConnected)
algebra.mini_preprocessing_step()

algebra.enforce_negative_trace_constraints()
algebra.enforce_positive_trace_constraints()

print("all done")