You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.7 KiB

  1. import unittest
  2. from nd2reader.artificial import ArtificialND2
  3. from nd2reader.label_map import LabelMap
  4. from nd2reader.raw_metadata import RawMetadata
  5. class TestRawMetadata(unittest.TestCase):
  6. def setUp(self):
  7. self.raw_text, self.locations = ArtificialND2.create_label_map_bytes()
  8. self.label_map = LabelMap(self.raw_text)
  9. self.metadata = RawMetadata(None, self.label_map)
  10. def test_parse_roi_shape(self):
  11. self.assertEqual(self.metadata._parse_roi_shape(3), 'rectangle')
  12. self.assertEqual(self.metadata._parse_roi_shape(9), 'circle')
  13. self.assertIsNone(self.metadata._parse_roi_shape(-1))
  14. def test_parse_roi_type(self):
  15. self.assertEqual(self.metadata._parse_roi_type(3), 'reference')
  16. self.assertEqual(self.metadata._parse_roi_type(2), 'background')
  17. self.assertEqual(self.metadata._parse_roi_type(4), 'stimulation')
  18. self.assertIsNone(self.metadata._parse_roi_type(-1))
  19. def test_dict(self):
  20. self.assertTrue(type(self.metadata.__dict__) is dict)
  21. def test_parsed_metadata(self):
  22. metadata = self.metadata.get_parsed_metadata()
  23. self.assertTrue(type(metadata) is dict)
  24. required_keys = ["height", "width", "date", "fields_of_view", "frames", "z_levels", "total_images_per_channel",
  25. "channels", "pixel_microns"]
  26. for required in required_keys:
  27. self.assertTrue(required in metadata)
  28. # it should now be stored, see if that dict is returned
  29. metadata['height'] = 1
  30. self.metadata._metadata_parsed['height'] = 1
  31. second_metadata = self.metadata.get_parsed_metadata()
  32. self.assertDictEqual(metadata, second_metadata)