3 r"""Test the igor.igorpy compatibility layer by loading sample files.
5 >>> from pprint import pprint
6 >>> import igor.igorpy as igor
7 >>> igor.ENCODING = 'UTF-8'
9 Load a packed experiment:
11 >>> path = data_path('polar-graphs-demo.pxp')
12 >>> d = igor.load(path)
15 >>> dir(d) # doctest: +ELLIPSIS
16 ['Packages', 'W_plrX5', 'W_plrX6', ..., 'radiusData', 'radiusQ1']
22 <igor.Folder root/Packages>
23 >>> print(d[0]) # doctest: +ELLIPSIS
24 <igor.igorpy.Variables object at 0x...>
30 >>> dir(v) # doctest: +ELLIPSIS
31 ['__class__', ..., 'depstr', 'depvar', 'format', 'sysvar', 'userstr', 'uservar']
37 '<Variables: system 21, user 0, dependent 0>'
38 >>> pprint(v.sysvar) # doctest: +REPORT_UDIFF
69 <igor.Wave W_plrX5 data (128)>
70 >>> dir(d.W_plrX5) # doctest: +ELLIPSIS
71 ['__array__', ..., 'axis', 'axis_units', 'data', ..., 'name', 'notes']
72 >>> d.W_plrX5.axis # doctest: +ELLIPSIS
73 [array([ 0.04908739, 0.04870087, 0.04831436, 0.04792784, 0.04754133,
74 0.04715481, 0.0467683 , 0.04638178, 0.04599527, 0.04560875,
76 0.00077303, 0.00038651, 0. ]), array([], dtype=float64), array([], dtype=float64), array([], dtype=float64)]
77 >>> d.W_plrX5.data_units
79 >>> d.W_plrX5.axis_units
81 >>> d.W_plrX5.data # doctest: +ELLIPSIS
82 array([ 1.83690956e-17, 2.69450769e-02, 7.65399113e-02,
83 1.44305170e-01, 2.23293692e-01, 3.04783821e-01,
85 -2.72719120e-03, 5.24539061e-08], dtype=float32)
92 <Variables: system 21, user 0, dependent 0>
104 <Variables: system 21, user 6, dependent 0>
106 <Variables: system 21, user 38, dependent 0>
112 Load a packed experiment without ignoring unknown records:
114 >>> d = igor.load(path, ignore_unknown=False)
115 >>> print(d.format())
147 <Variables: system 21, user 0, dependent 0>
149 radiusData data (128)
159 <Variables: system 21, user 6, dependent 0>
161 <Variables: system 21, user 38, dependent 0>
167 Try to load a binary wave:
169 >>> path = data_path('mac-double.ibw')
170 >>> d = igor.load(path)
171 Traceback (most recent call last):
173 IOError: final record too long; bad pxp file?
181 _this_dir = os.path.dirname(__file__)
182 _data_dir = os.path.join(_this_dir, 'data')
184 def data_path(filename):
185 LOG.info('Testing igorpy compatibility {}\n'.format(filename))
186 path = os.path.join(_data_dir, filename)