code: def test_arrow_attributes():
      """Tests if the ArrowVisual performs the required checks for attributes."""
      with TestingCanvas() as c:
          arrow = visuals.Arrow(
              pos=vertices,
              arrow_type="stealth",
              arrows=arrows,
              arrow_size=10,
              color="red",
              connect="segments",
              parent=c.scene,
          )
  
          def size_test():
              arrow.arrow_size = 0.0
  
          def type_test():
              arrow.arrow_type = "random_non_existent"
  
          assert_raises(ValueError, size_test)
  
          assert_raises(ValueError, type_test)
  
file_path: vispy/vispy/visuals/tests/test_arrows.py
imports: import numpy
  from vispy.visuals.line.arrow import ARROW_TYPES
  from vispy.scene import visuals, transforms
  from vispy.testing import requires_application, TestingCanvas, run_tests_if_main, assert_raises, SkipTest, IS_TRAVIS_CI
  from vispy.testing.image_tester import assert_image_approved
label_desc: Use image node_id 4 for calling a global function with example usage: test_arrow_attributes() without return types