Ë
    0Ò^j°Ä  ã                   óÌ  — d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	 d dl
Z
d dlmZ d dlZd dlZd dlZd dlmZmZmZmZmZ d dlZd dlmZmZ d dlZd d	lmZ d d
lmZm Z m!Z!m"Z"m#Z# d dl$Z%d dl&m'Z'm(Z(m)Z) d dl*mc m+c m,Z- d dl.m/Z/m0Z0m1Z1m2Z2m3Z3 d dl4m5Z5m6Z6m7Z7m8Z8 d dl9m:Z:m;Z;m<Z<m=Z=m>Z> d dl?mc m+c m@ZA  e eeB«      d«      ZCejˆ                  jŠ                  ZFd„ ZGej�                  dz   ej’                  deJ¬«      j—                  dd«      z  ZLdddideLidœgZMeMj�                  dddid edg«      idœ«       eMj�                  dddid ejž                  eL«      d ej                   eL«      z  z   idœ«        ej¢                  d«      ZR eS eTdd «      «      eRd <    eS eTdd«      «      eRdd…d f<   eMj�                  d!d"did"eRidœ«       eMj�                  d#d$d#id$ e!eR«      idœ«       eRj«                  eV«      ZWeWd%xx   dz  cc<   eMj�                  d&d'd#id' e!eW«      idœ«       eMj�                  d(ddd)œeLeRd)œdœ«       eMj�                  d*d+did+ eGd,«      idœ«       eMj�                  d-d.did. ed/g«      idœ«        eGg  eGdg«       eGdd0gg«       eGg d1¢g«      feX¬«      j—                  dd,«      ZY ed2g«      eYd%<   d3d4d3id4eYidœgZZ eG eGd«       eGd0«       eGg «       eGg «       eGd5«      feX¬«      j—                  dd,«      Z[ ej¸                  d6eX¬«      Z] eGd«      e]d%<   eZj�                  d7d8d3id8e]idœ«       eZj�                  d9d:d3id:e[idœ«       eZj�                  d;d<did< eg d=¢«      idœ«       eZj�                  d>d?did? ej¼                   ej–                   eS eTdd@«      «      dA«      «      idœ«        e ej¾                  d0«       ejÀ                  d«      ej�                  g«      j—                  dd5«      ZadBD � cg c]  } | eXf‘Œ c} Zb ej¢                  d6eb«      Zc edCg«      ecdD   d%<   eaecdE   d%<   eadFz  ecdG   d%<   eZj�                  dHdIdHidIecidœ«        ej¢                  dJeX¬«      Zd eGd«      edd%<    ej¢                  dKeX¬«      eddL<    eGd0ejÊ                  ¬«      eddL   d%<    eGd5ggejÊ                  ¬«      eddL   dL<    ej¢                  dJeX¬«      eddL   dM<    eGdejÊ                  ¬«      eddL   dM   d%<    eGdNejÊ                  ¬«      eddL   dM   dL<   eZj�                  dOdPd3idPedidœ«        ej¸                  d6dQD � cg c]  } | eXf‘Œ c} ¬«      Zf eGd«      efd%   dR<    ej¸                  d6dSeXfg¬«      efd%   dT<    edUg«      efd%   dT   d%   dS<   eZj�                  dVdWdHidWefidœ«        ej¸                  dJdQD � cg c]  } | eXf‘Œ c} ¬«      Zg eGd«      egd%   dR<    eGd0«      egd%   dT<    edXg«      egdL   dR<    edYg«      egdL   dT<   eZj�                  dZd[dHid[egidœ«        ejÄ                  d\D � cg c]  } | eXf‘Œ c} «      Zh e) ej¢                  d6eh¬«      d]«      Zieid%   Zj ed^g«      ejd_<    ed`g«      ejda<    ed^g«      ejdb<    eGd «      ejdc<    eGd«      ejdd<    eGd«      ejde<   eZj�                  dfdgdfidgeiidœ«        ek eeCdh«      di«      ZleljÛ                  «       jÝ                  dj«      Zoeljá                  «        eZj�                  dkdldidl eeog«      idœ«       eZj�                  d#d$d#id$ e!eR«      idœ«       eZj�                  d&d'd#id' e!eW«      idœ«       eZj�                  dmdndoidn edpgdqgg«      idœ«       eZdd Zqeqj�                  drdsdfids ejä                  eid0«      j—                  dd0«      idœ«       dt„ Zsdu„ Ztdv„ Zudw„ Zvdx„ ZwdËdy„Zxejˆ                  jó                  dedz«      d{„ «       Zzejˆ                  jó                  dedz«      d|„ «       Z{ejˆ                  jó                  d}d~d~dgfd€dgfg«      d�„ «       Z|d‚„ Z}dƒ„ Z~d„„ Zd…„ Z€d†„ Z�d‡„ Z‚dˆ„ Zƒd‰„ Z„dŠ„ Z…d‹„ Z†dŒ„ Z‡d�„ ZˆdŽ„ Z‰d�„ ZŠd�„ Z‹d‘„ ZŒd’„ Z�d“„ ZŽd”„ Z�d•„ Z�d–„ Z‘d—„ Z’d˜„ Z“d™„ Z”dš„ Z•d›„ Z–dœ„ Z—d�„ Z˜dž„ Z™dŸ„ Zšd „ Z›d¡„ Zœd¢„ Z�d£„ Zžd¤„ ZŸd¥„ Z d¦„ Z¡d§„ Z¢d¨„ Z£d©„ Z¤dª„ Z¥d«„ Z¦d¬„ Z§d­„ Z¨d®„ Z©d¯„ Zªd°„ Z«d±„ Z¬d²„ Z­d³„ Z®d´„ Z¯dµ„ Z°d¶„ Z±d·„ Z²d¸„ Z³d¹„ Z´ejˆ                  jó                  dºg d»¢«      d¼„ «       Zµd½„ Z¶d¾„ Z·d¿„ Z¸dÀ„ Z¹dÁ„ ZºdÂ„ Z»dÃ„ Z¼dÄ„ Z½dÅ„ Z¾dÆ„ Z¿dÇ„ ZÀdÈ„ ZÁdÉ„ ZÂdÊ„ ZÃyc c} w c c} w c c} w c c} w )Ìé    N)ÚOrderedDict)ÚjoinÚdirname)Úglob)ÚBytesIO)Úmkdtemp)Úassert_array_equalÚassert_array_almost_equalÚassert_equalÚassert_Úassert_allclose)ÚraisesÚwarns)Úarray)ÚissparseÚ	eye_arrayÚ	coo_arrayÚ	csc_arrayÚsparray)ÚMatlabOpaqueÚMatlabFunctionÚMatlabObject)ÚmatdimsÚMatWriteErrorÚMatReadErrorÚmatfile_versionÚMatWriteWarning)Úmat_reader_factoryÚloadmatÚsavematÚwhosmat)ÚMatFile5WriterÚMatFile5ReaderÚvarmats_from_matÚto_writeableÚEmptyStructMarkerÚdatac                  ód   — t        j                  | i |¤Ž}|j                  t        |«      «      }|S )z;Convenience function to return matlab-compatible 2-D array.)Únpr   Úreshaper   )ÚargsÚkwargsÚarrs      úi/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/scipy/io/matlab/tests/test_mio.pyÚmlarrr/   &   s,   € ä
�(‰(�DÐ
#˜FÑ
#€CØ
�+‰+”g˜c“lÓ
#€CØ€Jó    é   é	   ©Údtypeé   ÚdoubleÚ
testdouble)ÚnameÚclassesÚexpectedÚstringÚ
teststringÚcharz+"Do nine men interpret?" "Nine men," I nod.ÚcomplexÚtestcomplexy              ð?)é   é   é   ÚmatrixÚ
testmatrixÚsparseÚ
testsparse©r   r   ÚsparsecomplexÚtestsparsecomplexÚmulti)ÚthetaÚaÚminusÚ	testminuséÿÿÿÿÚonecharÚtestonecharÚré   )r5   rS   r@   z@This cell contains this string and 3 arrays of increasing lengthÚcellÚtestcellr@   ©r5   r5   Ú
scalarcellÚtestscalarcellÚ	emptycellÚtestemptycellÚstringarrayÚteststringarray)zone  ztwo  ÚthreeÚ3dmatrixÚtest3dmatrixé   )r1   r@   rS   )ÚstringfieldÚdoublefieldÚcomplexfieldzRats live on no evil star.ra   rb   y      ð?      ð?rc   ÚstructÚ
teststruct©r5   rS   )r5   r@   ©r   r5   )r   rS   rA   ÚcellnestÚtestcellnest©ÚoneÚtwork   r]   rl   znumber 3Ú
structnestÚteststructnestznumber 1znumber 2Ú	structarrÚteststructarr)ÚexprÚ	inputExprr+   ÚisEmptyÚnumArgsÚversionÚinlineÚxrq   z x = INLINE_INPUTS_{1};rr   r+   rs   rt   ru   ÚobjectÚ
testobjectzjapanese_utf8.txtÚrbzutf-8ÚunicodeÚtestunicodeÚboolÚ	testboolsÚlogicalTFÚobjectarrayÚtestobjectarrayc                 ó*  — t        | «      }t        |«      }||u ry|t        j                  u r*| j                  dk(  rt        | j	                  «       «      |u S |t        j                  u r*|j                  dk(  rt        |j	                  «       «      |u S y)zkCheck if types are same or compatible.

    0-D numpy scalars are compatible with bare python scalars.
    T© F)Útyper)   ÚndarrayÚshapeÚitem)Úvar1Úvar2Útype1Útype2s       r.   Útypes_compatiblerŒ   ç   s}   € ô
 �‹J€EÜ�‹J€EØ��~ØØ”—
‘
Ñ˜tŸz™z¨RÒ/Ü�D—I‘I“KÓ  EÐ)Ð)Ø”—
‘
Ñ˜tŸz™z¨RÒ/Ü�D—I‘I“KÓ  EÐ)Ð)Ør0   c           	      óô  — t        |«      r@t        t        |«      «       t        |j                  «       |j                  «       | d¬«       yt        t	        ||«      dt        |«      › dt        |«      › d| › �«       t        |t        j                  t        j                  z  t        z  «      st        ||«       yt        |j                  |j                  k(  d|j                  › d|j                  › d| › �¬«       |j                  }|j                  r\t        |t        «      r t        |j                  |j                  «       t!        |«      D ]  \  }}| › d	|› d
�}t#        ||||   «       Œ y|j$                  r-|j$                  D ]  }| › d|› d�}t#        |||   ||   «       Œ y|j
                  t&        t        j(                  t        j*                  fv rt        ||| ¬«       yt        ||| d¬«       y)z/ Check one level of a potentially nested array rA   )Úerr_msgÚdecimalNzExpected type z, got z at zExpected shape )Úmsgz, [z], z, field z, ©rŽ   )r   r   r
   ÚtoarrayrŒ   r„   Ú
