summaryrefslogtreecommitdiff
path: root/numpy/array_api/tests/test_creation_functions.py
blob: 654f1d9b310722d1c18644a7529f2fffe7d6ee50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
from numpy.testing import assert_raises
import numpy as np

from .. import all
from .._creation_functions import (asarray, arange, empty, empty_like, eye, from_dlpack, full, full_like, linspace, meshgrid, ones, ones_like, zeros, zeros_like)
from .._array_object import Array
from .._dtypes import (_all_dtypes, _boolean_dtypes, _floating_dtypes,
                       _integer_dtypes, _integer_or_boolean_dtypes,
                       _numeric_dtypes, int8, int16, int32, int64, uint64)

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.], 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)
    # Once copy=False is implemented, replace this with
    # a = asarray([1])
    # b = asarray(a, copy=False)
    # a[0] = 0
    # assert all(b[0] == 0)
    assert_raises(NotImplementedError, lambda: asarray(a, copy=False))

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'))