Ë
    ìmxiE  ã                   ó¼  — d dl Z d dlZd dlZ	 d dlZd dlZ		 d dl
mZmZmZmZ 	 d dlZd e	j                   «       fd e	j"                  «       fd e	j$                  «       fd e	j&                  «       fd e	j(                  «       fd e	j*                  «       fd	 e	j,                  «       fd
 e	j.                  «       fd e	j0                  «       fd e	j2                  «       fd e	j4                  «       fgZeD � cg c]  } | d    dk7  sŒ| ‘Œ c} Ze j                  j;                  de	j<                  e	j>                  e	j@                  e	jB                  g«      d„ «       Z"d„ Z#d„ Z$d„ Z%e j                  j;                  de	j<                  e	j>                  e	j@                  e	jB                  g«      d„ «       Z&e j                  j;                  de«      d„ «       Z'e j                  j;                  de«      d„ «       Z(e j                  j;                  de«      d„ «       Z)e j                  j;                  de«      d„ «       Z*e j                  j;                  de«      d„ «       Z+e j                  j;                  de«      d„ «       Z,e j                  j;                  de«      d„ «       Z-e j                  j;                  de	j<                  e	j>                  e	j@                  e	jB                  g«      e j                  j;                  de«      d„ «       «       Z.e j                  j_                  e d¬«      e j                  j;                  deef«      e j                  j;                  de«      d „ «       «       «       Z0e j                  j_                  e d¬«      e j                  j;                  deef«      e j                  j;                  de«      d!„ «       «       «       Z1e j                  j_                  e d"¬«      e j                  j;                  de«      d#„ «       «       Z2y# e$ r e j                  j                  ZY �Œ!w xY w# e$ r dZdZdZdZY �Œ$w xY w# e$ r dZY �Œ-w xY wc c} w )$é    N)Ú	csr_arrayÚ	coo_arrayÚ