isinstancer)   Úvoidr…   r   r   r†   r4   Ú	hasobjectÚ	classnameÚ	enumerateÚ_check_levelÚfieldsÚstrÚstr_Úbool_)Úlabelr:   ÚactualÚex_dtypeÚiÚevÚlevel_labelÚfns           r.   r˜   r˜   ÷   sÌ  € ä�ÔÜ”˜Ó Ô!Ü! &§.¡.Ó"2Ø"*×"2Ñ"2Ó"4Ø*/Ø*+õ	-ð 	äÔ˜X vÓ.ØœT (›^Ð,¨F´4¸³<°.ÀÀUÀGÐLôNô �h¤§¡¬"¯*©*Ñ 4´|Ñ CÔDÜ�X˜vÔ&ØäˆH�N‰N˜fŸl™lÑ*Ø! (§.¡.Ð!1°¸¿¹°~ÀTÈ%ÈÐQõSà�~‰~€HØ×ÒÜ�h¤Ô-Ü˜×+Ñ+¨V×-=Ñ-=Ô>Ü˜xÓ(ò 	5‰EˆAˆrØ"˜G 3 q c¨Ð-ˆKÜ˜ b¨&°©)Õ4ð	5ð 	Ø‡‚Ø—/‘/ò 	3ˆBØ"˜G 8¨B¨4¨rÐ2ˆKÜ˜Ø! "™ v¨b¡zõ3ð	3ð 	Ø‡}�}œÜŸ™ÜŸ™ð#ñ #ô 	�V˜X¨uÕ5Øä˜f h¸ÀqÖIr0   c                 ó¾   — |D ]X  }t        |dd¬«      }d| › d|› �}|j                  «       D ]-  \  }}|› d|› �}t        ||v d|› �«       t        ||||   «       Œ/ ŒZ y )NTF©Ústruct_as_recordÚspmatrixútest ú; file z, variable zMissing key at )r   Úitemsr   r˜   )	r8   ÚfilesÚcaseÚ	file_nameÚmatdictr�   Úkr:   Úk_labels	            r.   Ú_load_check_caser±   "  s   € Øò 8ˆ	Ü˜)°dÀUÔKˆØ˜�v˜W Y KÐ0ˆØŸ:™:›<ò 	8‰KˆAˆxØ˜˜{¨1¨#Ð.ˆGÜ�A˜�L O°G°9Ð"=Ô>Ü˜ (¨G°A©JÕ7ñ	8ñ8r0   c           
      ó  — |D ]|  }d| › d|› �}t        |«      }|j                  «       D ��cg c]  \  }}||j                  ||   f‘Œ }	}}|j                  «        |	j                  «        t	        ||	|› d|›d|	›�«       Œ~ y c c}}w )Nr¨   r©   z: z != )r!   rª   r†   Úsortr   )
r8   r«   r¬   r9   r­   r�   Úwhosr¯   r:   Úexpected_whoss
             r.   Ú_whos_check_caser¶   ,  s¥   € Øò ˆ	Ø˜�v˜W Y KÐ0ˆä�yÓ!ˆð @D¿z¹z»|÷MÙ0;°°8ˆQ�—‘ ¨¡
Ò+ðMˆñ Mð 	�	‰	ŒØ×ÑÔÜ�T˜=Ø�w˜b  ¨¨]Ð,=Ð>õ	ñùó
Ms   ¬Bc                 ór   — t        «       }t        |||¬«       |j                  d«       t        | |g|«       y )N©Úformatr   )r   r    Úseekr±   )r8   r:   r¹   Ú
mat_streams       r.   Ú_rt_check_caser¼   =  s/   € Ü“€JÜˆJ˜¨Õ0Ø‡O�O�AÔÜ�T˜J˜<¨Õ2r0   c              #   ó"  K  — | dk(  rt         }n| dk(  rt        }n| dk(  sJ ‚t        }|D ]a  }|d   }|d   }|€d }nCt        t        |t        |¬«      z  «      }t        |«      }t        |«      dkD  sJ d|› d	|› �«       ‚|d
   }||||f–— Œc y ­w)NÚ4Ú5Ú5_rtr8   r:   )r8   r   zNo files for test ú using filter r9   )Úcase_table4Úcase_table5Úcase_table5_rtÚpjoinÚtest_data_pathÚdictr   Úlen)	ru   ÚfiltÚcasesr¬   r8   r:   r«   Úuse_filtr9   s	            r.   Ú_casesrÌ   E  s¼   è ø€ Ø�#‚~Ü‰Ø	�CŠÜ‰à˜&Ò Ð Ð ÜˆØò -ˆØ�F‰|ˆØ˜
Ñ#ˆØˆ<Ø‰Eäœ^¨T´D¸d´OÑ-CÓDˆHÜ˜“NˆEÜ�u“: ’>ð @Ø$ T F¨.¸¸Ð?ó@�>à�y‘/ˆØ�E˜8 WÐ,Ó,ñ-ùs   ‚BB©r¾   r¿   c                 ó:   — t        | «      D ]  }t        |d d Ž  Œ y )Nr@   )rÌ   r±   ©ru   r¬   s     r.   Ú	test_loadrÐ   [  s#   € ä�w“ò $ˆÜ˜$˜r ˜(Ò#ñ$r0   c                 ó4   — t        | «      D ]
  }t        |Ž  Œ y ©N)rÌ   r¶   rÏ   s     r.   Ú	test_whosrÓ   a  s   € ä�w“ò  ˆÜ˜$Òñ r0   zversion, fmtsr¾   r¿   rÀ   c                 ó\   — t        | d ¬«      D ]  }|D ]  }t        |d   |d   |«       Œ Œ y )N)rÉ   r   rS   )rÌ   r¼   )ru   Úfmtsr¬   Úfmts       r.   Útest_round_tripr×   h  s=   € ô
 �w TÔ*ò 2ˆØò 	2ˆCÜ˜4 ™7 D¨¡G¨SÕ1ñ	2ñ2r0   c                  ó:  — t        j                  d«      } d| d<   d| d<   t        | «      }d}d|i}d}t        «       }	 t	        ||«      }t        j                  |d	¬
«      }t        |||¬«       |j                  «        t        j                  |d¬
«      }t        |dd¬«      }|j                  «        t        j                  |«       t        |d   j                  «       |d   j                  «       t        |«      ¬«       y # t        j                  |«       w xY w)N)é   rÙ   gffffff@©rS   r@   g      @)r1   rA   Ú	gzip_testrw   r¾   Úwb)Úmoder¸   rz   TFr¥   r‘   )r)   Úzerosr   r   rÅ   ÚgzipÚopenr    Úcloser   ÚshutilÚrmtreer
   r’   Úrepr)	Úxdenserw   r8   r:   r¹   ÚtmpdirÚfnamer»   rž   s	            r.   Útest_gzip_simplerè   r  só   € Ü�X‰X�gÓ€FØ€Fˆ3�KØ€Fˆ3�KÜ�&Ó€Aà€DØ�Aˆw€HØ€Fä‹Y€Fð
Ü�f˜TÓ"ˆÜ—Y‘Y˜u¨4Ô0ˆ
Ü�
˜H¨VÕ4Ø×ÑÔä—Y‘Y˜u¨4Ô0ˆ
Ü˜°dÀUÔKˆØ×ÑÔä�‰�fÔä˜f S™k×1Ñ1Ó3Ø& s™m×3Ñ3Ó5Ü&*¨6£lö4øô 	�‰�fÕús   ¾A6D ÄDc                  óJ  — t        «       } 	 t        t        j                  d«      ¬«      }t	        | d«      }t        ||«       t        j                  |«       t        ||«       t        |«       t        j                  |«       t        |d«      }t        ||«       |j                  d«       |j                  «        t        |d«      }t        |«       |j                  d«       |j                  «        t        j                  | «       y # t        j                  | «       w xY w)N)rS   rS   ©rw   za.matrÜ   r   rz   )r   rÇ   r)   rÞ   rÅ   r    ÚosÚunlinkr   rà   rº   rá   râ   rã   )ræ   rw   rç   Úfs       r.   Útest_multiple_openrî   Ž  sÍ   € ä‹Y€FðÜ”2—8‘8˜FÓ#Ô$ˆä�f˜gÓ&ˆô 	��qÔÜ
�	‰	�%ÔÜ��qÔÜ�ŒÜ
�	‰	�%Ôô �˜ÓˆÜ��1ŒØ	�‰ˆqŒ	Ø	�‰Œ	ä�˜ÓˆÜ�Œ
Ø	�‰ˆqŒ	Ø	�‰Œ	ä�‰�fÕøŒ�‰�fÕús   ŒC)D ÄD"c                  óØ   — t        t        t        d«      «      } t        t	        | «      dkD  «       | D ]5  }t        |d«      }t        t        t        |d¬«       |j                  «        Œ7 y )Nztesthdf5*.matr   rz   T©r¦   )
r   rÅ   rÆ   r   rÈ   rà   Úassert_raisesÚNotImplementedErrorr   rá   )Ú	filenamesÚfilenameÚfps      r.   Ú
test_mat73rö   «  sa   € äÜŒn˜oÓ.ó0€IäŒC�	‹N˜QÑÔØò ˆÜ�(˜DÓ!ˆÜÔ)ÜØØ'+õ	-ð 	�‰�
ñr0   c                  óÔ   — t        t        d«      } t        j                  «       5  t        j                  d«       t        | d¬«       t        | d¬«       d d d «       y # 1 sw Y   y xY w)Nztestdouble_7.1_GLNX86.matÚerrorTrð   F)rÅ   rÆ   ÚwarningsÚcatch_warningsÚsimplefilterr   )rç   s    r.   Útest_warningsrü   ¹  sT   € ô ”.Ð"=Ó>€EÜ	×	 Ñ	 Ó	"ñ /Ü×Ñ˜gÔ&ä�¨Õ-ä�¨Õ.÷/÷ /ñ /ús   ¥0AÁA'c                  óþ   — t        «       } t        | dddiid¬«       t        | «      d   }t        |j                  d«       t        |j
                  t        j
                  t        «      «       t        |d   d u «       y )NÚdr5   rS   r¿   r¸   rV   rG   ©	r   r    r   r   r†   r4   r)   rx   r   )ÚsioÚbacks     r.   Útest_regression_653r  Æ  sc   € ô ‹)€CÜˆC�#�q˜�e� SÕ)Ü�3‹<˜Ñ€Dä�—‘˜UÔ#Ü�—‘œRŸX™X¤fÓ-Ô.ÜˆD�‰I˜ÐÕr0   c                  ó  — d} d| z  }t        j                  d|t        fg¬«      }t        t	        «       d|id¬«       d| dz   z  }t        j                  d|t        fg¬«      }t        t        t        t	        «       d|id¬«       y )	Né   rL   rV   r3   Ú
longstructr¿   r¸   r5   ©r)   rÞ   rx   r    r   rñ   Ú
ValueError©ÚlimÚfldnameÚst1s      r.   Útest_structname_lenr  Ò  sz   € à
€CØ�C‰i€GÜ
�(‰(�5 '¬6Ð!2Ð 3Ô
4€CÜŒG‹I˜ cÐ*°3Õ7Ø�S˜‘U‰m€GÜ
�(‰(�5 '¬6Ð!2Ð 3Ô
4€CÜ”*œg¤w£yØ Ð%¨cö3r0   c                  ó†   — t        j                  ddt        fg¬«      } t        t        t
        t        «       d| idd¬«       y )NrV   Úmy_fieldnamer3   Ú	my_structr¾   T©r¹   Úlong_field_names)r)   rÞ   rx   rñ   r  r    r   )r  s    r.   Ú(test_4_and_long_field_names_incompatibler  Þ  s7   € ä—‘˜ ~´fÐ&=Ð%>Ô?€IÜ”*œg¤w£yØ˜yÐ)°#ÈöNr0   c                  ó  — d} d| z  }t        j                  d|t        fg¬«      }t        t	        «       d|idd¬«       d| d	z   z  }t        j                  d|t        fg¬«      }t        t        t        t	        «       d|idd¬«       y )
Né?   rL   rV   r3   r  r¿   Tr  r5   r  r  s      r.   Útest_long_field_namesr  å  s   € à
€CØ�C‰i€GÜ
�(‰(�5 '¬6Ð!2Ð 3Ô
4€CÜŒG‹I˜ cÐ*°3ÈÕMØ�S˜‘U‰m€GÜ
�(‰(�5 '¬6Ð!2Ð 3Ô
4€CÜ”*œg¤w£yØ Ð%¨cÀ4öIr0   c                  ó  — d} d| z  }t        j                  dt        ¬«      }t        j                  d|t        fg¬«      }||d<   ||d<   t	        t        «       d|id	d
¬«       t        t        t        t        «       d|id	d¬«       y )Nr  rL   rf   r3   rV   rG   rg   r  r¿   Tr  F)r)   r…   rx   rÞ   r    r   rñ   r  )r	  r
  rT   r  s       r.   Útest_long_field_names_in_structr  ñ  s€   € ð €CØ�C‰i€GÜ�:‰:�e¤&Ô)€DÜ
