mirror of
https://github.com/google/earthengine-api.git
synced 2025-12-08 19:26:12 +00:00
60 lines
1.4 KiB
Python
60 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
"""Tests for ee.Reducer module."""
|
|
|
|
import json
|
|
|
|
import ee
|
|
from ee import apitestcase
|
|
import unittest
|
|
|
|
TO_LIST = 'Reducer.toList'
|
|
|
|
|
|
class ReducerTest(apitestcase.ApiTestCase):
|
|
|
|
def test_simple(self):
|
|
reducer = ee.Reducer.toList()
|
|
self.assertEqual({'value': 'fakeValue'}, reducer.getInfo())
|
|
|
|
reducer_func = ee.ApiFunction.lookup(TO_LIST)
|
|
self.assertEqual(reducer_func, reducer.func)
|
|
|
|
self.assertFalse(reducer.isVariable())
|
|
self.assertEqual(
|
|
{},
|
|
reducer.args,
|
|
)
|
|
|
|
result = json.loads(reducer.serialize())
|
|
expect = {
|
|
'result': '0',
|
|
'values': {
|
|
'0': {
|
|
'functionInvocationValue': {
|
|
'functionName': TO_LIST,
|
|
'arguments': {},
|
|
}
|
|
}
|
|
},
|
|
}
|
|
self.assertEqual(expect, result)
|
|
|
|
cast_result = json.loads(ee.Reducer(reducer).serialize())
|
|
self.assertEqual(expect, cast_result)
|
|
|
|
def test_no_args(self):
|
|
message = r"missing 1 required positional argument: 'reducer'"
|
|
with self.assertRaisesRegex(TypeError, message):
|
|
ee.Reducer() # pytype: disable=missing-parameter
|
|
|
|
def test_bad_arg_literal(self):
|
|
message = (
|
|
r"Reducer can only be used as a cast to Reducer. Found <class 'int'>\."
|
|
)
|
|
with self.assertRaisesRegex(TypeError, message):
|
|
ee.Reducer(1) # pytype: disable=wrong-arg-types
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|