csr_matrixÚ
coo_matrixÚi1Úi2Úi4Úi8Úu1Úu2Úu4Úu8Úf2Úf4Úf8Úsparse_tensor_typec                 óÊ  — t        j                  g d¢g d¢g d¢g d¢g«      }d}| j                  ||«      }|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j
                  |j
                  k(  sJ ‚|j                  sJ ‚|j                  d«      |d   k(  sJ ‚|j                  |k(  sJ ‚|j                  d	k(  sJ ‚t        j                  |«      } |«       €J ‚~ |«       �J ‚y )
N©é   r   é   r   r   r   ©r   r   r   r   r   é   ©é   r   r   r   r   r   ©r   r   r   r   é   é   ©ÚxÚyr   é   r   r   )ÚnpÚarrayÚfrom_dense_numpyÚndimÚsizeÚshapeÚ
is_mutableÚdim_nameÚ	dim_namesÚnon_zero_lengthÚweakrefÚref)r   Údatar*   Úsparse_tensorÚwrs        úW/home/htdocs/ttos/venv/lib/python3.12/site-packages/pyarrow/tests/test_sparse_tensor.pyÚtest_sparse_tensor_attrsr2   >   sû   € ô �8‰8ÚÚÚÚð	ó €Dð €IØ&×7Ñ7¸¸iÓH€Mà×Ñ Ò"Ð"Ð"Ø×Ñ Ò#Ð#Ð#Ø×Ñ $§*¡*Ò,Ð,Ð,Ø×#Ò#Ð#Ð#Ø×!Ñ! !Ó$¨	°!©Ò4Ð4Ð4Ø×"Ñ" iÒ/Ð/Ð/Ø×(Ñ(¨AÒ-Ð-Ð-ä	�‰�]Ó	#€BÙ‹4ÐÐÐØÙ‹4ˆ<Ð‰<ó    c                  óL  — t        j                  g d¢g«      j                  } t        j                  g d¢g d¢g«      j                  }t        j                  g d¢g d¢g d¢g d¢g«      }t        j                  j                  |«      }t        j                  |«      }|j                  «       \  }}|j                  sJ ‚t        j                  |«      |dz   k(  sJ ‚d }t        j                  | |«      sJ ‚t        j                  ||«      sJ ‚|j                  j                  sJ ‚y )	N©r   r   r   r   r   r   ©r   r   é   r   r   r   ©r   r   r   r   r   r   r   r   r   r   r   )r"   r#   ÚTÚpaÚSparseCOOTensorr$   ÚsysÚgetrefcountÚto_numpyÚhas_canonical_formatÚarray_equalÚflagsÚc_contiguous)Úexpected_dataÚexpected_coordsr#   r/   ÚnÚresult_dataÚresult_coordss          r1   Ú"test_sparse_coo_tensor_base_objectrH   \   s  € Ü—H‘HÒ0Ð1Ó2×4Ñ4€MÜ—h‘hÚÚð ó ÷ 	�qð ô �H‰HÚÚÚÚð	ó €Eô ×&Ñ&×7Ñ7¸Ó>€MÜ�‰˜Ó&€AØ!.×!7Ñ!7Ó!9Ñ€K�Ø×-Ò-Ð-Ð-Ü�?‰?˜=Ó)¨Q°©UÒ2Ð2Ð2à€MÜ�>‰>˜-¨Ô5Ð5Ð5Ü�>‰>˜/¨=Ô9Ð9Ð9Ø×Ñ×+Ò+Ð+Ñ+r3   c                  óD  — t        j                  g d¢g«      j                  } t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢g d¢g d¢g d¢g«      }t        j                  j                  |«      }t        j                  |«      }|j                  «       \  }}}t        j                  |«      |dz   k(  sJ ‚d }t        j                  | |«      sJ ‚t        j                  ||«      sJ ‚t        j                  ||«      sJ ‚y )	Nr5   ©r   r   r   r   r   r8   r   r   r   r   r   )
r"   r#   r9   r:   ÚSparseCSRMatrixr$   r<   r=   r>   r@   ©	r.   ÚindptrÚindicesr#   r/   rE   rF   Úresult_indptrÚresult_indicess	            r1   Ú"test_sparse_csr_matrix_base_objectrQ   t   sí   € Ü�8‰8Ò'Ð(Ó)×+Ñ+€DÜ�X‰X’oÓ&€FÜ�h‰hÒ)Ó*€GÜ�H‰HÚÚÚÚð	ó €Eô ×&Ñ&×7Ñ7¸Ó>€MÜ�‰˜Ó&€AØ1>×1GÑ1GÓ1IÑ.€K� Ü�?‰?˜=Ó)¨Q°©UÒ2Ð2Ð2à€MÜ�>‰>˜$ Ô,Ð,Ð,Ü�>‰>˜& -Ô0Ð0Ð0Ü�>‰>˜' >Ô2Ð2Ñ2r3   c                  óÈ  — t        j                  g d¢g«      j                  } t        j                  g d¢«      g}t        j                  g d¢«      t        j                  g d¢«      g}t        j                  g d¢g d¢g d¢g d¢g«      }t        j                  j                  |«      }t        j                  |«      }|j                  «       \  }}}t        j                  |«      |d	z   k(  sJ ‚d }t        j                  | |«      sJ ‚t        j                  |d
   |d
   «      sJ ‚t        j                  |d
   |d
   «      sJ ‚t        j                  |d   |d   «      sJ ‚y )Nr5   rJ   ©r   r7   r   r   r8   r   r   r   r   r   r   r7   )
r"   r#   r9   r:   ÚSparseCSFTensorr$   r<   r=   r>   r@   rL   s	            r1   Ú"test_sparse_csf_tensor_base_objectrU   ‰   s2  € Ü�8‰8Ò'Ð(Ó)×+Ñ+€DÜ�h‰h’Ó'Ð(€Fä
�‰’ÓÜ
�‰Ò#Ó$ð€Gô �H‰HÚÚÚÚð	ó €Eô ×&Ñ&×7Ñ7¸Ó>€MÜ�‰˜Ó&€AØ1>×1GÑ1GÓ1IÑ.€K� Ü�?‰?˜=Ó)¨Q°©UÒ2Ð2Ð2à€MÜ�>‰>˜$ Ô,Ð,Ð,Ü�>‰>˜& ™) ]°1Ñ%5Ô6Ð6Ð6Ü�>‰>˜' !™* n°QÑ&7Ô8Ð8Ð8Ü�>‰>˜' !™* n°QÑ&7Ô8Ð8Ñ8r3   c                 ód  — d„ }d„ }t         j                  j                  dd«      d d …d d d…f   }| j                  |«      }| j                  t        j                  |«      «      } |||«       |j                  «       }d|d<   | j                  t        j                  |«      «      } |||«       y )Nc                 óF   — | j                  |«      sJ ‚| |k(  sJ ‚| |k7  rJ ‚y ©N©Úequals©ÚaÚbs     r1   Úeqz%test_sparse_tensor_equals.<locals>.eq©   s+   € Ø�x‰x˜Œ{Ðˆ{Ø�AŠvˆˆvØ˜’FÐˆ|�Fr3   c                 óF   — | j                  |«      rJ ‚| |k(  rJ ‚| |k7  sJ ‚y rX   rY   r[   s     r1   Únez%test_sparse_tensor_equals.<locals>.ne®   s)   € Ø—8‘8˜A”;ÐˆØ˜’FÐˆ|Ø�AŠvˆ‰vr3   é
   r   r   g      ð?)é	   r   )r"   ÚrandomÚrandnr$   ÚascontiguousarrayÚcopy)r   r^   r`   r.   Úsparse_tensor1Úsparse_tensor2s         r1   Útest_sparse_tensor_equalsri   ¢   s£   € òò
