code: def test_transforms():
      position = (1, 2, 3)
      focal_point = (4, 5, 6)
      light = pv.Light(position=position)
      light.focal_point = focal_point
  
      trans_array = np.arange(4 * 4).reshape(4, 4)
      trans_matrix = pv.vtkmatrix_from_array(trans_array)
  
      assert light.transform_matrix is None
      light.transform_matrix = trans_array
      assert isinstance(light.transform_matrix, vtk.vtkMatrix4x4)
      array = pv.array_from_vtkmatrix(light.transform_matrix)
      assert np.array_equal(array, trans_array)
      light.transform_matrix = trans_matrix
      matrix = light.transform_matrix
      assert all(
          matrix.GetElement(i, j) == trans_matrix.GetElement(i, j)
          for i in range(4)
          for j in range(4)
      )
  
      linear_trans = trans_array[:-1, :-1]
      shift = trans_array[:-1, -1]
      assert light.position == position
      assert np.allclose(
          light.world_position, linear_trans @ position + shift
      )
      assert light.focal_point == focal_point
      assert np.allclose(
          light.world_focal_point, linear_trans @ focal_point + shift
      )
  
      with pytest.raises(ValueError):
          light.transform_matrix = "invalid"
  
file_path: pyvista/tests/plotting/test_lights.py
imports: import numpy
  import pytest
  import vtk
  import pyvista
label_desc: Use image node_id 6 for calling a global function with example usage: test_transforms() without return types