コード例 #1
0
def test_01():
    ns = init_testing(False)
    model = ns['model']
    model.remove(0, len(model))
    model.insert(0, TextModel(__doc__))

    text = """Try to edit the following formulas:

        tan(x) = """
    model.insert(len(model), TextModel(text))
    frac = Fraction(Characters(u'sin(x)'), Characters(u'cos(x)'))
    model.insert(len(model), mk_textmodel(frac))
    model.insert(len(model), TextModel("\n\n        "))
    root = Root(Characters(u'2'))
    model.insert(len(model), mk_textmodel(root))
    model.insert(len(model), TextModel("= 1.4142135623730951 ...\n"))
    model.insert(len(model), TextModel("\n\n        "))

    i = len(model)
    root = Root(Characters(u''))
    for j in range(4):
        model.insert(i+j, mk_textmodel(root))
    model.insert(i+4, TextModel("2"))
    model.insert(len(model), TextModel("= 1.04427378243 ...\n"))

    view = ns['view']
    view.index = len(model)
    return ns
コード例 #2
0
def test_02():
    "insert/remove"
    ns = init_testing(False)
    model = ns['model']
    frac = Fraction(Characters(u'Zähler'), Characters(u'Nenner'))
    model.insert(0, mk_textmodel(frac))
    model.insert_text(6, 'test')
    model.remove(6, 7)
コード例 #3
0
def test_00():
    "cell"
    ns = init_testing(False)
    cell = Cell(Characters(u'1234567890'), Characters(u'abcdefghij'))
    assert len(cell.input) == 10
    assert len(cell.output) == 10
    assert len(cell) == 23

    texel = grouped(insert(cell, 1, [Characters(u'x')]))
    assert texel.get_text()[1:2] == u'x'
コード例 #4
0
def test_04():
    ns = init_testing(False)
    model = ns['model']
    frac = Fraction(Characters(u'Zähler'), Characters(u'Nenner'))
    model.insert(0, mk_textmodel(frac))
    root = Root(Characters(u'1+x'))
    model.insert(2, mk_textmodel(root))

    view = ns['view']
    view.index = 5
    view.selection = 3, 6
    return ns
コード例 #5
0
def test_10():
    "Factory"
    ns = init_testing(False)
    cell = Cell(Characters(u'a'), Characters(u'b'))
    factory = Updater(TextModel(''))
    boxes = factory.create_boxes(cell)
    assert len(boxes) == 1
    cellbox = boxes[0]
    assert len(cellbox) == 5
    assert len(cell) == 5

    check_box(cellbox)
    check_box(cellbox.input)
    check_box(cellbox.output)
    return ns
コード例 #6
0
def test_03():
    ns = init_testing(False)
    model = mk_textmodel(Characters('0123456789'))
    frac = mk_textmodel(
        Fraction(Characters(u'Zähler'), Characters(u'Nenner')))
    tmodel = model.get_text()
    tfrac = frac.get_text()
    for i in range(len(tfrac)):
        frac.insert(i, model)

        tmp = tfrac[:i]+tmodel+tfrac[i:]
        #print repr(frac.get_text()), repr(tmp)
        assert tmp == frac.get_text()

        frac.remove(i, i+len(model))
        assert tfrac == frac.get_text()
コード例 #7
0
def test_03():
    "find_cell"
    tmp1 = TextModel(u'for a in range(3):\n    print a')
    tmp2 = TextModel(u'for a in range(10):\n    print a')
    cell1 = Cell(tmp1.texel, Characters(u''))
    cell2 = Cell(tmp2.texel, Characters(u''))

    model = TextModel('')
    model.insert(len(model), mk_textmodel(cell1))
    model.insert(len(model), mk_textmodel(cell2))

    assert find_cell(model.texel, 1) == (0, cell1)
    assert find_cell(model.texel, len(cell1)-1) == (0, cell1)

    assert find_cell(model.texel, len(cell1)) == (len(cell1), cell2)
    assert find_cell(model.texel, len(cell1)+5) == (len(cell1), cell2)
コード例 #8
0
def test_04():
    "copy cells"
    model = TextModel('')
    tmp = TextModel(u'for a in range(5):\n    print a')
    cell = Cell(tmp.texel, Characters(u''))
    model.insert(len(model), mk_textmodel(cell))
    tmp = model.copy(0, len(model))
    model.insert(0, tmp)
