
    (phYP                        S SK Jr  S SKrS SKrS SKJrJrJrJ	r	  S SK
r
S SKJr  S SKJr  \R                  " \R                  " \5      S5      rS rS r\R(                  " \5      r " S	 S
5      r " S S5      r " S S\5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      rS r \
RB                  RD                  S 5       r#S r$g)    )pathN)assert_equalassert_array_equalassert_suppress_warnings)readsav)_idldatac                 :   [        X5        [        U[        5      (       a  [        [        U 5      [        U5      5        g[        [        R
                  " U 5      R                  R                  [        R
                  " U5      R                  R                  5        g)z*Assert whether value AND type are the sameN)r   
isinstancestrtypenpasarraydtypeabs     J/var/www/html/venv/lib/python3.13/site-packages/scipy/io/tests/test_idl.pyassert_identicalr      s[    !ST!Wd1g&RZZ]((--rzz!}/B/B/G/GH    c                     [        X5        [        U R                  R                  UR                  R                  5        g)z+Assert whether values AND type are the sameN)r   r   r   r   r   s     r   assert_array_identicalr      s$    qqww||,r   c                       \ rS rSrS rSrg)	TestIdict"   c                 d   S[         R                  " S5      0n[        U5      n[        [        R
                  " [        S5      USS9n[        U[        U5      5        [        SU;   5        [        US   [         R                  " S5      5        [        US   [         R                  " S5      5        g )Nr   i  scalar_byte.savF)idictverbosei8u   )r   int16idr   r   join	DATA_PATHr   r   r   uint8)selfcustom_dictoriginal_idss       r   
test_idictTestIdict.test_idict$   s    BHHSM*oDIIi):;%u6["Q%(q3#/5288C=1r    N)__name__
__module____qualname____firstlineno__r,   __static_attributes__r.   r   r   r   r   "   s    2r   r   c                   n    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rSrg)TestScalars/   c                     [        [        R                  " [        S5      SS9n[	        UR
                  [        R                  " S5      5        g )Nr   Fr    r"   r   r   r%   r&   r   r!   r   r'   r(   r+   s     r   	test_byteTestScalars.test_byte2   s0    DIIi):;UK.r   c                     [        [        R                  " [        S5      SS9n[	        UR
                  [        R                  " S5      5        g )Nzscalar_int16.savFr8   i`)r   r   r%   r&   r   i16sr   r#   r:   s     r   
test_int16TestScalars.test_int166   s1    DIIi);<eL&!12r   c                     [        [        R                  " [        S5      SS9n[	        UR
                  [        R                  " S5      5        g )Nzscalar_int32.savFr8   i.i)r   r   r%   r&   r   i32sr   int32r:   s     r   
test_int32TestScalars.test_int32:   s1    DIIi);<eL+!67r   c                     [        [        R                  " [        S5      SS9n[	        UR
                  [        R                  " S5      5        g )Nzscalar_float32.savFr8   )r   r   r%   r&   r   f32r   float32r:   s     r   test_float32TestScalars.test_float32>   s1    DIIi)=>N

> :;r   c                     [        [        R                  " [        S5      SS9n[	        UR
                  [        R                  " S5      5        g )Nzscalar_float64.savFr8   gCmC)r   r   r%   r&   r   f64r   float64r:   s     r   test_float64TestScalars.test_float64B   s2    DIIi)=>N

+C DEr   c                     [        [        R                  " [        S5      SS9n[	        UR
                  [        R                  " S5      5        g )Nzscalar_complex32.savFr8   y  )jB̕h~=r)r   r   r%   r&   r   c32r   	complex64r:   s     r   test_complex32TestScalars.test_complex32F   s2    DIIi)?@%P-E FGr   c                     [        [        R                  " [        S5      SS9nSn[	        UR
                  [        R                  " U5      5        g )Nzscalar_string.savFr8   z.The quick brown fox jumps over the lazy python)r   r   r%   r&   r   r+   r   bytes_)r(   r+   msgs      r   
test_bytesTestScalars.test_bytesJ   s5    DIIi)<=uM>biin-r   c                     g Nr.   r(   s    r   test_structureTestScalars.test_structureO       r   c                     [        [        R                  " [        S5      SS9n[	        UR
                  [        R                  " S5      5        g )Nzscalar_complex64.savFr8   *3Wo)r   r   r%   r&   r   c64r   
complex128r:   s     r   test_complex64TestScalars.test_complex64R   s6    DIIi)?@%PEEMMJK	
r   c                     g r\   r.   r]   s    r   test_heap_pointerTestScalars.test_heap_pointerY   r`   r   c                     g r\   r.   r]   s    r   test_object_reference!TestScalars.test_object_reference\   r`   r   c                     [        [        R                  " [        S5      SS9n[	        UR
                  [        R                  " S5      5        g )Nzscalar_uint16.savFr8   i  )r   r   r%   r&   r   i16ur   uint16r:   s     r   test_uint16TestScalars.test_uint16_   s1    DIIi)<=uM5!12r   c                     [        [        R                  " [        S5      SS9n[	        UR
                  [        R                  " S5      5        g )Nzscalar_uint32.savFr8   l    )r   r   r%   r&   r   i32ur   uint32r:   s     r   test_uint32TestScalars.test_uint32c   s1    DIIi)<=uM:!67r   c                     [        [        R                  " [        S5      SS9n[	        UR
                  [        R                  " S5      5        g )Nzscalar_int64.savFr8   l'{ )r   r   r%   r&   r   i64sr   int64r:   s     r   
test_int64TestScalars.test_int64g   s2    DIIi);<eL*>!?@r   c                     [        [        R                  " [        S5      SS9n[	        UR
                  [        R                  " S5      5        g )Nzscalar_uint64.savFr8   l   ( )r   r   r%   r&   r   i64ur   uint64r:   s     r   test_uint64TestScalars.test_uint64k   s2    DIIi)<=uM+?!@Ar   r.   N)r/   r0   r1   r2   r;   r?   rD   rJ   rO   rT   rY   r^   re   rh   rk   rp   ru   rz   r   r3   r.   r   r   r5   r5   /   sQ    /38<FH.

38ABr   r5   c                       \ rS rSrS rSrg)TestCompressedp   c           	         [        [        R                  " [        S5      SS9n[	        UR
                  [        R                  " S5      5        [	        UR                  [        R                  " S5      5        [	        UR                  [        R                  " S5      5        [        UR                  R                  S5        [	        UR                  R                   S   [        R"                  " / S	Q[        R$                  S
95        [	        UR                  R&                  S   [        R"                  " / SQ[        R                  S
95        [	        UR                  R(                  S   [        R"                  " [        R*                  " S5      [        R*                  " S5      /5      5        [	        UR                  R,                  S   [        R"                  " / SQ[.        S
95        g )Nzvarious_compressed.savFr8   r"   rG   rb         r         r         r   r         @g      @g      @g      @      ?       @      @       @s   cheeses   bacon   spam)r   r   r%   r&   r   r!   r   r'   rH   rI   rc   rd   r   array5dshapearraysr   arrayr#   r   crS   dobjectr:   s     r   test_compressedTestCompressed.test_compresseds   s"   DIIi)ABER.

> :;EEMMJK	
 	QYY__o6A"(((KLA1A(TUA2<<#5r||D7I"JK	MA"@O	Qr   r.   N)r/   r0   r1   r2   r   r3   r.   r   r   r   r   p   s    Qr   r   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestArrayDimensions   c                     [        [        R                  " [        S5      SS9n[	        UR
                  R                  S5        g )Nzarray_float32_1d.savFr8   {   )r   r   r%   r&   r   array1dr   r:   s     r   test_1dTestArrayDimensions.test_1d   s,    DIIi)?@%PQYY__g.r   c                     [        [        R                  " [        S5      SS9n[	        UR
                  R                  S5        g )Nzarray_float32_2d.savFr8         )r   r   r%   r&   r   array2dr   r:   s     r   test_2dTestArrayDimensions.test_2d   s,    DIIi)?@%PQYY__h/r   c                     [        [        R                  " [        S5      SS9n[	        UR
                  R                  S5        g )Nzarray_float32_3d.savFr8      r   r   )r   r   r%   r&   r   array3dr   r:   s     r   test_3dTestArrayDimensions.test_3d   ,    DIIi)?@%PQYY__l3r   c                     [        [        R                  " [        S5      SS9n[	        UR
                  R                  S5        g )Nzarray_float32_4d.savFr8   r   r         )r   r   r%   r&   r   array4dr   r:   s     r   test_4dTestArrayDimensions.test_4d   r   r   c                     [        [        R                  " [        S5      SS9n[	        UR
                  R                  S5        g )Nzarray_float32_5d.savFr8   r   )r   r   r%   r&   r   r   r   r:   s     r   test_5dTestArrayDimensions.test_5d   s,    DIIi)?@%PQYY__o6r   c                     [        [        R                  " [        S5      SS9n[	        UR
                  R                  S5        g )Nzarray_float32_6d.savFr8   r   r   r   r   r   r   )r   r   r%   r&   r   array6dr   r:   s     r   test_6dTestArrayDimensions.test_6d   s-    DIIi)?@%PQYY__&89r   c                     [        [        R                  " [        S5      SS9n[	        UR
                  R                  S5        g )Nzarray_float32_7d.savFr8   r   r   r   r   r   r   r   )r   r   r%   r&   r   array7dr   r:   s     r   test_7dTestArrayDimensions.test_7d   s-    DIIi)?@%PQYY__&;<r   c                     [        [        R                  " [        S5      SS9n[	        UR
                  R                  S5        g )Nzarray_float32_8d.savFr8   r   r   r   r   r   r   r   r   )r   r   r%   r&   r   array8dr   r:   s     r   test_8dTestArrayDimensions.test_8d   s-    DIIi)?@%PQYY__&>?r   r.   Nr/   r0   r1   r2   r   r   r   r   r   r   r   r   r3   r.   r   r   r   r      s+    /0447:=@r   r   c                   v    \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  S	 5       rS
rg)TestStructures   c                    [        [        R                  " [        S5      SS9n[	        UR
                  R                  [        R                  " [        R                  " S5      5      5        [	        UR
                  R                  [        R                  " [        R                  " S5      5      5        [	        UR
                  R                  [        R                  " [        R                  " S5      5      5        [	        UR
                  R                  [        R                  " [        R                  " S5      5      5        [	        UR
                  R                   [        R                  " S/["        S	95        [	        UR
                  R$                  [        R                  " [        R&                  " S
5      5      5        g )Nzstruct_scalars.savFr8   r   r         @r   r   r               @)r   r   r%   r&   r   scalarsr   r   r   r#   r   rC   r   rI   r   rN   er   frS   r:   s     r   test_scalarsTestStructures.test_scalars   s    DIIi)=>Nbhhrxx{&;<bhhrxx{&;<bhhrzz"~&>?bhhrzz"~&>?bhhy&GHbhhr||F/C&DEr   c                    [        [        R                  " [        S5      SS9n[	        UR
                  R                  [        R                  " [        R                  " S5      S5      5        [	        UR
                  R                  [        R                  " [        R                  " S5      S5      5        [	        UR
                  R                  [        R                  " [        R                  " S5      S5      5        [	        UR
                  R                  [        R                  " [        R                  " S5      S5      5        [	        UR
                  R                   [        R                  " S	S5      R#                  [$        5      5        [	        UR
                  R&                  [        R                  " [        R(                  " S
5      S5      5        g )Nzstruct_scalars_replicated.savFr8   r   r   r   r   r   r   r   )r   r   r%   r&   r   scalars_repr   r   repeatr#   r   rC   r   rI   r   rN   r   astyper   r   rS   r:   s     r   test_scalars_replicated&TestStructures.test_scalars_replicated   s    DIIi)HI!#"))BHHQK*CD"))BHHQK*CD"))BJJrNA*FG"))BJJrNA*FG"))GQ*?*F*Fv*NO"))BLL4H!*LMr   c                    [        [        R                  " [        S5      SS9n[	        UR
                  R                  [        R                  " [        R                  " S5      S5      R                  SSS5      5        [	        UR
                  R                  [        R                  " [        R                  " S5      S5      R                  SSS5      5        [	        UR
                  R                  [        R                  " [        R                  " S	5      S5      R                  SSS5      5        [	        UR
                  R                  [        R                  " [        R                   " S
5      S5      R                  SSS5      5        [	        UR
                  R"                  [        R                  " SS5      R                  SSS5      R%                  [&        5      5        [	        UR
                  R(                  [        R                  " [        R*                  " S5      S5      R                  SSS5      5        g )Nz struct_scalars_replicated_3d.savFr8   r      r   r   r   r   r   r   r   )r   r   r%   r&   r   r   r   r   r   r#   reshaper   rC   r   rI   r   rN   r   r   r   r   rS   r:   s     r   test_scalars_replicated_3d)TestStructures.test_scalars_replicated_3d   sm   DIIi)KL!#"))BHHQK*D*L*LQPQST*UV"))BHHQK*D*L*LQPQST*UV2::b>26>>q!QG	I2::b>26>>q!QG	I7B/771a@GGO	Q2<<#7<DDQ1M	Or   c           	         [        [        R                  " [        S5      SS9n[	        UR
                  R                  S   [        R                  " / SQ[        R                  S95        [	        UR
                  R                  S   [        R                  " / SQ[        R                  S95        [	        UR
                  R                  S   [        R                  " [        R                  " S5      [        R                  " S	5      /5      5        [	        UR
                  R                  S   [        R                  " / S
Q[        S95        g )Nzstruct_arrays.savFr8   r   r   r   r   r   r   r   )r   r   r%   r&   r   r   r   r   r   r#   r   rI   r   rS   r   r   r:   s     r   test_arraysTestStructures.test_arrays   s    DIIi)<=uMqxxzz!}bhhy.QRqxxzz!}!xx(8

K	Mqxxzz!}!xxd);R\\$=O(PQ	Sqxxzz!}!xx(FfU	Wr   c           
      ,   [        [        R                  " [        S5      SS9n[	        UR
                  R                  R                  R                  [        R                  L 5        [	        UR
                  R                  R                  R                  [        R                  L 5        [	        UR
                  R                  R                  R                  [        R                  L 5        [	        UR
                  R                  R                  R                  [        R                  L 5        [        UR
                  R                  R                  S5        [        UR
                  R                  R                  S5        [        UR
                  R                  R                  S5        [        UR
                  R                  R                  S5        [!        S5       GH-  n[#        UR
                  R                  U   [        R$                  " / SQ[        R&                  S95        [#        UR
                  R                  U   [        R$                  " / SQ[        R(                  S95        [#        UR
                  R                  U   [        R$                  " [        R*                  " S	5      [        R*                  " S
5      /5      5        [#        UR
                  R                  U   [        R$                  " / SQ[,        S95        GM0     g )Nzstruct_arrays_replicated.savFr8   r   r   r   r   r   r   r   r   r   r   r%   r&   r   
arrays_repr   r   r   r   object_r   r   r   r   r   ranger   r   r#   rI   rS   r   r(   r+   is      r   test_arrays_replicated%TestStructures.test_arrays_replicated   s   DIIi)GHRWX 	$$))RZZ78$$))RZZ78$$))RZZ78$$))RZZ78 	Q\\^^))51Q\\^^))51Q\\^^))51Q\\^^))51 qA"1<<>>!#4#%88IRXX#FH"1<<>>!#4#%88,<BJJ#OQ"1<<>>!#4#%88R\\$-?-/\\$-?-A $BC #1<<>>!#4#%88,J28$:; r   c                    [        [        R                  " [        S5      SS9n[	        UR
                  R                  R                  R                  [        R                  L 5        [	        UR
                  R                  R                  R                  [        R                  L 5        [	        UR
                  R                  R                  R                  [        R                  L 5        [	        UR
                  R                  R                  R                  [        R                  L 5        [        UR
                  R                  R                  S5        [        UR
                  R                  R                  S5        [        UR
                  R                  R                  S5        [        UR
                  R                  R                  S5        [!        S5       GH]  n[!        S5       GHI  n[!        S5       GH5  n[#        UR
                  R                  X#U4   [        R$                  " / SQ[        R&                  S	95        [#        UR
                  R                  X#U4   [        R$                  " / S
Q[        R(                  S	95        [#        UR
                  R                  X#U4   [        R$                  " [        R*                  " S5      [        R*                  " S5      /5      5        [#        UR
                  R                  X#U4   [        R$                  " / SQ[,        S	95        GM8     GML     GM`     g )Nzstruct_arrays_replicated_3d.savFr8   r   r   r   r   r   r   r   r   r   r   r   r   r   )r(   r+   r   jks        r   test_arrays_replicated_3d(TestStructures.test_arrays_replicated_3d   s   DIIi)JK!# 	$$))RZZ78$$))RZZ78$$))RZZ78$$))RZZ78 	Q\\^^))95Q\\^^))95Q\\^^))95Q\\^^))95 qA1XqA*1<<>>!'+B+-88IRXX+NP*1<<>>!'+B+-884D:<**,FG +1<<>>!'+B+-88R\\$5G57\\$5G5I ,JK +1<<>>!'+B+-884R:@,BC "  r   c                 Z   [        [        R                  " [        S5      SS9n[	        UR
                  R                  [        R                  " S/[        R                  S95        [	        UR
                  R                  [        R                  " S/[        R                  S95        [	        UR
                  R                  [        R                  " S/[        R                  S95        [	        UR
                  R                  [        R                  " S/[        R                  S95        g )Nzstruct_inherit.savFr8   r   r   r   )r   r   r%   r&   r   fcxr   r   r#   yrr   r:   s     r   test_inheritanceTestStructures.test_inheritance  s    DIIi)=>N1#RXX!>?1#RXX!>?1#RXX!>?1#RXX!>?r   c                 J   [        5        nUR                  [        S5        [        [        R
                  " [        S5      SS9nS S S 5        [        WR                  R                  S   [        R                  " SS/[        R                  S95        g ! , (       d  f       NU= f)	Nz.Not able to verify number of bytes from headerzstruct_arrays_byte_idl80.savFr8   r   7   B   r   )r   filterUserWarningr   r   r%   r&   r   r   r   r   r   r'   )r(   supr+   s      r   test_arrays_corrupt_idl80(TestStructures.test_arrays_corrupt_idl80  so      CJJ{$TU		),JK %'A !
 	q288RG288#DE ! s   :B
B"r.   N)r/   r0   r1   r2   r   r   r   r   r   r   r   pytestmarkthread_unsafer  r3   r.   r   r   r   r      sL    FNOW;8C@@ [[F Fr   r   c                       \ rS rSrS rSrg)TestPointersi$  c                 4   [        [        R                  " [        S5      SS9n[	        UR
                  [        R                  " S5      5        [	        UR                  [        R                  " S5      5        [        UR
                  UR                  L 5        g )Nzscalar_heap_pointer.savFr8   rb   )
r   r   r%   r&   r   c64_pointer1r   rd   c64_pointer2r   r:   s     r   test_pointersTestPointers.test_pointers'  sk    DIIi)BCUSNNMMJK	
 	NNMMJK	
 	!..01r   r.   N)r/   r0   r1   r2   r  r3   r.   r   r   r
  r
  $  s    
2r   r
  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestPointerArrayi4  c           	         [        [        R                  " [        S5      SS9n[	        UR
                  R                  S5        [        [        R                  " UR
                  [        R                  " S5      :H  5      5        [        [        R                  " [        UR
                  5      [        UR
                  S   5      :H  5      5        g )Nzarray_float32_pointer_1d.savFr8   r   r   r   )r   r   r%   r&   r   r   r   r   r   allrI   vect_idr$   r:   s     r   r   TestPointerArray.test_1d7  s{    DIIi)GHRWXQYY__g.qyyBJJrN234wqyy)R		!-==>?r   c           	         [        [        R                  " [        S5      SS9n[	        UR
                  R                  S5        [        [        R                  " UR
                  [        R                  " S5      :H  5      5        [        [        R                  " [        UR
                  5      [        UR
                  S   5      :H  5      5        g )Nzarray_float32_pointer_2d.savFr8   r   r   )r   r   )r   r   r%   r&   r   r   r   r   r   r  rI   r  r$   r:   s     r   r   TestPointerArray.test_2d=  s{    DIIi)GHRWXQYY__h/qyyBJJrN234wqyy)R		#-??@Ar   c           	         [        [        R                  " [        S5      SS9n[	        UR
                  R                  S5        [        [        R                  " UR
                  [        R                  " S5      :H  5      5        [        [        R                  " [        UR
                  5      [        UR
                  S   5      :H  5      5        g )Nzarray_float32_pointer_3d.savFr8   r   r   r   r   r   )r   r   r%   r&   r   r   r   r   r   r  rI   r  r$   r:   s     r   r   TestPointerArray.test_3dC  s|    DIIi)GHRWXQYY__l3qyyBJJrN234wqyy)R		%0@-AABCr   c           	         [        [        R                  " [        S5      SS9n[	        UR
                  R                  S5        [        [        R                  " UR
                  [        R                  " S5      :H  5      5        [        [        R                  " [        UR
                  5      [        UR
                  S   5      :H  5      5        g )Nzarray_float32_pointer_4d.savFr8   r   r   )r   r   r   r   )r   r   r%   r&   r   r   r   r   r   r  rI   r  r$   r:   s     r   r   TestPointerArray.test_4dI  s|    DIIi)GHRWXQYY__l3qyyBJJrN234wqyy)R		'0B-CCDEr   c           	         [        [        R                  " [        S5      SS9n[	        UR
                  R                  S5        [        [        R                  " UR
                  [        R                  " S5      :H  5      5        [        [        R                  " [        UR
                  5      [        UR
                  S   5      :H  5      5        g )Nzarray_float32_pointer_5d.savFr8   r   r   )r   r   r   r   r   )r   r   r%   r&   r   r   r   r   r   r  rI   r  r$   r:   s     r   r   TestPointerArray.test_5dO  s|    DIIi)GHRWXQYY__o6qyyBJJrN234wqyy)R		)0D-EEFGr   c           	         [        [        R                  " [        S5      SS9n[	        UR
                  R                  S5        [        [        R                  " UR
                  [        R                  " S5      :H  5      5        [        [        R                  " [        UR
                  5      [        UR
                  S   5      :H  5      5        g )Nzarray_float32_pointer_6d.savFr8   r   r   )r   r   r   r   r   r   )r   r   r%   r&   r   r   r   r   r   r  rI   r  r$   r:   s     r   r   TestPointerArray.test_6dU  s}    DIIi)GHRWXQYY__&89qyyBJJrN234wqyy)R		+0F-GGHIr   c           	         [        [        R                  " [        S5      SS9n[	        UR
                  R                  S5        [        [        R                  " UR
                  [        R                  " S5      :H  5      5        [        [        R                  " [        UR
                  5      [        UR
                  S   5      :H  5      5        g )Nzarray_float32_pointer_7d.savFr8   r   r   )r   r   r   r   r   r   r   )r   r   r%   r&   r   r   r   r   r   r  rI   r  r$   r:   s     r   r   TestPointerArray.test_7d[  s}    DIIi)GHRWXQYY__&;<qyyBJJrN234wqyy)R		-0H-IIJKr   c           	         [        [        R                  " [        S5      SS9n[	        UR
                  R                  S5        [        [        R                  " UR
                  [        R                  " S5      :H  5      5        [        [        R                  " [        UR
                  5      [        UR
                  S   5      :H  5      5        g )Nzarray_float32_pointer_8d.savFr8   r   r   )r   r   r   r   r   r   r   r   )r   r   r%   r&   r   r   r   r   r   r  rI   r  r$   r:   s     r   r   TestPointerArray.test_8da  s}    DIIi)GHRWXQYY__&>?qyyBJJrN234wqyy)R		/0J-KKLMr   r.   Nr   r.   r   r   r  r  4  s2    @BDFHJLNr   r  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestPointerStructuresih  c                 :   [        [        R                  " [        S5      SS9n[	        UR
                  R                  [        R                  " [        R                  " S5      [        R                  S95        [	        UR
                  R                  [        R                  " [        R                  " S5      [        R                  S95        [        [        UR
                  R                  S   5      [        UR
                  R                  S   5      :H  5        g )Nzstruct_pointers.savFr8   r   r   r   )r   r   r%   r&   r   pointersgr   r   rI   r   hr   r$   r:   s     r   r   "TestPointerStructures.test_scalarsk  s    DIIi)>?Orxx

2bjj'QRrxx

2bjj'QR1::<<?#r!**,,q/'::;r   c                    [        [        R                  " [        S5      SS9n[	        UR
                  R                  [        R                  " [        R                  " S5      S5      R                  [        R                  5      5        [	        UR
                  R                  [        R                  " [        R                  " S5      S5      R                  [        R                  5      5        [        [        R                  " [        UR
                  R                  5      [        UR
                  R                  5      :H  5      5        g )Nzstruct_pointers_replicated.savFr8   r   r   )r   r   r%   r&   r   pointers_repr)  r   r   rI   r   r   r*  r   r  r  r:   s     r   test_pointers_replicated.TestPointerStructures.test_pointers_replicatedq  s    DIIi)IJ!#))2::b>15<<RZZH	J))2::b>15<<RZZH	Jwq~~//0GANN<L<L4MMNOr   c                 4   [        [        R                  " [        S5      SS9n[        R
                  " [        R                  " S5      S5      R                  SSS5      R                  [        R                  5      n[        UR                  R                  U5        [        UR                  R                  U5        [        [        R                  " [!        UR                  R                  5      [!        UR                  R                  5      :H  5      5        g )	Nz!struct_pointers_replicated_3d.savFr8   r   r   r   r   r   )r   r   r%   r&   r   r   rI   r   r   r   r   r-  r)  r*  r   r  r  )r(   r+   s_expects      r   test_pointers_replicated_3d1TestPointerStructures.test_pointers_replicated_3dz  s    DIIi)LM!#99RZZ^R088AqAHHT))84))84wq~~//0GANN<L<L4MMNOr   c           	      *   [        [        R                  " [        S5      SS9n[	        UR
                  R                  S   [        R                  " [        R                  " S5      S5      R                  [        R                  5      5        [	        UR
                  R                  S   [        R                  " [        R                  " S5      S5      R                  [        R                  5      5        [        [        R                  " [        UR
                  R                  S   5      [!        UR
                  R                  S   S   5      :H  5      5        [        [        R                  " [        UR
                  R                  S   5      [!        UR
                  R                  S   S   5      :H  5      5        [        [!        UR
                  R                  S   S   5      [!        UR
                  R                  S   S   5      :H  5        g )Nzstruct_pointer_arrays.savFr8   r   r   r   r   )r   r   r%   r&   r   r   r)  r   r   rI   r   r   r*  r   r  r  r$   r:   s     r   r   !TestPointerStructures.test_arrays  sE   DIIi)DEuUqxxzz!}!yyB;BB2::N	Pqxxzz!}!yyB;BB2::N	Pwqxxzz!}-AHHJJqM!4D1EEFGwqxxzz!}-AHHJJqM!4D1EEFG188::a=#$188::a=+;(<<=r   c           
      ^   [        [        R                  " [        S5      SS9n[	        UR
                  R                  R                  R                  [        R                  L 5        [	        UR
                  R                  R                  R                  [        R                  L 5        [        UR
                  R                  R                  S5        [        UR
                  R                  R                  S5        [        S5       GH  n[        UR
                  R                  U   [        R                   " [        R"                  " S5      S5      R%                  [        R                  5      5        [        UR
                  R                  U   [        R                   " [        R"                  " S5      S5      R%                  [        R                  5      5        [	        [        R&                  " [)        UR
                  R                  U   5      [+        UR
                  R                  S	   S	   5      :H  5      5        [	        [        R&                  " [)        UR
                  R                  U   5      [+        UR
                  R                  S	   S	   5      :H  5      5        GM     g )
Nz$struct_pointer_arrays_replicated.savFr8   r   r   r   r   r   r   )r   r   r%   r&   r   r   r)  r   r   r   r   r*  r   r   r   r   r   rI   r   r  r  r$   r   s      r   r   ,TestPointerStructures.test_arrays_replicated  s   DIIi)OP!# 	$$))RZZ78$$))RZZ78 	Q\\^^))51Q\\^^))51 qA"1<<>>!#4#%99RZZ^Q#?#F#Frzz#RT"1<<>>!#4#%99RZZ^Q#?#F#Frzz#RTBFF71<<>>!#45ALLNN1<Ma<P9QQRSBFF71<<>>!#45ALLNN1<Ma<P9QQRS r   c                    [         R                  " [        S5      n[        USS9n[	        UR
                  R                  R                  R                  [        R                  L 5        [	        UR
                  R                  R                  R                  [        R                  L 5        [        UR
                  R                  R                  S5        [        UR
                  R                  R                  S5        [        S5       GH  n[        S5       GH  n[        S5       GH  n[        UR
                  R                  X4U4   [        R                   " [        R"                  " S5      S5      R%                  [        R                  5      5        [        UR
                  R                  X4U4   [        R                   " [        R"                  " S5      S5      R%                  [        R                  5      5        ['        UR
                  R                  X4U4   5      n[)        UR
                  R                  S	   S
   5      n[        R*                  " Xg:H  5      (       d   e['        UR
                  R                  X4U4   5      n[)        UR
                  R                  S	   S
   5      n	[        R*                  " X:H  5      (       a  GM   e   GM     GM     g )Nz'struct_pointer_arrays_replicated_3d.savFr8   r   r   r   r   r   r  r   )r   r%   r&   r   r   r   r)  r   r   r   r   r*  r   r   r   r   r   rI   r   r  r$   r  )
r(   pthr+   r   r   r   g0g1h0h1s
             r   r   /TestPointerStructures.test_arrays_replicated_3d  s   ii	#LMC' 	$$))RZZ78$$))RZZ78 	Q\\^^))95Q\\^^))95 qA1XqA*1<<>>!'+BIIbjjna8??

KM*1<<>>!'+BIIbjjna8??

KM a!89BALLNN73A67B66"(++++ a!89BALLNN73A67B66"(++++ "  r   r.   N)r/   r0   r1   r2   r   r.  r2  r   r   r   r3   r.   r   r   r&  r&  h  s#    <PP>T*,r   r&  c                       \ rS rSrSrS rSrg)TestTagsi  z4Test that sav files with description tag read at allc                     [        [        R                  " [        S5      SS9n[	        UR
                  [        R                  " S5      5        g )Nzscalar_byte_descr.savFr8   r"   r9   r:   s     r   test_descriptionTestTags.test_description  s0    DIIi)@A5Q.r   r.   N)r/   r0   r1   r2   __doc__rB  r3   r.   r   r   r@  r@    s
    >/r   r@  c                      [        [        R                  " [        S5      SS9n [	        U R
                  S 5        [	        U R                  [        R                  " S5      5        g )Nznull_pointer.savFr8   r   )	r   r   r%   r&   r   pointcheckr   r#   )r+   s    r   test_null_pointerrH    s>    		)%78%HAQWWd#QWWbhhqk*r   c                     [         R                  " SS9 n [         R                  " S5        [        [        R
                  " [        S5      SS9nS S S 5        [        [        W 5      S:H  5        [        [        U S   R                  5      S	:H  5        [        WS
   [        R                  " S S /5      5        g ! , (       d  f       No= f)NT)recordalwayszinvalid_pointer.savFr8   r   r   zNVariable referenced by pointer not found in heap: variable will be set to Noner   )warningscatch_warningssimplefilterr   r   r%   r&   r   lenr   messager   r   r   )wr+   s     r   test_invalid_pointerrR    s     
	 	 	-h'DIIi)>?O 
. CFaKC! #G H IQsVRXXtTl34 
.	-s   :B88
Cc                  ^   [         R                  " SS05      n U S   S:X  d   eU R                  S:X  d   e[        R                  " [
        5         U S     S S S 5        [        R                  " [        SS9   U R                    S S S 5        g ! , (       d  f       N== f! , (       d  f       g = f)Noner   twozhas no attribute)match)r	   AttrDictrT  r  raisesKeyErrorAttributeErrorrU  )r   s    r   test_attrdictr[    s{    uaj!AU8q==55A::	x	 	% 
!	~-?	@	 
A	@ 
!	 	@	@s   B7B
B
B,)%osr   rL  numpyr   numpy.testingr   r   r   r   r  scipy.ior   r	   r%   dirname__file__r&   r   r   	vectorizer$   r  r   r5   r   r   r   r
  r  r&  r@  rH  r  r  rR  r[  r.   r   r   <module>rc     s      7 7   IIdll8,f5	I- ,,r

2 
2>B >BBQ[ Q*!@ !@HxF xFv2 2 1N 1NhR, R,f/ /+ 5 5"r   