test_miobase.py 1.3 KB

12345678910111213141516171819202122232425262728293031
  1. """ Testing miobase module
  2. """
  3. import numpy as np
  4. from numpy.testing import assert_equal
  5. from pytest import raises as assert_raises
  6. from scipy.io.matlab.miobase import matdims
  7. def test_matdims():
  8. # Test matdims dimension finder
  9. assert_equal(matdims(np.array(1)), (1, 1)) # numpy scalar
  10. assert_equal(matdims(np.array([1])), (1, 1)) # 1d array, 1 element
  11. assert_equal(matdims(np.array([1,2])), (2, 1)) # 1d array, 2 elements
  12. assert_equal(matdims(np.array([[2],[3]])), (2, 1)) # 2d array, column vector
  13. assert_equal(matdims(np.array([[2,3]])), (1, 2)) # 2d array, row vector
  14. # 3d array, rowish vector
  15. assert_equal(matdims(np.array([[[2,3]]])), (1, 1, 2))
  16. assert_equal(matdims(np.array([])), (0, 0)) # empty 1d array
  17. assert_equal(matdims(np.array([[]])), (0, 0)) # empty 2d
  18. assert_equal(matdims(np.array([[[]]])), (0, 0, 0)) # empty 3d
  19. # Optional argument flips 1-D shape behavior.
  20. assert_equal(matdims(np.array([1,2]), 'row'), (1, 2)) # 1d array, 2 elements
  21. # The argument has to make sense though
  22. assert_raises(ValueError, matdims, np.array([1,2]), 'bizarre')
  23. # Check empty sparse matrices get their own shape
  24. from scipy.sparse import csr_matrix, csc_matrix
  25. assert_equal(matdims(csr_matrix(np.zeros((3, 3)))), (3, 3))
  26. assert_equal(matdims(csc_matrix(np.zeros((2, 2)))), (2, 2))