�(‰(�5 '¬6Ð!2Ð 3Ô
4€CØ€Dˆ�IØ€Dˆ�IÜŒG‹I˜ dÐ+°CÈÕNô ”*œg¤w£yØ Ð&¨sÀUöLr0   c                  óî   — t        j                  dt        ¬«      } d| d<   d| d<   t        t	        «       d| id¬	«       t        j                  d
t        ¬«      } d| d<   t        t	        «       d| id¬	«       y )Nrf   r3   ÚHellorG   ÚWorldrg   rw   r¿   r¸   rV   zHello, world)r)   r…   rx   r    r   )Úcellss    r.   Útest_cell_with_one_thing_in_itr    sc   € ô �J‰J�u¤6Ô*€EØ€Eˆ#�JØ€Eˆ#�JÜŒG‹I˜˜U�|¨CÕ0ä�J‰J�u¤6Ô*€EØ€Eˆ#�JÜŒG‹I˜˜U�|¨CÖ0r0   c                  ó`  — t        t        «       «      } t        | j                  g «       dg| _        t        | j                  dg«       t        | j                  d«       d| _        t        | j                  d«       t        | j
                  d«       d| _        t        | j
                  d«       y )NÚavarFT)r"   r   r   Úglobal_varsÚunicode_stringsr  )Úmfws    r.   Útest_writer_propertiesr"    s…   € ä
œ›Ó
#€CÜ�—‘ "Ô%Ø�h€C„OÜ�—‘ 6 (Ô+Ü�×$Ñ$ eÔ,Ø€CÔÜ�×$Ñ$ dÔ+Ü�×%Ñ% uÔ-Ø€CÔÜ�×%Ñ% tÕ,r0   c                  ó$  — t        «       } t        | «      }t        j                  d«      }|j	                  d|i«       t        | j                  «       «      }| j                  d«       | j                  d«       |j	                  d|i«       t        |t        | j                  «       «      z
  dkD  «       | j                  d«       | j                  d«       |j	                  d|i«       t        t        | j                  «       «      |z
  dk  «       y )Né
   Úaaaaar   Úaaaar1   Úaaaaaa)
r   r"   r)   rÞ   Úput_variablesrÈ   ÚgetvalueÚtruncaterº   r   )r   Úwtrr-   Úw_szs       r.   Útest_use_small_elementr-    sÌ   € ä
‹)€CÜ
˜Ó
€Cä
�(‰(�2‹,€CØ×Ñ�w �nÔ%Üˆs�|‰|‹~Ó€Dà‡L�L�„OØ‡H�HˆQ„KØ×Ñ�v˜s�mÔ$ÜˆD”3�s—|‘|“~Ó&Ñ&¨Ñ*Ô+à‡L�L�„OØ‡H�HˆQ„KØ×Ñ�x �oÔ&ÜŒC�—‘“Ó $Ñ&¨Ñ*Õ+r0   c                  óN  — t        j                  dggdt        fdt        fg¬«      } t        t        fD ]o  } |ddg«      }t        «       }t        |d|i«       |j                  d«       t        |«      d   }t        |j                  j                  d	«       t        || «       Œq y )
Nrf   rL   Úbr3   )rL   r5   )r/  rS   rÇ   r   ©rL   r/  )r)   r   rx   rÇ   r   r   r    rº   r   r   r4   Únamesr	   )Úab_expÚ	dict_typerþ   ÚstreamÚvalss        r.   Útest_save_dictr6  2  s”   € ô �X‰X˜�x�j¨#¬v¨¸¼f¸Ð(FÔG€FÜœKÐ(ò )ˆ	á�x Ð*Ó+ˆÜ“ˆÜ�˜ ˜Ô$Ø�‰�AŒÜ�v‹˜vÑ&ˆÜ�T—Z‘Z×%Ñ% zÔ2Ü˜4 Õ(ñ)r0   c                  ó´  — t        j                  d«      } dD ]¾  }t        «       }t        |d| i|¬«       t	        |«      }t        |d   j                  d«       t        «       }t        |d| i|d¬«       t	        |«      }t        |d   j                  d«       t        «       }t        |d| i|d	¬«       t	        |«      }t        |d   j                  d«       ŒÀ y )
NrA   rÍ   Úonedr¸   )r5   rA   Úcolumn)r¹   Úoned_as)rA   r5   Úrow)r)   Úaranger   r    r   r   r†   )r-   r¹   r4  r5  s       r.   Útest_1d_shaper=  A  sÊ   € ä
�)‰)�A‹,€CØò 0ˆä“ˆÜ�˜ ˜¨fÕ5Ü�v‹ˆÜ�T˜&‘\×'Ñ'¨Ô0ä“ˆÜ�˜ ˜ØØ õ	"ô �v‹ˆÜ�T˜&‘\×'Ñ'¨Ô/ä“ˆÜ�˜ ˜ØØõ	ô �v‹ˆÜ�T˜&‘\×'Ñ'¨Õ/ñ'0r0   c                  ó   — t        j                  d«      j                  d«      } d| d<   t        «       }t	        |d| i«       t        |j                  «       «      }t        |«      }t        |d   | «       t        «       }t	        |d| id¬«       t        |j                  «       «      }t        |«      }t        |d   | «       t        ||kD  «       | j                  «       }d|d<   t        «       }t	        || |d	œd
¬«       t        |«      }t        |d   |«       t        «       }t	        || |d	œd¬«       t        |«      }t        |d   |«       y )Néd   )rA   rÙ   r5   )rS   r$  r-   T)Údo_compressionrG   )r-   Úarr2FrA  )r)   rÞ   r*   r   r    rÈ   r)  r   r	   r   Úcopy)r-   r4  Úraw_lenr5  Úcompressed_lenrA  s         r.   Útest_compressionrE  Z  s  € Ü
�(‰(�3‹-×
Ñ
 Ó
'€CØ€Cˆ�IÜ‹Y€FÜˆF�U˜3�KÔ Ü�&—/‘/Ó#Ó$€GÜ�6‹?€DÜ�t˜E‘{ CÔ(Ü‹Y€FÜˆF�U˜3�K°Õ5Ü˜Ÿ™Ó*Ó+€NÜ�6‹?€DÜ�t˜E‘{ CÔ(ÜˆG�nÑ$Ô%à�8‰8‹:€DØ€Dˆ�IÜ‹Y€FÜˆF˜3 tÑ,¸UÕCÜ�6‹?€DÜ�t˜F‘| TÔ*Ü‹Y€FÜˆF˜3 tÑ,¸TÕBÜ�6‹?€DÜ�t˜F‘| TÕ*r0   c                  óf   — t        «       } t        | dt        j                  dt        ¬«      i«       y )NÚAr5   r3   )r   r    r)   r   rx   )r4  s    r.   Útest_single_objectrH  u  s#   € Ü‹Y€FÜˆF�SœŸ™ !¬6Ô2Ð3Õ4r0   c                  ó  — t        t        d«      } t        | d¬«      }t        d|v «       t        d|v «       t	        | d¬«      \  }}|j                  d«      }t        d|v «       |j                  j                  «        y )Nztest_skip_variable.matTrð   ÚfirstÚsecond)rÅ   rÆ   r   r   r   Úget_variablesr»   rá   )rô   rþ   ÚfactoryÚfile_openeds       r.   Útest_skip_variablerO  z  sz   € ô ”^Ð$<Ó=€Hô 	�¨4Ô0€AÜˆG�qˆLÔÜˆH˜ˆMÔô .¨hÈÔNÑ€Gˆ[ð 	×Ñ˜hÓ'€AÜˆH˜ˆMÔØ×Ñ×ÑÕr0   c                  ó„  — t        t        d«      } t        | d¬«      }|d   }t        |j                  d«       t        |j
                  t        j
                  t        «      «       t        |d   d u «       t        «       }t        j                  dd¬	«      }t        |d
|i«       t        |«      }|d
   }t        ||«       y )Nztest_empty_struct.matTrð   rL   rV   rG   rƒ   ÚUr3   r-   )rÅ   rÆ   r   r   r†   r4   r)   rx   r   r   r   r    r	   )rô   rþ   rL   r4  r-   Úa2s         r.   Útest_empty_structrS  ˜  sœ   € ä”^Ð$;Ó<€Hô 	�¨4Ô0€AØ	ˆ#‰€AÜ�—‘˜%Ô Ü�—‘œ"Ÿ(™(¤6Ó*Ô+ÜˆAˆc‰F�dˆNÔÜ‹Y€FÜ
�(‰(�2˜SÔ
!€CäˆF�U˜3�KÔ Ü�‹€AØ	
ˆ5‰€BÜ�r˜3Õr0   c                  óú   — t        «       } t        | di i«       t        | «      }|d   }t        |j                  d«       t        |j
                  t        j
                  t        «      «       t        |d   d u «       y )Nr-   rV   rG   rÿ   )r4  rþ   rL   s      r.   Útest_save_empty_dictrU  «  s^   € ä‹Y€FÜˆF�U˜B�KÔ Ü�‹€AØ	ˆ%‰€AÜ�—‘˜%Ô Ü�—‘œ"Ÿ(™(¤6Ó*Ô+ÜˆAˆc‰F�dˆNÕr0   c                 ód   — d}|D ]  }t        j                  | |k(  «      sŒd} n t        |«       y)zH Assert `output` is equal to at least one element in `alternatives`
    FTN)r)   Úallr   )ÚoutputÚalternativesÚ	one_equalr:   s       r.   Úassert_any_equalr[  ¶  s;   € ð €IØ ò ˆÜ�6‰6�&˜HÑ$Õ%ØˆIÙðô ˆIÕr0   c            	      óô  — t        t        j                  dg«      «      } t        | j                  d«       t        | d«       t        j                  dgddg¬«      }t        j                  dgddg¬«      }||f}t        t        ddd	œ«      |«       t        j                  t        d
¬«      5  t        t        ddddœ«      |«       d d d «       t        t        ddddœ«      |«       t        j                  t        d
¬«      5  t        t        ddddœ«      |«       d d d «        G d„ d«      }|}d|_
        d|_        t        t        |«      |«       t        g «      } t        | j                  d«       t        | j                  j                  t        j                  «       t        d«      } t        | j                  d«       t        | j                  j                  t        j                  «       t        t        d «      d u «       t        t        d«      j                  j                  t        j                   «       t        d«      } t        | j                  d«       t        | j                  j                  t        j                  d«      j                  j                  «       t        | d«       t        t        i «      t"        u «       t        t        t%        «       «      d u «        G d„ d«      }t        t         |«       «      t"        u «       t        ddi«      d   } t        | j                  d«       t        | j                  j                  t        j&                  «       t        j                  t        d
