Ë
    7^(hç  ã                   óÐ   — d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	m
Z
 d dlmZ d dlmZmZmZ d dlmZmZ d dlmZ d d	lm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)é    )ÚPermutation)Ú	unchanged)ÚMatrix)ÚMatMulÚBlockDiagMatrixÚDeterminantÚInverse)ÚMatrixSymbol)Ú
ZeroMatrixÚ	OneMatrixÚIdentity)ÚMatrixPermuteÚPermutationMatrix)Úraises)ÚSymbolc                  ó  — t        ddg«      } t        t        | «      sJ ‚t        t        d„ «       t        | «      j                  «       t        ddgddgg«      k(  sJ ‚t        t        | «      t        ddd«      z  t        «      sJ ‚y )Né   r   c                  ó   — t        d«      S )N©r   r   é   )r   © ó    úo/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/matrices/expressions/tests/test_permutation.pyú<lambda>z.test_PermutationMatrix_basic.<locals>.<lambda>   s   € Ô0°Ó;€ r   ÚAr   )
r   r   r   r   Ú
ValueErrorÚas_explicitr   Ú
isinstancer
   r   ©Úps    r   Útest_PermutationMatrix_basicr!      s~   € Ü�Q˜�FÓ€AÜÔ&¨Ô*Ð*Ð*Ü
