143 lines
4.9 KiB
Python
143 lines
4.9 KiB
Python
|
from numpy.testing import assert_raises
|
||
|
import numpy as np
|
||
|
|
||
|
from .. import all
|
||
|
from .._creation_functions import (
|
||
|
asarray,
|
||
|
arange,
|
||
|
empty,
|
||
|
empty_like,
|
||
|
eye,
|
||
|
full,
|
||
|
full_like,
|
||
|
linspace,
|
||
|
meshgrid,
|
||
|
ones,
|
||
|
ones_like,
|
||
|
zeros,
|
||
|
zeros_like,
|
||
|
)
|
||
|
from .._dtypes import float32, float64
|
||
|
from .._array_object import Array
|
||
|
|
||
|
|
||
|
def test_asarray_errors():
|
||
|
# Test various protections against incorrect usage
|
||
|
assert_raises(TypeError, lambda: Array([1]))
|
||
|
assert_raises(TypeError, lambda: asarray(["a"]))
|
||
|
assert_raises(ValueError, lambda: asarray([1.0], dtype=np.float16))
|
||
|
assert_raises(OverflowError, lambda: asarray(2**100))
|
||
|
# Preferably this would be OverflowError
|
||
|
# assert_raises(OverflowError, lambda: asarray([2**100]))
|
||
|
assert_raises(TypeError, lambda: asarray([2**100]))
|
||
|
asarray([1], device="cpu") # Doesn't error
|
||
|
assert_raises(ValueError, lambda: asarray([1], device="gpu"))
|
||
|
|
||
|
assert_raises(ValueError, lambda: asarray([1], dtype=int))
|
||
|
assert_raises(ValueError, lambda: asarray([1], dtype="i"))
|
||
|
|
||
|
|
||
|
def test_asarray_copy():
|
||
|
a = asarray([1])
|
||
|
b = asarray(a, copy=True)
|
||
|
a[0] = 0
|
||
|
assert all(b[0] == 1)
|
||
|
assert all(a[0] == 0)
|
||
|
a = asarray([1])
|
||
|
b = asarray(a, copy=np._CopyMode.ALWAYS)
|
||
|
a[0] = 0
|
||
|
assert all(b[0] == 1)
|
||
|
assert all(a[0] == 0)
|
||
|
a = asarray([1])
|
||
|
b = asarray(a, copy=np._CopyMode.NEVER)
|
||
|
a[0] = 0
|
||
|
assert all(b[0] == 0)
|
||
|
assert_raises(NotImplementedError, lambda: asarray(a, copy=False))
|
||
|
assert_raises(NotImplementedError,
|
||
|
lambda: asarray(a, copy=np._CopyMode.IF_NEEDED))
|
||
|
|
||
|
|
||
|
def test_arange_errors():
|
||
|
arange(1, device="cpu") # Doesn't error
|
||
|
assert_raises(ValueError, lambda: arange(1, device="gpu"))
|
||
|
assert_raises(ValueError, lambda: arange(1, dtype=int))
|
||
|
assert_raises(ValueError, lambda: arange(1, dtype="i"))
|
||
|
|
||
|
|
||
|
def test_empty_errors():
|
||
|
empty((1,), device="cpu") # Doesn't error
|
||
|
assert_raises(ValueError, lambda: empty((1,), device="gpu"))
|
||
|
assert_raises(ValueError, lambda: empty((1,), dtype=int))
|
||
|
assert_raises(ValueError, lambda: empty((1,), dtype="i"))
|
||
|
|
||
|
|
||
|
def test_empty_like_errors():
|
||
|
empty_like(asarray(1), device="cpu") # Doesn't error
|
||
|
assert_raises(ValueError, lambda: empty_like(asarray(1), device="gpu"))
|
||
|
assert_raises(ValueError, lambda: empty_like(asarray(1), dtype=int))
|
||
|
assert_raises(ValueError, lambda: empty_like(asarray(1), dtype="i"))
|
||
|
|
||
|
|
||
|
def test_eye_errors():
|
||
|
eye(1, device="cpu") # Doesn't error
|
||
|
assert_raises(ValueError, lambda: eye(1, device="gpu"))
|
||
|
assert_raises(ValueError, lambda: eye(1, dtype=int))
|
||
|
assert_raises(ValueError, lambda: eye(1, dtype="i"))
|
||
|
|
||
|
|
||
|
def test_full_errors():
|
||
|
full((1,), 0, device="cpu") # Doesn't error
|
||
|
assert_raises(ValueError, lambda: full((1,), 0, device="gpu"))
|
||
|
assert_raises(ValueError, lambda: full((1,), 0, dtype=int))
|
||
|
assert_raises(ValueError, lambda: full((1,), 0, dtype="i"))
|
||
|
|
||
|
|
||
|
def test_full_like_errors():
|
||
|
full_like(asarray(1), 0, device="cpu") # Doesn't error
|
||
|
assert_raises(ValueError, lambda: full_like(asarray(1), 0, device="gpu"))
|
||
|
assert_raises(ValueError, lambda: full_like(asarray(1), 0, dtype=int))
|
||
|
assert_raises(ValueError, lambda: full_like(asarray(1), 0, dtype="i"))
|
||
|
|
||
|
|
||
|
def test_linspace_errors():
|
||
|
linspace(0, 1, 10, device="cpu") # Doesn't error
|
||
|
assert_raises(ValueError, lambda: linspace(0, 1, 10, device="gpu"))
|
||
|
assert_raises(ValueError, lambda: linspace(0, 1, 10, dtype=float))
|
||
|
assert_raises(ValueError, lambda: linspace(0, 1, 10, dtype="f"))
|
||
|
|
||
|
|
||
|
def test_ones_errors():
|
||
|
ones((1,), device="cpu") # Doesn't error
|
||
|
assert_raises(ValueError, lambda: ones((1,), device="gpu"))
|
||
|
assert_raises(ValueError, lambda: ones((1,), dtype=int))
|
||
|
assert_raises(ValueError, lambda: ones((1,), dtype="i"))
|
||
|
|
||
|
|
||
|
def test_ones_like_errors():
|
||
|
ones_like(asarray(1), device="cpu") # Doesn't error
|
||
|
assert_raises(ValueError, lambda: ones_like(asarray(1), device="gpu"))
|
||
|
assert_raises(ValueError, lambda: ones_like(asarray(1), dtype=int))
|
||
|
assert_raises(ValueError, lambda: ones_like(asarray(1), dtype="i"))
|
||
|
|
||
|
|
||
|
def test_zeros_errors():
|
||
|
zeros((1,), device="cpu") # Doesn't error
|
||
|
assert_raises(ValueError, lambda: zeros((1,), device="gpu"))
|
||
|
assert_raises(ValueError, lambda: zeros((1,), dtype=int))
|
||
|
assert_raises(ValueError, lambda: zeros((1,), dtype="i"))
|
||
|
|
||
|
|
||
|
def test_zeros_like_errors():
|
||
|
zeros_like(asarray(1), device="cpu") # Doesn't error
|
||
|
assert_raises(ValueError, lambda: zeros_like(asarray(1), device="gpu"))
|
||
|
assert_raises(ValueError, lambda: zeros_like(asarray(1), dtype=int))
|
||
|
assert_raises(ValueError, lambda: zeros_like(asarray(1), dtype="i"))
|
||
|
|
||
|
def test_meshgrid_dtype_errors():
|
||
|
# Doesn't raise
|
||
|
meshgrid()
|
||
|
meshgrid(asarray([1.], dtype=float32))
|
||
|
meshgrid(asarray([1.], dtype=float32), asarray([1.], dtype=float32))
|
||
|
|
||
|
assert_raises(ValueError, lambda: meshgrid(asarray([1.], dtype=float32), asarray([1.], dtype=float64)))
|