forked from astropy/astropy
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_nddata.py
More file actions
102 lines (64 loc) · 2.84 KB
/
Copy pathtest_nddata.py
File metadata and controls
102 lines (64 loc) · 2.84 KB
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
# Licensed under a 3-clause BSD style license - see LICENSE.rst
import pytest
import numpy as np
from ..nddata import NDData
np.random.seed(12345)
def test_nddata_empty():
with pytest.raises(TypeError) as exc:
NDData() # empty initializer should fail
if isinstance(exc.value, basestring):
assert exc.value.startswith('__init__() takes at least')
else:
assert exc.value.args[0].startswith('__init__() takes at least')
def test_nddata_simple():
nd = NDData(np.random.random((10, 10)))
assert nd.shape == (10, 10)
assert nd.size == 100
assert nd.dtype == np.dtype(float)
def test_nddata_error_valid_scalar():
NDData(np.random.random((10, 10)), error=1.)
def test_nddata_error_valid_1d():
NDData(np.random.random((10, 10)), error=np.ones((10,)))
def test_nddata_error_valid_2d():
NDData(np.random.random((10, 10)), error=np.ones((10, 10)))
def test_nddata_error_valid_3d():
NDData(np.random.random((10, 10)), error=np.ones((3, 10, 10)))
def test_nddata_error_invalid():
with pytest.raises(ValueError) as exc:
NDData(np.random.random((10, 10)), error=np.ones((3, 10)))
assert exc.value.args[0] == 'dimensions of `error` do not match data'
def test_nddata_mask_valid():
NDData(np.random.random((10, 10)), mask=np.random.random((10, 10)) > 0.5)
def test_nddata_mask_invalid_1():
with pytest.raises(ValueError) as exc:
NDData(np.random.random((10, 10)), mask=np.random.random((10)) > 0.5)
assert exc.value.args[0] == 'dimensions of `mask` do not match data'
def test_nddata_mask_invalid_2():
with pytest.raises(ValueError) as exc:
NDData(np.random.random((10, 10)), mask=np.random.random((5, 5)) > 0.5)
assert exc.value.args[0] == 'dimensions of `mask` do not match data'
def test_nddata_mask_invalid_3():
with pytest.raises(ValueError) as exc:
NDData(np.random.random((10, 10)), mask=np.random.random((3, 10, 10)) > 0.5)
assert exc.value.args[0] == 'dimensions of `mask` do not match data'
def test_nddata_flags_valid_1d():
NDData(np.random.random((10, 10)), flags=np.ones((10,)))
def test_nddata_flags_valid_2d():
NDData(np.random.random((10, 10)), flags=np.ones((10, 10)))
def test_nddata_flags_valid_3d():
NDData(np.random.random((10, 10)), flags=np.ones((3, 10, 10)))
def test_nddata_flags_invalid():
with pytest.raises(ValueError) as exc:
NDData(np.random.random((10, 10)), flags=np.ones((3, 10)))
assert exc.value.args[0] == 'dimensions of `flags` do not match data'
def test_nddata_copy():
a = np.ones((10, 10))
nd_copy = NDData(a, copy=True)
nd_ref = NDData(a, copy=False)
a[0, 0] = 0
assert nd_ref.data[0, 0] == 0
assert nd_copy.data[0, 0] == 1
def test_nddata_conversion():
nd = NDData([[1, 2, 3], [4, 5, 6]])
assert nd.size == 6
assert nd.dtype == np.dtype(int)