Œ:Ñ;Ô<Ü˜QÓ×+Ñ+Ó-´¸!¸Q¸À!ÀQÀÐ8HÓ1IÒIÐIÐIÜÔ'¨Ó*¬<¸¸QÀÓ+BÑBÄFÔKÐKÑKr   c                  ó˜  — t        g d¢«      } t        | «      }t        g d¢g d¢g d¢g«      }||z  j                  «       |j                  «       |z  k(  sJ ‚||z  j                  «       ||j                  «       z  k(  sJ ‚t        t        g d¢«      «      }t        t        g d¢«      «      }t        t        g d¢«      «      }||z  |k(  sJ ‚y )N©r   r   r   r   )é   é   é   )é   é   é   )r   r   r   )r   r   r   )r   r   r   r   )r    ÚPÚMÚP1ÚP2ÚP3s         r   Útest_PermutationMatrix_matmulr/      s°   € Ü’IÓ€AÜ˜!Ó€AÜ’	š9¢iÐ0Ó1€AØˆa‰C×ÑÓ !§-¡-£/°!Ñ"3Ò3Ð3Ð3Øˆa‰C×ÑÓ ! A§M¡M£OÑ"3Ò3Ð3Ð3ä	œ;¢yÓ1Ó	2€BÜ	œ;¢yÓ1Ó	2€BÜ	œ;¢yÓ1Ó	2€BØˆb‰5�BŠ;Ð‰;r   c                  óž   — t        g d¢«      } t        | «      }t        g d¢«      }t        |«      }|dz  |k(  sJ ‚|dz  t        d«      k(  sJ ‚y )Nr#   ©r   r   r   r   r$   )r   r   r   )Úp1r,   Úp2r-   s       r   Útest_PermutationMatrix_matpowr4   #   sP   € Ü	’YÓ	€BÜ	˜2Ó	€BÜ	’YÓ	€BÜ	˜2Ó	€BØˆq‰5�BŠ;Ðˆ;Øˆq‰5”H˜Q“KÒÐÑr   c                  ó”   — t        ddg«      } t        | «      j                  sJ ‚t        ddg«      } t        | «      j                  rJ ‚y )Nr   r   )r   r   Úis_Identityr   s    r   Útest_PermutationMatrix_identityr7   ,   sI   € Ü�Q˜�FÓ€AÜ˜QÓ×+Ò+Ð+Ð+ä�Q˜�FÓ€AÜ  Ó#×/Ò/Ð/Ð/Ð/r   c                  ó<  — t        t        g d¢«      «      } t        | «      j                  «       dk(  sJ ‚t        t        g d¢«      «      } t        | «      j                  «       dk(  sJ ‚t        t        g d¢«      «      } t        | «      j                  «       dk(  sJ ‚y )Nr   r   )r   r   r   éÿÿÿÿr1   )r   r   r   Údoit©r*   s    r   Ú"test_PermutationMatrix_determinantr<   4   s€   € Üœ+¢iÓ0Ó1€AÜ�q‹>×ÑÓ  AÒ%Ð%Ð%Üœ+¢iÓ0Ó1€AÜ�q‹>×ÑÓ  BÒ&Ð&Ð&Üœ+¢iÓ0Ó1€AÜ�q‹>×ÑÓ  AÒ%Ð%Ñ%r   c                  ó”   — t        t        ddd«      «      } t        | «      j                  «       t        t        ddd«      «      k(  sJ ‚y )Nr   r   r   )r   r   r	   r:   r;   s    r   Útest_PermutationMatrix_inverser>   =   s=   € Üœ+ a¨¨AÓ.Ó/€AÜ�1‹:�?‰?ÓÔ 1´+¸aÀÀAÓ2FÓ GÒGÐGÑGr   c            	      ó”  — t        t        g d¢«      «      } t        t        dg«      «      }| j                  t        «      t        ||||||«      k(  sJ ‚t        t        g d¢«      «      } t        t        dd«      «      }| j                  t        «      t        |||||«      k(  sJ ‚t        t        g d¢«      «      } | j                  t        «      t        |||«      k(  sJ ‚t        t        g d¢«      «      } t        t        g d¢«      «      }| j                  t        «      t        |||«      k(  sJ ‚t        t        g d¢«      «      } t        t        g d	¢«      «      }| j                  t        «      t        |||«      k(  sJ ‚t          t        dd
«      dd«      dd«      «      } | j                  t        «      t        | «      k(  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   r   r&   )r$   r   r   r   )r   r%   r   r$   r   r&   )r$   r   r   r   r$   r%   r   r&   )r   r   Úrewriter   )r*   ÚP0ÚP10ÚP3210ÚP3120s        r   Ú.test_PermutationMatrix_rewrite_BlockDiagMatrixrE   B   sª  € Üœ+Ò&8Ó9Ó:€AÜ	œ;¨ sÓ+Ó	,€BØ�9‰9”_Ó%Ü˜˜B  B¨¨BÓ/ò0ð 0ð 0ô 	œ+Ò&8Ó9Ó:€AÜ
œK¨¨1Ó-Ó
.€CØ�9‰9”_Ó%Ü˜˜B  R¨Ó,ò-ð -ð -ô 	œ+Ò&8Ó9Ó:€AØ�9‰9”_Ó%Ü˜˜S #Ó&ò'ð 'ð 'ô 	œ+Ò&8Ó9Ó:€AÜœkª,Ó7Ó8€EØ�9‰9”_Ó%Ü˜˜E 2Ó&ò'ð 'ð 'ô 	œ+Ò&8Ó9Ó:€AÜœkª,Ó7Ó8€EØ�9‰9”_Ó%Ü˜˜E 2Ó&ò'ð 'ð 'ô 	Ð1Ð+œ+ a¨Ó+¨A¨qÓ1°!°QÓ7Ó8€AØ�9‰9”_Ó%¬¸Ó);Ò;Ð;Ñ;r   c                  ó�  ‡‡‡— t        dd«      Št        ‰«      } t        ddd«      Št        t        ˆfd„«       t        t        ˆfd„«       t        ‰| «      t        ‰‰«      k(  sJ ‚t        t        ˆˆfd„«       t        ddd¬	«      Št        ‰‰«      t        ‰‰«      k(  sJ ‚t        ddd«      Št        t        ˆˆfd
„«       y )Nr   r   r   r   c                  ó.   •— t        t        d«      ‰ «      S ©NÚx©r   r   r   s   €r   r   z+test_MartrixPermute_basic.<locals>.<lambda>d   s   ø€ œ}¬V°C«[¸!Ó<€ r   c                  ó.   •— t        ‰ t        d«      «      S rH   rJ   )r   s   €r   r   z+test_MartrixPermute_basic.<locals>.<lambda>e   s   ø€ œ}¨Q´°s³Ó<€ r   c                  ó   •— t        ‰ ‰d«      S )Nr   ©r   )r   r    s   €€r   r   z+test_MartrixPermute_basic.<locals>.<lambda>h   s   ø€ œ}¨Q°°1Ó5€ r   r$   ©Úsizec                  ó   •— t        ‰ ‰«      S )NrM   )r   Úpps   €€r   r   z+test_MartrixPermute_basic.<locals>.<lambda>m   s   ø€ œ}¨Q°Ó3€ r   )r   r   r
   r   r   r   )r*   r   r    rQ   s    @@@r   Útest_MartrixPermute_basicrR   _   s§   ú€ Ü�A�qÓ€AÜ˜!Ó€AÜ�S˜!˜QÓ€Aä
Œ:Ó<Ô=Ü
Œ:Ó<Ô=ä˜˜AÓ¤-°°1Ó"5Ò5Ð5Ð5Ü
Œ:Ô5Ô6ä	�Q˜ Ô	"€BÜ˜˜BÓ¤=°°AÓ#6Ò6Ð6Ð6Ü	�Q˜˜1Ó	€BÜ
Œ:Ô3Õ4r   c                  ól   — t        dd«      } t        ddd«      }t        || «      j                  dk(  sJ ‚y )Nr   r   r   r   r$   )r   r$   )r   r
   r   Úshape©r    r   s     r   Útest_MatrixPermute_shaperV   p   s7   € Ü�A�qÓ€AÜ�S˜!˜QÓ€AÜ˜˜AÓ×$Ñ$¨Ò.Ð.Ñ.r   c                  ó  — t        ddd«      } t        ddd«      }|j                  «       }t        || d«      j                  «       |j	                  | d¬«      k(  sJ ‚t        || d«      j                  «       |j	                  | d¬«      k(  sJ ‚y )	Nr   r   r   r   r$   Úrows)ÚorientationÚcols)r   r
   r   r   Úpermute)r    r   ÚAAs      r   Útest_MatrixPermute_explicitr]   v   s‘   € Ü�A�q˜!Ó€AÜ�S˜!˜QÓ€AØ	