ô
 �9‰9�?‰?˜2˜qÓ!¢"¡c¨ c 'Ñ*€DØ'×8Ñ8¸Ó>€NØ'×8Ñ8Ü
×Ñ˜TÓ"ó$€Ná€~�~Ô&Ø�9‰9‹;€DØ€Dˆ�JØ'×8Ñ8Ü
×Ñ˜TÓ"ó$€Ná€~�~Õ&r3   zdtype_str,arrow_typec                 óp  — t        j                  | «      }t        j                  g d¢g«      j                  j	                  |«      }t        j                  g d¢g d¢g«      j                  }t        j                  g d¢g d¢g d¢g d¢g«      j	                  |«      }t
        j                  j                  |«      }t
        j                  j                  |«      }t        |«       |j                  «       \  }}	|j                  |k(  sJ ‚t        j                  ||«      sJ ‚t        j                  ||	«      sJ ‚t
        j                  j                  |«      }t        |«       |j                  «       \  }}	|j                  |k(  sJ ‚t        j                  ||«      sJ ‚t        j                  ||	«      sJ ‚y )Nr5   r6   r8   r   r   r   r   )r"   Údtyper#   r9   Úastyper:   ÚTensorÚ
from_numpyr;   r$   Úreprr>   Útyper@   Úfrom_tensor)
Ú	dtype_strÚ
arrow_typerk   rC   rD   r#   Útensorr/   rF   rG   s
             r1   Ú!test_sparse_coo_tensor_from_denseru   ¿   sy  € ä�H‰H�YÓ€EÜ—H‘HÒ0Ð1Ó2×4Ñ4×;Ñ;¸EÓB€MÜ—h‘hÚÚð ó ÷ 	�qð ô �H‰HÚÚÚÚð	ó ÷
 �vˆeƒ}ð 
ô �Y‰Y×!Ñ! %Ó(€Fô ×&Ñ&×7Ñ7¸Ó>€MÜˆÔØ!.×!7Ñ!7Ó!9Ñ€K�Ø×Ñ Ò+Ð+Ð+Ü�>‰>˜-¨Ô5Ð5Ð5Ü�>‰>˜/¨=Ô9Ð9Ð9ô ×&Ñ&×2Ñ2°6Ó:€MÜˆÔØ!.×!7Ñ!7Ó!9Ñ€K�Ø×Ñ Ò+Ð+Ð+Ü�>‰>˜-¨Ô5Ð5Ð5Ü�>‰>˜/¨=Ô9Ð9Ñ9r3   c                 óæ  — t        j                  | «      }t        j                  g d¢g«      j                  j	                  |«      }t        j                  g d¢«      }t        j                  g d¢«      }t        j                  g d¢g d¢g d¢g d¢g«      j	                  |«      }t
        j                  j                  |«      }t
        j                  j                  |«      }t        |«       |j                  «       \  }	}
}|j                  |k(  sJ ‚t        j                  ||	«      sJ ‚t        j                  ||
«      sJ ‚t        j                  ||«      sJ ‚t
        j                  j                  |«      }t        |«       |j                  «       \  }	}
}|j                  |k(  sJ ‚t        j                  ||	«      sJ ‚t        j                  ||
«      sJ ‚t        j                  ||«      sJ ‚y )Nr5   rJ   r8   r   r   r   r   )r"   rk   r#   r9   rl   r:   rm   rn   rK   r$   ro   r>   rp   r@   rq   ©rr   rs   rk   r.   rM   rN   r#   rt   r/   rF   rO   rP   s               r1   Ú!test_sparse_csr_matrix_from_denserx   à   s�  € ä�H‰H�YÓ€EÜ�8‰8Ò'Ð(Ó)×+Ñ+×2Ñ2°5Ó9€DÜ�X‰X’oÓ&€FÜ�h‰hÒ)Ó*€GÜ�H‰HÚÚÚÚð	ó ÷
 �vˆeƒ}ð 
