Skip to content

Commit

Permalink
Detect invalid stride test, make test asymmetric
Browse files Browse the repository at this point in the history
Add tests with failures under current master due to the invalid strides
set in the test code buffer protocol.
  • Loading branch information
jagerman committed Sep 21, 2017
1 parent 1c38644 commit ebc8abe
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions tests/test_buffers.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,17 +36,21 @@ def test_from_python():
# https://bitbucket.org/pypy/pypy/issues/2444
@pytest.unsupported_on_pypy
def test_to_python():
mat = m.Matrix(5, 5)
assert memoryview(mat).shape == (5, 5)
mat = m.Matrix(5, 4)
assert memoryview(mat).shape == (5, 4)

assert mat[2, 3] == 0
mat[2, 3] = 4
mat[2, 3] = 4.0
mat[3, 2] = 7.0
assert mat[2, 3] == 4
assert mat[3, 2] == 7
assert struct.unpack_from('f', mat, (3 * 4 + 2) * 4) == (7, )
assert struct.unpack_from('f', mat, (2 * 4 + 3) * 4) == (4, )

mat2 = np.array(mat, copy=False)
assert mat2.shape == (5, 5)
assert abs(mat2).sum() == 4
assert mat2[2, 3] == 4
assert mat2.shape == (5, 4)
assert abs(mat2).sum() == 11
assert mat2[2, 3] == 4 and mat2[3, 2] == 7
mat2[2, 3] = 5
assert mat2[2, 3] == 5

Expand All @@ -58,7 +62,7 @@ def test_to_python():
del mat2 # holds a mat reference
pytest.gc_collect()
assert cstats.alive() == 0
assert cstats.values() == ["5x5 matrix"]
assert cstats.values() == ["5x4 matrix"]
assert cstats.copy_constructions == 0
# assert cstats.move_constructions >= 0 # Don't invoke any
assert cstats.copy_assignments == 0
Expand Down

0 comments on commit ebc8abe

Please sign in to comment.