�‰‹€BÜ˜˜A˜qÓ!×-Ñ-Ó/Ø
�
‰
�1 &ˆ
Ó)ò*ð *ð *ä˜˜A˜qÓ!×-Ñ-Ó/Ø
�
‰
�1 &ˆ
Ó)ò*ð *ñ *r   c                  óh  — t        ddd«      } t        ddd«      }t        || d«      j                  t        «      j                  «       t        || d«      j                  «       k(  sJ ‚t        || d«      j                  t        «      j                  «       t        || d«      j                  «       k(  sJ ‚y )Nr   r   r   r   r$   )r   r
   r   r@   r   r   rU   s     r   Ú!test_MatrixPermute_rewrite_MatMulr_   €   s¦   € Ü�A�q˜!Ó€AÜ�S˜!˜QÓ€Aä˜˜A˜qÓ!×)Ñ)¬&Ó1×=Ñ=Ó?Ü�a˜˜AÓ×*Ñ*Ó,ò-ð -ð -ä˜˜A˜qÓ!×)Ñ)¬&Ó1×=Ñ=Ó?Ü�a˜˜AÓ×*Ñ*Ó,ò-ð -ñ -r   c                  ó¶  — t        ddd«      } t        ddd«      }t        || «      j                  «       t        || «      k(  sJ ‚t        dd¬«      } t        ddd«      }t        || «      j                  «       j	                  «       t        || «      j	                  «       k(  sJ ‚t        ddd«      } t        d«      }t        || d«      j                  «       j	                  «       t        || d«      j	                  «       k(  sJ ‚t        || d«      j                  «       j	                  «       t        || d«      j	                  «       k(  sJ ‚t        dd«      }t        || «      j                  «       |k(  sJ ‚t        dd«      }t        || «      j                  «       |k(  sJ ‚t        ddd«      }t        dddd«      }t        dddd«      }t        t        ||d«      |d«      }|j	                  «       |j                  «       j	                  «       k(  sJ ‚t        t        ||d«      |d«      }|j	                  «       |j                  «       j	                  «       k(  sJ ‚y )Nr   r   r   r   r$   rN   r%   )r   r
   r   r:   r   r   r   r   )r    r   r2   r3   Úexprs        r   Útest_MatrixPermute_doitrb   Š   s5  € Ü�A�q˜!Ó€AÜ�S˜!˜QÓ€AÜ˜˜AÓ×#Ñ#Ó%¬°q¸!Ó)<Ò<Ð<Ð<ä�A˜AÔ€AÜ�S˜!˜QÓ€AÜ˜˜AÓ×#Ñ#Ó%×1Ñ1Ó3Ü�a˜Ó×'Ñ'Ó)ò*ð *ð *ô 	�A�q˜!Ó€AÜ�‹€AÜ˜˜A˜qÓ!×&Ñ&Ó(×4Ñ4Ó6Ü�a˜˜AÓ×*Ñ*Ó,ò-ð -ð -ä˜˜A˜qÓ!×&Ñ&Ó(×4Ñ4Ó6Ü�a˜˜AÓ×*Ñ*Ó,ò-ð -ð -ô 	�1�aÓ€AÜ˜˜AÓ×#Ñ#Ó%¨Ò*Ð*Ð*Ü�!�Q‹€AÜ˜˜AÓ×#Ñ#Ó%¨Ò*Ð*Ð*ä�S˜!˜QÓ€AÜ	�Q˜˜1˜aÓ	 €BÜ	�Q˜˜1˜aÓ	 €BÜœ q¨"¨aÓ0°"°aÓ8€DØ×ÑÓ §¡£×!8Ñ!8Ó!:Ò:Ð:Ð:Üœ q¨"¨aÓ0°"°aÓ8€DØ×ÑÓ §¡£×!8Ñ!8Ó!:Ò:Ð:Ñ:r   N)$Úsympy.combinatoricsr   Úsympy.core.exprr   Úsympy.matricesr   Úsympy.matrices.expressionsr   r   r   r	   Ú"sympy.matrices.expressions.matexprr
   Ú"sympy.matrices.expressions.specialr   r   r   Ú&sympy.matrices.expressions.permutationr   r   Úsympy.testing.pytestr   Úsympy.core.symbolr   r!   r/   r4   r7   r<   r>   rE   rR   rV   r]   r_   rb   r   r   r   ú<module>rl      sj   ðÝ +Ý %Ý !÷2ó 2å ;ß NÑ N÷%å 'Ý $òLò
ò ò0ò&òHò
<ò:5ò"/ò*ò-ó;r   