code: def test_group_projection(self):
      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)
  
      self.write_test_pcd(seed=42)
      fou3d.compute_orthographic_projection_images(
          dataset,
          size=(30, 30),
          output_dir=self.temp_dir.name,
          in_group_slice="pcd",
      )
  
      dataset.group_slice = "pcd"
      pcd_sample = dataset.first()
      self.assertTrue(
          pcd_sample.has_field("orthographic_projection_metadata")
      )
      self.assertValidProjection(
          pcd_sample["orthographic_projection_metadata"],
          get_abs_path("specs/3d/30x30_seed_42_none.png"),
      )
  
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 2 for calling the OrthographicProjectionTests obj's underlying member method code with example usage: obj.test_group_projection() without return types