code: def test_params_validation(self):
      dataset = fo.Dataset()
  
      non_group_samples = [fo.Sample(filepath="test.jpg")]
      dataset.add_samples(non_group_samples)
  
      # if media type is not group, usage of group params should throw an
      # error
      with self.assertRaisesRegex(ValueError, ".*media type.*"):
          fou3d.compute_orthographic_projection_images(
              dataset,
              size=(100, 100),
              in_group_slice="nonexistent_slice",
              output_dir=self.temp_dir.name,
          )
  
      with self.assertRaisesRegex(ValueError, ".*media type.*"):
          fou3d.compute_orthographic_projection_images(
              dataset,
              size=(100, 100),
              out_group_slice="nonexistent_slice",
              output_dir=self.temp_dir.name,
          )
  
      dataset = fo.Dataset()
  
      group = fo.Group()
      group_samples = [
          fo.Sample(
              filepath="image.jpg", group_field=group.element("image")
          ),
          fo.Sample(
              filepath=self.test_pcd_path,
              group_field=group.element("pcd"),
          ),
      ]
      dataset.add_samples(group_samples)
  
      # if media type is group, in_group_slice should be valid, or omitted to
      # be implicitly derived
  
      # throws with wrong slice
      with self.assertRaisesRegex(ValueError, ".*media type.*"):
          fou3d.compute_orthographic_projection_images(
              dataset,
              size=(100, 100),
              in_group_slice="image",
              output_dir=self.temp_dir.name,
          )
  
      # throws with invalid slice
      with self.assertRaisesRegex(ValueError, ".*has no group slice.*"):
          fou3d.compute_orthographic_projection_images(
              dataset,
              size=(100, 100),
              in_group_slice="invalid_slice",
              output_dir=self.temp_dir.name,
          )
  
      # throws if both height and width are undefined
      with self.assertRaises(ValueError):
          fou3d.compute_orthographic_projection_images(
              dataset,
              size=(-1, -1),
              output_dir=self.temp_dir.name,
          )
  
imports: import os
  import tempfile
  import unittest
  import numpy
  import open3d
  from PIL import Image
  import fiftyone
  import fiftyone.utils.utils3d
  from decorators import drop_datasets
label_desc: Use image node_id 1 for calling the OrthographicProjectionTests obj's underlying member method code with example usage: obj.test_params_validation() without return types