¬«      5  t        t        ddi«      t"        u «       d d d «       t        j                  t        d
¬«      5  t        t        ddi«      t"        u «       d d d «       t        j                  t        d
¬«      5  t        t        dddœ«      t        j                  dgdg¬«      «       d d d «       y # 1 sw Y   �ŒwxY w# 1 sw Y   �Œ.xY w# 1 sw Y   Œ·xY w# 1 sw Y   ŒƒxY w# 1 sw Y   y xY w)Nr5   )r5   rf   )rL   ú|O8)r/  r]  r3   )rS   r5   rS   r0  úStarting field name with©Úmatchr@   )rL   r/  Ú_c)rL   r/  r?  )rL   r/  Ú99c                   ó   — e Zd Zy)ú test_to_writeable.<locals>.klassN©Ú__name__Ú
__module__Ú__qualname__rƒ   r0   r.   Úklassrd  Õ  ó   „ Ør0   ri  ©r   rƒ   úa stringc                   ó   — e Zd Zy)útest_to_writeable.<locals>.CNre  rƒ   r0   r.   ÚCrn  ò  rj  r0   ro  rL   Ú1Ú_a)rp  rí   ©rS   )rí   r]  )r%   r)   r   r   r†   r	   r[  Úpytestr   r   rL   r/  r4   r„   Úfloat64r   r›   r&   rx   Úobject_)ÚresÚ	expected1Ú	expected2rY  ri  Úcro  s          r.   Útest_to_writeablerz  Á  sW  € ä
”r—x‘x  “}Ó
%€CÜ�—‘˜DÔ!Ü�s˜AÔä—‘˜&˜¨,¸Ð)EÔF€IÜ—‘˜&˜¨,¸Ð)EÔF€IØ˜yÐ)€LÜ”\ q¨Q¡-Ó0°,Ô?ä	�‰”oÐ-GÔ	Hñ MÜœ¨1°!¸!Ñ&<Ó=¸|ÔL÷Mô ”\ q¨Q°AÑ"6Ó7¸ÔFä	�‰”oÐ-GÔ	Hñ MÜœ¨1°!¸!Ñ&<Ó=¸|ÔL÷M÷ñ ð 	€AØ
€A„CØ
€A„CÜ”\ !“_ lÔ3ä
�rÓ
€CÜ�—‘˜DÔ!Ü�—‘—‘¤§¡Ô,Ü
�rÓ
€CÜ�—‘˜DÔ!Ü�—‘—‘¤§¡Ô,äŒL˜Ó $Ð&Ô'ä”˜jÓ)×/Ñ/×4Ñ4´b·g±gÔ>ä
�q‹/€CÜ�—‘˜BÔÜ�—‘—‘¤§¡¨!£×!2Ñ!2×!7Ñ!7Ô8Ü�s˜AÔäŒL˜ÓÔ 1Ð1Ô2äŒLœ›Ó" dÐ*Ô+÷ñ ô ŒL™›ÓÔ!2Ð2Ô3ä
˜˜Q�xÓ
  Ñ
%€CÜ�—‘˜DÔ!Ü�—‘—‘¤§¡Ô,ä	�‰”oÐ-GÔ	Hñ <Ü”˜c !˜WÓ%Ô):Ð:Ô;÷<ô 
�‰”oÐ-GÔ	Hñ =Ü”˜d 1˜XÓ&Ô*;Ð;Ô<÷=ô 
�‰”oÐ-GÔ	Hñ 9Ü”\ q¨q¡/Ó2Ü—‘˜4˜&¨¨Ô7ô	9÷9ð 9÷kMñ Mú÷
Mñ Mú÷T<ð <ú÷=ð =ú÷9ð 9ús<   Â-P<ÄQ	ÎQÏQ"Ð0Q.Ð<QÑ	QÑQÑ"Q+Ñ.Q7c                  óH  — ddg} t        j                  d| ¬«      }d|d   d<   d|d   d	<   d
|d   d<   d|d   d	<   t        «       }t        |d|i«       t	        |d¬«      }|d   d   }t        |j                  d«       t        |j                  d«       t	        |d¬«      }|d   d   }t        |d   d«       t        |d	   d«       t        |j                  t        j                  ddg«      «       |d   j                  d   }t        |d   d
«       t        |d	   d«       y )N)Úf1Úf8)Úf2ÚS10rr  r3   g      à?r   r|  Úpythonr~  éc   r5   znot perlr-   Frð   rG   T)r|  ÚO)r~  r‚  )
r)   rÞ   r   r    r   r   r|  r~  r4   Úflat)Údtr-   r4  rþ   Úa20Úa21s         r.   Útest_recarrayr‡    s#  € à
Ø
ð
€Bä
�(‰(�4˜rÔ
"€CØ€Cˆ�Fˆ4�LØ€Cˆ�Fˆ4�LØ€Cˆ�Fˆ4�LØ€Cˆ�Fˆ4�LÜ‹Y€FÜˆF�U˜C�LÔ!Ü�¨Ô/€AØ
ˆE‰(�3‰-€CÜ�—‘˜ÔÜ�—‘˜Ô"Ü�¨Ô.€AØ
ˆE‰(�3‰-€CÜ��T‘˜CÔ Ü��T‘˜HÔ%ä�—‘œBŸH™H kØ&1ð&3ó 4ô 5à
ˆE‰(�-‰-˜Ñ
€CÜ��T‘˜BÔÜ��T‘˜JÕ'r0   c                  óZ  —  G d„ d«      }  | «       }d|_         d|_        t        «       }t        |d|i«       t	        |d¬«      }|d   d   }t        |j                   d«       t        |j                  d«       t	        |d	¬«      }|d   d   }t        |d
   d«       t        |d   d«       y )Nc                   ó   — e Zd Zy)útest_save_object.<locals>.CNre  rƒ   r0   r.   ro  rŠ  "  rj  r0   ro  r5   rl  ry  Frð   rG   TÚfield1Úfield2)r‹  rŒ  r   r    r   r   )ro  ry  r4  rþ   Úc2s        r.   Útest_save_objectrŽ  !  s    € ÷ñ á	‹€AØ€A„HØ€A„HÜ‹Y€FÜˆF�S˜!�HÔÜ�¨Ô/€AØ	
ˆ3‰�‰€BÜ�—‘˜AÔÜ�—‘˜JÔ'Ü�¨Ô.€AØ	
ˆ3‰�‰€BÜ��H‘˜qÔ!Ü��H‘˜zÕ*r0   c                  ó¦  — t        j                  d«      j                  dd«      } t        «       }t	        |d| i«       t        |«      }|j                  «       }|d   }t        || «       t        |d¬«      }t        |j                  «       d   | j                  d«      «       d|_        t        || «       t        |t        j                  ¬«      }t        |j                  «       d   | «       t        |t        j                  ¬«      }t        t        |j                  «       t        j                  |_        t        |j                  «       d   | «       t        j                  d	g«      } |j!                  d
«       |j#                  d
«       t	        |d| i«       t        |«      }t        |j                  «       d   | «       t        |d¬«      }t        j$                  t        j                  t'        | j)                  «       «      d¬«      «      }t        |j                  «       d   |«       d|_        t        |j                  «       d   | «       y )NrB   r5   rL   T©Ú
squeeze_me)rB   F)Ú
byte_orderrl  r   )Úchars_as_stringsÚU1r3   )r)   r<  r*   r   r    r#   rL  r	   r‘  ÚbocÚnative_codeÚswapped_coderñ   Ú	Exceptionr’  r   r*  rº   Ú
atleast_2dÚlistr‡   r“  )r-   r4  ÚrdrÚ	back_dictÚrarrÚcarrs         r.   Útest_read_optsrŸ  3  sÊ  € ô �)‰)�A‹,×
Ñ
˜q Ó
#€CÜ‹Y€FÜˆF�S˜#�JÔÜ
˜Ó
 €CØ×!Ñ!Ó#€IØ�S‰>€DÜ�t˜SÔ!Ü
˜¨DÔ
1€CÜ�s×(Ñ(Ó*¨3Ñ/°·±¸TÓ1BÔCØ€C„NÜ�t˜SÔ!Ü
˜¬C¯O©OÔ
<€CÜ�s×(Ñ(Ó*¨3Ñ/°Ô5ô ˜¬C×,<Ñ,<Ô
=€CÜ”)˜S×.Ñ.Ô/Ü—_‘_€C„NÜ�s×(Ñ(Ó*¨3Ñ/°Ô5Ü
�(‰(�J�<Ó
 €CØ
‡O�O�AÔØ
‡K�K�„NÜˆF�S˜#�JÔÜ
˜Ó
 €CÜ�s×(Ñ(Ó*¨3Ñ/°Ô5Ü
˜°%Ô
8€CÜ�=‰=œŸ™¤$ s§x¡x£zÓ"2¸$Ô?Ó@€DÜ�s×(Ñ(Ó*¨3Ñ/°Ô6Ø€CÔÜ�s×(Ñ(Ó*¨3Ñ/°Õ5r0   c                  óØ  — t        t        d«      } t        | d«      }t        |«      }|j	                  «       }|j                  «        t        |d   t        j                  g d¬«      «       t        «       }t        |dt        j                  dg«      i«       t        |«      }|j	                  «       }t        |d   t        j                  g d¬«      «       |j                  d«       |j                  d«       t        |dt        j                  g d¬«      i«       t        |«      }|j	                  «       }t        |d   t        j                  g d¬«      «       |j                  «        y )Nzsingle_empty_string.matrz   rL   r”  r3   Ú r   )rÅ   rÆ   rà   r#   rL  rá   r	   r)   r   r   r    r*  rº   )Úestring_fnamerõ   r›  rþ   r4  s        r.   Útest_empty_stringr£  V  s  € äœ.Ð*CÓD€MÜ	ˆm˜TÓ	"€BÜ
˜Ó
€CØ×ÑÓ€AØ‡H�H„JÜ�q˜‘vœrŸx™x¨°$Ô7Ô8ô ‹Y€FÜˆF�Sœ"Ÿ(™( B 4›.Ð)Ô*Ü
˜Ó
 €CØ×ÑÓ€AÜ�q˜‘vœrŸx™x¨°$Ô7Ô8Ø
‡O�O�AÔØ
‡K�K�„NÜˆF�Sœ"Ÿ(™( 2¨TÔ2Ð3Ô4Ü
˜Ó
 €CØ×ÑÓ€AÜ�q˜‘vœrŸx™x¨°$Ô7Ô8Ø
‡L�L…Nr0   c                  óè   — dd l } t        df| j                  dffD ]I  \  }}t        t	        t
        |«      d«      5 }t        |«      }t        ||j                  «       d d d «       ŒK y # 1 sw Y   ŒVxY w)Nr   úcorrupted_zlib_data.matzcorrupted_zlib_checksum.matrz   )	Úzlibr  rø   rà   rÅ   rÆ   r#   rñ   rL  )r¦  Úexcrç   rõ   r›  s        r.   Útest_corrupted_datar¨  q  sx   € ÛÜ"Ð$=Ð>ØŸ
™
Ð$AÐBðDò 2‰
ˆˆUä”%œ¨Ó.°Ó5ð 	2¸Ü  Ó$ˆCÜ˜#˜s×0Ñ0Ô1÷	2ð 	2ñ2÷	2ð 	2ús   »"A(Á(A1	c                  óœ   — t        t        t        d«      d«      5 } t        | d¬«      }|j	                  «        d d d «       y # 1 sw Y   y xY w)Nr¥  rz   F)Ú verify_compressed_data_integrity)rà   rÅ   rÆ   r#   rL  )rõ   r›  s     r.   Ú)test_corrupted_data_check_can_be_disabledr«  z  sC   € Ü	Œe”NÐ$=Ó>ÀÓ	Eð ÈÜ˜RÀ%ÔHˆØ×ÑÔ÷÷ ñ ús   ›AÁAc            	      ód  — dD ]«  } t        t        t        | «      d«      }t        |«      }|j	                  «       }|j                  «        t        |d   t        j                  dgdggt        ¬«      «       t        |d   t        j                  dd	gd	d
ggt        j                  ¬«      «       Œ­ y )N)zbig_endian.matzlittle_endian.matrz   ÚstringsÚhelloÚworldr3   Úfloatsç       @ç      @ç      @)rà   rÅ   rÆ   r#   rL  rá   r	   r)   r   rx   Úfloat32)rç   rõ   r›  rþ   s       r.   Útest_read_both_endianrµ  €  sª   € à8ò 
CˆÜ”%œ¨Ó.°Ó5ˆÜ˜RÓ ˆØ×ÑÓˆØ
�‰Œ
Ü˜1˜Y™<ÜŸ8™8 g YØ&- Yð%0Ü7=ô?ô	@ô 	˜1˜X™;ÜŸ8™8 b¨" XØ&(¨" Xð%/Ü68·j±jôBõ	Cñ
Cr0   c            	      óÖ  — t        j                  ddgddgg«      } t        j                  d«      j                  d«      }t        j                  ddgd¬	«      }t	        «       }t        || j                  «       j                  | j                  j                  «       «      |j                  «       j                  |j                  j                  «       «      |j                  «       j                  |j                  j                  «       «      d
œ«       t        |«      }|j                  «       }t        |d   | «       t        |d   |«       t        |d   |«       |j                  «        y )Nr±  r²  r³  rB   rÚ   r®  r¯  rQ  r3   )r°  ÚintsÚuni_arrr°  r·  r¸  )r)   r   r<  r*   r   r    ÚbyteswapÚviewr4   Únewbyteorderr#   rL  r	   rá   )Ú	float_arrÚint_arrr¸  r4  r›  rþ   s         r.   Útest_write_opposite_endianr¾  �  s   € ô —‘˜2˜r˜(Ø˜r˜(ð$ó %€Iä�i‰i˜‹l×"Ñ" 6Ó*€GÜ�h‰h˜ Ð)°Ô5€GÜ‹Y€FÜˆFØ×$Ñ$Ó&×+Ñ+¨I¯O©O×,HÑ,HÓ,JÓKØ× Ñ Ó"×'Ñ'¨¯©×(BÑ(BÓ(DÓEØ×#Ñ#Ó%×*Ñ*¨7¯=©=×+EÑ+EÓ+GÓHñô ô
 ˜Ó
 €CØ×ÑÓ€AÜ�q˜‘{ IÔ.Ü�q˜‘y 'Ô*Ü�q˜‘| WÔ-Ø
‡L�L…Nr0   c                  óR  — t        t        t        d«      d«      5 } t        | d¬«      }|j	                  «       }d d d «       t        j                  dgdggt
        j                  ¬«      }t        d   |«       t        |d   j                  |j                  «       y # 1 sw Y   ŒexY w)Nztestbool_8_WIN64.matrz   T©Ú	mat_dtypeFr3   r~   )rà   rÅ   rÆ   r#   rL  r)   r   rœ   r	   r   r4   )Úfobjr›  rþ   rw   s       r.   Útest_logical_arrayrÃ  ¤  sŒ   € ô 