コード例 #9
0
def test_05():
    ns = init_testing(True)
    model = ns['model']
    model.remove(0, len(model))
    model.insert_text(0, '\n')

    frac = Fraction(Characters(u'Zähler'), Characters(u'Nenner'))
    model.insert(1, mk_textmodel(frac))
    model.insert_text(1, 'Bruch = ')
    n = len(model)
    root = Root(Characters(u'1+x'))
    model.insert(n, mk_textmodel(root))
    model.insert_text(n, '\nWurzel = ')

    view = ns['view']
    view.index = 5
    view.selection = 3, 6
    return ns
コード例 #10
0
def test_06():
    "Fraction"

    box1 = FractionBox([TextBox(u'Zähler')], [TextBox(u'Nenner')])
    box2 = FractionBox([TextBox(u'Zähler1')], [box1])
    assert box2.depth == box1.height+box1.depth-box1.m/2.

    # Jetzt mit echten Abmessungen
    ns = init_testing(False)
    model = ns['model']
    model.remove(0, len(model))
    frac = Fraction(Characters(u'Zähler'), Characters(u'Nenner'))
    model.insert(0, mk_textmodel(frac))
    model.insert(14, mk_textmodel(frac))

    layout = ns['view'].layout
    box2 = layout.childs[0].childs[0]
    box1 = box2.nominator.content.childs[-1]
    assert box2.depth == box1.height+box1.depth-box1.m/2.

    row = layout.childs[0].childs[0]
    assert row.height == box2.height
    assert row.depth == box2.depth
    return ns
コード例 #11
0
def test_00():
    ns = init_testing(False)
    frac = Fraction(Characters(u'Zähler'), Characters(u'Nenner'))
    factory = Updater(TextModel()) # not very nice
    box = factory.Fraction_handler(frac, 0, len(frac))[0]
    assert len(box) == len(frac)
    assert check_box(box, frac)
    assert check_box(box.nominator)
    assert check_box(box.denominator)

    model = ns['model']
    model.insert(len(model), mk_textmodel(frac))
    #model.texel.dump()

    model.insert_text(0, "x")
    model.remove(0, 1)
    #model.texel.dump()

    model.insert_text(1, "x")
    model.remove(1, 2)
    #model.texel.dump()

    layout = ns['view'].layout
    assert check_box(layout)
コード例 #12
0
def test_11():
    ns = init_testing(True) #False)
    model = ns['model']
    model.remove(0, len(model))
    tmp = TextModel(u'for a in range(25):\n    print a')
    cell = Cell(tmp.texel, Characters(u''))
    model.insert(len(model), mk_textmodel(cell))

    assert model.index2position(0) == (0, 0)
    assert model.index2position(1) == (1, 0)
    cell = model.texel

    assert find_cell(model.texel, 1) == (0, cell)

    view = ns['view']
    view.index = 1
    #print model.texel
    view.execute()

    check_box(view.updater._layout, model.texel)
    return ns
コード例 #13
0
def test_02():
    "execute"
    ns = init_testing(False)
    cell = Cell(Characters(u'1+2'), Characters(u''))
    cell = cell.execute()
    assert cell.output.get_text() == '3'

    cell = Cell(Characters(u'for a in range(2):\n    print a'),
                Characters(u''))
    cell = cell.execute()
    assert cell.output.get_text() == u'0\n1\n'

    cell = Cell(Characters(u'asdsad'), Characters(u''))
    cell = cell.execute()
    #print repr(cell.output.get_text())
    assert cell.output.get_text() == u'  File "input[3]", line 1, ' \
        'in <module>\nNameError: name \'asdsad\' is not defined\n'
コード例 #14
0
    def get_emptychars(self):
        return '(;)'


class Root(Container):
    def __init__(self, content, **kwds):
        self.content = content
        Container.__init__(self, **kwds)

    def get_content(self):
        return [self.content]


def mk_textmodel(texel):
    model = TextModel()
    model.texel = texel
    return model


frac = Fraction(Characters(u'3'), Characters(u'4'))
root = Root(Characters(u'2'))

text = TextModel(u"A text which contains some math\n\n")
text.append(u'f = ')
text.append(mk_textmodel(frac))
text.append(u'\n\n')
text.append(mk_textmodel(root))
text.append(u' = 1.414214 ...')
text.texel.dump()