code: def test_orthographic_projection_metadata_field(self):
      metadata = fou3d.OrthographicProjectionMetadata()
      metadata.filepath = "test_path"
      metadata.min_bound = (1, 2, 3)
      metadata.max_bound = (4, 5, 6)
      metadata.width = 100
      metadata.height = 100
  
      dataset = fo.Dataset()
      sample = fo.Sample(
          filepath="some_path.png",
          orthographic_projection_metadata=metadata,
      )
      dataset.add_sample(sample)
      dataset.save()
  
      field = dataset.first()["orthographic_projection_metadata"]
      self.assertEqual(
          field["filepath"],
          "test_path",
      )
  
      # tuples after deserialized are converted into np arrays
      self.assertTrue(np.array_equal(field["min_bound"], (1, 2, 3)))
      self.assertTrue(np.array_equal(field["max_bound"], (4, 5, 6)))
      self.assertEqual(field["width"], 100)
      self.assertEqual(field["height"], 100)
  
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 DataModelTests obj's underlying member method code with example usage: obj.test_orthographic_projection_metadata_field() without return types