def _test_backspace_removes_vertex(self, single_plot_page): plot = _make_plot() page = single_plot_page(plot) # ensure drag moves vertex page.double_click_canvas_at_position(200, 200) time.sleep(0.5) page.double_click_canvas_at_position(298, 298) time.sleep(0.5) page.click_canvas_at_position(250, 150) time.sleep(0.5) page.send_keys(u'\ue00c') # Escape page.click_canvas_at_position(298, 298) time.sleep(0.5) page.send_keys(u'\ue003') # Escape page.click_custom_action() expected = { "xs": [[1, 2], [1.6, 2.027027027027027]], "ys": [[1, 1], [1.5, 1.8749999999999998]] } assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_click_does_not_trigger_draw(self, single_plot_page): plot = _make_plot(add=False) page = single_plot_page(plot) # ensure clicking does not add a point page.click_canvas_at_position(200, 200) time.sleep(0.4) # hammerJS click timeout page.click_custom_action() expected = {"x": [1, 2], "y": [1, 1]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_num_object_limits_points(self, single_plot_page) -> None: plot = _make_plot(num_objects=2) page = single_plot_page(plot) # ensure clicking adds a point page.click_canvas_at_position(200, 200) time.sleep(0.4) # hammerJS click timeout page.click_custom_action() expected = {"x": [2, 1.6216216216216217], "y": [1, 1.5]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_drag_triggers_draw(self, single_plot_page): plot = _make_plot() page = single_plot_page(plot) # ensure clicking adds a point page.drag_canvas_at_position(200, 200, 50, 50) page.click_custom_action() expected = {'xs': [[1.6216216216216217, 2.027027027027027, 2.027027027027027, 2.027027027027027]], 'ys': [[1.5, 1.125, 1.125, 1.125]]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_num_object_limits_points(self, single_plot_page): plot = _make_plot(num_objects=2) page = single_plot_page(plot) # ensure clicking adds a point page.click_canvas_at_position(200, 200) time.sleep(0.4) # hammerJS click timeout page.click_custom_action() expected = {"x": [2, 1.6216216216216217], "y": [1, 1.5]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_drag_does_not_move_point(self, single_plot_page) -> None: plot = _make_plot(drag=False) page = single_plot_page(plot) # ensure clicking adds a point page.click_canvas_at_position(200, 200) time.sleep(0.4) # hammerJS click timeout page.drag_canvas_at_position(200, 200, 70, 53) page.click_custom_action() expected = {"x": [1, 2, 1.6216216216216217], "y": [1, 1, 1.5]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_num_object_limits_lines(self, single_plot_page): plot = _make_plot(num_objects=1) page = single_plot_page(plot) # ensure clicking adds a point page.drag_canvas_at_position(200, 200, 50, 50) page.drag_canvas_at_position(100, 100, 100, 100) page.click_custom_action() expected = {'xs': [[0.8108108108108109, 1.6216216216216217, 1.6216216216216217, 1.6216216216216217]], 'ys': [[2.25, 1.5, 1.5, 1.5]]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_click_triggers_draw(self, single_plot_page: SinglePlotPage) -> None: plot = _make_plot() page = single_plot_page(plot) # ensure clicking adds a point page.click_canvas_at_position(plot, 200, 200) time.sleep(0.4) # hammerJS click timeout page.eval_custom_action() expected = {"x": [1, 2, 1.6216216216216217], "y": [1, 1, 1.5]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_shift_drag_triggers_draw(self, single_plot_page) -> None: plot = _make_plot('both') page = single_plot_page(plot) # ensure double clicking added a box page.drag_canvas_at_position(100, 100, 50, 50, mod="\ue008") time.sleep(0.5) page.click_custom_action() expected = {"x": [1, 2, 1.0135135135135136], "y": [1, 1, 2.0625], "width": [0.5, 0.5, 0.4054054054054054], "height": [0.5, 0.5, 0.3750000000000002]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_double_click_triggers_draw(self, single_plot_page): plot = _make_plot() page = single_plot_page(plot) # ensure double clicking adds a poly page.double_click_canvas_at_position(200, 200) page.double_click_canvas_at_position(300, 300) time.sleep(0.5) page.click_custom_action() expected = {"xs": [[1, 2], [1.6216216216216217, 2.4324324324324325]], "ys": [[1, 1], [1.5, 0.75]]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_double_click_triggers_draw(self, single_plot_page) -> None: plot = _make_plot() page = single_plot_page(plot) # ensure double clicking adds a poly page.double_click_canvas_at_position(200, 200) page.double_click_canvas_at_position(300, 300) time.sleep(0.5) page.click_custom_action() expected = {"xs": [[1, 2], [1.6216216216216217, 2.4324324324324325]], "ys": [[1, 1], [1.5, 0.75]]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_shift_drag_triggers_draw(self, single_plot_page): plot = _make_plot('both') page = single_plot_page(plot) # ensure double clicking added a box page.drag_canvas_at_position(100, 100, 50, 50, mod=u'\ue008') time.sleep(0.5) page.click_custom_action() expected = {"x": [1, 2, 1.0135135135135136], "y": [1, 1, 2.0625], "width": [0.5, 0.5, 0.4054054054054054], "height": [0.5, 0.5, 0.3750000000000002]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_drag_moves_point(self, single_plot_page): plot = _make_plot() page = single_plot_page(plot) # ensure clicking adds a point page.click_canvas_at_position(200, 200) time.sleep(0.4) # hammerJS click timeout page.drag_canvas_at_position(200, 200, 70, 53) page.click_custom_action() expected = {"x": [1, 2, 2.1891891891891895], "y": [1, 1, 1.1024999999999998]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_drag_does_not_move_point(self, single_plot_page): plot = _make_plot(drag=False) page = single_plot_page(plot) # ensure clicking adds a point page.click_canvas_at_position(200, 200) time.sleep(0.4) # hammerJS click timeout page.drag_canvas_at_position(200, 200, 70, 53) page.click_custom_action() expected = {"x": [1, 2, 1.6216216216216217], "y": [1, 1, 1.5]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_num_object_limits_multi_lines(self, single_plot_page): plot = _make_plot(num_objects=1) page = single_plot_page(plot) # ensure clicking adds a point page.double_click_canvas_at_position(200, 200) page.double_click_canvas_at_position(300, 300) time.sleep(0.4) # hammerJS click timeout page.drag_canvas_at_position(200, 200, 70, 50) page.click_custom_action() expected = {"xs": [[2.1891891891891895, 3]], "ys": [[1.125, 0.375]]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_drag_does_not_move_multi_line(self, single_plot_page) -> None: plot = _make_plot(drag=False) page = single_plot_page(plot) # ensure clicking adds a point page.double_click_canvas_at_position(200, 200) page.double_click_canvas_at_position(300, 300) time.sleep(0.4) # hammerJS click timeout page.drag_canvas_at_position(200, 200, 70, 53) page.click_custom_action() expected = {"xs": [[1, 2], [1.6216216216216217, 2.4324324324324325]], "ys": [[1, 1], [1.5, 0.75]] } assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_num_objects_limits_drawn_boxes(self, single_plot_page): plot = _make_plot('both', num_objects=2) page = single_plot_page(plot) # ensure double clicking added a box page.drag_canvas_at_position(100, 100, 50, 50, mod=u'\ue008') time.sleep(0.5) page.click_custom_action() expected = {"x": [2, 1.0135135135135136], "y": [1, 2.0625], "width": [0.5, 0.4054054054054054], "height": [0.5, 0.3750000000000002]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_drag_does_not_move_multi_line(self, single_plot_page): plot = _make_plot(drag=False) page = single_plot_page(plot) # ensure clicking adds a point page.double_click_canvas_at_position(200, 200) page.double_click_canvas_at_position(300, 300) time.sleep(0.4) # hammerJS click timeout page.drag_canvas_at_position(200, 200, 70, 53) page.click_custom_action() expected = {"xs": [[1, 2], [1.6216216216216217, 2.4324324324324325]], "ys": [[1, 1], [1.5, 0.75]] } assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_click_snaps_to_vertex(self, single_plot_page): plot = _make_plot(vertices=True) page = single_plot_page(plot) # ensure double clicking adds a poly page.double_click_canvas_at_position(200, 200) page.click_canvas_at_position(300, 300) time.sleep(0.5) page.double_click_canvas_at_position(201, 201) time.sleep(0.5) page.click_custom_action() expected = {"xs": [[1, 2], [1.6216216216216217, 2.4324324324324325, 1.6216216216216217]], "ys": [[1, 1], [1.5, 0.75, 1.5]]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def _test_double_click_triggers_edit(self, single_plot_page): plot = _make_plot() page = single_plot_page(plot) # ensure double clicking shows vertices and edits them page.double_click_canvas_at_position(200, 200) time.sleep(0.5) page.double_click_canvas_at_position(298, 298) time.sleep(0.5) page.double_click_canvas_at_position(250, 150) time.sleep(0.5) page.click_custom_action() expected = {'xs': [[1, 2], [1.6, 2.45, 2.027027027027027, 1.6]], 'ys': [[1, 1], [1.5, 0.75, 1.8749999999999998, 1.5]]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_double_click_triggers_draw(self, single_plot_page): plot = _make_plot('both') page = single_plot_page(plot) # ensure double clicking added a box page.double_click_canvas_at_position(100, 100) time.sleep(0.5) page.double_click_canvas_at_position(200, 200) time.sleep(0.5) page.click_custom_action() expected = {"x": [1, 2, 1.2162162162162162], "y": [1, 1, 1.875], "width": [0.5, 0.5, 0.8108108108108109], "height": [0.5, 0.5, 0.75]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_double_click_triggers_draw(self, single_plot_page) -> None: plot = _make_plot('both') page = single_plot_page(plot) # ensure double clicking added a box page.double_click_canvas_at_position(100, 100) time.sleep(0.5) page.double_click_canvas_at_position(200, 200) time.sleep(0.5) page.click_custom_action() expected = {"x": [1, 2, 1.2162162162162162], "y": [1, 1, 1.875], "width": [0.5, 0.5, 0.8108108108108109], "height": [0.5, 0.5, 0.75]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_drag_moves_multi_line(self, single_plot_page: SinglePlotPage) -> None: plot = _make_plot() page = single_plot_page(plot) # ensure clicking adds a point page.double_click_canvas_at_position(plot, 200, 200) page.double_click_canvas_at_position(plot, 300, 300) time.sleep(0.4) # hammerJS click timeout page.drag_canvas_at_position(plot, 200, 200, 70, 50) page.eval_custom_action() expected = { "xs": [[1, 2], [2.1891891891891895, 3]], "ys": [[1, 1], [1.125, 0.375]] } assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_backspace_deletes_drawn_box(self, single_plot_page): plot = _make_plot('both', num_objects=2) page = single_plot_page(plot) # ensure backspace deletes box page.double_click_canvas_at_position(100, 100) time.sleep(0.5) page.double_click_canvas_at_position(200, 200) time.sleep(0.5) page.click_canvas_at_position(150, 150) time.sleep(0.5) page.send_keys(u'\ue003') # Backspace time.sleep(0.5) page.click_custom_action() expected = {"x": [2], "y": [1], "width": [0.5], "height": [0.5]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def _test_double_click_snaps_to_vertex(self, single_plot_page): plot = _make_plot() page = single_plot_page(plot) # ensure double clicking snaps to vertex page.double_click_canvas_at_position(200, 200) time.sleep(0.5) page.double_click_canvas_at_position(298, 298) time.sleep(0.5) page.click_canvas_at_position(250, 150) time.sleep(0.5) page.double_click_canvas_at_position(200, 200) time.sleep(0.5) page.click_custom_action() expected = {"xs": [[1, 2], [1.6, 2.45, 2.027027027027027, 1.6]], "ys": [[1, 1], [1.5, 0.75, 1.8749999999999998, 1.5]]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_backspace_deletes_drawn_box(self, single_plot_page) -> None: plot = _make_plot('both', num_objects=2) page = single_plot_page(plot) # ensure backspace deletes box page.double_click_canvas_at_position(100, 100) time.sleep(0.5) page.double_click_canvas_at_position(200, 200) time.sleep(0.5) page.click_canvas_at_position(150, 150) time.sleep(0.5) page.send_keys("\ue003") # Backspace time.sleep(0.5) page.click_custom_action() expected = {"x": [2], "y": [1], "width": [0.5], "height": [0.5]} assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_drag_moves_box(self, single_plot_page: SinglePlotPage) -> None: plot = _make_plot('both') page = single_plot_page(plot) # ensure double clicking added a box page.double_click_canvas_at_position(plot, 100, 100) time.sleep(0.5) page.double_click_canvas_at_position(plot, 200, 200) time.sleep(0.5) page.drag_canvas_at_position(plot, 150, 150, 50, 50) time.sleep(0.5) page.eval_custom_action() expected = { "x": [1, 2, 1.6216216216216217], "y": [1, 1, 1.5000000000000002], "width": [0.5, 0.5, 0.8108108108108109], "height": [0.5, 0.5, 0.75] } assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def test_drag_moves_vertex(self, single_plot_page): plot = _make_plot() page = single_plot_page(plot) # ensure drag moves vertex page.double_click_canvas_at_position(200, 200) time.sleep(0.5) page.double_click_canvas_at_position(298, 298) time.sleep(0.5) page.click_canvas_at_position(250, 150) time.sleep(0.5) page.send_keys("\ue00c") # Escape page.drag_canvas_at_position(250, 150, 70, 50) time.sleep(0.5) page.click_custom_action() expected = { "xs": [[1, 2], [1.6, 2.45, 2.5945945945945947]], "ys": [[1, 1], [1.5, 0.75, 1.5]] } assert cds_data_almost_equal(page.results, expected) assert page.has_no_console_errors()
def cb(attr, old, new): if cds_data_almost_equal(new, expected): div.text = 'True'
def cb(attr, old, new): try: if cds_data_almost_equal(new, expected): div.text = 'True' except ValueError: return