ô �Y‰Y×!Ñ! %Ó(€Fô ×&Ñ&×7Ñ7¸Ó>€MÜˆÔØ1>×1GÑ1GÓ1IÑ.€K� Ø×Ñ Ò+Ð+Ð+Ü�>‰>˜$ Ô,Ð,Ð,Ü�>‰>˜& -Ô0Ð0Ð0Ü�>‰>˜' >Ô2Ð2Ð2ô ×&Ñ&×2Ñ2°6Ó:€MÜˆÔØ1>×1GÑ1GÓ1IÑ.€K� Ø×Ñ Ò+Ð+Ð+Ü�>‰>˜$ Ô,Ð,Ð,Ü�>‰>˜& -Ô0Ð0Ð0Ü�>‰>˜' >Ô2Ð2Ñ2r3   c                 óþ  — t        j                  | «      }t        j                  g d¢g«      j                  j	                  |«      }t        j                  g d¢«      g}t        j                  g d¢«      t        j                  g d¢«      g}t        j                  g d¢g d¢g d¢g d¢g«      j	                  |«      }t
        j                  j                  |«      }t        |«       |j                  «       \  }}	}
|j                  |k(  sJ ‚t        j                  ||«      sJ ‚t        j                  |d	   |	d	   «      sJ ‚t        j                  |d	   |
d	   «      sJ ‚t        j                  |d
   |
d
   «      sJ ‚y ©Nr5   rJ   rS   r8   r   r   r   r   r   r7   )r"   rk   r#   r9   rl   r:   rT   r$   ro   r>   rp   r@   )rr   rs   rk   r.   rM   rN   r#   r/   rF   rO   rP   s              r1   Ú'test_sparse_csf_tensor_from_dense_numpyr{     sG  € ä�H‰H�YÓ€EÜ�8‰8Ò'Ð(Ó)×+Ñ+×2Ñ2°5Ó9€DÜ�h‰h’Ó'Ð(€Fä
�‰’ÓÜ
�‰Ò#Ó$ð€Gô �H‰HÚÚÚÚð	ó ÷
 �vˆeƒ}ð 
ô ×&Ñ&×7Ñ7¸Ó>€MÜˆÔØ1>×1GÑ1GÓ1IÑ.€K� Ø×Ñ Ò+Ð+Ð+Ü�>‰>˜$ Ô,Ð,Ð,Ü�>‰>˜& ™) ]°1Ñ%5Ô6Ð6Ð6Ü�>‰>˜' !™* n°QÑ&7Ô8Ð8Ð8Ü�>‰>˜' !™* n°QÑ&7Ô8Ð8Ñ8r3   c                 ó<  — t        j                  | «      }t        j                  g d¢g«      j                  j	                  |«      }t        j                  g d¢«      g}t        j                  g d¢«      t        j                  g d¢«      g}t        j                  g d¢g d¢g d¢g d¢g«      j	                  |«      }t
        j                  j                  |«      }t
        j                  j                  |«      }t        |«       |j                  «       \  }	}
}|j                  |k(  sJ ‚t        j                  ||	«      sJ ‚t        j                  |d	   |
d	   «      sJ ‚t        j                  |d	   |d	   «      sJ ‚t        j                  |d
   |d
   «      sJ ‚y rz   )r"   rk   r#   r9   rl   r:   rm   rn   rT   rq   ro   r>   rp   r@   rw   s               r1   Ú(test_sparse_csf_tensor_from_dense_tensorr}     s]  € ä�H‰H�YÓ€EÜ�8‰8Ò'Ð(Ó)×+Ñ+×2Ñ2°5Ó9€DÜ�h‰h’Ó'Ð(€Fä
