code: def test_lasso_select(page, port):
      hv_scatter = Scatter([1, 2, 3]).opts(
          tools=["lasso_select"], active_tools=["lasso_select"]
      )
  
      lasso = Lasso(source=hv_scatter)
  
      pn_scatter = HoloViews(hv_scatter)
  
      serve_and_wait(pn_scatter, port=port)
      page.goto(f"http://localhost:{port}")
  
      hv_plot = page.locator(".bk-events")
  
      expect(hv_plot).to_have_count(1)
  
      bbox = hv_plot.bounding_box()
      hv_plot.click()
  
      page.mouse.move(bbox["x"] + 100, bbox["y"] + 100)
      page.mouse.down()
      page.mouse.move(bbox["x"] + 150, bbox["y"] + 150, steps=5)
      page.mouse.move(bbox["x"] + 50, bbox["y"] + 150, steps=5)
      page.mouse.up()
  
      time.sleep(1)
  
      expected_array = np.array(
          [
              [3.28440367e-01, 2.31836735e00],
              [5.48623853e-01, 2.12244898e00],
              [6.58715596e-01, 2.02448980e00],
              [7.68807339e-01, 1.92653061e00],
              [8.78899083e-01, 1.82857143e00],
              [6.58715596e-01, 1.82857143e00],
              [4.38532110e-01, 1.82857143e00],
              [2.18348624e-01, 1.82857143e00],
              [-1.83486239e-03, 1.82857143e00],
              [-2.00000000e-01, 1.82857143e00],
              [-2.00000000e-01, 1.82857143e00],
          ]
      )
      np.testing.assert_almost_equal(lasso.geometry, expected_array)
  
file_path: holoviews/holoviews/tests/ui/bokeh/test_callback.py
imports: import time
  import numpy
  import pytest
  import panel
  from panel.pane.holoviews import HoloViews
  from panel.tests.util import serve_and_wait, wait_until
  import holoviews
  from holoviews import Curve, DynamicMap, Scatter
  from holoviews.streams import BoundsXY, Lasso, RangeXY
label_desc: Use image node_id 2 for calling a global function with example usage: test_lasso_select(page, port) without return types