Skip to content

Commit 228ac7e

Browse files
committed
Test errors slicing matrix
1 parent f2a29b6 commit 228ac7e

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

src/matrix/matrix.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,10 @@ def __setitem__(
9090
raise ValueError
9191
if not all(isinstance(val, list) for val in value):
9292
raise ValueError
93-
if not all(len(val) == key[0].stop - key[0].start for val in value):
94-
raise ValueError
9593
if key[1].stop - key[1].start != len(value):
9694
raise ValueError
95+
if not all(len(val) == key[0].stop - key[0].start for val in value):
96+
raise ValueError
9797
for j, val in zip(range(key[1].start, key[1].stop), value):
9898
self._values[j][key[0]] = val
9999

tests/test_matrix.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,19 @@ def test_set_both(self):
256256
assert self.m == [[0, 1, 2, 3], [4, -1, -2, 7], [8, -3, -4, 11], [12, -5, -6, 15], [16, 17, 18, 19]]
257257

258258
def test_index_error(self):
259-
pass
259+
def set_val(index, value):
260+
self.m[index] = value
261+
self.assertRaises(NotImplementedError, lambda: set_val((slice(None, None, -1), 1), [1,2,3]))
262+
self.assertRaises(NotImplementedError, lambda: set_val((slice(1, 2), slice(None, None, 2)), [1,2,3]))
263+
self.assertRaises(ValueError, lambda: set_val((1, slice(1, 2)), 123))
264+
self.assertRaises(ValueError, lambda: set_val((slice(1, 2), 2), 123))
265+
self.assertRaises(ValueError, lambda: set_val((1, slice(1, 3)), [1, 2, 3]))
266+
self.assertRaises(ValueError, lambda: set_val((slice(1, 3), 2), [1, 2, 3]))
267+
self.assertRaises(ValueError, lambda: set_val((slice(1, 2), slice(1, 2)), 123))
268+
self.assertRaises(ValueError, lambda: set_val((slice(1, 2), slice(1, 2)), [1, 2]))
269+
self.assertRaises(ValueError, lambda: set_val((slice(1, 2), slice(1, 2)), [1]))
270+
self.assertRaises(ValueError, lambda: set_val((slice(1, 2), slice(1, 2)), [[1, 2]]))
271+
self.assertRaises(ValueError, lambda: set_val((slice(1, 2), slice(1, 2)), [[1, 2], [1, 2]]))
260272

261273
def test_minor(self):
262274
assert self.m3.get_minor(0, 0) == Matrix(2, 2, [[4, 5], [7, 8]])

0 commit comments

Comments
 (0)