1 # Copyright (C) 2012-2015 W. Trevor King <wking@tremily.us>
3 # This file is part of %(project)s.
5 # %(project)s is free software: you can redistribute it and/or modify it under
6 # the terms of the GNU Lesser General Public License as published by the Free
7 # Software Foundation, either version 3 of the License, or (at your option) any
10 # %(project)s is distributed in the hope that it will be useful, but WITHOUT
11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
15 # You should have received a copy of the GNU Lesser General Public License
16 # along with %(project)s. If not, see <http://www.gnu.org/licenses/>.
18 r"""Test the igor module by loading sample files.
20 >>> dumpibw('mac-double.ibw') # doctest: +REPORT_UDIFF
22 'wave': {'bin_header': {'checksum': 25137,
27 'padding': array([], dtype=float64),
28 'wData': array([ 5., 4., 3., 2., 1.]),
29 'wave_header': {'aModified': 0,
32 'creationDate': 3001587842,
33 'dataUnits': array(['', '', '', ''],
42 'modDate': 3001587842,
51 'wUnused': array(['', ''],
55 'xUnits': array(['', '', '', ''],
58 >>> dumpibw('mac-textWave.ibw') # doctest: +REPORT_UDIFF
60 'wave': {'bin_header': {'checksum': 5554,
62 'dimEUnitsSize': array([0, 0, 0, 0]),
63 'dimLabelsSize': array([0, 0, 0, 0]),
71 'dimension_units': '',
73 'labels': [[], [], [], []],
75 'sIndices': array([ 4, 7, 8, 14, 18]),
76 'wData': array(['Mary', 'had', 'a', 'little', 'lamb'],
78 'wave_header': {'aModified': 0,
81 'creationDate': 3001571199,
85 'dataUnits': array(['', '', '', ''],
88 'dimEUnits': array([0, 0, 0, 0]),
89 'dimLabels': array([0, 0, 0, 0]),
90 'dimUnits': array([['', '', '', ''],
99 'modDate': 3001571215,
100 'nDim': array([5, 0, 0, 0]),
103 'sIndices': 69557296,
104 'sfA': array([ 1., 1., 1., 1.]),
105 'sfB': array([ 0., 0., 0., 0.]),
113 'whUnused': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
115 'whpad1': array(['', '', '', '', '', ''],
121 >>> dumpibw('mac-version2.ibw') # doctest: +REPORT_UDIFF
123 'wave': {'bin_header': {'checksum': -16803,
127 'note': 'This is a test.',
128 'padding': array([], dtype=float64),
129 'wData': array([ 5., 4., 3., 2., 1.], dtype=float32),
130 'wave_header': {'aModified': 0,
133 'creationDate': 3001251979,
134 'dataUnits': array(['', '', '', ''],
143 'modDate': 3001573594,
152 'wUnused': array(['', ''],
156 'xUnits': array(['', '', '', ''],
159 >>> dumpibw('mac-version3Dependent.ibw') # doctest: +REPORT_UDIFF
161 'wave': {'bin_header': {'checksum': -32334,
168 'padding': array([], dtype=float64),
169 'wData': array([], dtype=float32),
170 'wave_header': {'aModified': 3,
171 'bname': 'version3Dependent',
174 'dataUnits': array(['', '', '', ''],
178 'formula': 103408364,
183 'modDate': 3001672861,
192 'wUnused': array(['', ''],
196 'xUnits': array(['', '', '', ''],
199 >>> dumpibw('mac-version5.ibw') # doctest: +REPORT_UDIFF
201 'wave': {'bin_header': {'checksum': -12033,
203 'dimEUnitsSize': array([0, 0, 0, 0]),
204 'dimLabelsSize': array([64, 0, 0, 0]),
212 'dimension_units': '',
214 'labels': [['', 'Column0'], [], [], []],
215 'note': 'This is a test.',
216 'sIndices': array([], dtype=float64),
217 'wData': array([ 5., 4., 3., 2., 1.], dtype=float32),
218 'wave_header': {'aModified': 0,
221 'creationDate': 3001252180,
225 'dataUnits': array(['', '', '', ''],
228 'dimEUnits': array([0, 0, 0, 0]),
229 'dimLabels': array([69554136, 0, 0, 0]),
230 'dimUnits': array([['', '', '', ''],
235 'fileName': 69554292,
239 'modDate': 3001573601,
240 'nDim': array([5, 0, 0, 0]),
244 'sfA': array([ 1., 1., 1., 1.]),
245 'sfB': array([ 0., 0., 0., 0.]),
252 'waveNoteH': 69554032,
253 'whUnused': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
255 'whpad1': array(['', '', '', '', '', ''],
261 >>> dumpibw('mac-zeroPointWave.ibw') # doctest: +REPORT_UDIFF
263 'wave': {'bin_header': {'checksum': -15649,
265 'dimEUnitsSize': array([0, 0, 0, 0]),
266 'dimLabelsSize': array([0, 0, 0, 0]),
274 'dimension_units': '',
276 'labels': [[], [], [], []],
278 'sIndices': array([], dtype=float64),
279 'wData': array([], dtype=float32),
280 'wave_header': {'aModified': 3,
283 'creationDate': 3001573964,
287 'dataUnits': array(['', '', '', ''],
290 'dimEUnits': array([0, 0, 0, 0]),
291 'dimLabels': array([0, 0, 0, 0]),
292 'dimUnits': array([['', '', '', ''],
301 'modDate': 3001573964,
302 'nDim': array([0, 0, 0, 0]),
306 'sfA': array([ 1., 1., 1., 1.]),
307 'sfB': array([ 0., 0., 0., 0.]),
315 'whUnused': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
317 'whpad1': array(['', '', '', '', '', ''],
323 >>> dumpibw('win-double.ibw') # doctest: +REPORT_UDIFF
325 'wave': {'bin_header': {'checksum': 28962,
330 'padding': array([], dtype=float64),
331 'wData': array([ 5., 4., 3., 2., 1.]),
332 'wave_header': {'aModified': 0,
335 'creationDate': 3001587842,
336 'dataUnits': array(['', '', '', ''],
345 'modDate': 3001587842,
354 'wUnused': array(['', ''],
358 'xUnits': array(['', '', '', ''],
361 >>> dumpibw('win-textWave.ibw') # doctest: +REPORT_UDIFF
363 'wave': {'bin_header': {'checksum': 184,
365 'dimEUnitsSize': array([0, 0, 0, 0]),
366 'dimLabelsSize': array([0, 0, 0, 0]),
374 'dimension_units': '',
376 'labels': [[], [], [], []],
378 'sIndices': array([ 4, 7, 8, 14, 18]),
379 'wData': array(['Mary', 'had', 'a', 'little', 'lamb'],
381 'wave_header': {'aModified': 0,
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.]),
416 'whUnused': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
418 'whpad1': array(['', '', '', '', '', ''],
424 >>> dumpibw('win-version2.ibw') # doctest: +REPORT_UDIFF
426 'wave': {'bin_header': {'checksum': 1047,
430 'note': 'This is a test.',
431 'padding': array([], dtype=float64),
432 'wData': array([ 5., 4., 3., 2., 1.], dtype=float32),
433 'wave_header': {'aModified': 0,
436 'creationDate': 3001251979,
437 'dataUnits': array(['', '', '', ''],
446 'modDate': 3001573594,
455 'wUnused': array(['', ''],
459 'xUnits': array(['', '', '', ''],
462 >>> dumpibw('win-version5.ibw') # doctest: +REPORT_UDIFF
464 'wave': {'bin_header': {'checksum': 13214,
466 'dimEUnitsSize': array([0, 0, 0, 0]),
467 'dimLabelsSize': array([64, 0, 0, 0]),
475 'dimension_units': '',
477 'labels': [['', 'Column0'], [], [], []],
478 'note': 'This is a test.',
479 'sIndices': array([], dtype=float64),
480 'wData': array([ 5., 4., 3., 2., 1.], dtype=float32),
481 'wave_header': {'aModified': 0,
484 'creationDate': 3001252180,
488 'dataUnits': array(['', '', '', ''],
491 'dimEUnits': array([0, 0, 0, 0]),
492 'dimLabels': array([8138784, 0, 0, 0]),
493 'dimUnits': array([['', '', '', ''],
502 'modDate': 3001573601,
503 'nDim': array([5, 0, 0, 0]),
507 'sfA': array([ 1., 1., 1., 1.]),
508 'sfB': array([ 0., 0., 0., 0.]),
515 'waveNoteH': 8131596,
516 'whUnused': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
518 'whpad1': array(['', '', '', '', '', ''],
524 >>> dumpibw('win-zeroPointWave.ibw') # doctest: +REPORT_UDIFF
526 'wave': {'bin_header': {'checksum': 27541,
528 'dimEUnitsSize': array([0, 0, 0, 0]),
529 'dimLabelsSize': array([0, 0, 0, 0]),
537 'dimension_units': '',
539 'labels': [[], [], [], []],
541 'sIndices': array([], dtype=float64),
542 'wData': array([], dtype=float32),
543 'wave_header': {'aModified': 3,
546 'creationDate': 3001573964,
550 'dataUnits': array(['', '', '', ''],
553 'dimEUnits': array([0, 0, 0, 0]),
554 'dimLabels': array([0, 0, 0, 0]),
555 'dimUnits': array([['', '', '', ''],
564 'modDate': 3001573964,
565 'nDim': array([0, 0, 0, 0]),
569 'sfA': array([ 1., 1., 1., 1.]),
570 'sfB': array([ 0., 0., 0., 0.]),
578 'whUnused': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
580 'whpad1': array(['', '', '', '', '', ''],
586 >>> dumppxp('polar-graphs-demo.pxp') # doctest: +REPORT_UDIFF, +ELLIPSIS
588 <UnknownRecord-11 ...>
590 <UnknownRecord-12 ...>
592 <UnknownRecord-13 ...>
594 <UnknownRecord-13 ...>
596 <UnknownRecord-13 ...>
598 <UnknownRecord-13 ...>
600 <UnknownRecord-13 ...>
602 <UnknownRecord-13 ...>
604 <UnknownRecord-13 ...>
606 <UnknownRecord-14 ...>
608 <UnknownRecord-15 ...>
610 <UnknownRecord-16 ...>
612 <UnknownRecord-16 ...>
614 <UnknownRecord-17 ...>
616 <UnknownRecord-17 ...>
618 <UnknownRecord-17 ...>
620 <UnknownRecord-17 ...>
622 <UnknownRecord-17 ...>
624 <UnknownRecord-17 ...>
626 <UnknownRecord-16 ...>
628 <UnknownRecord-17 ...>
630 <UnknownRecord-17 ...>
632 <UnknownRecord-17 ...>
634 <UnknownRecord-17 ...>
636 <UnknownRecord-17 ...>
638 <UnknownRecord-17 ...>
640 <UnknownRecord-18 ...>
642 <UnknownRecord-11 ...>
644 <UnknownRecord-26 ...>
646 <UnknownRecord-26 ...>
648 {'variables': {'sysVars': {'K0': 0.0,
671 'var_header': {'numSysVars': 21,
676 '\x95 Polar Graphs Demo, v3.01\n\n'
679 'wave': {'bin_header': {'checksum': -25004,
684 'padding': array([], dtype=float64),
685 'wData': array([ 0.30000001, 0.5448544 , 0.77480197, 0.97584349, 1.13573945,
686 1.24475539, 1.2962544 , 1.28710103, 1.21785283, 1.09272552,
687 0.91933674, 0.7082426 , 0.47229454, 0.22585714, -0.01606643,
688 -0.23874778, -0.42862982, -0.57415301, -0.6664573 , -0.69992352,
689 -0.67251408, -0.58589762, -0.44534767, -0.25942117, -0.03943586,
690 0.20121357, 0.44787762, 0.68553883, 0.89972788, 1.0774051 ,
691 1.20775461, 1.28283918, 1.29808831, 1.25257373, 1.14906585,
692 0.99386656, 0.79642528, 0.56876069, 0.32473388, 0.07920124,
693 -0.15288824, -0.35740662, -0.52190179, -0.63635898, -0.69381076,
694 -0.69075894, -0.62739003, -0.5075599 , -0.3385666 , -0.13069656,
695 0.10339352, 0.34945396, 0.59250361, 0.81774551, 1.01146686,
696 1.16187334, 1.25980926, 1.29931164, 1.27797604, 1.1971004 ,
697 1.06160903, 0.87975079, 0.66259789, 0.42336911, 0.17663053,
698 -0.06259823, -0.2797519 , -0.46160996, -0.59710097, -0.67797607,
699 -0.69931161, -0.65980917, -0.56187314, -0.41146588, -0.21774435,
700 0.00749773, 0.25054744, 0.49660596, 0.7306987 , 0.93856692,
701 1.10756063, 1.22738981, 1.29075909, 1.29381061, 1.23635852,
702 1.1219027 , 0.95740634, 0.7528879 , 0.52079749, 0.2752648 ,
703 0.03123802, -0.19642642, -0.39386547, -0.54906607, -0.6525743 ,
704 -0.69808841, -0.68283898, -0.60775399, -0.47740453, -0.29972947,
705 -0.08553842, 0.15212469, 0.39878684, 0.63943672, 0.85942155,
706 1.04534864, 1.18589854, 1.2725141 , 1.29992342, 1.2664578 ,
707 1.17415261, 1.0286293 , 0.83874667, 0.61606491, 0.37414294,
708 0.12770344, -0.1082412 , -0.31933719, -0.49272597, -0.61785328,
709 -0.6871013 , -0.69625437, -0.64475471, -0.53574032, -0.37584305,
710 -0.17479956, 0.05514668, 0.30000135], dtype=float32),
711 'wave_header': {'aModified': 0,
712 'bname': 'radiusData',
715 'dataUnits': array(['', '', '', ''],
721 'hsA': 0.04908738521234052,
724 'modDate': 2845545774,
733 'wUnused': array(['', ''],
737 'xUnits': array(['', '', '', ''],
741 'wave': {'bin_header': {'checksum': 28621,
746 'padding': array([], dtype=float64),
747 'wData': array([ 0. , 0.0494739 , 0.0989478 , 0.1484217 , 0.1978956 ,
748 0.24736951, 0.29684341, 0.34631732, 0.3957912 , 0.44526511,
749 0.49473903, 0.54421294, 0.59368682, 0.6431607 , 0.69263464,
750 0.74210852, 0.79158241, 0.84105635, 0.89053023, 0.94000411,
751 0.98947805, 1.03895199, 1.08842587, 1.13789964, 1.18737364,
752 1.23684752, 1.2863214 , 1.3357954 , 1.38526928, 1.43474305,
753 1.48421705, 1.53369093, 1.58316481, 1.63263881, 1.68211269,
754 1.73158658, 1.78106046, 1.83053434, 1.88000822, 1.92948222,
755 1.9789561 , 2.02842999, 2.07790399, 2.12737775, 2.17685175,
756 2.22632551, 2.27579927, 2.32527351, 2.37474728, 2.42422128,
757 2.47369504, 2.52316904, 2.5726428 , 2.6221168 , 2.67159081,
758 2.72106457, 2.77053857, 2.82001233, 2.86948609, 2.91896009,
759 2.9684341 , 3.0179081 , 3.06738186, 3.11685586, 3.16632962,
760 3.21580338, 3.26527762, 3.31475139, 3.36422539, 3.41369915,
761 3.46317315, 3.51264691, 3.56212091, 3.61159492, 3.66106868,
762 3.71054268, 3.76001644, 3.8094902 , 3.85896444, 3.90843821,
763 3.95791221, 4.00738621, 4.05685997, 4.10633373, 4.15580797,
764 4.20528126, 4.2547555 , 4.30422926, 4.3537035 , 4.40317726,
765 4.45265102, 4.50212526, 4.55159855, 4.60107279, 4.65054703,
766 4.70002079, 4.74949455, 4.79896832, 4.84844255, 4.89791584,
767 4.94739008, 4.99686432, 5.04633808, 5.09581184, 5.14528561,
768 5.19475985, 5.24423361, 5.29370737, 5.34318161, 5.3926549 ,
769 5.44212914, 5.4916029 , 5.54107714, 5.5905509 , 5.64002466,
770 5.6894989 , 5.73897219, 5.78844643, 5.83792019, 5.88739443,
771 5.93686819, 5.98634195, 6.03581619, 6.08528948, 6.13476372,
772 6.18423796, 6.23371172, 6.28318548], dtype=float32),
773 'wave_header': {'aModified': 0,
774 'bname': 'angleData',
777 'dataUnits': array(['', '', '', ''],
783 'hsA': 0.04908738521234052,
786 'modDate': 2845470039,
795 'wUnused': array(['', ''],
799 'xUnits': array(['', '', '', ''],
803 'wave': {'bin_header': {'checksum': 23021,
805 'dimEUnitsSize': array([0, 0, 0, 0]),
806 'dimLabelsSize': array([0, 0, 0, 0]),
814 'dimension_units': '',
815 'formula': ' PolarRadiusFunction(radiusData,1,0) * cos(PolarAngleFunction(angleData,3,1,2))',
816 'labels': [[], [], [], []],
818 'sIndices': array([], dtype=float64),
819 'wData': array([ 1.83690956e-17, 2.69450769e-02, 7.65399113e-02,
820 1.44305170e-01, 2.23293692e-01, 3.04783821e-01,
821 3.79158467e-01, 4.36888516e-01, 4.69528973e-01,
822 4.70633775e-01, 4.36502904e-01, 3.66688997e-01,
823 2.64211357e-01, 1.35452762e-01, -1.02594923e-02,
824 -1.61356136e-01, -3.04955602e-01, -4.27943677e-01,
825 -5.18107474e-01, -5.65230608e-01, -5.62046587e-01,
826 -5.04969478e-01, -3.94532531e-01, -2.35490710e-01,
827 -3.65724117e-02, 1.90097600e-01, 4.29877043e-01,
828 6.66696191e-01, 8.84287775e-01, 1.06744885e+00,
829 1.20323074e+00, 1.28195620e+00, 1.29798901e+00,
830 1.25017929e+00, 1.14195395e+00, 9.81046736e-01,
831 7.78884649e-01, 5.49682915e-01, 3.09332967e-01,
832 7.41607845e-02, -1.40328899e-01, -3.20629656e-01,
833 -4.56221938e-01, -5.40310800e-01, -5.70244014e-01,
834 -5.47582209e-01, -4.77826297e-01, -3.69823217e-01,
835 -2.34920204e-01, -8.59207287e-02, 6.40354082e-02,
836 2.02596441e-01, 3.19209903e-01, 4.05949473e-01,
837 4.58081126e-01, 4.74326164e-01, 4.56804305e-01,
838 4.10668582e-01, 3.43470216e-01, 2.64317334e-01,
839 1.82909429e-01, 1.08534366e-01, 4.91267964e-02,
840 1.04717268e-02, -4.36885841e-03, 4.64119762e-03,
841 3.45129520e-02, 7.95329511e-02, 1.31838784e-01,
842 1.82213545e-01, 2.21028924e-01, 2.39245579e-01,
843 2.29380637e-01, 1.86348081e-01, 1.08093813e-01,
844 -4.03938442e-03, -1.45255283e-01, -3.07566285e-01,
845 -4.80366081e-01, -6.51240766e-01, -8.07001889e-01,
846 -9.34792042e-01, -1.02321768e+00, -1.06338477e+00,
847 -1.04975033e+00, -9.80714381e-01, -8.58889818e-01,
848 -6.91040277e-01, -4.87653464e-01, -2.62210011e-01,
849 -3.01902127e-02, 1.92100301e-01, 3.88785005e-01,
850 5.45667768e-01, 6.51326835e-01, 6.98035002e-01,
851 6.82368934e-01, 6.05477571e-01, 4.72992837e-01,
852 2.94585884e-01, 8.31873119e-02, -1.46010652e-01,
853 -3.76755983e-01, -5.93006968e-01, -7.80143738e-01,
854 -9.26071882e-01, -1.02209401e+00, -1.06349015e+00,
855 -1.04976654e+00, -9.84551251e-01, -8.75151932e-01,
856 -7.31834948e-01, -5.66861272e-01, -3.93398553e-01,
857 -2.24383846e-01, -7.14399144e-02, 5.60413450e-02,
858 1.51621893e-01, 2.12215677e-01, 2.38205954e-01,
859 2.33226836e-01, 2.03656554e-01, 1.57870770e-01,
860 1.05330117e-01, 5.55786416e-02, 1.72677450e-02,
861 -2.72719120e-03, 5.24539061e-08], dtype=float32),
862 'wave_header': {'aModified': 0,
869 'dataUnits': array(['', '', '', ''],
872 'dimEUnits': array([0, 0, 0, 0]),
873 'dimLabels': array([0, 0, 0, 0]),
874 'dimUnits': array([['', '', '', ''],
883 'modDate': 2985072242,
884 'nDim': array([128, 0, 0, 0]),
888 'sfA': array([ 0.04908739, 1. , 1. , 1. ]),
889 'sfB': array([ 0., 0., 0., 0.]),
897 'whUnused': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
899 'whpad1': array(['', '', '', '', '', ''],
906 'wave': {'bin_header': {'checksum': -9146,
908 'dimEUnitsSize': array([0, 0, 0, 0]),
909 'dimLabelsSize': array([0, 0, 0, 0]),
917 'dimension_units': '',
918 'formula': ' PolarRadiusFunction(radiusData,1,0) * sin(PolarAngleFunction(angleData,3,1,2))',
919 'labels': [[], [], [], []],
920 'note': 'shadowX=W_plrX5,appendRadius=radiusData,appendAngleData=angleData,angleDataUnits=2',
921 'sIndices': array([], dtype=float64),
922 'wData': array([ 0.30000001, 0.54418772, 0.77101213, 0.96511477, 1.1135726 ,
923 1.20686483, 1.23956215, 1.21068466, 1.12370288, 0.98618096,
924 0.80910152, 0.60592639, 0.39147732, 0.18073183, -0.01236418,
925 -0.17596789, -0.30120692, -0.38277394, -0.41920158, -0.41280419,
926 -0.36929506, -0.29712263, -0.20658807, -0.10882771, -0.01475283,
927 0.06595302, 0.12569843, 0.15962352, 0.16596791, 0.14613269,
928 0.10443594, 0.04758934, -0.01605497, -0.0774129 , -0.12764584,
929 -0.15911636, -0.16622847, -0.14607331, -0.09881912, -0.02780312,
930 0.06068454, 0.15791172, 0.25346208, 0.33617997, 0.3952153 ,
931 0.42107204, 0.40657136, 0.34763175, 0.24380288, 0.09848462,
932 -0.08117689, -0.28473276, -0.49916485, -0.70986813, -0.90179092,
933 -1.06064332, -1.17407382, -1.23270524, -1.23095524, -1.16755545,
934 -1.04573321, -0.87303019, -0.66077417, -0.42323959, -0.1765765 ,
935 0.06242594, 0.2776148 , 0.45470679, 0.58236426, 0.65303123,
936 0.66346282, 0.61490625, 0.51291907, 0.36684951, 0.18901938,
937 -0.00631659, -0.20414437, -0.389898 , -0.55060786, -0.67586488,
938 -0.75857663, -0.79539269, -0.78681922, -0.73699296, -0.65315133,
939 -0.54485315, -0.42300734, -0.29883695, -0.18282266, -0.08376524,
940 -0.00802278, 0.0409977 , 0.06305727, 0.06099379, 0.04033075,
941 0.00863387, -0.02533132, -0.05255322, -0.06475239, -0.05528941,
942 -0.01991711, 0.04269439, 0.13071296, 0.23921135, 0.36052904,
943 0.48491719, 0.60139763, 0.69877088, 0.76667541, 0.79660165,
944 0.78277934, 0.72283876, 0.6181944 , 0.47410288, 0.29939076,
945 0.10585135, -0.09260413, -0.28104633, -0.44468346, -0.57008827,
946 -0.64630753, -0.66580337, -0.62512833, -0.52528399, -0.37171093,
947 -0.17394456, 0.0550792 , 0.30000135], dtype=float32),
948 'wave_header': {'aModified': 0,
955 'dataUnits': array(['', '', '', ''],
958 'dimEUnits': array([0, 0, 0, 0]),
959 'dimLabels': array([0, 0, 0, 0]),
960 'dimUnits': array([['', '', '', ''],
969 'modDate': 2985072242,
970 'nDim': array([128, 0, 0, 0]),
974 'sfA': array([ 0.04908739, 1. , 1. , 1. ]),
975 'sfB': array([ 0., 0., 0., 0.]),
982 'waveNoteH': 7996608,
983 'whUnused': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
985 'whpad1': array(['', '', '', '', '', ''],
992 'wave': {'bin_header': {'checksum': 14307,
997 'padding': array([], dtype=float64),
998 'wData': array([ 0.2617994 , 0.27842158, 0.29504377, 0.31166595, 0.32828814,
999 0.34491032, 0.36153251, 0.3781547 , 0.39477688, 0.41139907,
1000 0.42802125, 0.44464344, 0.46126559, 0.47788778, 0.49450997,
1001 0.51113212, 0.52775431, 0.54437649, 0.56099868, 0.57762086,
1002 0.59424305, 0.61086524, 0.62748742, 0.64410961, 0.66073179,
1003 0.67735398, 0.69397616, 0.71059835, 0.72722054, 0.74384272,
1004 0.76046491, 0.77708709, 0.79370928, 0.81033146, 0.82695365,
1005 0.84357584, 0.86019802, 0.87682021, 0.89344239, 0.91006458,
1006 0.92668676, 0.94330889, 0.95993114, 0.97655326, 0.99317551,
1007 1.00979757, 1.02641988, 1.04304194, 1.05966425, 1.07628632,
1008 1.09290862, 1.10953069, 1.12615299, 1.14277506, 1.15939736,
1009 1.17601943, 1.19264174, 1.2092638 , 1.22588611, 1.24250817,
1010 1.25913048, 1.27575254, 1.29237485, 1.30899692], dtype=float32),
1011 'wave_header': {'aModified': 0,
1013 'botFullScale': 0.0,
1015 'dataUnits': array(['', '', '', ''],
1024 'modDate': 2845473705,
1029 'topFullScale': 0.0,
1033 'wUnused': array(['', ''],
1037 'xUnits': array(['', '', '', ''],
1041 'wave': {'bin_header': {'checksum': -12080,
1046 'padding': array([], dtype=float64),
1047 'wData': array([ -8.34064484, -7.66960144, -6.62294245, -6.82878971,
1048 -8.6383152 , -11.20019722, -13.83398628, -15.95139503,
1049 -16.18096733, -13.58062267, -9.26843071, -5.34649038,
1050 -3.01010084, -2.30953455, -2.73682952, -3.72112942,
1051 -4.85171413, -5.63053226, -5.48626232, -4.49401283,
1052 -3.53216696, -3.34821796, -4.07400894, -5.87675714,
1053 -9.11268425, -12.98700237, -15.06296921, -13.71571922,
1054 -10.23535728, -7.01303005, -5.23288727, -5.71091986,
1055 -9.24852943, -14.06335735, -15.846241 , -12.78800964,
1056 -7.8465519 , -4.56293297, -3.54999399, -3.67789125,
1057 -4.10172844, -4.78980875, -6.20238352, -8.17891598,
1058 -9.2803278 , -8.36780167, -6.3059268 , -4.85605574,
1059 -4.54975414, -4.52917624, -3.99160147, -3.1971693 ,
1060 -2.93472862, -3.47230864, -4.7322526 , -6.80173016,
1061 -9.08601665, -10.00928402, -8.87677383, -6.88120317,
1062 -5.61007977, -5.6351161 , -6.41880989, -6.8738699 ], dtype=float32),
1063 'wave_header': {'aModified': 0,
1064 'bname': 'radiusQ1',
1065 'botFullScale': 0.0,
1067 'dataUnits': array(['', '', '', ''],
1076 'modDate': 2845473634,
1081 'topFullScale': 0.0,
1085 'wUnused': array(['', ''],
1089 'xUnits': array(['', '', '', ''],
1093 'wave': {'bin_header': {'checksum': -5745,
1094 'dataEUnitsSize': 0,
1095 'dimEUnitsSize': array([0, 0, 0, 0]),
1096 'dimLabelsSize': array([0, 0, 0, 0]),
1104 'dimension_units': '',
1105 'formula': ' PolarRadiusFunction(radiusQ1,1,-40) * cos(PolarAngleFunction(angleQ1,2,2,2))',
1106 'labels': [[], [], [], []],
1108 'sIndices': array([], dtype=float64),
1109 'wData': array([ 30.58058929, 31.08536911, 31.93481636, 31.57315445,
1110 29.68683434, 27.10366058, 24.47453499, 22.3495121 ,
1111 21.98692894, 24.21500397, 27.95923996, 31.28394508,
1112 33.12408066, 33.46794128, 32.79909515, 31.64211464,
1113 30.36601639, 29.40137291, 29.22361755, 29.74564171,
1114 30.21624565, 30.02338219, 29.0822773 , 27.28613091,
1115 24.38687515, 21.04944038, 19.16931915, 19.92274094,
1116 22.23493385, 24.27418709, 25.1893177 , 24.44671249,
1117 21.56310272, 17.87704659, 16.35500908, 18.09041786,
1118 20.97328949, 22.66550255, 22.84443283, 22.29068756,
1119 21.55643272, 20.67234993, 19.38551521, 17.81604385,
1120 16.77393341, 16.8293457 , 17.4496479 , 17.6982975 ,
1121 17.34101677, 16.83446693, 16.56042671, 16.38027191,
1122 15.94310474, 15.16159916, 14.10328865, 12.76812935,
1123 11.41363049, 10.60795975, 10.52314186, 10.67826462,
1124 10.5454855 , 9.99268055, 9.22939587, 8.5736742 ], dtype=float32),
1125 'wave_header': {'aModified': 0,
1127 'botFullScale': 0.0,
1132 'dataUnits': array(['', '', '', ''],
1135 'dimEUnits': array([0, 0, 0, 0]),
1136 'dimLabels': array([0, 0, 0, 0]),
1137 'dimUnits': array([['', '', '', ''],
1146 'modDate': 2985072242,
1147 'nDim': array([64, 0, 0, 0]),
1151 'sfA': array([ 1., 1., 1., 1.]),
1152 'sfB': array([ 0., 0., 0., 0.]),
1155 'topFullScale': 0.0,
1160 'whUnused': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
1162 'whpad1': array(['', '', '', '', '', ''],
1169 'wave': {'bin_header': {'checksum': -16604,
1170 'dataEUnitsSize': 0,
1171 'dimEUnitsSize': array([0, 0, 0, 0]),
1172 'dimLabelsSize': array([0, 0, 0, 0]),
1180 'dimension_units': '',
1181 'formula': ' PolarRadiusFunction(radiusQ1,1,-40) * sin(PolarAngleFunction(angleQ1,2,2,2))',
1182 'labels': [[], [], [], []],
1183 'note': 'shadowX=W_plrX6,appendRadius=radiusQ1,appendAngleData=angleQ1,angleDataUnits=2',
1184 'sIndices': array([], dtype=float64),
1185 'wData': array([ 8.19404411, 8.88563347, 9.70543861, 10.17177773,
1186 10.11173058, 9.73756695, 9.25513077, 8.8788929 ,
1187 9.16085339, 10.56489944, 12.75579453, 14.90572262,
1188 16.46352959, 17.33401871, 17.68511391, 17.74635315,
1189 17.70048141, 17.79942513, 18.36241531, 19.38741684,
1190 20.41767311, 21.02259827, 21.09260368, 20.4905529 ,
1191 18.95538521, 16.9299469 , 15.94969368, 17.14490509,
1192 19.78741264, 22.33615875, 23.96352196, 24.04369545,
1193 21.92454147, 18.79150391, 17.77407646, 20.32803917,
1194 24.37140465, 27.24079132, 28.40307808, 28.67787933,
1195 28.70550728, 28.50283432, 27.68538666, 26.36607552,
1196 25.73583984, 26.78374672, 28.8236084 , 30.36226463,
1197 30.91939545, 31.22146797, 31.97431755, 32.95656204,
1198 33.4611969 , 33.23248672, 32.3250885 , 30.64473915,
1199 28.72983551, 28.05199242, 29.29024887, 31.3501091 ,
1200 32.7331543 , 32.87995529, 32.28799438, 31.99738503], dtype=float32),
1201 'wave_header': {'aModified': 0,
1203 'botFullScale': 0.0,
1208 'dataUnits': array(['', '', '', ''],
1211 'dimEUnits': array([0, 0, 0, 0]),
1212 'dimLabels': array([0, 0, 0, 0]),
1213 'dimUnits': array([['', '', '', ''],
1222 'modDate': 2985072242,
1223 'nDim': array([64, 0, 0, 0]),
1227 'sfA': array([ 1., 1., 1., 1.]),
1228 'sfB': array([ 0., 0., 0., 0.]),
1231 'topFullScale': 0.0,
1235 'waveNoteH': 7998208,
1236 'whUnused': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
1238 'whpad1': array(['', '', '', '', '', ''],
1248 {'variables': {'sysVars': {'K0': 0.0,
1269 'userStrs': {'u_dataBase': ';PolarGraph0:,...,useCircles=2,maxArcLine=6;',
1270 'u_dbBadStringChars': ',;=:',
1271 'u_dbCurrBag': 'PolarGraph1',
1272 'u_dbCurrContents': ',appendRadius=radiusQ1,...,useCircles=2,maxArcLine=6;',
1273 'u_dbReplaceBadChars': '\xa9\xae\x99\x9f',
1276 'var_header': {'numSysVars': 21,
1285 {'variables': {'sysVars': {'K0': 0.0,
1306 'userStrs': {'u_colorList': 'black;blue;green;cyan;red;magenta;yellow;white;special',
1307 'u_debugStr': 'Turn Debugging On',
1308 'u_polAngleAxesWherePop': 'Off;Radius Start;Radius End;Radius Start and End;All Major Radii;At Listed Radii',
1309 'u_polAngleUnitsPop': 'deg;rad',
1310 'u_polLineStylePop': 'solid;dash 1;dash 2;dash 3;dash 4;dash 5;dash 6;dash 7;dash 8;dash 9;dash 10;dash 11;dash 12;dash 13;dash 14;dash 15;dash 16;dash 17;',
1311 'u_polOffOn': 'Off;On',
1312 'u_polRadAxesWherePop': ' Off; Angle Start; Angle Middle; Angle End; Angle Start and End; 0; 90; 180; -90; 0, 90; 90, 180; -180, -90; -90, 0; 0, 180; 90, -90; 0, 90, 180, -90; All Major Angles; At Listed Angles',
1313 'u_polRotPop': ' -90; 0; +90; +180',
1316 'userVars': {'V_bottom': 232.0,
1318 'V_max': 2.4158518093414401,
1319 'V_min': -2.1848498883412,
1322 'u_UniqWaveNdx': 8.0,
1323 'u_UniqWinNdx': 3.0,
1325 'u_angleRange': 6.2831853071795862,
1327 'u_majorDelta': 0.0,
1329 'u_polAngle0': 0.26179938779914941,
1330 'u_polAngleRange': 1.0471975511965976,
1331 'u_polInnerRadius': -20.0,
1332 'u_polMajorAngleInc': 0.26179938779914941,
1333 'u_polMajorRadiusInc': 10.0,
1334 'u_polMinorAngleTicks': 3.0,
1335 'u_polMinorRadiusTicks': 1.0,
1336 'u_polOuterRadius': 0.0,
1337 'u_segsPerMinorArc': 3.0,
1340 'u_x1': 11.450159535018935,
1341 'u_x2': 12.079591517721363,
1342 'u_y1': 42.732577139459856,
1343 'u_y2': 45.081649278814126},
1344 'var_header': {'numSysVars': 21,
1346 'numUserVars': 28}},
1353 '| Platform=Windows95, IGORVersion=3.130\n\n\n\nMoveWindow/P 5.25,40.25,504.75,335\n...hook=PolarWindowHook\nEndMacro\n'
1357 '#include <Polar Graphs> version >= 3.0\n'
1360 {'root': {'K0': 0.0,
1381 'Packages': {'PolarGraphs': {'V_bottom': 232.0,
1383 'V_max': 2.4158518093414401,
1384 'V_min': -2.1848498883412,
1387 'u_UniqWaveNdx': 8.0,
1388 'u_UniqWinNdx': 3.0,
1390 'u_angleRange': 6.2831853071795862,
1391 'u_colorList': 'black;blue;green;cyan;red;magenta;yellow;white;special',
1393 'u_debugStr': 'Turn Debugging On',
1394 'u_majorDelta': 0.0,
1396 'u_polAngle0': 0.26179938779914941,
1397 'u_polAngleAxesWherePop': 'Off;Radius Start;Radius End;Radius Start and End;All Major Radii;At Listed Radii',
1398 'u_polAngleRange': 1.0471975511965976,
1399 'u_polAngleUnitsPop': 'deg;rad',
1400 'u_polInnerRadius': -20.0,
1401 'u_polLineStylePop': 'solid;dash 1;dash 2;dash 3;dash 4;dash 5;dash 6;dash 7;dash 8;dash 9;dash 10;dash 11;dash 12;dash 13;dash 14;dash 15;dash 16;dash 17;',
1402 'u_polMajorAngleInc': 0.26179938779914941,
1403 'u_polMajorRadiusInc': 10.0,
1404 'u_polMinorAngleTicks': 3.0,
1405 'u_polMinorRadiusTicks': 1.0,
1406 'u_polOffOn': 'Off;On',
1407 'u_polOuterRadius': 0.0,
1408 'u_polRadAxesWherePop': ' Off; Angle Start; Angle Middle; Angle End; Angle Start and End; 0; 90; 180; -90; 0, 90; 90, 180; -180, -90; -90, 0; 0, 180; 90, -90; 0, 90, 180, -90; All Major Angles; At Listed Angles',
1409 'u_polRotPop': ' -90; 0; +90; +180',
1412 'u_segsPerMinorArc': 3.0,
1415 'u_x1': 11.450159535018935,
1416 'u_x2': 12.079591517721363,
1417 'u_y1': 42.732577139459856,
1418 'u_y2': 45.081649278814126},
1419 'WMDataBase': {'u_dataBase': ';PolarGraph0:,appendRadius=radiusData,...,useCircles=2,maxArcLine=6;',
1420 'u_dbBadStringChars': ',;=:',
1421 'u_dbCurrBag': 'PolarGraph1',
1422 'u_dbCurrContents': ',appendRadius=radiusQ1,...,useCircles=2,maxArcLine=6;',
1423 'u_dbReplaceBadChars': '\xa9\xae\x99\x9f',
1425 'W_plrX5': <WaveRecord ...>,
1426 'W_plrX6': <WaveRecord ...>,
1427 'W_plrY5': <WaveRecord ...>,
1428 'W_plrY6': <WaveRecord ...>,
1429 'angleData': <WaveRecord ...>,
1430 'angleQ1': <WaveRecord ...>,
1431 'radiusData': <WaveRecord ...>,
1432 'radiusQ1': <WaveRecord ...>}}
1435 walk callback on ([], root, {'K0': 0.0,...})
1436 walk callback on (['root'], K0, 0.0)
1437 walk callback on (['root'], K1, 0.0)
1438 walk callback on (['root'], K10, 0.0)
1440 walk callback on (['root'], K9, 0.0)
1441 walk callback on (['root'], Packages, {'PolarGraphs': ...})
1442 walk callback on (['root', 'Packages'], PolarGraphs, {...})
1443 walk callback on (['root', 'Packages', 'PolarGraphs'], V_bottom, 232.0)
1445 walk callback on (['root', 'Packages'], WMDataBase, {...})
1447 walk callback on (['root'], radiusQ1, <WaveRecord ...>)
1451 from pprint import pformat
1453 from igor import LOG
1454 from igor.binarywave import load as loadibw
1455 from igor.packed import load as loadpxp
1456 from igor.packed import walk as _walk
1457 from igor.record.base import TextRecord
1458 from igor.record.folder import FolderStartRecord, FolderEndRecord
1459 from igor.record.variables import VariablesRecord
1460 from igor.record.wave import WaveRecord
1463 _this_dir = os.path.dirname(__file__)
1464 _data_dir = os.path.join(_this_dir, 'data')
1466 def dumpibw(filename):
1467 LOG.info('Testing {}\n'.format(filename))
1468 path = os.path.join(_data_dir, filename)
1469 data = loadibw(path)
1472 def walk_callback(dirpath, key, value):
1473 print('walk callback on ({}, {}, {})'.format(
1474 dirpath, key, pformat(value)))
1476 def dumppxp(filename, walk=True):
1477 LOG.info('Testing {}\n'.format(filename))
1478 path = os.path.join(_data_dir, filename)
1479 records,filesystem = loadpxp(path)
1480 for i,record in enumerate(records):
1481 print('record {}:'.format(i))
1482 if isinstance(record, (FolderStartRecord, FolderEndRecord)):
1483 pprint(record.null_terminated_text)
1484 elif isinstance(record, TextRecord):
1486 elif isinstance(record, VariablesRecord):
1487 pprint(record.variables)
1488 elif isinstance(record, WaveRecord):
1492 print('\nfilesystem:')
1495 print('\nwalking filesystem:')
1496 _walk(filesystem, walk_callback)
1499 lines = pformat(data).splitlines()
1500 print('\n'.join([line.rstrip() for line in lines]))