Œe”NÐ$:Ó;¸TÓ	Bð  ÀdÜ˜T¨TÔ2ˆØ×ÑÓˆ÷ ô 	�‰�4�&˜5˜'Ð"¬"¯(©(Ô3€AÜ�q˜‘~ qÔ)Ü��;‘×%Ñ% q§w¡wÕ/÷ ð  ús   ›BÂB&c                  óô  — t        «       } t        j                  g d¢«      }t        | d|i«       | j	                  d«       t        | «      }|j                  «        |j                  «        |j                  «       \  }}t        |j                  t        j                  «       t        |j                  d«       |j                  |d«      }t        |j                  j                   t        j"                  «       y )N)FTFÚbarrayr   TF)r   r)   r   r    rº   r#   Úinitialize_readÚread_file_headerÚread_var_headerr   ÚmclassÚmio5pÚmxUINT8_CLASSÚ
is_logicalÚread_var_arrayr4   r„   Úuint8)r4  ÚbarrÚreaderÚhdrÚ_Úvars         r.   Útest_logical_out_typerÔ  ¯  s²   € ô ‹Y€FÜ�8‰8Ò(Ó)€DÜˆF�X˜tÐ$Ô%Ø
‡K�K�„NÜ˜FÓ#€FØ
×ÑÔØ
×ÑÔØ×#Ñ#Ó%�F€CˆÜ�—‘œU×0Ñ0Ô1Ü�—‘ Ô&Ø
×
Ñ
  UÓ
+€CÜ�—‘—‘¤§¡Õ*r0   c                  ó˜   — t        «       } t        | dt        j                  d«      i«       t	        | «      }|d   j
                  dk(  sJ ‚y )Nrþ   )r$  r   )r   r    r)   Úemptyr   r†   )r4  rþ   s     r.   Útest_roundtrip_zero_dimensionsr×  À  s@   € Ü‹Y€FÜˆF�SœŸ™ 'Ó*Ð+Ô,Ü�‹€AØˆS‰6�<‰<˜7Ò"Ð"Ñ"r0   c                  ó”   — t        «       } t        j                  d«      j                  d«      }t	        t
        t        | d|idd«       y )Né   )rS   r@   r1   rL   Tr¾   )r   r)   r<  r*   rñ   r  r    )r4  r-   s     r.   Útest_mat4_3drÚ  Ç  s7   € ä‹Y€FÜ
�)‰)�B‹-×
Ñ
 Ó
(€CÜ”*œg v°°S¨z¸4ÀÕEr0   c                  ó|  — t        t        d«      } t        | d«      }t        |«      }|j	                  «       }|j                  «        t        |d   t        «      sJ ‚t        «       }t        |«      }t        j                  t        d¬«      5  t        t        |j                  |«       d d d «       y # 1 sw Y   y xY w)Nztestfunc_7.4_GLNX86.matrz   Útestfuncr^  r_  )rÅ   rÆ   rà   r#   rL  rá   r“   r   r   r"   rs  r   r   rñ   r   r(  )Úfunc_egrõ   r›  rþ   r4  r+  s         r.   Útest_func_readrÞ  Î  s—   € Ü”NÐ$=Ó>€GÜ	ˆg�tÓ	€BÜ
˜Ó
€CØ×ÑÓ€AØ‡H�H„JÜ�a˜
‘m¤^Ô4Ð4Ð4Ü‹Y€FÜ
˜Ó
 €Cä	�‰”oÐ-GÔ	Hñ ;Ü”m S×%6Ñ%6¸Ô:÷;÷ ;ñ ;ús   ÂB2Â2B;c                  ó”  — t        t        d«      } t        | d«      }t        |d¬«      }|j	                  «       }|j                  «        t        |d   j                  j                  d«       t        | d«      }t        |d¬«      }|j	                  «       }|j                  «        t        |d   j                  j                  d«       y )	Nztestmatrix_6.1_SOL2.matrz   FrÀ  rD   ÚuTrí   )	rÅ   rÆ   rà   r#   rL  rá   r   r4   Úkind)Ú	double_egrõ   r›  rþ   s       r.   Útest_mat_dtyperã  Ü  s¡   € Ü”nÐ&?Ó@€IÜ	ˆi˜Ó	€BÜ
˜ uÔ
-€CØ×ÑÓ€AØ‡H�H„JÜ��<‘×&Ñ&×+Ñ+¨SÔ1ä	ˆi˜Ó	€BÜ
˜ tÔ
,€CØ×ÑÓ€AØ‡H�H„JÜ��<‘×&Ñ&×+Ñ+¨SÕ1r0   c                  óÔ   — dt        d«      i} t        «       }t        |d| i«       t        |d¬«      }t	        |d   d   d   j                  «       t        j                  d«      «       y )NÚsparsefieldr1   rL   Trð   rG   )r   r   r    r   r	   r’   r)   Úeye)Ústr4  rþ   s      r.   Útest_sparse_in_structrè  ë  s[   € ð œ 1›Ð	&€BÜ‹Y€FÜˆF�S˜�HÔÜ�¨Ô.€AÜ�q˜‘v˜d‘| MÑ2×:Ñ:Ó<¼b¿f¹fÀQ»iÕHr0   c                  ót   — t        «       } ddddœi}t        | |«       t        | d¬«       t        | dd¬«       y )	Nrç  r5   rS   rj   Frð   T)r¦   r‘  )r   r    r   )r4  Úin_ds     r.   Útest_mat_struct_squeezerë  õ  s8   € Ü‹Y€FØ˜ Ñ#Ð$€DÜˆF�DÔäˆF UÕ+äˆF U°tÖ<r0   c                  ó  — t        «       } dggddddœdœ}t        | |«       t        | d¬«      }t        t	        |d	   t
        «      «       t        t	        |d
   t        «      «       t        t	        |d   t        j                  «      «       y )Nçš™™™™™¹?zmy namer5   rS   rj   )Úscalarr;   rç  Tr�  rî  r;   rç  )	r   r    r   r   r“   Úfloatrš   r)   r…   )r4  rê  Úout_ds      r.   Útest_scalar_squeezerñ  ÿ  sq   € Ü‹Y€FØ�u�g¨ÀÈÑ9KÑL€DÜˆF�DÔÜ�F tÔ,€EÜŒJ�u˜X‘¬Ó.Ô/ÜŒJ�u˜X‘¬Ó,Ô-ÜŒJ�u˜T‘{¤B§J¡JÓ/Õ0r0   c                  óÀ  — t        «       } t        j                  ddg«      }t        j                  ddg«      }t        | t	        |¬«      «       t        | «      }t        |d   |«       | j                  d«       | j                  d«       |j                  d¬«      }t        j                  t        j                  |j                  d|¬	«      }t        | t	        |¬«      «       t        |d   |«       | j                  d«       | j                  d«       |j                  d
