1
1
import sys
2
2
import unittest
3
- from collections import OrderedDict as odict
3
+ from collections import OrderedDict as odict , namedtuple as ntuple
4
4
from dynd import nd , ndt
5
5
6
- @unittest .skip ('Test disabled since callables were reworked' )
6
+ # @unittest.skip('Test disabled since callables were reworked')
7
7
class TestArraySetItem (unittest .TestCase ):
8
8
9
9
def test_strided_dim (self ):
10
10
a = nd .empty (100 , ndt .int32 )
11
11
a [...] = nd .range (100 )
12
12
a [0 ] = 1000
13
13
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 )
14
+ # Next line causes a crash.
15
+ #a[1:8:3] = 120
16
+ #self.assertEqual(nd.as_py(a[:11]),
17
+ # [1000, 120, 2, 3, 120, 5, 6, 120, 8, 9, 10])
18
+ #a[5:2:-1] = [-10, -20, -30]
19
+ #self.assertEqual(nd.as_py(a[:11]),
20
+ # [1000, 120, 2, -30, -20, -10, 6, 120, 8, 9, 10])
21
+ #a[1] = False
22
+ #self.assertEqual(nd.as_py(a[1]), 0)
23
+ #a[2] = True
24
+ #self.assertEqual(nd.as_py(a[2]), 1)
25
+ #a[3] = -10.0
26
+ #self.assertEqual(nd.as_py(a[3]), -10)
26
27
27
28
# Should the following even be supported?
28
29
# a[4] = 101.0 + 0j
29
30
# self.assertEqual(nd.as_py(a[4]), 101)
30
31
31
- # Todo: Add to this test when structs can assign to named tuples.
32
32
def test_assign_to_struct (self ):
33
33
value = [(8 , u'world' , 4.5 ), (16 , u'!' , 8.75 )]
34
34
# Assign list of tuples
@@ -44,7 +44,13 @@ def test_assign_to_struct(self):
44
44
self .assertEqual (nd .as_py (a ), out_val )
45
45
# Assign a list of OrderedDicts
46
46
a = nd .empty ('2 * { i : int32, msg : string, price : float64 }' )
47
- a [:] = odict ([zip (keys , vals ) for vals in value ])
47
+ a [:] = [odict (zip (keys , vals )) for vals in value ]
48
+ self .assertEqual (nd .as_py (a ), out_val )
49
+ # Assign a list of namedtuples
50
+ named_class = ntuple ('named_class' , ['i' , 'msg' , 'price' ])
51
+ nt_vals = [named_class (* item ) for item in value ]
52
+ a = nd .empty ('2 * { i : int32, msg : string, price : float64 }' )
53
+ a [:] = nt_vals
48
54
self .assertEqual (nd .as_py (a ), out_val )
49
55
50
56
if __name__ == '__main__' :
0 commit comments