Skip to content

Commit 9acc477

Browse files
Uncomment and add to test for assigning to tuples.
1 parent 78c3c72 commit 9acc477

File tree

1 file changed

+21
-16
lines changed

1 file changed

+21
-16
lines changed

dynd/nd/test/test_array_setitem.py

+21-16
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,33 @@
11
import sys
22
import unittest
3-
from collections import OrderedDict as odict
3+
from collections import OrderedDict as odict, namedtuple as ntuple
44
from dynd import nd, ndt
55

6-
@unittest.skip('Test disabled since callables were reworked')
76
class TestArraySetItem(unittest.TestCase):
87

98
def test_strided_dim(self):
109
a = nd.empty(100, ndt.int32)
1110
a[...] = nd.range(100)
1211
a[0] = 1000
1312
self.assertEqual(nd.as_py(a[0]), 1000)
14-
a[1:8:3] = 120
15-
self.assertEqual(nd.as_py(a[:11]),
16-
[1000, 120, 2, 3, 120, 5, 6, 120, 8, 9, 10])
17-
a[5:2:-1] = [-10, -20, -30]
18-
self.assertEqual(nd.as_py(a[:11]),
19-
[1000, 120, 2, -30, -20, -10, 6, 120, 8, 9, 10])
20-
a[1] = False
21-
self.assertEqual(nd.as_py(a[1]), 0)
22-
a[2] = True
23-
self.assertEqual(nd.as_py(a[2]), 1)
24-
a[3] = -10.0
25-
self.assertEqual(nd.as_py(a[3]), -10)
13+
# Next line causes a crash.
14+
#a[1:8:3] = 120
15+
#self.assertEqual(nd.as_py(a[:11]),
16+
# [1000, 120, 2, 3, 120, 5, 6, 120, 8, 9, 10])
17+
#a[5:2:-1] = [-10, -20, -30]
18+
#self.assertEqual(nd.as_py(a[:11]),
19+
# [1000, 120, 2, -30, -20, -10, 6, 120, 8, 9, 10])
20+
#a[1] = False
21+
#self.assertEqual(nd.as_py(a[1]), 0)
22+
#a[2] = True
23+
#self.assertEqual(nd.as_py(a[2]), 1)
24+
#a[3] = -10.0
25+
#self.assertEqual(nd.as_py(a[3]), -10)
2626

2727
# Should the following even be supported?
2828
# a[4] = 101.0 + 0j
2929
# self.assertEqual(nd.as_py(a[4]), 101)
3030

31-
# Todo: Add to this test when structs can assign to named tuples.
3231
def test_assign_to_struct(self):
3332
value = [(8, u'world', 4.5), (16, u'!', 8.75)]
3433
# Assign list of tuples
@@ -44,7 +43,13 @@ def test_assign_to_struct(self):
4443
self.assertEqual(nd.as_py(a), out_val)
4544
# Assign a list of OrderedDicts
4645
a = nd.empty('2 * { i : int32, msg : string, price : float64 }')
47-
a[:] = odict([zip(keys, vals) for vals in value])
46+
a[:] = [odict(zip(keys, vals)) for vals in value]
47+
self.assertEqual(nd.as_py(a), out_val)
48+
# Assign a list of namedtuples
49+
named_class = ntuple('named_class', ['i', 'msg', 'price'])
50+
nt_vals = [named_class(*item) for item in value]
51+
a = nd.empty('2 * { i : int32, msg : string, price : float64 }')
52+
a[:] = nt_vals
4853
self.assertEqual(nd.as_py(a), out_val)
4954

5055
if __name__ == '__main__':

0 commit comments

Comments
 (0)