«      }|j                  d
«      }t        | d|i«       t        | «      }t        |d   |«       y )Nr  ÚFoobzFoob )rL   rL   r   ÚF)Úorder)r†   r4   rõ  ÚbufferrQ  )r   r)   r   r    rÇ   r   r	   r*  rº   Útobytesr…   rL   r†   r4   Úastype)r4  Úin_arrÚout_arrrv  Úin_strÚin_from_strÚin_arr_uÚ	out_arr_us           r.   Útest_str_roundrÿ  	  s  € ä‹Y€FÜ�X‰X�w Ð'Ó(€FÜ�h‰h˜ Ð)Ó*€GÜˆF”D˜6”NÔ#Ü
�&‹/€Cä�s˜3‘x Ô)Ø
‡O�O�AÔØ
‡K�K�„Nà�^‰^ #ˆ^Ó&€FÜ—*‘*¤1§7¡7Ø#)§<¡<Ø#&Ø$*ô,€Kô ˆF”D˜;Ô'Ô(Ü�s˜3‘x Ô)à
‡O�O�AÔØ
‡K�K�„NØ�}‰}˜SÓ!€HØ—‘˜sÓ#€IÜˆF�S˜(�OÔ$Ü
�&‹/€CÜ�s˜3‘x Õ+r0   c                  ó°   — t        «       } t        | ddddœi«       t        | «      }|d   j                  j                  }t        t        |«      ddh«       y )NrL   r5   rS   r0  r/  )r   r    r   r4   r1  r   Úset)r4  rv  Úfield_namess      r.   Útest_fieldnamesr  &  sK   € ä‹Y€FÜˆF�S˜q a™.Ð)Ô*Ü
�&‹/€CØ�c‘(—.‘.×&Ñ&€KÜ”�[Ó! C¨ :Õ.r0   c                  óx  — g d¢} t        t        d«      g ft        t        d«      | ffD �]Ž  \  }}t        |«      }t        t	        |j                  «       «      t	        ddg|z   «      «       t        |d¬«      }t        t	        |j                  «       «      t	        dg|z   «      «       t        |dg¬«      }t        t	        |j                  «       «      t	        dg|z   «      «       t        |dg¬«      }t        t	        |j                  «       «      t	        dg|z   «      «       t        |d¬«      }t        t	        |j                  «       «      t	        dg|z   «      «       t        |g ¬«      }t        t	        |j                  «       «      t	        |«      «       dg}t        ||¬«      }t        |dg«       �Œ‘ y )N)Ú__globals__Ú
__header__Ú__version__ztestmulti_4.2c_SOL2.matztestmulti_7.4_GLNX86.matrL   rK   )Úvariable_names)rK   )rÅ   rÆ   r   r   r  Úkeys)Úmat5_sys_namesÚeg_fileÚsys_v_namesÚvarsÚvnamess        r.   Útest_loadmat_varnamesr  /  sv  € ò%€Nô 
Œ~Ð8Ó	9¸2Ð>ÄÜÐ6óB8Ø9GðAIð!Jó (Ñˆ�ô �wÓˆÜ”S˜Ÿ™›Ó%¤s¨C°¨>¸KÑ+GÓ'HÔIÜ�w¨sÔ3ˆÜ”S˜Ÿ™›Ó%¤s¨C¨5°;Ñ+>Ó'?Ô@Ü�w°¨uÔ5ˆÜ”S˜Ÿ™›Ó%¤s¨C¨5°;Ñ+>Ó'?Ô@Ü�w°¨yÔ9ˆÜ”S˜Ÿ™›Ó%¤s¨G¨9°{Ñ+BÓ'CÔDÜ�w¨zÔ:ˆÜ”S˜Ÿ™›Ó%¤s¨G¨9°{Ñ+BÓ'CÔDÜ�w¨rÔ2ˆÜ”S˜Ÿ™›Ó%¤s¨;Ó'7Ô8Ø�ˆÜ�w¨vÔ6ˆÜ�V˜g˜YÖ'ñ#(r0   c                  ó<  — t        j                  d«      } t        «       }dD ]x  }|j                  d«       |j	                  d«       t        |d| j                  |«      i«       t        |«      }t        t        j                  |«      |d   j                  «       Œz y )Nr$  )r}  Úf4Úi8Úi4Úi2Úi1Úu8Úu4Úu2Úu1Úc16Úc8r   r-   )
r)   r<  r   r*  rº   r    rø  r   r   r4   )r-   r4  Údtsr  s       r.   Útest_round_typesr  H  sz   € ä
�)‰)�B‹-€CÜ‹Y€Fð0ò 7ˆà�‰˜ÔØ�‰�AŒÜ�˜ §
¡
¨3£Ð0Ô1Ü�v‹ˆÜ”R—X‘X˜c“] D¨¡K×$5Ñ$5Õ6ñ7r0   c                  ó’  ‡	— dt        t        j                  d«      «      fdt        d«      fdt        d«      ffŠ	 G ˆ	fd„d«      } t        «       }t	        | | «       «       t        |«      }t        t        |«      d«       t        d«      D ]8  }||   \  }}‰	|   \  }}t        ||«       t        |«      }t        ||   |«       Œ: y )	Nr-   r$  Úmystrrl  Úmynumc                   ó   •— e Zd Zˆ fd„Zy)ú test_varmats_from_mat.<locals>.Cc                 ó   •— ‰S rÒ   rƒ   ©ÚselfÚ
names_varss    €r.   rª   z&test_varmats_from_mat.<locals>.C.items]  ó	   ø€ ØÐr0   N©rf  rg  rh  rª   ©r&  s   €r.   ro  r"  \  ó   ø„ õ	r0   ro  r@   )r/   r)   r<  r   r    r$   r   rÈ   Úranger   r	   )
ro  r4  Úvarmatsr    r8   Ú
var_streamÚexp_nameÚexp_resrv  r&  s
            @r.   Útest_varmats_from_matr0  U  sÀ   ø€ àœ%¤§	¡	¨"£Ó.Ð/ØœE *Ó-Ð.ØœE "›IÐ&ð(€J÷
ó ô ‹Y€FÜˆF‘A“CÔÜ˜vÓ&€GÜ”�W“˜qÔ!Ü�1‹Xò /ˆØ" 1™:ÑˆˆjØ& q™MÑˆ�'Ü�T˜8Ô$Ü�jÓ!ˆÜ˜3˜t™9 gÕ.ñ/r0   c                  óÄ   — t        t        d«      } t        | d«      }t        |«      }|j	                  «       }|j                  «        t        |d   j                  d«       y )Nzone_by_zero_char.matrz   rÓ  rk  )rÅ   rÆ   rà   r#   rL  rá   r   r†   )rÝ  rõ   r›  rþ   s       r.   Útest_one_by_zeror2  k  sN   € ä”NÐ$:Ó;€GÜ	ˆg�tÓ	€BÜ
˜Ó
€CØ×ÑÓ€AØ‡H�H„JÜ��5‘—‘ Õ&r0   c                  ó^   — t        t        d«      } t        | «      }t        |d   ddgg«       y )Nztest_mat4_le_floats.matrL   rí  g333333ó?)rÅ   rÆ   r   r	   )Ú
mat4_fnamer  s     r.   Útest_load_mat4_ler5  u  s/   € ô ”~Ð'@ÓA€JÜ�:Ó€DÜ�t˜C‘y C¨ : ,Õ/r0   c                  óv   — t        «       } ddi}t        | |d¬«       t        | «      }t        |d   |d   «       y )NÚ
second_catu   SchrÃ¶dingerr¾   r¸   )r   r    r   r   )ÚbiorÓ  Úvar_backs      r.   Útest_unicode_mat4r:  }  s<   € ä
‹)€CØ˜Ð
(€CÜˆC�˜SÕ!Ü�s‹|€HÜ�˜,Ñ'¨¨\Ñ):Õ;r0   c            	      óB  — t        t        d«      } t        | dd¬«      }|d   }t        t	        |«      xr |j
                  dk(  «       t        |j                  j                  t        j                  «       t        |j                  «       g d¢g d¢g d¢g d	¢g d	¢g«       y )
Nzlogical_sparse.matTFr¥   Ú
sp_log_5_4Úcsc)TTTF)FFTF)FFFF)rÅ   rÆ   r   r   r   r¹   r   r4   r„   r)   rœ   r	   r’   )rô   rþ   Úlog_sps      r.   Útest_logical_sparser?  †  s‚   € ô ”^Ð$8Ó9€Hô 	�¨4¸%Ô@€AØˆ|‰_€FÜŒH�VÓÒ7 §¡°%Ñ!7Ô8Ü�—‘×"Ñ"¤B§H¡HÔ-Ü�v—~‘~Ó'Ú1Ú3Ú3Ú4Ú4ð	6õ7r0   c                  ó’  — t        «       } dd l}|j                  j                  ddgddgg«      }t	        | t        |¬«      «       | j                  d«       t        | d¬«      }t        |d   t        «      sJ ‚t        | d¬«      }|j                  j                  |d   «      rt        |d   t        «      rJ ‚t        j                  d¬«      5  t        | «      }|j                  j                  |d   «      rt        |d   t        «      rJ ‚	 d d d «       t        |d   j                  |j                  «       t        |d   j                  «       d«       | j                  d«       t!        | «      }|j#                  «        |j%                  «        |j'                  «       \  }}t)        |j*                  d	«       y # 1 sw Y   Œ¯xY w)
Nr   rê   F)r§   rw   TzThe default value for `spmatrixr_  r5   )r   Úscipy.sparserE   Ú	csr_arrayr    rÇ   rº   r   r“   r   r   rs  Údeprecated_callr	   r†   r’   r#   rÆ  rÇ  rÈ  r   Únzmax)r   ÚscipyÚempty_sparserv  rÐ  rÑ  rÒ  s          r.   Útest_empty_sparserG  ›  sx  € ä
‹)€CÛØ—<‘<×)Ñ)¨A¨a¨5°!°A°¨-Ó8€LÜˆC”˜Ô%Ô&Ø‡H�HˆQ„Kä
�# Ô
&€CÜ�c˜#‘h¤Ô(Ð(Ð(Ü
�# Ô
%€CØ�<‰<× Ñ   S¡Ô*´:¸cÀ#¹hÌÔ3PÐPÐPÜ	×	Ñ	Ð&GÔ	Hñ UÜ�c‹lˆØ�|‰|×$Ñ$ S¨¡XÔ.´zÀ#ÀcÁ(ÌGÔ7TÐTÐTÐ7T÷Uô �s˜3‘x—~‘~ |×'9Ñ'9Ô:Ü�s˜3‘x×'Ñ'Ó)¨1Ô-ð ‡H�HˆQ„KÜ˜CÓ €FØ
×ÑÔØ
×ÑÔØ×#Ñ#Ó%�F€CˆÜ�—‘˜AÕ÷Uð Uús   Ã?F=Æ=Gc                  óB   — t        «       } t        t        t        | «       y rÒ   )r   rñ   r   r   )r   s    r.   Útest_empty_mat_errorrI  ·  s   € ä
‹)€CÜ”,¤¨Õ-r0   c                  ó
  — t        t        d«      } t        | «      }t        |d   t	        j
                  d«      d d d …f   «       t        t        d«      } t        t        «      5  t        | «       d d d «       y # 1 sw Y   y xY w)Nzmiuint32_for_miint32.matÚan_arrayr$  zbad_miuint32.mat)rÅ   rÆ   r   r   r)   r<  rñ   r  ©rô   rv  s     r.   Útest_miuint32_compromiserM  ½  sl   € ô ”^Ð%?Ó@€HÜ
�(Ó
€CÜ��Z‘¤"§)¡)¨B£-°²a°Ñ"8Ô9ä”^Ð%7Ó8€HÜ	”zÓ	"ñ Ü�Ô÷÷ ñ ús   Á$A9Á9Bc                  óÚ   — t        t        d«      } t        | «      }t        |d   dgg«       t        t        d«      } t	        t
        «      5  t        | «       d d d «       y # 1 sw Y   y xY w)Nzmiutf8_array_name.matÚ
array_namer5   zbad_miutf8_array_name.mat)rÅ   rÆ   r   r   rñ   r  rL  s     r.   Ú!test_miutf8_for_miint8_compromiserP  É  s^   € ä”^Ð%<Ó=€HÜ
�(Ó
€CÜ��\Ñ" a S EÔ*ä”^Ð%@ÓA€HÜ	”zÓ	"ñ Ü�Ô÷÷ ñ ús   ÁA!Á!A*c                  óx   — t        t        d«      } t        | «      }t        |d   dj	                  dd«      «       y )Nzbroken_utf8.matÚ
bad_strings   € am brokenÚutf8Úreplace)rÅ   rÆ   r   r   ÚdecoderL  s     r.   Útest_bad_utf8rV  Ô  s8   € ä”^Ð$5Ó6€HÜ
�(Ó
€CÜ��\Ñ"Ø"×)Ñ)¨&°)Ó<õ>r0   c                 ó|   — t         j                  j                  t        | «      d«      }ddddœi}t	        ||«       y )Nútest.matrL   r5   Útest_str)r/  ry  )rë   Úpathr   rš   r    )ræ   rô   Ú	test_dicts      r.   Útest_save_unicode_fieldr\  Ü  s3   € Ü�w‰w�|‰|œC ›K¨Ó4€HØ˜! 
Ñ+Ð,€IÜˆH�iÕ r0   c                 óî   —  G d„ d«      } |«       }t         j                  j                  t        | «      d«      }t	        |d|i«       t        |«      }t        |d   t        j                  |«      «       y )Nc                   ó   — e Zd Zdd„Zy)ú0test_save_custom_array_type.<locals>.CustomArrayNc                 óL   — t        j                  d«      j                  dd«      S )Ng      @rS   r@   )r)   r<  r*   )r%  r4   rB  s      r.   Ú	__array__z:test_save_custom_array_type.<locals>.CustomArray.__array__ä  s   € Ü—9‘9˜S“>×)Ñ)¨!¨QÓ/Ð/r0   )NN)rf  rg  rh  ra  rƒ   r0   r.   ÚCustomArrayr_  ã  s   „ ô	0r0   rb  rX  rL   )	rë   rZ  r   rš   r    r   r	   r)   r   )ræ   rb  rL   rô   Úouts        r.   Útest_save_custom_array_typerd  â  s[   € ÷0ñ 0ñ 	‹€AÜ�w‰w�|‰|œC ›K¨Ó4€HÜˆH�s˜A�hÔÜ
�(Ó
€CÜ�s˜3‘x¤§¡¨!£Õ-r0   c                  óX   — t        t        t        d«       t        t        t        d«       y )NzNotExistentFile00.matÚNotExistentFile00)rñ   ÚOSErrorr   rƒ   r0   r.   Útest_filenotfoundrh  í  s   € ä”'œ7Ð$;Ô<Ü”'œ7Ð$7Õ8r0   c                  ó*  — t        t        d«      } t        | d¬«      }t        | d¬«      }t        t	        |d   t
        «      «       t        t	        |d   t        j                  «      «       t        |d   d   t        j                  g d¢«      «       y )Nztestsimplecell.matT©Úsimplify_cellsFÚsÚmycell)rL   r/  ry  )
rÅ   rÆ   r   r   r“   rÇ   r)   r…   r	   r   )rô   Úres1Úres2s      r.   Útest_simplify_cellsrp  ó  sm   € ä”^Ð%9Ó:€HÜ�8¨DÔ1€DÜ�8¨EÔ2€DÜŒJ�t˜C‘y¤$Ó'Ô(ÜŒJ�t˜C‘y¤"§*¡*Ó-Ô.Ü�t˜C‘y Ñ*¬B¯H©H²_Ó,EÕFr0   zversion, filt, regex))r   z_4*_*N)r5   z_5*_*N)r5   z_6*_*N)r5   ú_7*_*z^((?!hdf5).)*$)rS   rq  z.*hdf5.*)r5   z8*_*Nc                 ó
  — t        t        d|› d�«      }t        |«      }|�&|D �cg c]  }t        j                  ||«      €Œ|‘Œ }}t        |«      dkD  sJ d| › d|› �«       ‚|D ]  }t        |«      }|d   | k(  rŒJ ‚ y c c}w )Nztest*z.matr   zNo files for version rÁ   )rÅ   rÆ   r   Úrer`  rÈ   r   )ru   rÉ   ÚregexrË   r«   ÚfileÚgot_versions          r.   Útest_matfile_versionrw  ý  s£   € ô ”^ u¨T¨F°$Ð%7Ó8€HÜ�‹N€EØÐØ"'ÖM˜$¬2¯8©8°E¸4Ó+@Ñ+L’ÐMˆÐMÜˆu‹:˜Š>ð >Ø
 ˜y¨°t°fÐ=ó>ˆ>àò )ˆÜ% dÓ+ˆØ˜1‰~ Ó(Ð(Ð(ñ)ùò Ns   ¦B ÁB c                  óÎ   — t        t        t        d«      «      } t        | d   t        «      sJ ‚t        | d   j                  «       d   j                  «       d   t        «      sJ ‚y)z,Test that we can read a MatlabOpaque object.úparabola.matÚparabolar@   N)r   rÅ   rÆ   r“   r   r‡   r   ©r'   s    r.   Útest_opaquer|    sY   € ä”5œ¨Ó8Ó9€DÜ�d˜:Ñ&¬Ô7Ð7Ð7Ü�d˜:Ñ&×+Ñ+Ó-¨aÑ0×5Ñ5Ó7¸Ñ:¼LÔIÐIÑIr0   c                  ód   — t        t        t        d«      d¬«      } t        | d   t        «      sJ ‚y)zETest that we can read a MatlabOpaque object when simplify_cells=True.ry  Trj  rz  N)r   rÅ   rÆ   r“   r   r{  s    r.   Útest_opaque_simplifyr~    s*   € ä”5œ¨Ó8ÈÔN€DÜ�d˜:Ñ&¬Ô7Ð7Ñ7r0   c                  ó  — t        t        t        d«      «      } d| v sJ ‚t        | d   t        «      sJ ‚| d   d   d   dk(  sJ ‚| d   d   d   dk(  sJ ‚| d   d   d   j
                  t        j                  k(  sJ ‚d	| v sJ ‚t        | d	   t        «      sJ ‚| d	   d   d   dk(  sJ ‚| d	   d   d   dk(  sJ ‚| d	   d   d   j
                  t        j                  k(  sJ ‚| d   d   d   d
   dk(  sJ ‚| d	   d   d   d
   dk(  sJ ‚y)zBTest that we can read multiple MatlabOpaque objects from same fileztestmatlabstring_7_WIN64.matÚ
matstring1r   Ú_Classr;   Ú_TypeSystemÚMCOSÚ_ObjectMetadataÚ
matstring2©r1   r   r5   rS   N)r   rÅ   rÆ   r“   r   r4   r)   Úuint32r{  s    r.   Útest_matlab_string_opaquerˆ    sf  € ä”5œÐ)GÓHÓI€DØ˜4ÑÐÐÜ�d˜<Ñ(¬,Ô7Ð7Ð7Ø�Ñ˜aÑ  Ñ*¨hÒ6Ð6Ð6Ø�Ñ˜aÑ  Ñ/°6Ò9Ð9Ð9Ø�Ñ˜aÑ Ð!2Ñ3×9Ñ9¼R¿Y¹YÒFÐFÐFà˜4ÑÐÐÜ�d˜<Ñ(¬,Ô7Ð7Ð7Ø�Ñ˜aÑ  Ñ*¨hÒ6Ð6Ð6Ø�Ñ˜aÑ  Ñ/°6Ò9Ð9Ð9Ø�Ñ˜aÑ Ð!2Ñ3×9Ñ9¼R¿Y¹YÒFÐFÐFð �Ñ˜aÑ Ð!2Ñ3°DÑ9¸QÒ>Ð>Ð>Ø�Ñ˜aÑ Ð!2Ñ3°DÑ9¸QÒ>Ð>Ñ>r0   c                  ó  — t        «       } t        j                  dt        j                  ¬«      }d|d   d<   d|d   d<   t        j
                  g d¢gt        j                  ¬«      |d   d	<   t        |«      }t        | d
|i«       | j                  d«       t        | «      }d
|v sJ ‚t        |d
   t        «      sJ ‚|d
   d   d   dk(  sJ ‚|d
   d   d   dk(  sJ ‚|d
   d   d	   j                  t        j                  k(  sJ ‚y)z,Test that we can write a MatlabOpaque objectrV   r3   r;   rG   r�  rƒ  r‚  )ì      : rS   r5   r5   r5   r5   r„  r€  r   N)r   r)   rÖ  rÊ  ÚOPAQUE_DTYPEr   r‡  r   r    rº   r   r“   r4   )r4  r-   r'   s      r.   Útest_write_matlab_opaquerŒ  2  s  € ä‹Y€FÜ
