mirror of
https://github.com/google/earthengine-api.git
synced 2025-12-08 19:26:12 +00:00
118 lines
4.2 KiB
Python
118 lines
4.2 KiB
Python
"""Test for the ee.image module."""
|
|
|
|
|
|
|
|
import unittest
|
|
|
|
import ee
|
|
from ee import apitestcase
|
|
|
|
|
|
class ImageTestCase(apitestcase.ApiTestCase):
|
|
|
|
def testConstructors(self):
|
|
"""Verifies that constructors understand valid parameters."""
|
|
from_constant = ee.Image(1)
|
|
self.assertEquals(ee.ApiFunction.lookup('Image.constant'),
|
|
from_constant.func)
|
|
self.assertEquals({'value': 1}, from_constant.args)
|
|
|
|
from_id = ee.Image('abcd')
|
|
self.assertEquals(ee.ApiFunction.lookup('Image.load'), from_id.func)
|
|
self.assertEquals({'id': 'abcd'}, from_id.args)
|
|
|
|
from_array = ee.Image([1, 2])
|
|
self.assertEquals(ee.ApiFunction.lookup('Image.addBands'), from_array.func)
|
|
self.assertEquals({'dstImg': ee.Image(1), 'srcImg': ee.Image(2)},
|
|
from_array.args)
|
|
|
|
from_computed_object = ee.Image(ee.ComputedObject(None, {'x': 'y'}))
|
|
self.assertEquals({'x': 'y'}, from_computed_object.args)
|
|
|
|
original = ee.Image(1)
|
|
from_other_image = ee.Image(original)
|
|
self.assertEquals(from_other_image, original)
|
|
|
|
from_nothing = ee.Image()
|
|
self.assertEquals(ee.ApiFunction.lookup('Image.mask'), from_nothing.func)
|
|
self.assertEquals({'image': ee.Image(0), 'mask': ee.Image(0)},
|
|
from_nothing.args)
|
|
|
|
from_id_and_version = ee.Image('abcd', 123)
|
|
self.assertEquals(ee.ApiFunction.lookup('Image.load'),
|
|
from_id_and_version.func)
|
|
self.assertEquals({'id': 'abcd', 'version': 123},
|
|
from_id_and_version.args)
|
|
|
|
def testImageSignatures(self):
|
|
"""Verifies that the API functions are added to ee.Image."""
|
|
self.assertTrue(hasattr(ee.Image(1), 'addBands'))
|
|
|
|
def testImperativeFunctions(self):
|
|
"""Verifies that imperative functions return ready values."""
|
|
image = ee.Image(1)
|
|
self.assertEquals({'value': 'fakeValue'}, image.getInfo())
|
|
self.assertEquals({'mapid': 'fakeMapId', 'image': image}, image.getMapId())
|
|
|
|
def testCombine(self):
|
|
"""Verifies the behavior of ee.Image.combine_()."""
|
|
image1 = ee.Image([1, 2])
|
|
image2 = ee.Image([3, 4])
|
|
combined = ee.Image.combine_([image1, image2], ['a', 'b', 'c', 'd'])
|
|
|
|
self.assertEquals(ee.ApiFunction.lookup('Image.select'), combined.func)
|
|
self.assertEquals(['.*'], combined.args['bandSelectors'])
|
|
self.assertEquals(['a', 'b', 'c', 'd'], combined.args['newNames'])
|
|
self.assertEquals(ee.ApiFunction.lookup('Image.addBands'),
|
|
combined.args['input'].func)
|
|
self.assertEquals({'dstImg': image1, 'srcImg': image2},
|
|
combined.args['input'].args)
|
|
|
|
def testDownload(self):
|
|
"""Verifies Download ID and URL generation."""
|
|
url = ee.Image(1).getDownloadUrl()
|
|
|
|
self.assertEquals('/download', self.last_download_call['url'])
|
|
self.assertEquals(
|
|
{
|
|
'image': ee.Image(1).serialize(),
|
|
'json_format': 'v2'
|
|
},
|
|
self.last_download_call['data'])
|
|
self.assertEquals('/api/download?docid=1&token=2', url)
|
|
|
|
def testThumb(self):
|
|
"""Verifies Thumbnail ID and URL generation."""
|
|
url = ee.Image(1).getThumbUrl({'size': [13, 42]})
|
|
|
|
self.assertEquals('/thumb', self.last_thumb_call['url'])
|
|
self.assertEquals(
|
|
{
|
|
'image': ee.Image(1).serialize(),
|
|
'json_format': 'v2',
|
|
'size': '13x42',
|
|
'getid': '1'
|
|
},
|
|
self.last_thumb_call['data'])
|
|
self.assertEquals('/api/thumb?thumbid=3&token=4', url)
|
|
|
|
def testSet(self):
|
|
"""Verifies Image.set() keyword argument interpretation."""
|
|
|
|
def AssertProperties(expected, image):
|
|
self.assertEquals(ee.ApiFunction.lookup('Image.set'), image.func)
|
|
self.assertEquals(expected, image.args['properties'])
|
|
|
|
image = ee.Image(1)
|
|
|
|
AssertProperties({'foo': 'bar'}, image.set({'foo': 'bar'}))
|
|
AssertProperties({'foo': 'bar'}, image.set({'properties': {'foo': 'bar'}}))
|
|
AssertProperties({'properties': 5}, image.set({'properties': 5}))
|
|
AssertProperties({'properties': image}, image.set({'properties': image}))
|
|
AssertProperties({'properties': {'foo': 'bar'}, 'baz': 'quux'},
|
|
image.set({'properties': {'foo': 'bar'}, 'baz': 'quux'}))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|