def test_select_all_backspace(): cursor = Cursor() elems = from_latex("abcd") cursor.reparent(elems, 2) cursor.select_all(elems) cursor.backspace(None) assert len(elems) == 0
def test_add_to_super_before_alternative(cursor): elems = from_latex("xy^{z}") cursor.reparent(elems, 2) cursor.handle_movement(Direction.LEFT, select=True) cursor.insert_superscript_subscript() assert elems.to_latex() == "x^{yz}" assert cursor.owner is elems[1].exponent
def test_delete_into(cursor): elems = from_latex(r"\frac{abc}{def}") cursor.reparent(elems, 0) cursor.backspace(plots.utils.Direction.RIGHT) assert elems.to_latex() == r"\frac{bc}{def}" assert cursor.owner is elems[0].numerator assert cursor.pos == 0
def test_backspace_into(cursor): elems = from_latex(r"\frac{abc}{def}") cursor.reparent(elems, -1) cursor.backspace(plots.utils.Direction.LEFT) assert elems.to_latex() == r"\frac{abc}{de}" assert cursor.owner is elems[0].denominator assert cursor.pos == 2
def test_add_to_super_after(cursor): elems = from_latex("x^{2}2") cursor.reparent(elems, -1) cursor.handle_movement(Direction.LEFT, select=True) cursor.insert_superscript_subscript() assert elems.to_latex() == "x^{22}" assert cursor.owner is elems[1].exponent
def test_calculate_selection_deep(cursor): elems = from_latex(r"x\abs{3}-3\sqrt{\frac{2}{x}}+4") cursor.reparent(elems[1].argument, -1) cursor.secondary_owner = elems[4].radicand[0].denominator cursor.secondary_pos = 0 _range, ancestor = cursor.calculate_selection() assert _range == range(1, 5) assert ancestor is elems
def test_move_to_super_before(cursor): elems = from_latex("x^{2}") cursor.reparent(elems, 1) cursor.insert_superscript_subscript() assert elems.to_latex() == "x^{2}" assert cursor.owner is elems[1].exponent
def test_dissolve(cursor): elems = from_latex(r"\frac{abc}{def}") cursor.reparent(elems[0].numerator, 0) cursor.backspace(plots.utils.Direction.LEFT) assert elems.to_latex() == "abcdef" assert cursor.owner is elems
def test_add_super_to_sub(cursor): elems = from_latex("x_{3}") cursor.reparent(elems, -1) cursor.insert_superscript_subscript(superscript=True) assert elems.to_latex() == "x_{3}^{}" assert cursor.owner is elems[1].exponent
def test_add_sub_to_super(cursor): elems = from_latex("x^{3}") cursor.reparent(elems, -1) cursor.insert_superscript_subscript(superscript=False) assert elems.to_latex() == "x_{}^{3}" assert cursor.owner is elems[1].subscript
def test_delete_sub(cursor): elems = from_latex("x_{4}^{3}") cursor.reparent(elems[1].subscript, 0) cursor.backspace(Direction.LEFT) assert elems.to_latex() == "x4^{3}"
def test_handle_movement_down_out(cursor): elems = from_latex(r"\abs{x}") cursor.reparent(elems[0].argument, -1) cursor.handle_movement(Direction.DOWN) assert cursor.owner is elems assert cursor.pos == 1
def test_greedy_insert_with_parens(cursor): elems = from_latex(r"3(x+1)(x(9-x))-4") cursor.reparent(elems, 6) cursor.greedy_insert(e.Frac) assert elems.to_latex() == r"3\frac{(x+1)}{(x(9-x))}-4"
def do_convert_specials(name): elems = from_latex(name) cursor = Cursor() cursor.reparent(elems, -1) elems.convert_specials(cursor) return elems
def test_insert_empty_super(cursor): elems = from_latex("x") cursor.reparent(elems, -1) cursor.insert_superscript_subscript() assert elems.to_latex() == r"x^{}" assert cursor.owner is elems[1].exponent
def test_move_to_previous_list(cursor): elems = from_latex(r"\frac{3}{2}") cursor.reparent(elems[0].denominator, 0) cursor.handle_movement(Direction.LEFT) assert cursor.owner is elems[0].numerator assert cursor.pos == 1
def test_move_to_next_list(cursor): elems = from_latex(r"\frac{3}{2}") cursor.reparent(elems[0].numerator, -1) cursor.handle_movement(Direction.RIGHT) assert cursor.owner is elems[0].denominator assert cursor.pos == 0
def test_backspace(): cursor = Cursor() elems = from_latex("abcd") cursor.reparent(elems, 2) cursor.backspace(Direction.LEFT) assert elems.to_latex() == "acd"
def test_greedy_insert(cursor): elems = from_latex(r"3\sqrt{x}(x(9-x))-4") cursor.reparent(elems, 2) cursor.greedy_insert(e.Frac) assert elems.to_latex() == r"3\frac{\sqrt{x}}{(x(9-x))}-4"
def test_delete_super(cursor): elems = from_latex("x_{4}^{3}") cursor.reparent(elems[1].exponent, 0) cursor.backspace(Direction.LEFT) assert elems.to_latex() == "x_{4}3"
def test_greedy_insert_with_numbers(cursor): elems = from_latex(r"3.238923829-4") cursor.reparent(elems, 6) cursor.greedy_insert(e.Frac) assert elems.to_latex() == r"\frac{3.2389}{23829}-4"
def test_mouse_select_drag_deep(cursor): elems = from_latex(r"x\abs{3}-3\sqrt{\frac{2}{x}}+4") cursor.reparent(elems[4].radicand[0].denominator, -1) cursor.mouse_select(elems[1].argument[0], Direction.LEFT, drag=True) assert cursor.selection_bounds == range(1, 5) assert cursor.selection_ancestor == elems