code: def test_scrv003_virtualization_keeps_selection(test, props):
      test.start_server(get_app(props))
  
      target = test.table("table")
      target.cell(0, 0).click()
  
      with test.hold(Keys.SHIFT):
          target.cell(2, 2).click()
  
      for row in range(3):
          for col in range(3):
              assert target.cell(row, col).is_selected()
  
      scroll_table_by(test, 2000)
      for row in range(3):
          for col in range(3):
              wait.until(lambda: not target.cell(row, col).exists(), 3)
  
      scroll_table_by(test, -2000)
      for row in range(3):
          for col in range(3):
              assert target.cell(row, col).is_selected()
  
      assert test.get_log_errors() == []
  
file_path: dash/components/dash-table/tests/selenium/test_scrolling2.py
imports: import dash
  from dash.testing import wait
  from selenium.webdriver.common.keys import Keys
  from utils import basic_modes, get_props, generate_mock_data, generate_markdown_mock_data, generate_mixed_markdown_data
  from dash.dash_table import DataTable
  import pytest
label_desc: Use image node_id 6 for calling a global function with example usage: test_scrv003_virtualization_keeps_selection(test, props) without return types