docstr: Test the checks of validity of the inputs to `EmissionAbsorptionRaymarcher`.
docstr_tok: ["Test","the","checks","of","validity","of","the","inputs","to","`","EmissionAbsorptionRaymarcher","`","."]
code: def test_emission_absorption_inputs(self):
      """
      Test the checks of validity of the inputs to `EmissionAbsorptionRaymarcher`.
      """
  
      # init the EA raymarcher
      raymarcher_ea = EmissionAbsorptionRaymarcher()
  
      # bad ways of passing densities and features
      # [rays_densities, rays_features, rays_z]
      bad_inputs = [
          [torch.rand(10, 5, 4), None],
          [torch.Tensor(3)[0], torch.rand(10, 5, 4)],
          [1.0, torch.rand(10, 5, 4)],
          [torch.rand(10, 5, 4), 1.0],
          [torch.rand(10, 5, 4), None],
          [torch.rand(10, 5, 4), torch.rand(10, 5, 4)],
          [torch.rand(10, 5, 4), torch.rand(10, 5, 4, 3)],
          [torch.rand(10, 5, 4, 3), torch.rand(10, 5, 4, 3)],
      ]
  
      for bad_input in bad_inputs:
          with self.assertRaises(ValueError):
              raymarcher_ea(*bad_input)
  
file_path: pytorch3d/tests/test_raymarching.py
imports: import unittest
  import torch
  from pytorch3d.renderer import AbsorptionOnlyRaymarcher, EmissionAbsorptionRaymarcher
  from .common_testing import TestCaseMixin
label_desc: Use image node_id 4 for calling the TestRaymarching obj's underlying member method code with example usage: obj.test_emission_absorption_inputs() without return types