�‰’ÓÜ
�‰Ò#Ó$ð€Gô �H‰HÚÚÚÚð	ó ÷
 �vˆeƒ}ð 
ô �Y‰Y×!Ñ! %Ó(€Fô ×&Ñ&×2Ñ2°6Ó:€MÜˆÔØ1>×1GÑ1GÓ1IÑ.€K� Ø×Ñ Ò+Ð+Ð+Ü�>‰>˜$ Ô,Ð,Ð,Ü�>‰>˜& ™) ]°1Ñ%5Ô6Ð6Ð6Ü�>‰>˜' !™* n°QÑ&7Ô8Ð8Ð8Ü�>‰>˜' !™* n°QÑ&7Ô8Ð8Ñ8r3   c                 ó  — t        j                  | «      }t        j                  g d¢g«      j                  j	                  |«      }t        j                  g d¢g d¢g«      j                  }d}d}t
        j                  j                  ||||«      }t        |«       |j                  «       \  }}	|j                  |k(  sJ ‚t        j                  ||«      sJ ‚t        j                  ||	«      sJ ‚|j                  |k(  sJ ‚y )N©r7   r   r   r   r   r   ©r   r   r   r   r7   r   ©r   r   r   r   r   r   ©r   r   r   )r"   rk   r#   r9   rl   r:   r;   rn   ro   r>   rp   r@   r*   )
rr   rs   rk   r.   Úcoordsr'   r*   r/   rF   rG   s
             r1   Ú&test_sparse_coo_tensor_numpy_roundtripr„   8  sì   € ä�H‰H�YÓ€EÜ�8‰8Ò'Ð(Ó)×+Ñ+×2Ñ2°5Ó9€DÜ�X‰XÚÚðó ÷ 	�qð ð €EØ€Iä×&Ñ&×1Ñ1°$¸ÀØ2;ó=€MäˆÔØ!.×!7Ñ!7Ó!9Ñ€K�Ø×Ñ Ò+Ð+Ð+Ü�>‰>˜$ Ô,Ð,Ð,Ü�>‰>˜& -Ô0Ð0Ð0Ø×"Ñ" iÒ/Ð/Ñ/r3   c                 óL  — t        j                  | «      }t        j                  g d¢g«      j                  j	                  |«      }t        j                  g d¢«      }t        j                  g d¢«      }d}d}t
        j                  j                  |||||«      }t        |«       |j                  «       \  }	}
}|j                  |k(  sJ ‚t        j                  ||	«      sJ ‚t        j                  ||
«      sJ ‚t        j                  ||«      sJ ‚|j                  |k(  sJ ‚y )Nr5   rJ   r8   r‚   r   )r"   rk   r#   r9   rl   r:   rK   rn   ro   r>   rp   r@   r*   )rr   rs   rk   r.   rM   rN   r'   r*   r/   rF   rO   rP   s               r1   Ú&test_sparse_csr_matrix_numpy_roundtripr†   M  sý   € ä�H‰H�YÓ€EÜ�8‰8Ò'Ð(Ó)×+Ñ+×2Ñ2°5Ó9€DÜ�X‰X’oÓ&€FÜ�h‰hÒ)Ó*€GØ€EØ€Iä×&Ñ&×1Ñ1°$¸ÀØ27¸óD€MäˆÔØ1>×1GÑ1GÓ1IÑ.€K� Ø×Ñ Ò+Ð+Ð+Ü�>‰>˜$ Ô,Ð,Ð,Ü�>‰>˜& -Ô0Ð0Ð0Ü�>‰>˜' >Ô2Ð2Ð2Ø×"Ñ" iÒ/Ð/Ñ/r3   c                 óÖ  — t        j                  | «      }t        j                  g d¢g«      j                  j	                  |«      }t        j                  g d¢«      g}t        j                  g d¢«      t        j                  g d¢«      g}d}d}d}t
        j                  j                  ||||||«      }	t        |	«       |	j                  «       \  }
}}|	j                  |k(  sJ ‚t        j                  ||
«      sJ ‚t        j                  |d   |d   «      sJ ‚t        j                  |d   |d   «      sJ ‚t        j                  |d	   |d	   «      sJ ‚|	j                  |k(  sJ ‚y )
Nr5   rJ   rS   r8   )r   r7   r‚   r   r   r7   )r"   rk   r#   r9   rl   r:   rT   rn   ro   r>   rp   r@   r*   )rr   rs   rk   r.   rM   rN   Ú
axis_orderr'   r*   r/   rF   rO   rP   s                r1   Ú&test_sparse_csf_tensor_numpy_roundtripr‰   a  sK  € ä�H‰H�YÓ€EÜ�8‰8Ò'Ð(Ó)×+Ñ+×2Ñ2°5Ó9€DÜ�h‰h’Ó'Ð(€Fä
�‰’ÓÜ
�‰Ò#Ó$ð€Gð €JØ€EØ€Iä×&Ñ&×1Ñ1°$¸ÀØ27¸Ø2;ó=€Mô 	ˆÔØ1>×1GÑ1GÓ1IÑ.€K� Ø×Ñ Ò+Ð+Ð+Ü�>‰>˜$ Ô,Ð,Ð,Ü�>‰>˜& ™) ]°1Ñ%5Ô6Ð6Ð6Ü�>‰>˜' !™* n°QÑ&7Ô8Ð8Ð8Ü�>‰>˜' !™* n°QÑ&7Ô8Ð8Ð8Ø×"Ñ" iÒ/Ð/Ñ/r3   c                 óŒ  — t        j                  | «      }t        j                  g d¢g d¢g d¢g d¢g«      j                  |«      }d}|j	                  ||«      }|j                  «       }|j                  «       }|j                  |k(  sJ ‚|j                  |k(  sJ ‚|j                  |k(  sJ ‚t        j                  ||«      sJ ‚y )N)r   r   rb   r   )r   é   r   r   )r   r   r   r   )r   r   r   r   r   )
r"   rk   r#   rl   r$   Ú	to_tensorr>   rp   r*   r@   )	rr   rs   r   rk   r#   r*   r/   rt   Úresult_arrays	            r1   Útest_dense_to_sparse_tensorrŽ   {  s¿   € ô �H‰H�YÓ€EÜ�H‰H’lÚ"Ú"Ú"ð$ó %÷ &,¡V¨E£]ð 
ð €Ià&×7Ñ7¸¸yÓI€MØ×$Ñ$Ó&€FØ—?‘?Ó$€Là×Ñ Ò+Ð+Ð+Ø�;‰;˜*Ò$Ð$Ð$Ø×"Ñ" iÒ/Ð/Ð/Ü�>‰>˜% Ô.Ð.Ñ.r3   zrequires scipy)ÚreasonÚsparse_objectc                 ó�  — d}d}t        j                  | «      }t        j                  g d¢«      j                  |«      }t        j                  g d¢«      }t        j                  g d¢«      } ||||ff|¬«      }	t        j
                  j                  |	|¬«      }
