earthengine-api/python/ee/tests/reducer_test.py
Google Earth Engine Authors cdfe00b9d8 v0.1.388
PiperOrigin-RevId: 601829646
2024-01-31 22:47:46 +00:00

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()