Example #1
0
    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()
Example #3
0
    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()
Example #5
0
    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):
        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()
Example #7
0
    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()
Example #9
0
    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()
Example #10
0
    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()
Example #12
0
    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()
Example #13
0
    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()
Example #14
0
    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()
Example #16
0
    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_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()
Example #18
0
    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()
Example #19
0
    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()
Example #22
0
    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()
Example #23
0
    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()
Example #24
0
    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()
Example #25
0
    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()
Example #26
0
    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()
Example #27
0
    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()
Example #28
0
    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()
Example #29
0
    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()
Example #30
0
    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()
Example #31
0
 def cb(attr, old, new):
     if cds_data_almost_equal(new, expected):
         div.text = 'True'
Example #32
0
 def cb(attr, old, new):
     try:
         if cds_data_almost_equal(new, expected):
             div.text = 'True'
     except ValueError:
         return
 def cb(attr, old, new):
     if cds_data_almost_equal(new, expected):
         div.text = 'True'