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
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)
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'
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
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
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()
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)
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)
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
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
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)
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
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'
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()