|
j                  «       }|	j                  rJ ‚|
j                  rJ ‚|j                  rJ ‚|
j                  |k(  sJ ‚|
j                  |k(  sJ ‚|	j                  |j                  k(  sJ ‚t        j                  |	j                  |j                  «      sJ ‚t        j                  |	j                  |j                  «      sJ ‚t        j                  |	j                  |j                  «      sJ ‚|	j                  «       }t        j                  ||
j!                  «       j#                  «       «      sJ ‚|	j%                  «        t        j
                  j                  |	|¬«      }
|
j                  «       }|	j                  sJ ‚|
j                  sJ ‚|j                  sJ ‚y )Nr‚   r   r   r€   r�   ©r'   ©r*   )r"   rk   r#   rl   r:   r;   Ú
from_scipyÚto_scipyr?   rp   r*   r@   r.   ÚrowÚcolÚtoarrayrŒ   r>   Úsum_duplicates)rr   rs   r�   r'   r*   rk   r.   r–   r—   Úscipy_matrixr/   Úout_scipy_matrixÚdense_arrays                r1   Ú&test_sparse_coo_tensor_scipy_roundtripr�   ”  s  € ð
 €EØ€IÜ�H‰H�YÓ€EÜ�8‰8Ò&Ó'×.Ñ.¨uÓ5€DÜ
