1 r"""Test the igor module by loading sample files.
3 >>> dumpibw('mac-double.ibw', strict=False) # doctest: +REPORT_UDIFF
4 array([ 5., 4., 3., 2., 1.])
12 'bname': array(['d', 'o', 'u', 'b', 'l', 'e', '', '', '', '', '', '', '', '', '',
16 'creationDate': 3001587842,
17 'dataUnits': array(['', '', '', ''],
26 'modDate': 3001587842,
34 'wData': array([ 2.3125, 0. , 2.25 , 0. ]),
36 'wUnused': array(['', ''],
40 'xUnits': array(['', '', '', ''],
43 >>> dumpibw('mac-textWave.ibw') # doctest: +REPORT_UDIFF
44 array(['Mary', 'had', 'a', 'little', 'lamb'],
49 'dimEUnits': ['', '', '', ''],
50 'dimEUnitsSize': array([0, 0, 0, 0]),
51 'dimLabels': [[], [], [], []],
52 'dimLabelsSize': array([0, 0, 0, 0]),
59 'sIndices': '\x00\x00\x00\x04\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\x0e\x00\x00\x00\x12',
64 'bname': array(['t', 'e', 'x', 't', '0', '', '', '', '', '', '', '', '', '', '', '',
65 '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''],
68 'creationDate': 3001571199,
72 'dataUnits': array(['', '', '', ''],
75 'dimEUnits': array([0, 0, 0, 0]),
76 'dimLabels': array([0, 0, 0, 0]),
77 'dimUnits': array([['', '', '', ''],
86 'modDate': 3001571215,
87 'nDim': array([5, 0, 0, 0]),
91 'sfA': array([ 1., 1., 1., 1.]),
92 'sfB': array([ 0., 0., 0., 0.]),
101 'whUnused': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
103 'whpad1': array(['', '', '', '', '', ''],
109 >>> dumpibw('mac-version2.ibw', strict=False) # doctest: +REPORT_UDIFF
110 array([ 5., 4., 3., 2., 1.], dtype=float32)
112 'note': 'This is a test.',
118 'bname': array(['v', 'e', 'r', 's', 'i', 'o', 'n', '2', '', '', '', '', '', '', '',
122 'creationDate': 3001251979,
123 'dataUnits': array(['', '', '', ''],
132 'modDate': 3001573594,
140 'wData': array([ 5., 4., 3., 2.]),
142 'wUnused': array(['', ''],
146 'xUnits': array(['', '', '', ''],
149 >>> dumpibw('mac-version3Dependent.ibw', strict=False) # doctest: +REPORT_UDIFF
150 array([], dtype=int8)
160 'bname': array(['', '', 'v', 'e', 'r', 's', 'i', 'o', 'n', '3', 'D', 'e', 'p', 'e',
161 'n', 'd', 'e', 'n', 't', ''],
164 'creationDate': 1507328,
165 'dataUnits': array(['', '', '', ''],
171 'hsA': 4.5193417557662e-309,
182 'wData': array([ 0., 0., 0., 0.]),
184 'wUnused': array(['', ''],
186 'waveNoteH': 3835494400,
188 'xUnits': array(['', '', '', ''],
191 >>> dumpibw('mac-version5.ibw') # doctest: +REPORT_UDIFF
192 array([ 5., 4., 3., 2., 1.], dtype=float32)
196 'dimEUnits': ['', '', '', ''],
197 'dimEUnitsSize': array([0, 0, 0, 0]),
198 'dimLabels': [['Column0'], [], [], []],
199 'dimLabelsSize': array([64, 0, 0, 0]),
202 'note': 'This is a test.',
210 'bname': array(['v', 'e', 'r', 's', 'i', 'o', 'n', '5', '', '', '', '', '', '', '',
211 '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''],
214 'creationDate': 3001252180,
218 'dataUnits': array(['', '', '', ''],
221 'dimEUnits': array([0, 0, 0, 0]),
222 'dimLabels': array([69554136, 0, 0, 0]),
223 'dimUnits': array([['', '', '', ''],
228 'fileName': 69554292,
232 'modDate': 3001573601,
233 'nDim': array([5, 0, 0, 0]),
237 'sfA': array([ 1., 1., 1., 1.]),
238 'sfB': array([ 0., 0., 0., 0.]),
246 'waveNoteH': 69554032,
247 'whUnused': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
249 'whpad1': array(['', '', '', '', '', ''],
255 >>> dumpibw('mac-zeroPointWave.ibw') # doctest: +REPORT_UDIFF
256 array([], dtype=float32)
260 'dimEUnits': ['', '', '', ''],
261 'dimEUnitsSize': array([0, 0, 0, 0]),
262 'dimLabels': [[], [], [], []],
263 'dimLabelsSize': array([0, 0, 0, 0]),
274 'bname': array(['z', 'e', 'r', 'o', 'W', 'a', 'v', 'e', '', '', '', '', '', '', '',
275 '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''],
278 'creationDate': 3001573964,
282 'dataUnits': array(['', '', '', ''],
285 'dimEUnits': array([0, 0, 0, 0]),
286 'dimLabels': array([0, 0, 0, 0]),
287 'dimUnits': array([['', '', '', ''],
296 'modDate': 3001573964,
297 'nDim': array([0, 0, 0, 0]),
301 'sfA': array([ 1., 1., 1., 1.]),
302 'sfB': array([ 0., 0., 0., 0.]),
311 'whUnused': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
313 'whpad1': array(['', '', '', '', '', ''],
319 >>> dumpibw('win-double.ibw') # doctest: +REPORT_UDIFF
320 array([ 5., 4., 3., 2., 1.])
328 'bname': array(['d', 'o', 'u', 'b', 'l', 'e', '', '', '', '', '', '', '', '', '',
332 'creationDate': 3001587842,
333 'dataUnits': array(['', '', '', ''],
342 'modDate': 3001587842,
350 'wData': array([ 0. , 2.3125, 0. , 2.25 ]),
352 'wUnused': array(['', ''],
356 'xUnits': array(['', '', '', ''],
359 >>> dumpibw('win-textWave.ibw') # doctest: +REPORT_UDIFF
360 array(['Mary', 'had', 'a', 'little', 'lamb'],
365 'dimEUnits': ['', '', '', ''],
366 'dimEUnitsSize': array([0, 0, 0, 0]),
367 'dimLabels': [[], [], [], []],
368 'dimLabelsSize': array([0, 0, 0, 0]),
375 'sIndices': '\x04\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\x0e\x00\x00\x00\x12\x00\x00\x00',
380 'bname': array(['t', 'e', 'x', 't', '0', '', '', '', '', '', '', '', '', '', '', '',
381 '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''],
384 'creationDate': 3001571199,
388 'dataUnits': array(['', '', '', ''],
391 'dimEUnits': array([0, 0, 0, 0]),
392 'dimLabels': array([0, 0, 0, 0]),
393 'dimUnits': array([['', '', '', ''],
402 'modDate': 3001571215,
403 'nDim': array([5, 0, 0, 0]),
407 'sfA': array([ 1., 1., 1., 1.]),
408 'sfB': array([ 0., 0., 0., 0.]),
414 'wData': 7.865683337909351e+34,
417 'whUnused': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
419 'whpad1': array(['', '', '', '', '', ''],
425 >>> dumpibw('win-version2.ibw') # doctest: +REPORT_UDIFF
426 array([ 5., 4., 3., 2., 1.], dtype=float32)
428 'note': 'This is a test.',
434 'bname': array(['v', 'e', 'r', 's', 'i', 'o', 'n', '2', '', '', '', '', '', '', '',
438 'creationDate': 3001251979,
439 'dataUnits': array(['', '', '', ''],
448 'modDate': 3001573594,
456 'wData': array([ 5., 4., 3., 2.]),
458 'wUnused': array(['', ''],
462 'xUnits': array(['', '', '', ''],
465 >>> dumpibw('win-version5.ibw') # doctest: +REPORT_UDIFF
466 array([ 5., 4., 3., 2., 1.], dtype=float32)
470 'dimEUnits': ['', '', '', ''],
471 'dimEUnitsSize': array([0, 0, 0, 0]),
472 'dimLabels': [['Column0'], [], [], []],
473 'dimLabelsSize': array([64, 0, 0, 0]),
476 'note': 'This is a test.',
484 'bname': array(['v', 'e', 'r', 's', 'i', 'o', 'n', '5', '', '', '', '', '', '', '',
485 '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''],
488 'creationDate': 3001252180,
492 'dataUnits': array(['', '', '', ''],
495 'dimEUnits': array([0, 0, 0, 0]),
496 'dimLabels': array([8138784, 0, 0, 0]),
497 'dimUnits': array([['', '', '', ''],
506 'modDate': 3001573601,
507 'nDim': array([5, 0, 0, 0]),
511 'sfA': array([ 1., 1., 1., 1.]),
512 'sfB': array([ 0., 0., 0., 0.]),
520 'waveNoteH': 8131596,
521 'whUnused': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
523 'whpad1': array(['', '', '', '', '', ''],
529 >>> dumpibw('win-zeroPointWave.ibw') # doctest: +REPORT_UDIFF
530 array([], dtype=float32)
534 'dimEUnits': ['', '', '', ''],
535 'dimEUnitsSize': array([0, 0, 0, 0]),
536 'dimLabels': [[], [], [], []],
537 'dimLabelsSize': array([0, 0, 0, 0]),
548 'bname': array(['z', 'e', 'r', 'o', 'W', 'a', 'v', 'e', '', '', '', '', '', '', '',
549 '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''],
552 'creationDate': 3001573964,
556 'dataUnits': array(['', '', '', ''],
559 'dimEUnits': array([0, 0, 0, 0]),
560 'dimLabels': array([0, 0, 0, 0]),
561 'dimUnits': array([['', '', '', ''],
570 'modDate': 3001573964,
571 'nDim': array([0, 0, 0, 0]),
575 'sfA': array([ 1., 1., 1., 1.]),
576 'sfB': array([ 0., 0., 0., 0.]),
585 'whUnused': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
587 'whpad1': array(['', '', '', '', '', ''],
593 >>> dumppxp('polar-graphs-demo.pxp') # doctest: +REPORT_UDIFF, +ELLIPSIS
595 <UnknownRecord-11 ...>
597 <UnknownRecord-12 ...>
599 <UnknownRecord-13 ...>
601 <UnknownRecord-13 ...>
603 <UnknownRecord-13 ...>
605 <UnknownRecord-13 ...>
607 <UnknownRecord-13 ...>
609 <UnknownRecord-13 ...>
611 <UnknownRecord-13 ...>
613 <UnknownRecord-14 ...>
615 <UnknownRecord-15 ...>
617 <UnknownRecord-16 ...>
619 <UnknownRecord-16 ...>
621 <UnknownRecord-17 ...>
623 <UnknownRecord-17 ...>
625 <UnknownRecord-17 ...>
627 <UnknownRecord-17 ...>
629 <UnknownRecord-17 ...>
631 <UnknownRecord-17 ...>
633 <UnknownRecord-16 ...>
635 <UnknownRecord-17 ...>
637 <UnknownRecord-17 ...>
639 <UnknownRecord-17 ...>
641 <UnknownRecord-17 ...>
643 <UnknownRecord-17 ...>
645 <UnknownRecord-17 ...>
647 <UnknownRecord-18 ...>
649 <UnknownRecord-11 ...>
651 <UnknownRecord-26 ...>
653 <UnknownRecord-26 ...>
655 <VariablesRecord ...>
675 <FolderStartRecord ...>
677 <FolderStartRecord ...>
679 <VariablesRecord ...>
681 <FolderEndRecord ...>
683 <FolderStartRecord ...>
685 <VariablesRecord ...>
687 <FolderEndRecord ...>
689 <FolderEndRecord ...>
691 <RecreationRecord ...>
693 <GetHistoryRecord ...>
695 <ProcedureRecord ...>
699 from pprint import pformat
702 from igor.binarywave import load as loadibw
703 from igor.packed import load as loadpxp
706 _this_dir = os.path.dirname(__file__)
707 _data_dir = os.path.join(_this_dir, 'data')
709 def dumpibw(filename, strict=True):
710 sys.stderr.write('Testing {}\n'.format(filename))
711 path = os.path.join(_data_dir, filename)
712 data,bin_info,wave_info = loadibw(path, strict=strict)
717 def dumppxp(filename, strict=True):
718 sys.stderr.write('Testing {}\n'.format(filename))
719 path = os.path.join(_data_dir, filename)
720 records = loadpxp(path, strict=strict)
721 for i,record in enumerate(records):
722 print('record {}:'.format(i))
726 lines = pformat(data).splitlines()
727 print('\n'.join([line.rstrip() for line in lines]))