3 r"""Test the igor.igorpy compatibility layer by loading sample files.
5 >>> from pprint import pprint
6 >>> import igor.igorpy as igor
8 Load a packed experiment:
10 >>> path = data_path('polar-graphs-demo.pxp')
11 >>> d = igor.load(path)
14 >>> dir(d) # doctest: +ELLIPSIS
15 ['Packages', 'W_plrX5', 'W_plrX6', ..., 'radiusData', 'radiusQ1']
21 <igor.Folder root/Packages>
22 >>> print(d[0]) # doctest: +ELLIPSIS
23 <igor.igorpy.Variables object at 0x...>
29 >>> dir(v) # doctest: +ELLIPSIS
30 ['__class__', ..., 'depstr', 'depvar', 'format', 'sysvar', 'userstr', 'uservar']
36 '<Variables: system 21, user 0, dependent 0>'
37 >>> pprint(v.sysvar) # doctest: +REPORT_UDIFF
68 <igor.Wave W_plrX5 data (128)>
69 >>> dir(d.W_plrX5) # doctest: +ELLIPSIS
70 ['__array__', ..., 'axis', 'axis_units', 'data', ..., 'name', 'notes']
71 >>> d.W_plrX5.axis # doctest: +ELLIPSIS
72 [array([ 0.04908739, 0.04870087, 0.04831436, 0.04792784, 0.04754133,
73 0.04715481, 0.0467683 , 0.04638178, 0.04599527, 0.04560875,
75 0.00077303, 0.00038651, 0. ]), array([], dtype=float64), array([], dtype=float64), array([], dtype=float64)]
76 >>> d.W_plrX5.data_units
78 >>> d.W_plrX5.axis_units
80 >>> d.W_plrX5.data # doctest: +ELLIPSIS
81 array([ 1.83690956e-17, 2.69450769e-02, 7.65399113e-02,
82 1.44305170e-01, 2.23293692e-01, 3.04783821e-01,
84 -2.72719120e-03, 5.24539061e-08], dtype=float32)
91 <Variables: system 21, user 0, dependent 0>
103 <Variables: system 21, user 6, dependent 0>
105 <Variables: system 21, user 38, dependent 0>
111 Load a packed experiment without ignoring unknown records:
113 >>> d = igor.load(path, ignore_unknown=False)
114 >>> print(d.format())
146 <Variables: system 21, user 0, dependent 0>
148 radiusData data (128)
158 <Variables: system 21, user 6, dependent 0>
160 <Variables: system 21, user 38, dependent 0>
166 Try to load a binary wave:
168 >>> path = data_path('mac-double.ibw')
169 >>> d = igor.load(path)
170 Traceback (most recent call last):
172 IOError: final record too long; bad pxp file?
180 _this_dir = os.path.dirname(__file__)
181 _data_dir = os.path.join(_this_dir, 'data')
183 def data_path(filename):
184 LOG.info('Testing igorpy compatibility {}\n'.format(filename))
185 path = os.path.join(_data_dir, filename)