�(‰(Ò%Ó
&€CÜ
�(‰(Ò%Ó
&€Cñ ! $¨¨c¨
Ð!3¸5ÔA€LÜ×&Ñ&×1Ñ1°,Ø<Eð 2ó G€Mà$×-Ñ-Ó/Ðà×0Ò0Ð0Ð0Ø×1Ò1Ð1Ð1Ø×4Ò4Ð4Ð4Ø×Ñ Ò+Ð+Ð+Ø×"Ñ" iÒ/Ð/Ð/Ø×ÑÐ!1×!7Ñ!7Ò7Ð7Ð7Ü�>‰>˜,×+Ñ+Ð-=×-BÑ-BÔCÐCÐCÜ�>‰>˜,×*Ñ*Ð,<×,@Ñ,@ÔAÐAÐAÜ�>‰>˜,×*Ñ*Ð,<×,@Ñ,@ÔAÐAÐAà×&Ñ&Ó(€KÜ�>‰>˜+ }×'>Ñ'>Ó'@×'IÑ'IÓ'KÔLÐLÐLð ×ÑÔ!Ü×&Ñ&×1Ñ1°,Ø<Eð 2ó G€Mà$×-Ñ-Ó/Ðà×,Ò,Ð,Ð,Ø×-Ò-Ð-Ð-Ø×0Ò0Ð0Ñ0r3   c                 ód  — d}d}t        j                  | «      }t        j                  g d¢«      j                  |«      }t        j                  g d¢«      }t        j                  g d¢«      } ||||f|¬«      }	t        j
                  j                  |	|¬«      }