�(‰(�6¤×!3Ñ!3Ô
4€CØ"€Cˆ�IˆhÑØ%€Cˆ�IˆmÑÜ#%§8¡8Ò-HÐ,IÜ24·)±)ô$=€Cˆ�IÐÑ ä
�sÓ
€CÜˆF�\ 3Ð'Ô(à
‡K�K�„NÜ�6‹?€DØ˜4ÑÐÐÜ�d˜<Ñ(¬,Ô7Ð7Ð7Ø�Ñ˜aÑ  Ñ*¨hÒ6Ð6Ð6Ø�Ñ˜aÑ  Ñ/°6Ò9Ð9Ð9Ø�Ñ˜aÑ Ð!2Ñ3×9Ñ9¼R¿Y¹YÒFÐFÑFr0   c                  ó|   — d} t        «       }t        |d| i«       |j                  d«       t        |«      }d|v sJ ‚y)z7Test that we can write function workspace to a MAT-filez6This is not the actual workspace contents. Just a testÚ__function_workspace__r   N)r   r    rº   r   )Ú	workspacer4  r'   s      r.   Útest_write_function_workspacer�  F  sC   € ð I€IÜ‹Y€FÜˆFÐ-¨yÐ9Ô:Ø
‡K�K�„NÜ�6‹?€DØ# tÑ+Ð+Ñ+r0   c                  óŒ  — d„ } t        «       }t        | | d«       | d«      dœ«       |j                  d«       t        |«      }dD ]{  \  }}||v sJ ‚t	        ||   t
        «      sJ ‚||   d   d   dk(  sJ ‚||   d   d	   d
k(  sJ ‚||   d   d   j                  t        j                  k(  sJ ‚||   d   d   d   |k(  rŒ{J ‚ y)zCRound-trip two MatlabOpaque objects with distinct IDs in one mdict.c                 óð   — t        j                  dt        j                  ¬«      }d|d   d<   d|d   d<   t        j                  dgd	gd
gd
g| gd
ggt         j
                  ¬«      |d   d<   t        |«      S )NrV   r3   r;   rG   r�  rƒ  r‚  rŠ  rS   r5   r„  )r)   rÖ  rÊ  r‹  r   r‡  r   )Úobj_idr-   s     r.   Úmake_opaquez6test_write_multiple_matlab_opaque.<locals>.make_opaqueS  sz   € Ü�h‰h�v¤U×%7Ñ%7Ô8ˆØ&ˆˆD‰	�(ÑØ#)ˆˆD‰	�-Ñ Ü')§x¡xØˆ\˜A˜3   a S¨6¨(°Q°CÐ8ÄÇ	Á	ô(KˆˆD‰	Ð#Ñ$ä˜CÓ Ð r0   r5   rS   )r€  r…  r   ))r€  r5   )r…  rS   r�  r;   r‚  rƒ  r„  r†  N)	r   r    rº   r   r“   r   r4   r)   r‡  )r”  r4  r'   r8   Úexpected_ids        r.   Ú!test_write_multiple_matlab_opaquer–  Q  só   € ò!ô ‹Y€FÜˆF¡;¨q£>Ù#.¨q£>ñ3ô 4à
‡K�K�„NÜ�6‹?€DØCò EÑˆˆkØ�t‰|Ðˆ|Ü˜$˜t™*¤lÔ3Ð3Ð3Ø�D‰z˜!‰}˜XÑ&¨(Ò2Ð2Ð2Ø�D‰z˜!‰}˜]Ñ+¨vÒ5Ð5Ð5Ø�D‰z˜!‰}Ð.Ñ/×5Ñ5¼¿¹ÒBÐBÐBØ�D‰z˜!‰}Ð.Ñ/°Ñ5¸ÓDÐDÐDñEr0   c                  óü   — t        t        «      5  t        j                  j                  j
                  j                   ddd«       t        t        «      5  ddlm}  ddd«       y# 1 sw Y   Œ(xY w# 1 sw Y   yxY w)z4Test that access to previous attributes still works.Nr   ©r   )	Úassert_warnsÚDeprecationWarningrE  ÚioÚmatlabÚmio5_paramsr   Úscipy.io.matlab.miobaser   r˜  s    r.   Útest_deprecationrŸ  i  sa   € ô 
Ô(Ó	)ñ 1Ü�‰�‰×#Ñ#×0Ò0÷1ô 
Ô(Ó	)ñ 9Ý8÷9ð 9÷	1ð 1ú÷9ð 9ús   �/A&ÁA2Á&A/Á2A;c                 ó*  — t         j                  j                  d«      }| dz  }|j                  d«      }|j                  d«      }||g}t        |d|idd¬«       i }t	        ||«       t        |d   d   d   |«       t        |d   d   d	   |«       y )
Ni90  z	lists.mat)rA   r@   )rB   r@   r'   T)r  r@  r   r5   )r)   ÚrandomÚdefault_rngr    r   r   )Útmp_pathÚrngÚoutfileÚ	array_oneÚ	array_twoÚlist_of_arraysÚnew_dicts          r.   Útest_gh_17992rª  t  s¤   € Ü
�)‰)×
Ñ
 Ó
&€CØ˜Ñ$€GØ—
‘
˜5Ó!€IØ—
‘
˜5Ó!€IØ Ð+€NÜˆGØ�^Ð$Ø!Øõ!ð
 €HÜˆGØôä�H˜VÑ$ QÑ'¨Ñ*¨IÔ6Ü�H˜VÑ$ QÑ'¨Ñ*¨IÕ6r0   c                 ó°   — t        j                  t        d«      t        d«      gd¬«      t        j                  ddg«      dœ}| dz  }t        ||d¬«       y )	Nr=   r”  r3   r;   )Ú
