test_creation_functions.py 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. from numpy.testing import assert_raises
  2. import numpy as np
  3. from .. import all
  4. from .._creation_functions import (
  5. asarray,
  6. arange,
  7. empty,
  8. empty_like,
  9. eye,
  10. full,
  11. full_like,
  12. linspace,
  13. meshgrid,
  14. ones,
  15. ones_like,
  16. zeros,
  17. zeros_like,
  18. )
  19. from .._dtypes import float32, float64
  20. from .._array_object import Array
  21. def test_asarray_errors():
  22. # Test various protections against incorrect usage
  23. assert_raises(TypeError, lambda: Array([1]))
  24. assert_raises(TypeError, lambda: asarray(["a"]))
  25. assert_raises(ValueError, lambda: asarray([1.0], dtype=np.float16))
  26. assert_raises(OverflowError, lambda: asarray(2**100))
  27. # Preferably this would be OverflowError
  28. # assert_raises(OverflowError, lambda: asarray([2**100]))
  29. assert_raises(TypeError, lambda: asarray([2**100]))
  30. asarray([1], device="cpu") # Doesn't error
  31. assert_raises(ValueError, lambda: asarray([1], device="gpu"))
  32. assert_raises(ValueError, lambda: asarray([1], dtype=int))
  33. assert_raises(ValueError, lambda: asarray([1], dtype="i"))
  34. def test_asarray_copy():
  35. a = asarray([1])
  36. b = asarray(a, copy=True)
  37. a[0] = 0
  38. assert all(b[0] == 1)
  39. assert all(a[0] == 0)
  40. a = asarray([1])
  41. b = asarray(a, copy=np._CopyMode.ALWAYS)
  42. a[0] = 0
  43. assert all(b[0] == 1)
  44. assert all(a[0] == 0)
  45. a = asarray([1])
  46. b = asarray(a, copy=np._CopyMode.NEVER)
  47. a[0] = 0
  48. assert all(b[0] == 0)
  49. assert_raises(NotImplementedError, lambda: asarray(a, copy=False))
  50. assert_raises(NotImplementedError,
  51. lambda: asarray(a, copy=np._CopyMode.IF_NEEDED))
  52. def test_arange_errors():
  53. arange(1, device="cpu") # Doesn't error
  54. assert_raises(ValueError, lambda: arange(1, device="gpu"))
  55. assert_raises(ValueError, lambda: arange(1, dtype=int))
  56. assert_raises(ValueError, lambda: arange(1, dtype="i"))
  57. def test_empty_errors():
  58. empty((1,), device="cpu") # Doesn't error
  59. assert_raises(ValueError, lambda: empty((1,), device="gpu"))
  60. assert_raises(ValueError, lambda: empty((1,), dtype=int))
  61. assert_raises(ValueError, lambda: empty((1,), dtype="i"))
  62. def test_empty_like_errors():
  63. empty_like(asarray(1), device="cpu") # Doesn't error
  64. assert_raises(ValueError, lambda: empty_like(asarray(1), device="gpu"))
  65. assert_raises(ValueError, lambda: empty_like(asarray(1), dtype=int))
  66. assert_raises(ValueError, lambda: empty_like(asarray(1), dtype="i"))
  67. def test_eye_errors():
  68. eye(1, device="cpu") # Doesn't error
  69. assert_raises(ValueError, lambda: eye(1, device="gpu"))
  70. assert_raises(ValueError, lambda: eye(1, dtype=int))
  71. assert_raises(ValueError, lambda: eye(1, dtype="i"))
  72. def test_full_errors():
  73. full((1,), 0, device="cpu") # Doesn't error
  74. assert_raises(ValueError, lambda: full((1,), 0, device="gpu"))
  75. assert_raises(ValueError, lambda: full((1,), 0, dtype=int))
  76. assert_raises(ValueError, lambda: full((1,), 0, dtype="i"))
  77. def test_full_like_errors():
  78. full_like(asarray(1), 0, device="cpu") # Doesn't error
  79. assert_raises(ValueError, lambda: full_like(asarray(1), 0, device="gpu"))
  80. assert_raises(ValueError, lambda: full_like(asarray(1), 0, dtype=int))
  81. assert_raises(ValueError, lambda: full_like(asarray(1), 0, dtype="i"))
  82. def test_linspace_errors():
  83. linspace(0, 1, 10, device="cpu") # Doesn't error
  84. assert_raises(ValueError, lambda: linspace(0, 1, 10, device="gpu"))
  85. assert_raises(ValueError, lambda: linspace(0, 1, 10, dtype=float))
  86. assert_raises(ValueError, lambda: linspace(0, 1, 10, dtype="f"))
  87. def test_ones_errors():
  88. ones((1,), device="cpu") # Doesn't error
  89. assert_raises(ValueError, lambda: ones((1,), device="gpu"))
  90. assert_raises(ValueError, lambda: ones((1,), dtype=int))
  91. assert_raises(ValueError, lambda: ones((1,), dtype="i"))
  92. def test_ones_like_errors():
  93. ones_like(asarray(1), device="cpu") # Doesn't error
  94. assert_raises(ValueError, lambda: ones_like(asarray(1), device="gpu"))
  95. assert_raises(ValueError, lambda: ones_like(asarray(1), dtype=int))
  96. assert_raises(ValueError, lambda: ones_like(asarray(1), dtype="i"))
  97. def test_zeros_errors():
  98. zeros((1,), device="cpu") # Doesn't error
  99. assert_raises(ValueError, lambda: zeros((1,), device="gpu"))
  100. assert_raises(ValueError, lambda: zeros((1,), dtype=int))
  101. assert_raises(ValueError, lambda: zeros((1,), dtype="i"))
  102. def test_zeros_like_errors():
  103. zeros_like(asarray(1), device="cpu") # Doesn't error
  104. assert_raises(ValueError, lambda: zeros_like(asarray(1), device="gpu"))
  105. assert_raises(ValueError, lambda: zeros_like(asarray(1), dtype=int))
  106. assert_raises(ValueError, lambda: zeros_like(asarray(1), dtype="i"))
  107. def test_meshgrid_dtype_errors():
  108. # Doesn't raise
  109. meshgrid()
  110. meshgrid(asarray([1.], dtype=float32))
  111. meshgrid(asarray([1.], dtype=float32), asarray([1.], dtype=float32))
  112. assert_raises(ValueError, lambda: meshgrid(asarray([1.], dtype=float32), asarray([1.], dtype=float64)))