|
j                  «       }|
j                  |k(  sJ ‚|
j                  |k(  sJ ‚|	j                  |j                  k(  sJ ‚t        j                  |	j                  |j                  «      sJ ‚t        j                  |	j                  |j                  «      sJ ‚t        j                  |	j                  |j                  «      sJ ‚|	j                  «       }t        j                  ||
j                  «       j!                  «       «      sJ ‚y )Nr‚   r   r5   rJ   r8   r’   r“   )r"   rk   r#   rl   r:   rK   r”   r•   rp   r*   r@   r.   rM   rN   r˜   rŒ   r>   )rr   rs   r�   r'   r*   rk   r.   rM   rN   Úsparse_arrayr/   Úout_sparse_arrayrœ   s                r1   Ú&test_sparse_csr_matrix_scipy_roundtripr¡   ¾  sp  € ð
 €EØ€IÜ�H‰H�YÓ€EÜ�8‰8Ò&Ó'×.Ñ.¨uÓ5€DÜ�X‰X’oÓ&€FÜ�h‰hÒ)Ó*€Gá  $¨°Ð!8ÀÔF€LÜ×&Ñ&×1Ñ1°,Ø<Eð 2ó G€Mà$×-Ñ-Ó/Ðà×Ñ Ò+Ð+Ð+Ø×"Ñ" iÒ/Ð/Ð/Ø×ÑÐ!1×!7Ñ!7Ò7Ð7Ð7Ü�>‰>˜,×+Ñ+Ð-=×-BÑ-BÔCÐCÐCÜ�>‰>˜,×-Ñ-Ð/?×/FÑ/FÔGÐGÐGÜ�>‰>˜,×.Ñ.Ð0@×0HÑ0HÔIÐIÐIà×&Ñ&Ó(€KÜ�>‰>˜+ }×'>Ñ'>Ó'@×'IÑ'IÓ'KÔLÐLÑLr3   zrequires pydata/sparsec                 óø  — t        j                  | «      }t        j                  g d¢«      j                  |«      }t        j                  g d¢g d¢g«      }d}d}t	        j
                  |||¬«      }t        j                  j                  ||¬«      }|j                  «       }	|j                  |k(  sJ ‚|j                  |k(  sJ ‚|j                  |	j                  k(  sJ ‚t        j                  |j                  |	j                  «      sJ ‚t        j                  |j                  |	j                  «      sJ ‚t        j                  |j                  «       |j!                  «       j#                  «       «      sJ ‚y )Nr   r€   r�   r‚   r   )r.   rƒ   r'   r“   )r"   rk   r#   rl   ÚsparseÚCOOr:   r;   Úfrom_pydata_sparseÚto_pydata_sparserp   r*   r@   r.   rƒ   ÚtodenserŒ   r>   )
rr   rs   rk   r.   rƒ   r'   r*   rŸ   r/   r    s
             r1   Ú.test_pydata_sparse_sparse_coo_tensor_roundtripr¨   Ú  sQ  € ô �H‰H�YÓ€EÜ�8‰8Ò&Ó'×.Ñ.¨uÓ5€DÜ�X‰XÚÚðó €Fð €EØ€Iä—:‘: 4°¸eÔD€LÜ×&Ñ&×9Ñ9¸,ØDMð :ó O€Mà$×5Ñ5Ó7Ðà×Ñ Ò+Ð+Ð+Ø×"Ñ" iÒ/Ð/Ð/Ø×ÑÐ!1×!7Ñ!7Ò7Ð7Ð7Ü�>‰>˜,×+Ñ+Ð-=×-BÑ-BÔCÐCÐCÜ�>‰>˜,×-Ñ-Ð/?×/FÑ/FÔGÐGÐGÜ�>‰>˜,×.Ñ.Ó0Ø'×1Ñ1Ó3×<Ñ<Ó>ô@ð @ñ @r3   )3Úpytestr<   r,   Únumpyr"   ÚImportErrorÚmarkÚ
pytestmarkÚpyarrowr:   Úscipy.sparser   r   r   r   r£   Úint8Úint16Úint32Úint64Úuint8Úuint16Úuint32Úuint64Úfloat16Úfloat32Úfloat64Útensor_type_pairsÚscipy_type_pairsÚparametrizerK   ÚSparseCSCMatrixr;   rT   r2   rH   rQ   rU   ri   ru   rx   r{   r}   r„   r†   r‰   rŽ   Úskipifr�   r¡   r¨   )Úpairs   0r1   ú<module>rÁ      s·  ðó$ Û 
Û ð#Ûó ðßIÓIðÛð 
ˆ7ˆ2�7‰7‹9ÐØ	ˆ8ˆ2�8‰8‹:ÐØ	ˆ8ˆ2�8‰8‹:ÐØ	ˆ8ˆ2�8‰8‹:ÐØ	ˆ8ˆ2�8‰8‹:ÐØ	ˆ9ˆ2�9‰9‹;ÐØ	ˆ9ˆ2�9‰9‹;ÐØ	ˆ9ˆ2�9‰9‹;ÐØ	ˆ:ˆ2�:‰:‹<ÐØ	ˆ:ˆ2�:‰:‹<ÐØ	ˆ:ˆ2�:‰:‹<ÐðÐ ð  'öØ¨$¨q©'°T«/‚DòÐ ð
 ‡�×ÑÐ-Ø×ÑØ×ÑØ×ÑØ×Ñð	0ó ñóðò0,ò03ò*9ð2 ‡�×ÑÐ-Ø×ÑØ×ÑØ×ÑØ×Ñð	0ó ñ'óð'ð. ‡�×ÑÐ/Ð1BÓCñ:ó Dð:ð@ ‡�×ÑÐ/Ð1BÓCñ3ó Dð3ð@ ‡�×ÑÐ/Ð1BÓCñ9ó Dð9ð4 ‡�×ÑÐ/Ð1BÓCñ9ó Dð9ð6 ‡�×ÑÐ/Ð1BÓCñ0ó Dð0ð( ‡�×ÑÐ/Ð1BÓCñ0ó Dð0ð& ‡�×ÑÐ/Ð1BÓCñ0ó Dð0ð2 ‡�×ÑÐ-Ø×ÑØ×ÑØ×ÑØ×Ñð	0ó ð ‡�×ÑÐ/Ð1BÓCñ/ó Dóð/ð$ ‡�×Ñ˜
�NÐ+;ÐÓ<Ø‡�×Ñ˜¨9°jÐ*AÓBØ‡�×ÑÐ/Ð1AÓBñ$1ó Có Có =ð$1ðN ‡�×Ñ˜
�NÐ+;ÐÓ<Ø‡�×Ñ˜¨9°jÐ*AÓBØ‡�×ÑÐ/Ð1AÓBñMó Có Có =ðMð2 ‡�×Ñ˜�JÐ'?ÐÓ@Ø‡�×ÑÐ/Ð1BÓCñ@ó Dó Añ@øðI ò #Ø—‘×"Ñ"ƒJð#ûð ò Ø€JØ€JØ€IØƒIð	ûð ò ØƒFðüò&s?   ŽP —P7 ¤Q Ã4QÄQÐP4Ð3P4Ð7QÑQÑQÑQ