-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathtest_data.py
More file actions
99 lines (86 loc) · 5.3 KB
/
test_data.py
File metadata and controls
99 lines (86 loc) · 5.3 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
__author__ = 'github.com/arm61'
__version__ = '0.0.1'
import os
import unittest
import numpy as np
from numpy.testing import assert_almost_equal
from orsopy.fileio import Header
from orsopy.fileio import load_orso
import easyreflectometry
from easyreflectometry.data.measurement import _load_orso
from easyreflectometry.data.measurement import _load_txt
from easyreflectometry.data.measurement import load
PATH_STATIC = os.path.join(os.path.dirname(easyreflectometry.__file__), '..', '..', 'tests', '_static')
class TestData(unittest.TestCase):
def test_load_with_orso(self):
fpath = os.path.join(PATH_STATIC, 'test_example1.ort')
er_data = load(fpath)
o_data = load_orso(fpath)
assert er_data['attrs']['R_spin_up']['orso_header'].value == Header.asdict(o_data[0].info)
assert_almost_equal(er_data['data']['R_spin_up'].values, o_data[0].data[:, 1])
assert_almost_equal(er_data['coords']['Qz_spin_up'].values, o_data[0].data[:, 0])
assert_almost_equal(er_data['data']['R_spin_up'].variances, np.square(o_data[0].data[:, 2]))
assert_almost_equal(er_data['coords']['Qz_spin_up'].variances, np.square(o_data[0].data[:, 3]))
def test_load_with_txt(self):
fpath = os.path.join(PATH_STATIC, 'test_example1.txt')
er_data = load(fpath)
n_data = np.loadtxt(fpath)
assert_almost_equal(er_data['data']['R_0'].values, n_data[:, 1])
assert_almost_equal(er_data['coords']['Qz_0'].values, n_data[:, 0])
assert_almost_equal(er_data['data']['R_0'].variances, np.square(n_data[:, 2]))
assert_almost_equal(er_data['coords']['Qz_0'].variances, np.square(n_data[:, 3]))
def test_load_with_txt_commas(self):
fpath = os.path.join(PATH_STATIC, 'ref_concat_1.txt')
er_data = load(fpath)
x, y, e = np.loadtxt(fpath, delimiter=',', comments='#', unpack=True)
assert_almost_equal(er_data['data']['R_0'].values, y)
assert_almost_equal(er_data['coords']['Qz_0'].values, x)
assert_almost_equal(er_data['data']['R_0'].variances, np.square(e))
def test_orso1(self):
fpath = os.path.join(PATH_STATIC, 'test_example1.ort')
er_data = _load_orso(fpath)
o_data = load_orso(fpath)
assert er_data['attrs']['R_spin_up']['orso_header'].value == Header.asdict(o_data[0].info)
assert_almost_equal(er_data['data']['R_spin_up'].values, o_data[0].data[:, 1])
assert_almost_equal(er_data['coords']['Qz_spin_up'].values, o_data[0].data[:, 0])
assert_almost_equal(er_data['data']['R_spin_up'].variances, np.square(o_data[0].data[:, 2]))
assert_almost_equal(er_data['coords']['Qz_spin_up'].variances, np.square(o_data[0].data[:, 3]))
def test_orso2(self):
fpath = os.path.join(PATH_STATIC, 'test_example2.ort')
er_data = _load_orso(fpath)
o_data = load_orso(fpath)
for i, o in enumerate(list(reversed(o_data))):
assert er_data['attrs'][f'R_{o.info.data_set}']['orso_header'].value == Header.asdict(o.info)
assert_almost_equal(er_data['data'][f'R_{o.info.data_set}'].values, o.data[:, 1])
assert_almost_equal(er_data['coords'][f'Qz_{o.info.data_set}'].values, o.data[:, 0])
assert_almost_equal(er_data['data'][f'R_{o.info.data_set}'].variances, np.square(o.data[:, 2]))
assert_almost_equal(er_data['coords'][f'Qz_{o.info.data_set}'].variances, np.square(o.data[:, 3]))
def test_orso3(self):
fpath = os.path.join(PATH_STATIC, 'test_example3.ort')
er_data = _load_orso(fpath)
o_data = load_orso(fpath)
for i, o in enumerate(o_data):
assert er_data['attrs'][f'R_{o.info.data_set}']['orso_header'].value == Header.asdict(o.info)
assert_almost_equal(er_data['data'][f'R_{o.info.data_set}'].values, o.data[:, 1])
assert_almost_equal(er_data['coords'][f'Qz_{o.info.data_set}'].values, o.data[:, 0])
assert_almost_equal(er_data['data'][f'R_{o.info.data_set}'].variances, np.square(o.data[:, 2]))
assert_almost_equal(er_data['coords'][f'Qz_{o.info.data_set}'].variances, np.square(o.data[:, 3]))
def test_orso4(self):
fpath = os.path.join(PATH_STATIC, 'test_example4.ort')
er_data = _load_orso(fpath)
o_data = load_orso(fpath)
for i, o in enumerate(o_data):
print(list(er_data.keys()))
assert er_data['attrs'][f'R_{o.info.data_set}']['orso_header'].value == Header.asdict(o.info)
assert_almost_equal(er_data['data'][f'R_{o.info.data_set}'].values, o.data[:, 1])
assert_almost_equal(er_data['coords'][f'Qz_{o.info.data_set}'].values, o.data[:, 0])
assert_almost_equal(er_data['data'][f'R_{o.info.data_set}'].variances, np.square(o.data[:, 2]))
assert_almost_equal(er_data['coords'][f'Qz_{o.info.data_set}'].variances, np.square(o.data[:, 3]))
def test_txt(self):
fpath = os.path.join(PATH_STATIC, 'test_example1.txt')
er_data = _load_txt(fpath)
n_data = np.loadtxt(fpath)
assert_almost_equal(er_data['data']['R_0'].values, n_data[:, 1])
assert_almost_equal(er_data['coords']['Qz_0'].values, n_data[:, 0])
assert_almost_equal(er_data['data']['R_0'].variances, np.square(n_data[:, 2]))
assert_almost_equal(er_data['coords']['Qz_0'].variances, np.square(n_data[:, 3]))