earthengine-api/python/ee/tests/image_converter_test.py
Google Earth Engine Authors e9cc3423fb v0.1.403
PiperOrigin-RevId: 632474175
2024-05-15 17:59:00 +00:00

62 lines
1.8 KiB
Python

#!/usr/bin/env python3
"""Tests for the image_converter module."""
from typing import Optional, Type
from absl.testing import parameterized
import numpy
import unittest
from ee import image_converter
class ImageConverterTest(parameterized.TestCase):
@parameterized.named_parameters(
('np', 'NUMPY_NDARRAY', image_converter.NumPyConverter),
('mixed', 'nUMpy_ndARRAY', None),
('invalid', 'UNKNOWN', None),
)
def test_from_file_format(
self,
data_format: str,
expected: Optional[Type[image_converter.ImageConverter]],
) -> None:
"""Verifies `from_file_format` returns the correct converter class."""
if expected is None:
self.assertIsNone(image_converter.from_file_format(data_format))
else:
self.assertIsInstance(
image_converter.from_file_format(data_format), expected
)
def test_identity_converter(self) -> None:
"""Verifies `IdentityImageConverter` does the correct conversion."""
converter = image_converter.IdentityImageConverter('JPEG')
converted = converter.do_conversion(b'some-jpeg-data')
self.assertEqual(converted, b'some-jpeg-data')
self.assertEqual(converter.expected_data_format(), 'JPEG')
def test_numpy_converter(self) -> None:
"""Verifies `NumPyConverter` does the correct conversion."""
converter = image_converter.NumPyConverter()
image_data = (
b"\x93NUMPY\x01\x00V\x00{'descr': [('b1', '|u1'), ('b3', '|u1')],"
b" 'fortran_order': False, 'shape': (3, 2), }"
b' \n\x01\x03\x01\x03\x01\x03\x01\x03\x01\x03\x01\x03'
)
ndarray = converter.do_conversion(image_data)
expected = numpy.array(
[[(1, 3), (1, 3)], [(1, 3), (1, 3)], [(1, 3), (1, 3)]],
dtype=[('b1', '|u1'), ('b3', '|u1')],
)
numpy.testing.assert_array_equal(ndarray, expected)
if __name__ == '__main__':
unittest.main()