Skip to content

Commit cc1fd09

Browse files
committed
Merge pull request #400 from enthought/bugfix/reduce-with-empty-locals
Fix reduction bug with empty LocalArrays.
2 parents c071678 + eb6ea6c commit cc1fd09

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

distarray/dist/distarray.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,9 @@ def inner_fill(arr, value):
269269

270270
def _reduce(self, local_reduce_name, axes=None, dtype=None, out=None):
271271

272+
if any(0 in localshape for localshape in self.get_localshapes()):
273+
raise NotImplementedError("Reduction not implemented for empty LocalArrays")
274+
272275
if out is not None:
273276
_raise_nie()
274277

distarray/dist/tests/test_distarray.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,17 @@ def test_sum_4D_cyclic(self):
547547
assert_allclose(darr_sum.tondarray(), arr_sum)
548548
assert_allclose(darr.sum().tondarray(), arr.sum())
549549

550+
def test_empty_localarray(self):
551+
if len(self.context.targets) < 2:
552+
raise self.skipTest("not enough targets to run test.")
553+
dist = Distribution.from_shape(self.context,
554+
shape=(1,),
555+
dist=('b',),
556+
targets=self.context.targets[:2])
557+
darr = self.context.ones(dist)
558+
self.assertRaises(NotImplementedError, darr.min, ())
559+
self.assertRaises(NotImplementedError, darr.sum, (), {'axis':0})
560+
550561

551562
class TestFromLocalArrays(unittest.TestCase):
552563

0 commit comments

Comments
 (0)