char_arrayÚstring_arrayztmp.matr¾   r¸   )r)   r   rš  r    )r£  rþ   r¥  s      r.   Útest_gh_19659r®  †  sM   € ä—h‘h¤ V£¬d°6«lÐ;À4ÔHÜŸ™ (¨HÐ!5Ó6ñ	
€Að ˜Ñ"€GäˆG�Q˜sÖ#r0   c                  óä   — t        t        d«      } t        j                  t        j                  k(  rdnd}t        j                  t        |¬«      5  t        | «       d d d «       y # 1 sw Y   y xY w)Nzdebigged_m4.matz$Not enough bytes to read matrix 'a';z9Variable 'a' has byte length longer than largest possibler_  )	rÅ   rÆ   r)   ÚintpÚint64rs  r   r  r   )Útruncated_matr`  s     r.   Útest_large_m4r³  �  s[   € ô œ.Ð*;Ó<€Mä—‘œ2Ÿ8™8Ò#ñ 4àHð 
ô 
�‰”z¨Ô	/ñ Ü�Ô÷÷ ñ ús   ÁA&Á&A/c                  ó   — ddl m}  y )Nr   ©r$   )Úscipy.io.matlabr$   rµ  s    r.   Útest_gh_19223r·     s   € Þ0r0   c                  óÀ   — dt        t        j                  d«      «      fdt        d«      ff} t        | «       ddddœff} t        | «       dddd	œff} t        | «       y )
NÚ_1r$  r  rl  Úmymapr5   rS   )rL   Ú_b)rL   Ú1a)r/   r)   r<  Úcheck_mat_write_warningr)  s    r.   Útest_invalid_field_name_warningr¾  ¤  si   € à	Œu”R—Y‘Y˜r“]Ó#Ð$Ø	”%˜
Ó#Ð$ð&€Jô ˜JÔ'à !¨1Ñ-Ð.Ð0€JÜ˜JÔ'à !¨1Ñ-Ð.Ð0€JÜ˜JÕ'r0   c                 ó´   ‡ —  G ˆ fd„d«      }t        «       }t        j                  t        d¬«      5  t	        | |«       «       d d d «       y # 1 sw Y   y xY w)Nc                   ó   •— e Zd Zˆ fd„Zy)ú"check_mat_write_warning.<locals>.Cc                 ó   •— ‰S rÒ   rƒ   r$  s    €r.   rª   z(check_mat_write_warning.<locals>.C.items³  r'  r0   Nr(  r)  s   €r.   ro  rÁ  ²  r*  r0   ro  r^  r_  )r   rs  r   r   r    )r&  ro  r4  s   `  r.   r½  r½  ±  sF   ø€ ÷ó ô ‹Y€FÜ	�‰”oÐ-GÔ	Hñ Ü�™›Ô÷÷ ñ ús   ³AÁAc                  ó(  — dD ]=  } t        j                  t        d¬«      5  t        t	        d| z  «      «       d d d «       Œ? t        j                  t        d¬«      5  t        t	        d«      «       d d d «       y # 1 sw Y   Œ‚xY w# 1 sw Y   y xY w)N)rS   r1   r$  é   z Mat file appears to be truncatedr_  ó    zMat file appears to be corrupts                       )rs  r   r   r   r   ©Úns    r.   Útest_corrupt_filesrÈ  »  sˆ   € àò *ˆÜ�]‰]œ<Ø!CôEñ 	*ä”G˜G a™KÓ(Ô)÷	*ð 	*ð*ô 
�‰”|Ø=ô
?ñ 'ä”˜Ó%Ô&÷'ð '÷	*ð 	*ú÷'ð 'ús   ¡A<ÁBÁ<B	ÂB)ztest%(name)s_*.mat)Ärë   Úcollectionsr   Úos.pathr   rÅ   r   r   r›  r   rs  Útempfiler   rù   râ   rß   Únumpy.testingr	   r
   r   r   r   rs  r   rñ   r   r™  Únumpyr)   r   rA  r   r   r   r   r   Úscipy.iorE  r¶  r   r   r   Úscipy.io.matlab._byteordercodesrœ  Ú_byteordercodesr•  Úscipy.io.matlab._miobaser   r   r   r   r   Úscipy.io.matlab._mior   r   r    r!   Úscipy.io.matlab._mio5r"   r#   r$   r%   r&   Úscipy.io.matlab._mio5_paramsÚ_mio5_paramsrÊ  Ú__file__rÆ   ÚmarkÚthread_unsafeÚ
pytestmarkr/   Úpir<  rï  r*   rK   rÂ   ÚappendÚcosÚsinrÞ   rG  rš  r+  rø  r>   ÚBrx   ÚCArÃ   ÚCAErÖ  ÚobjarrÚ	transposeÚsqrtÚexpÚ
st_sub_arrr4   r  ÚCNrÎ  Úst2rL   ÚODTÚMOÚm0rà   Úfp_u_strÚreadrU  Úu_strrá   rÄ   ÚrepeatrŒ   r˜   r±   r¶   r¼   rÌ   ÚparametrizerÐ   rÓ   r×   rè   rî   rö   rü   r  r  r  r  r  r  r"  r-  r6  r=  rE  rH  rO  rS  rU  r[  rz  r‡  rŽ  rŸ  r£  r¨  r«  rµ  r¾  rÃ  rÔ  r×  rÚ  rÞ  rã  rè  rë  rñ  rÿ  r  r  r  r0  r2  r5  r:  r?  rG  rI  rM  rP  rV  r\  rd  rh  rp  rw  r|  r~  rˆ  rŒ  r�  r–  rŸ  rª  r®  r³  r·  r¾  r½  rÈ  rÆ  s   0r.   ú<module>rð     s§  ðÛ 	Ý #ß *Ý Ý Û 	Ý ã Û Û ÷Cõ Cã ß Aã Ý ß KÕ Kã ß FÑ Fß -Ó -÷Hõ Hç NÓ N÷õ ÷ -Ó ,ñ ‘w˜xÓ(¨&Ó1€Ø�[‰[×&Ñ&€
òð 	�‰ˆa‰�	�—	‘	˜! %Ô(×0Ñ0°°1Ó5Ñ5€àØ˜xÐ(Ø Ð&ñð€ð
 × Ñ ØØ˜vÐ&ØÙÐFÐGÓHðJñôð × Ñ ØØ Ð)Ø  §¡¨£°°F°B·F±F¸5³MÑ1AÑ!AÐBñôð
 €B‡H�HˆUƒO€Ù‰E�!�A‹JÓ€€!�Ù	‰e�A�a‹jÓ	€‚!€A€#�Ø × Ñ ØØ˜xÐ(Ø Ð"ñôð
 × Ñ ØØ˜xÐ(Ø¡	¨!£Ð-ñôð
 ‡H�HˆWÓ€Ø €#ƒˆ"�ƒØ × Ñ ØØ$ hÐ/Ø%¡y°£|Ð4ñôð
 × Ñ ØØ"¨Ñ2Ø  qÑ)ñôð
 × Ñ ØØ˜hÐ'Ø™u R›yÐ)ñôð
 × Ñ ØØ Ð'Ø¡¨ u£Ð.ñôñ Ø
Ùˆqˆc‹
Ù��!ˆuˆg‹ÙŠwˆiÓð	ð "(ô	)÷ *1©°°2«ð	 ñ
 ØGÐHóJ€€3�ð Ø˜VÐ$Ø˜bÐ!ñ#ð$€ñ Ù	ˆ!ƒHÙ	ˆ!ƒHÙ	ˆ"ƒIÙ	ˆ"ƒIÙ	ˆ!ƒHðð
 ô÷
 %™W Q r›]ð ð 
ˆ�‰�%˜fÔ	%€Ù�A‹h€€s�Ø × Ñ ØØ! 6Ð*Ø" FÐ+ñôð
 × Ñ ØØ  &Ð)Ø! 3Ð'ñ)ô*ð × Ñ ØØ" FÐ+Ø#¡UÚó&!ð "ñôð × Ñ ØØ Ð*à�L�B—L‘L  §¡©D±°q¸³Ó,=¸wÓ!GÓHðJñôñ �G�B—G‘G˜A“J˜v˜rŸv™v a›y¨¯©Ð/Ó0×8Ñ8¸¸1Ó=€
ØLÖM˜ˆ!ˆVŠÒM€Ø€b‡h�hˆu�eÓ€ÙÐ!=Ð >Ó?€€MÑ �3Ñ Ø$€€MÑ �3Ñ Ø%¨Ñ0€€NÑ �CÑ Ø × Ñ ØØ˜xÐ(Ø Ð$ñôð
 €R‡X�Xˆe˜6Ô"€Ù
�‹(€€3�Ø
ˆ"�(‰(�5 Ô
'€€3�Ù�Q˜bŸh™hÔ'€€3�ˆ�Ù�q�c�U "§(¡(Ô+€€3�ˆ�Øˆr�x‰x˜ VÔ,€€3�ˆ�Ù˜! 2§8¡8Ô,€€3�ˆ�ˆSÑ Ù˜! 2§8¡8Ô,€€3�ˆ�ˆSÑ Ø × Ñ ØØ Ð(Ø  "Ð%ñôð
 €b‡h�hˆu°.ÖA¨Q˜a š[ÒAÔB€Ù˜“(€€C�ˆ�Ø�"—(‘(˜5¨'°6Ð):Ð(;Ô<€€C�ˆ�Ù % z lÓ 3€€C�ˆ��Ñ �WÑ Ø × Ñ ØØ! 8Ð,Ø" CÐ(ñôð
 €B‡H�HˆU°Ö?¨1˜A˜vš;Ò?Ô@€Ù�a“€€#�€u�Ù�a“€€#�€u�Ù�z�lÓ#€€#�€u�Ù�z�lÓ#€€#�€u�Ø × Ñ ØØ  (Ð+Ø! 1Ð%ñôð
 €b‡h�hð3ö4 ��F’ò 4ó 5€ñ �(�"—(‘(˜5¨Ô,¨hÓ7€Øˆ�W€Ù�C�5‹\€€6�
ÙÐ2Ð3Ó4€€;�Ù�C�5‹\€€6�
Ù�a“€€9�Ù�a“€€9�Ù�a“€€9�Ø × Ñ ØØ˜xÐ(Ø Ð#ñôñ
 ‘�nÐ&9Ó:¸DÓA€Ø�‰‹×Ñ˜wÓ'€Ø ‡�Ô Ø × Ñ ØØ Ð'Ø¡ u g£Ð/ñôð
 × Ñ ØØ˜xÐ(Ø¡	¨!£Ð-ñôð
 × Ñ ØØ$ hÐ/Ø%¡y°£|Ð4ñôð
 × Ñ ØØ˜iÐ(ØÙ˜$˜ % Ð)Ó*ð,ñôð ™Q�€à × Ñ ØØ" HÐ-Ø# Y R§Y¡Y¨r°1Ó%5×%=Ñ%=¸aÀÓ%BÐCñEôFòò (JòV8òò"3ó-ð, ‡�×Ñ˜ JÓ/ñ$ó 0ð$ð
 ‡�×Ñ˜ JÓ/ñ ó 0ð ð ‡�×Ñ˜Øˆ3�ˆ*ÐØˆcˆU€Oð+ó ñ2ó	ð2ò4ò8ò:ò
/ò	ò	3òNò	IòLò"1ò-ò,ò()ò0ò2+ò65ò
ò< ò&òòB9òJ(ò6+ò$ 6òFò62òòCòò*0ò+ò"#òFò;ò2òIò=ò1ò,ò:/ò(ò2
7ò/ò,'ò0ò<ò7ò*ò8.ò	òò>ò!ò.ò9òGð ‡�×ÑÐ/ò 2ó ñ	)óð	)òJò8ò?ò(Gò(,òEò09ò7ò$$òò 1ò
(òó'ùò_) 	Nùò. Bùò @ùò4s   ÐeÕe
×e
Ù
e!