code: def test_from_vtk():
      vtk_light = vtk.vtkLight()
  
      # set the vtk light
      for _, value, vtkname in configuration:
          vtk_setter = getattr(vtk_light, vtkname)
          if isinstance(value, np.ndarray):
              # we can't pass the array to vtkLight directly
              value = pv.vtkmatrix_from_array(value)
          vtk_setter(value)
      light = pv.Light.from_vtk(vtk_light)
      for pvname, value, _ in configuration:
          if isinstance(value, np.ndarray):
              trans_arr = pv.array_from_vtkmatrix(
                  getattr(light, pvname)
              )
              assert np.array_equal(trans_arr, value)
          else:
              assert getattr(light, pvname) == value
  
      # invalid case
      with pytest.raises(TypeError):
          pv.Light.from_vtk("invalid")
      with pytest.raises(TypeError):
          pv.Light("invalid")
  
file_path: pyvista/tests/plotting/test_lights.py
imports: import numpy
  import pytest
  import vtk
  import pyvista
label_desc: Use image node_id 14 for calling a global function with example usage: test_from_vtk() without return types