code: def test_eq():
      light = pv.Light()
      other = pv.Light()
      for light_now in light, other:
          for name, value, _ in configuration:
              setattr(light_now, name, value)
  
      assert light == other
  
      # check that changing anything will break equality
      for name, value, _ in configuration:
          original_value = getattr(other, name)
          restore_transform = False
          if value is pv.Light.CAMERA_LIGHT:
              changed_value = pv.Light.HEADLIGHT
              restore_transform = True
          elif isinstance(value, bool):
              changed_value = not value
          elif isinstance(value, (int, float)):
              changed_value = 0
          elif isinstance(value, tuple):
              changed_value = (0.5, 0.5, 0.5)
          else:
              # transform_matrix; value is an ndarray
              changed_value = -value
          setattr(other, name, changed_value)
          assert light != other
          setattr(other, name, original_value)
          if restore_transform:
              # setting the light type cleared the transform
              other.transform_matrix = light.transform_matrix
  
      # sanity check that we managed to restore the original state
      assert light == other
  
      # check None vs transform_matrix case
      other.transform_matrix = None
      assert light != other
  
file_path: pyvista/tests/plotting/test_lights.py
imports: import numpy
  import pytest
  import vtk
  import pyvista
label_desc: Use image node_id 2 for calling a global function with example usage: test_eq() without return types