code: def test_markers_edge_width():
      data = np.random.rand(10, 3)
      edge_width = np.random.rand(10)
      marker = Markers()
  
      with pytest.raises(ValueError):
          marker.set_data(pos=data, edge_width_rel=1, edge_width=1)
  
      marker.set_data(pos=data, edge_width=2)
      marker.set_data(pos=data, edge_width=edge_width)
      with pytest.raises(ValueError):
          marker.set_data(pos=data, edge_width=-1)
  
      marker.set_data(
          pos=data, edge_width_rel=edge_width, edge_width=None
      )
      marker.set_data(
          pos=data, edge_width_rel=edge_width + 1, edge_width=None
      )
      with pytest.raises(ValueError):
          marker.set_data(
              pos=data, edge_width_rel=edge_width - 1, edge_width=None
          )
  
file_path: vispy/vispy/visuals/tests/test_markers.py
imports: import numpy
  import pytest
  from vispy.scene.visuals import Markers
  from vispy.testing import requires_application, TestingCanvas, run_tests_if_main
  from vispy.testing.image_tester import assert_image_approved
label_desc: Use image node_id 2 for calling a global function with example usage: test_markers_edge_width() without return types