
    (ph                       S SK r S SKrS SKJrJrJr  S SKJr	  S SK
Jr  S SKJs  Jr  S SKJrJrJr  S/S jrS0S jrS1S jrS	 rS
 rS rS 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 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(S. r)g)2    N)assert_assert_allcloseassert_equal)raises)linalg)	qr_delete	qr_update	qr_insertc                    Uc1  S[         R                  " U R                  5      R                  S-
  * -  nUc-  S[         R                  " U R                  5      R                  -  nU(       a)  [        U R                  S   U R                  S   :H  S5        [         R                  " U R                  R                  5       U 5      n[        U[         R                  " U R                  S   5      XS9  g )N      $@   
   r      zunitary matrices must be squarertolatol)npfinfodtype	precisionepsr   shapedotTconjr   eye)ar   r   
assert_sqraTas        X/var/www/html/venv/lib/python3.13/site-packages/scipy/linalg/tests/test_decomp_update.pyassert_unitaryr!   
   s    |!''*44Q677|"((177#'''
aggaj(*KL
&&Q
CC
+$B    c                 h   Uc1  S[         R                  " U R                  5      R                  S-
  * -  nUc-  S[         R                  " U R                  5      R                  -  n[         R
                  " U R                  S   U R                  S   S[         R                  5      n[        X   SXS9  g )Nr   r   r   r   g        r   )	r   r   r   r   r   trir   bool_r   )r   r   r   masks       r    assert_upper_trir(      s    |!''*44Q677|!''"&&&66!''!*aggaj"bhh7DAGSt7r"   c                 h    [        XXE5        [        XU5        [        U R                  U5      X#US9  g )Nr   )r!   r(   r   r   )qrr   r   r   r   s         r    check_qrr,      s*    1D-Qd#AEE!Ha6r"   c                 z   / SQn[        U5      nSn/ nU  GH   nUR                  S:X  aX  XU-     nUS-  n[        R                  " US   UR                  S   -  US   -   UR
                  5      nXvS   S US   2   nXXS'   OUR                  S:X  a  XU-     nXS-   U-     n	US-  n[        R                  " US   UR                  S   -  US   -   U	S   UR                  S   -  U	S   -   4UR
                  5      nXvS   S US   2U	S   S U	S   24   nXXS'   O[        S5      eUR                  U5        GM#     U$ )N))      )r   r   )r.      )r0   r   )   r0   )r   r.   )r   r   )r0   r1   r   r   .r   z0make_strided only works for ndim = 1 or 2 arrays)lenndimr   zerosr   r   
ValueErrorappend)
arrsstrideskmaxkretr   sbaseviewts
             r    make_stridedr@   "   sa   NGw<D	A
C66Q;D!AFA88AaDOAaD0!'':D!
ad
#DIVVq[D!A1%AFA88QqT!''!*_QqT11Q4
?1Q43GHGG%D!
ad
AaDJ!A$J./DI ) * *

4% & Jr"   c                     / nU  Hp  n[         R                  " U5      nUR                  S:X  a  US S S2S S S24   nO$UR                  S:X  a	  US S S2   nO[        S5      eX#S'   UR	                  U5        Mr     U$ )Nr   r$   r   z2negate_strides only works for ndim = 1 or 2 arrays.)r   
zeros_liker3   r5   r6   )r7   r;   r   bs       r    negate_stridesrD   <   s    
CMM!66Q;$B$"*AVVq[$B$A ) * *#

1  Jr"   c                     / nU  HZ  nUR                   n[        R                  " UR                  SU4S/5      nUR	                  U5      nX%S'   UR                  U5        M\     U$ )Nr   )junkS1.)r   r   r4   r   getfieldr6   )r7   outr   a_dtyperC   cs         r    nonitemsize_stridesrL   K   s^    
C''HHQWWW~~>?JJw#

1  Jr"   c                 ~    U  Vs/ s H+  oR                  UR                  R                  5       5      PM-     sn$ s  snf )N)astyper   newbyteorder)r7   r   s     r    make_nonnativerP   V   s.    6:;dHHQWW))+,d;;;s   2:c                   $    \ rS rSrS rSS jrSrg)BaseQRdeltasZ   c                     S[         R                  " U R                  5      R                  S-
  * -  U l        S[         R                  " U R                  5      R
                  -  U l        g )Nr   r   r   )r   r   r   r   r   r   r   selfs    r    setup_methodBaseQRdeltas.setup_method[   sH    bhhtzz2<<Q>??	$**-111	r"   c                    [         R                  R                  S5        SSSSSSS.U   n[         R                  R                  U5      n[         R                  " U R                  R                  S	5      5      (       a'  [         R                  R                  U5      nUS
U-  -   nUR                  U R                  5      n[        R                  " XBS9u  pgXFU4$ )Nir     r[   )   r/   )r/   r\   )r[   r   )r   r[   r   r   )sqrtallfatMx11xN1x1r                 ?)mode)	r   randomseediscomplexobjr   typerN   r   qr)rV   ri   re   r   r   rC   r*   r+   s           r    generateBaseQRdeltas.generate_   s    
		uvf>>BDIIU#??4::??1-..		  'ABF
AHHTZZ yy&Qwr"   )r   r   Nfull)__name__
__module____qualname____firstlineno__rW   rk   __static_attributes__ r"   r    rR   rR   Z   s    2
r"   rR   c                      \ 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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%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1 r3SDS2 jr4S3 r5S4 r6S5 r7S6 r8S7 r9S8 r:S9 r;S: r<S; r=S< r>S= r?S> r@S? rAS@ rBSA rCSBrDgC)EBaseQRdeletek   c                     U R                  S5      u  pn[        UR                  S   5       HH  n[        X#USS9u  pV[        R
                  " XS5      n[        XVXpR                  U R                  5        MJ     g )Nr^   r   Foverwrite_qr	rk   ranger   r   r   deleter,   r   r   rV   r   r*   r+   rowq1r1a1s           r    test_sqr_1_rowBaseQRdelete.test_sqr_1_rowl   _    --&a$CqSu=FB11%BRRDII6 %r"   c           
      :   U R                  S5      u  pn[        SS5       Hw  n[        UR                  S   U-
  5       HU  n[        X#XTSS9u  pg[        R
                  " U[        XUU-   5      S5      n[        XgXR                  U R                  5        MW     My     g )Nr^   r      r   Fry   
rk   r|   r   r   r   r}   slicer,   r   r   	rV   r   r*   r+   ndelr   r   r   r   s	            r    test_sqr_p_rowBaseQRdelete.test_sqr_p_rows   ~    --&a!QKDQWWQZ_-"1GYYq%X"6:YY		: .  r"   c           	          U R                  S5      u  pn[        UR                  S   5       HI  n[        X#USSS9u  pV[        R
                  " XS5      n[        XVXpR                  U R                  5        MK     g )Nr^   r   colFwhichrz   r{   rV   r   r*   r+   r   r   r   r   s           r    test_sqr_1_colBaseQRdelete.test_sqr_1_col{   a    --&a$CqSEJFB11%BRRDII6 %r"   c                 <   U R                  S5      u  pn[        SS5       Hx  n[        UR                  S   U-
  5       HV  n[        X#XTSSS9u  pg[        R
                  " U[        XUU-   5      S5      n[        XgXR                  U R                  5        MX     Mz     g )Nr^   r   r   r   r   Fr   r   	rV   r   r*   r+   r   r   r   r   r   s	            r    test_sqr_p_colBaseQRdelete.test_sqr_p_col       --&a!QKDQWWQZ_-"1%057YYq%X"6:YY		:	 .  r"   c                     U R                  S5      u  pn[        UR                  S   5       HH  n[        X#USS9u  pV[        R
                  " XS5      n[        XVXpR                  U R                  5        MJ     g )Nr_   r   Fry   r{   r~   s           r    test_tall_1_rowBaseQRdelete.test_tall_1_row   s_    --'a$CqSu=FB11%BRRDII6 %r"   c           
      :   U R                  S5      u  pn[        SS5       Hw  n[        UR                  S   U-
  5       HU  n[        X#XTSS9u  pg[        R
                  " U[        XUU-   5      S5      n[        XgXR                  U R                  5        MW     My     g )Nr_   r   r   r   Fry   r   r   s	            r    test_tall_p_rowBaseQRdelete.test_tall_p_row   s~    --'a!QKDQWWQZ_-"1GYYq%X"6:YY		: .  r"   c           	          U R                  S5      u  pn[        UR                  S   5       HI  n[        X#USSS9u  pV[        R
                  " XS5      n[        XVXpR                  U R                  5        MK     g )Nr_   r   r   Fr   r{   r   s           r    test_tall_1_colBaseQRdelete.test_tall_1_col   sa    --'a$CqSEJFB11%BRRDII6 %r"   c                 <   U R                  S5      u  pn[        SS5       Hx  n[        UR                  S   U-
  5       HV  n[        X#XTSSS9u  pg[        R
                  " U[        XUU-   5      S5      n[        XgXR                  U R                  5        MX     Mz     g )Nr_   r   r   r   r   Fr   r   r   s	            r    test_tall_p_colBaseQRdelete.test_tall_p_col   s    --'a!QKDQWWQZ_-"1%057YYq%X"6:YY		:	 .  r"   c                     U R                  S5      u  pn[        UR                  S   5       HH  n[        X#USS9u  pV[        R
                  " XS5      n[        XVXpR                  U R                  5        MJ     g )Nr`   r   Fry   r{   r~   s           r    test_fat_1_rowBaseQRdelete.test_fat_1_row   r   r"   c           
      :   U R                  S5      u  pn[        SS5       Hw  n[        UR                  S   U-
  5       HU  n[        X#XTSS9u  pg[        R
                  " U[        XUU-   5      S5      n[        XgXR                  U R                  5        MW     My     g )Nr`   r   r   r   Fry   r   r   s	            r    test_fat_p_rowBaseQRdelete.test_fat_p_row   r   r"   c           	          U R                  S5      u  pn[        UR                  S   5       HI  n[        X#USSS9u  pV[        R
                  " XS5      n[        XVXpR                  U R                  5        MK     g )Nr`   r   r   Fr   r{   r   s           r    test_fat_1_colBaseQRdelete.test_fat_1_col   r   r"   c                 <   U R                  S5      u  pn[        SS5       Hx  n[        UR                  S   U-
  5       HV  n[        X#XTSSS9u  pg[        R
                  " U[        XUU-   5      S5      n[        XgXR                  U R                  5        MX     Mz     g )Nr`   r   r   r   r   Fr   r   r   s	            r    test_fat_p_colBaseQRdelete.test_fat_p_col   r   r"   c           	          U R                  SS5      u  pn[        UR                  S   5       HI  n[        X#USS9u  pV[        R
                  " XS5      n[        XVXpR                  U R                  S5        MK     g Nr_   economicr   Fry   r{   r~   s           r    test_economic_1_row BaseQRdelete.test_economic_1_row   sc    --
3a$CqSu=FB11%BRRDIIu= %r"   c           	         U R                  SS5      u  p#n[        UR                  S   U-
  5       HV  n[        X4XQSS9u  pg[        R
                  " U[        XUU-   5      S5      n[        XgXR                  U R                  S5        MX     g r   r   )	rV   r   r   r*   r+   r   r   r   r   s	            r    base_economic_p_row_xxx$BaseQRdelete.base_economic_p_row_xxx   sr    --
3aD)CqSUCFB1eCT2A6BRRDIIu= *r"   c                 &    U R                  S5        g Nr.   r   rU   s    r    test_economic_p_row_economic)BaseQRdelete.test_economic_p_row_economic       $$Q'r"   c                 &    U R                  S5        g Nr1   r   rU   s    r    test_economic_p_row_sqr$BaseQRdelete.test_economic_p_row_sqr   r   r"   c                 &    U R                  S5        g Nr/   r   rU   s    r    test_economic_p_row_fat$BaseQRdelete.test_economic_p_row_fat   r   r"   c           	          U R                  SS5      u  pn[        UR                  S   5       HJ  n[        X#USSS9u  pV[        R
                  " XS5      n[        XVXpR                  U R                  S5        ML     g )Nr_   r   r   r   Fr   r{   r   s           r    test_economic_1_col BaseQRdelete.test_economic_1_col   se    --
3a$CqSEJFB11%BRRDIIu= %r"   c                 @   U R                  SS5      u  pn[        SS5       Hy  n[        UR                  S   U-
  5       HW  n[        X#XTSSS9u  pg[        R
                  " U[        XUU-   5      S5      n[        XgXR                  U R                  S5        MY     M{     g )	Nr_   r   r   r   r   r   Fr   r   r   s	            r    test_economic_p_col BaseQRdelete.test_economic_p_col   s    --
3a!QKDQWWQZ_-"1%057YYq%X"6:YY		5A	 .  r"   c                     U R                  S5      u  pn[        UR                  S   5       HH  n[        X#USS9u  pV[        R
                  " XS5      n[        XVXpR                  U R                  5        MJ     g )Nra   r   Fry   r{   r~   s           r    test_Mx1_1_rowBaseQRdelete.test_Mx1_1_row   r   r"   c           
      :   U R                  S5      u  pn[        SS5       Hw  n[        UR                  S   U-
  5       HU  n[        X#XTSS9u  pg[        R
                  " U[        XUU-   5      S5      n[        XgXR                  U R                  5        MW     My     g )Nra   r   r   r   Fry   r   r   s	            r    test_Mx1_p_rowBaseQRdelete.test_Mx1_p_row   r   r"   c           	          U R                  S5      u  pn[        UR                  S   5       HI  n[        X#USSS9u  pV[        R
                  " XS5      n[        XVXpR                  U R                  5        MK     g )Nrb   r   r   Fr   r{   r   s           r    test_1xN_1_colBaseQRdelete.test_1xN_1_col  r   r"   c                 <   U R                  S5      u  pn[        SS5       Hx  n[        UR                  S   U-
  5       HV  n[        X#XTSSS9u  pg[        R
                  " U[        XUU-   5      S5      n[        XgXR                  U R                  5        MX     Mz     g )Nrb   r   r   r   r   Fr   r   r   s	            r    test_1xN_p_colBaseQRdelete.test_1xN_p_col  r   r"   c           	          U R                  SS5      u  pn[        UR                  S   5       HI  n[        X#USS9u  pV[        R
                  " XS5      n[        XVXpR                  U R                  S5        MK     g )Nra   r   r   Fry   r{   r~   s           r    test_Mx1_economic_1_row$BaseQRdelete.test_Mx1_economic_1_row  sc    --z2a$CqSu=FB11%BRRDIIu= %r"   c           
      >   U R                  SS5      u  pn[        SS5       Hx  n[        UR                  S   U-
  5       HV  n[        X#XTSS9u  pg[        R
                  " U[        XUU-   5      S5      n[        XgXR                  U R                  S5        MX     Mz     g )Nra   r   r   r   r   Fry   r   r   s	            r    test_Mx1_economic_p_row$BaseQRdelete.test_Mx1_economic_p_row  s    --z2a!QKDQWWQZ_-"1GYYq%X"6:YY		5A .  r"   c                    U R                  S5      u  pn[        X#SSS5      u  pE[        U[        R                  " SUR
                  S95        [        U[        R                  " SUR                  S   4UR
                  S95        g )Nrb   r   r   r   r   r   r   r   )rk   r   r   r   ndarrayr   r   rV   r   r*   r+   r   r   s         r    test_delete_last_1_row#BaseQRdelete.test_delete_last_1_row&  sd    --&a1Au-R&@AR1aggaj/IJr"   c                 P   U R                  SS5      u  pn[        X#SUR                  S   S5      u  pE[        U[        R
                  " SUR                  S95        [        U[        R
                  " SUR                  S   4UR                  S95        U R                  SS5      u  pn[        X#SUR                  S   S5      u  pE[        U[        R
                  " SUR                  S95        [        U[        R
                  " SUR                  S   4UR                  S95        g )	Nr_   rn   r   r   r   r   r   r   )rk   r   r   r   r   r   r   r   s         r    test_delete_last_p_row#BaseQRdelete.test_delete_last_p_row-  s    --/a1AGGAJ6R&@AR1aggaj/IJ--
3a1AGGAJ6R&@AR1aggaj/IJr"   c                 h   U R                  SS5      u  pn[        X#SSS5      u  pE[        U[        R                  " UR
                  S   S4UR                  S95        [        U[        R                  " SUR                  S95        U R                  SS5      u  pn[        X#SSS5      u  pE[        U5        [        UR                  UR                  :H  5        [        UR
                  UR
                  :H  5        [        U[        R                  " UR
                  S   S4UR                  S95        g )	Nra   r   r   r   r   r   r   rn   )	rk   r   r   r   r   r   r   r!   r   r   s         r    test_delete_last_1_col#BaseQRdelete.test_delete_last_1_col8  s    --z2a1Au-R1771:q/IJR&@A--v.a1Au-rAGG#$AGG#$R1771:q/IJr"   c                    U R                  SS5      u  pn[        X#SUR                  S   S5      u  pE[        U5        [	        UR
                  UR
                  :H  5        [	        UR                  UR                  :H  5        [        U[        R                  " UR                  S   S4UR
                  S95        U R                  SS5      u  pn[        X#SUR                  S   S5      u  pE[        U[        R                  " UR                  S   S4UR
                  S95        [        U[        R                  " SUR
                  S95        g )	Nr_   rn   r   r   r   r   r   r   )	rk   r   r   r!   r   r   r   r   r   r   s         r    test_delete_last_p_col#BaseQRdelete.test_delete_last_p_colE  s    --/a1AGGAJ6rAGG#$AGG#$R1771:q/IJ--
3a1AGGAJ6R1771:q/IJR&@Ar"   c                 d   U R                  S5      u  pn[        X#SSS5      u  pE[        U[        R                  " SUR
                  S95        [        U[        R                  " SUR                  S   4UR
                  S95        U R                  S5      u  pn[        X#SSS5      u  pE[        U5        [        UR
                  UR
                  :H  5        [        UR                  UR                  :H  5        [        U[        R                  " UR                  S   S4UR
                  S95        g )Nrc   r   r   r   r   r   r   )	rk   r   r   r   r   r   r   r!   r   r   s         r    test_delete_1x1_row_col$BaseQRdelete.test_delete_1x1_row_colR  s    --&a1Au-R&@AR1aggaj/IJ--&a1Au-rAGG#$AGG#$R1771:q/IJr"   c           	         US:X  a0  [        US 5      [        US 5      4n[        US 5      [        S 5      4nO.[        S 5      [        S 5      4n[        S 5      [        S U* 5      4n[        R                  " / SQU5       GH>  u  pU R                  U5      u  pnU" X45      u  pUS:X  a   [        R
                  " XUS:X  a  SOS5      nOg[        XU-   5      nU	S:  a3  [        XU-   US:X  a  U
R                  S   OU
R                  S   -   5      n[        R
                  " U
UUS:X  a  SOS5      nUR                  S5      nUR                  S5      n[        UUXUS5      u  nn[        UUXR                  U R                  5        [        UUXUS5      u  nn[        UUXR                  U R                  5        U(       aE  [        UX   U R                  U R                  S9  [        UUU   U R                  U R                  S9  UR                  S5      nUR                  S5      n[        UXX4S5      u  nn[        UUXR                  U R                  5        [        UXX4S5      u  nn[        UUXR                  U R                  5        U(       aE  [        UUU   U R                  U R                  S9  [        UX   U R                  U R                  S9  UR                  S5      nUR                  S5      nU" UU45      u  p[        XXUS5      u  nn[        UUXR                  U R                  5        [        XXUS5      u  nn[        UUXR                  U R                  5        U(       d  GM  [        UX   U R                  U R                  S9  [        UX   U R                  U R                  S9  GMA     g )	Nr   r^   r_   r`   r   r   FFTr   )r   	itertoolsproductrk   r   r}   r   copyr   r,   r   r   r   )rV   adjust_strideskspr   overwriteableqindrindri   r:   r   q0r0qsrsr   r<   r*   r+   r   r   q1or1oq2r2q2or2oq3r3q3or3os                                  r    base_non_simple_strides$BaseQRdelete.base_non_simple_stridese  s   E>!DM54=1D!DM5;/D$Kt-D$KtQB0D (()?DGDt,JA2#RH-FBAvYYq%5.Qa@!aCLq5aQ-2e^qwwqz"M NAYYq!%5.Qa@ AAr1aE59FBRRDII6 QeT:HCS#r99dii8RXDIIDIINQtW499499MAAq"59FBRRDII6 B1T:HCS#r99dii8QtW499499MRXDIIDIINAA#QF+FBrqUE:FBRRDII6 ud;HCS#r99dii8}RXDIIDIINRXDIIDIIN] Er"   c                 8    U R                  [        S/SSS5        g )Nr   r   r   Tr  r@   rU   s    r    test_non_unit_strides_1_row(BaseQRdelete.test_non_unit_strides_1_row      $$\A35$Gr"   c                 8    U R                  [        S/SSS5        g )Nr   r.   r   Tr  rU   s    r    test_non_unit_strides_p_row(BaseQRdelete.test_non_unit_strides_p_row  r  r"   c                 8    U R                  [        S/SSS5        g )Nr   r   r   Tr  rU   s    r    test_non_unit_strides_1_col(BaseQRdelete.test_non_unit_strides_1_col  r  r"   c                 8    U R                  [        S/SSS5        g Nr   r.   r   Fr  rU   s    r    test_non_unit_strides_p_col(BaseQRdelete.test_non_unit_strides_p_col  s    $$\A35%Hr"   c                 8    U R                  [        S/SSS5        g Nr   r   r   Fr  rD   rU   s    r    test_neg_strides_1_row#BaseQRdelete.test_neg_strides_1_row      $$^aS!UEJr"   c                 8    U R                  [        S/SSS5        g Nr   r.   r   Fr"  rU   s    r    test_neg_strides_p_row#BaseQRdelete.test_neg_strides_p_row  r%  r"   c                 8    U R                  [        S/SSS5        g Nr   r   r   Fr"  rU   s    r    test_neg_strides_1_col#BaseQRdelete.test_neg_strides_1_col  r%  r"   c                 8    U R                  [        S/SSS5        g r  r"  rU   s    r    test_neg_strides_p_col#BaseQRdelete.test_neg_strides_p_col  r%  r"   c                 8    U R                  [        S/SSS5        g r!  r  rL   rU   s    r    test_non_itemize_strides_1_row+BaseQRdelete.test_non_itemize_strides_1_row      $$%81#q%Or"   c                 8    U R                  [        S/SSS5        g r'  r2  rU   s    r    test_non_itemize_strides_p_row+BaseQRdelete.test_non_itemize_strides_p_row  r5  r"   c                 8    U R                  [        S/SSS5        g r+  r2  rU   s    r    test_non_itemize_strides_1_col+BaseQRdelete.test_non_itemize_strides_1_col  r5  r"   c                 8    U R                  [        S/SSS5        g r  r2  rU   s    r    test_non_itemize_strides_p_col+BaseQRdelete.test_non_itemize_strides_p_col  r5  r"   c                 8    U R                  [        S/SSS5        g r!  r  rP   rU   s    r     test_non_native_byte_order_1_row-BaseQRdelete.test_non_native_byte_order_1_row  r%  r"   c                 8    U R                  [        S/SSS5        g r'  r@  rU   s    r     test_non_native_byte_order_p_row-BaseQRdelete.test_non_native_byte_order_p_row  r%  r"   c                 8    U R                  [        S/SSS5        g r+  r@  rU   s    r     test_non_native_byte_order_1_col-BaseQRdelete.test_non_native_byte_order_1_col  r%  r"   c                 8    U R                  [        S/SSS5        g r  r@  rU   s    r     test_non_native_byte_order_p_col-BaseQRdelete.test_non_native_byte_order_p_col  r%  r"   c           
         U R                  S5      u  pn[        R                  " SS/SS/SS/5       H  u  pEn[        X#XEUSS	9u  pxUS:X  aD  [        R
                  " U[        XAR                  S
   -   XE-   UR                  S
   -   5      S
5      n	OC[        R
                  " U[        XAR                  S
   -   XE-   UR                  S   -   5      S5      n	[        XxXR                  U R                  5        M     g )Nr^   ir   r.   r   r   Fry   r   )rk   r   r   r   r   r}   r   r   r,   r   r   )
rV   r   r*   r+   r:   r   wr   r   r   s
             r    
test_neg_kBaseQRdelete.test_neg_k  s    --&a (("bAq6E5>JGA!qQ15AFBEzYYq%''!*ac!''!*n"EqIYYq%''!*ac!''!*n"EqIRRDII6 Kr"   c                 (   US:X  a  SOSnUS:X  a0  [        US 5      [        US 5      4n[        US 5      [        S 5      4nO.[        S 5      [        S 5      4n[        S 5      [        S U* 5      4nU R                  SU5      u  pnUS:X  a!  [        R                  " U	SUS:X  a  SOS5      nO-[        R                  " U	[        SSU-   5      US:X  a  SOS5      nU
R	                  S	5      nUR	                  S	5      n[        XSX!S5      u  nn[        UUXR                  U R                  U5        [        XXR                  U R                  U5        U(       a  U
R	                  S	5      nUR	                  S	5      n[        XSX!S5      u  nn[        UUXR                  U R                  U5        [        UX   U R                  U R                  S
9  [        UX   U R                  U R                  S
9  U(       a  U
R	                  S5      nUR	                  S5      n[        XSX!S5      u  nn[        UUXR                  U R                  U5        [        UX   U R                  U R                  S
9  [        UX   U R                  U R                  S
9  g g )Nrn   TFr   r^   r   r.   r   r   r   C)
r   rk   r   r}   r   r   r,   r   r   r   )rV   r   r   test_Ctest_Fre   r   r   r   r   r  r  r   r*   r+   r   r   r  r  r  r  s                        r    base_overwrite_qrBaseQRdelete.base_overwrite_qr  s   !V^T
E>!DM54=1D!DM5;/D$Kt-D$KtQB0DMM%.	r61aeun!<B1eAqsm%5.QaHB GGCLGGCL1Ae4BRYY		:>q))TYY
;AAqQ$7FBRRDIIzBBdiidiiHBdiidiiHAAqQ$7FBRRDIIzBBdiidiiHBdiidiiH r"   c                 ,    U R                  SSSS5        g )Nr   r   TrU  rU   s    r    test_overwrite_qr_1_row$BaseQRdelete.test_overwrite_qr_1_row      uat4r"   c                 .    U R                  SSSSS5        g )Nr   r   Tr   rX  rU   s    r     test_overwrite_economic_qr_1_row-BaseQRdelete.test_overwrite_economic_qr_1_row      uatZ@r"   c                 ,    U R                  SSSS5        g )Nr   r   TrX  rU   s    r    test_overwrite_qr_1_col$BaseQRdelete.test_overwrite_qr_1_col  s     	uat4r"   c                 ,    U R                  SSSS5        g )Nr   r.   TrX  rU   s    r    test_overwrite_qr_p_row$BaseQRdelete.test_overwrite_qr_p_row  r[  r"   c                 .    U R                  SSSSS5        g )Nr   r.   Tr   rX  rU   s    r     test_overwrite_economic_qr_p_row-BaseQRdelete.test_overwrite_economic_qr_p_row  r_  r"   c                 ,    U R                  SSSS5        g )Nr   r.   FTrX  rU   s    r    test_overwrite_qr_p_col$BaseQRdelete.test_overwrite_qr_p_col  s     	ua5r"   c           	      V    U R                  S5      u  pn[        [        [        X#SSS9  g )Nr^   r   foor   rk   assert_raisesr5   r   rV   r   r*   r+   s       r    test_bad_whichBaseQRdelete.test_bad_which  s$    --&aj)Q1EBr"   c           	      `   U R                  S5      u  pn[        [        [        X#UR                  S   S5        [        [        [        X#UR                  S   * S-
  S5        [        [        [        X#UR                  S   SS5        [        [        [        X#UR                  S   * S-
  SS5        g )Nr_   r   r   r   rk   rp  r5   r   r   rq  s       r    
test_bad_kBaseQRdelete.test_bad_k  s    --'aj)Q1771:qAj)QAGGAJ;q=!Dj)Q1771:q%Hj)QAGGAJ;q=!UKr"   c           	         U R                  S5      u  pn[        [        [        X#SS5        [        [        [        X#SSS5        [        [        [        X#SS5        [        [        [        X#SSS5        [        [        [        X#SUR                  S   S-
  5        [        [        [        X#SUR                  S   S-
  S5        g )Nr_   r   r$   r   r.   r   r   ru  rq  s       r    
test_bad_pBaseQRdelete.test_bad_p#  s    --'aj)Q1b9j)Q1b%@ 	j)Q1a8j)Q1a? 	j)Q1aggajlCj)Q1aggajlEJr"   c                     U R                  S5      u  pn[        [        [        [        R
                  " / 5      USS5        g Nr_   r   r   rk   rp  r5   r   r   arrayrq  s       r    test_empty_qBaseQRdelete.test_empty_q1  s.    --'aj)RXXb\1aCr"   c                     U R                  S5      u  pn[        [        [        U[        R
                  " / 5      SS5        g r|  r}  rq  s       r    test_empty_rBaseQRdelete.test_empty_r6  s.    --'aj)QaCr"   c                 d    U R                  S5      u  pnUSS  n[        [        [        X#SS5        g )Nr_   r   r   ro  rq  s       r    test_mismatched_q_and_r$BaseQRdelete.test_mismatched_q_and_r;  s/    --'aabEj)Q1a8r"   c           
         / SQnU R                  S5      u  p#nU GH  nUR                  R                  U5      n[        R                  " SS9   UR                  R                  U5      nS S S 5        [        [        [        XdSSS5        [        [        [        XdSSS5        [        [        [        XdSSS	5        [        [        [        XdSSS	5        [        [        [        UWSSS5        [        [        [        X7SSS5        [        [        [        X7SSS	5        [        [        [        X7SSS	5        GM     g ! , (       d  f       N= f)
Nint8int16int32int64uint8uint16uint32uint64float16
longdoubleclongdoubleboolr_   ignoreinvalidr   r   r   r   r   )rk   realrN   r   errstaterp  r5   r   )rV   dtsr   r  r  r   r*   r+   s           r    test_unsupported_dtypes$BaseQRdelete.test_unsupported_dtypes@  s     MM&)	rEu%AX.GGNN5) /*i1eD*i1eD*i1eD*i1eD*iQ1eD*i1eD*i1eD*i1eD ..s   D99
E	c           	      <   U R                  S5      u  pnUR                  S5      n[        R                  US'   [	        [
        [        XCSSS5        [	        [
        [        XCSSS5        [	        [
        [        XCSSS5        [	        [
        [        XCSSS5        UR                  S5      n[        R                  US'   [	        [
        [        X%SSS5        [	        [
        [        X%SSS5        [	        [
        [        X%SSS5        [	        [
        [        X%SSS5        g )	Nr_   r   r]   r   r   r   r.   r   )rk   r   r   nanrp  r5   r   )rV   a0r  r  r*   r+   s         r    test_check_finiteBaseQRdelete.test_check_finiteT  s    ]]6*
GGCL#j)QAq%@j)QAq%@j)QAq%@j)QAq%@GGCL#j)RAq%@j)RAq%@j)RAq%@j)RAq%@r"   c           	         U R                  S5      u  pn[        [        [        US   USSS5        [        [        [        X#S   SSS5        [        [        [        US   USSS5        [        [        [        X#S   SSS5        g )Nrc   r   r   r   r   r   ro  rq  s       r    test_qr_scalarBaseQRdelete.test_qr_scalare  sp    --&aj)QtWaAuEj)Q$AuEj)QtWaAuEj)Q$AuEr"   rt   Nrm   )Ero   rp   rq   rr   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/  r3  r7  r:  r=  rA  rD  rG  rJ  rO  rU  rY  r]  ra  rd  rg  rj  rr  rv  ry  r  r  r  r  r  r  rs   rt   r"   r    rv   rv   k   sg   7;7;7;7;7;7;>>(((>B7;7;>BK	KKBK&7OrHHHIKKKKPPPPKKKK7$IL5A5
5A6
CLKD
D
9
E(A"Fr"   rv   c                   8    \ rS rSr\R
                  " S5      rSrg)TestQRdelete_fil  frt   Nro   rp   rq   rr   r   r   rs   rt   r"   r    r  r  l      HHSMEr"   r  c                   8    \ rS rSr\R
                  " S5      rSrg)TestQRdelete_Fio  r   rt   Nr  rt   r"   r    r  r  o  r  r"   r  c                   8    \ rS rSr\R
                  " S5      rSrg)TestQRdelete_dir  drt   Nr  rt   r"   r    r  r  r  r  r"   r  c                   8    \ rS rSr\R
                  " S5      rSrg)TestQRdelete_Diu  Drt   Nr  rt   r"   r    r  r  u  r  r"   r  c                     ^  \ rS rSrSFU 4S jj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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(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1 r3S2 r4S3 r5S4 r6S5 r7S6 r8S7 r9S8 r:S9 r;S: r<S; r=S< r>S= r?S> r@S? rAS@ rBSA rCSB rDSC rESD rFSErGU =rH$ )GBaseQRinsertix  c                   > [         TU ]  X5      u  pVn[        US:  5        [        R                  R                  S5      nUS:X  aE  US:X  a  UR	                  UR                  S   5      n	OwUR	                  XER                  S   45      n	OWUS:X  aF  US:X  a  UR	                  UR                  S   5      n	O,UR	                  UR                  S   U45      n	O[        S5        [        R                  " U R                  R                  S5      5      (       a#  UR	                  W	R                  5      n
U	SU
-  -   n	W	R                  U R                  5      n	XVXy4$ )Nr   i  r   r   r   z%which should be either "row" or "col"rd   )superrk   r   r   rf   RandomStater   r5   rh   r   ri   rN   )rV   ri   re   r   r   r   r*   r+   rngurC   	__class__s              r    rk   BaseQRinsert.generatey  s   '"4.aAii##D) E>AvJJqwwqz*JJ771:/e^AvJJqwwqz*JJ
A/>???4::??1-..

177#ABF
AHHTZZ Qzr"   c                     U R                  SSS9u  pp4[        UR                  S   S-   5       HJ  n[        X#XE5      u  pg[        R
                  " XUS5      n[        XgXR                  U R                  5        ML     g )Nr^   r   rn  r   r   	rk   r|   r   r
   r   insertr,   r   r   	rV   r   r*   r+   r  r   r   r   r   s	            r    r   BaseQRinsert.test_sqr_1_row  g    ]]5]6
aa(CqQ,FB11a(BRRDII6 )r"   c           	      H   U R                  SSSS9u  pp4[        UR                  S   S-   5       Ho  n[        X#XE5      u  pg[        R
                  " U[        R                  " SU[        R                  5      US5      n[        XgXR                  U R                  5        Mq     g )Nr^   r   r.   r   r   r   r   rk   r|   r   r
   r   r  rn   intpr,   r   r   r  s	            r    r   BaseQRinsert.test_sqr_p_row  s|    ]]5];
aa(CqQ,FB1bggabgg61=BRRDII6 )r"   c           
          U R                  SSS9u  pp4[        UR                  S   S-   5       HJ  n[        X#XESSS9u  pg[        R
                  " XUS5      n[        XgXR                  U R                  5        ML     g )Nr^   r   rn  r   Foverwrite_qrur  	rV   r   r*   r+   r  r   r   r   r   s	            r    r   BaseQRinsert.test_sqr_1_col  k    ]]5]6
aa(CqQU%HFB11a(BRRDII6 )r"   c           
      H   U R                  SSSS9u  pp4[        UR                  S   S-   5       Ho  n[        X#XESSS9u  pg[        R
                  " U[        R                  " SU[        R                  5      US5      n[        XgXR                  U R                  5        Mq     g )Nr^   r   r.   r  r   Fr  r  r  s	            r    r   BaseQRinsert.test_sqr_p_col      ]]5];
aa(CqQU%HFB1bggabgg61=BRRDII6 )r"   c                     U R                  SSS9u  pp4[        UR                  S   S-   5       HJ  n[        X#XE5      u  pg[        R
                  " XUS5      n[        XgXR                  U R                  5        ML     g )Nr_   r   rn  r   r   r  r  s	            r    r   BaseQRinsert.test_tall_1_row  sg    ]]6]7
aa(CqQ,FB11a(BRRDII6 )r"   c           	      H   U R                  SSSS9u  pp4[        UR                  S   S-   5       Ho  n[        X#XE5      u  pg[        R
                  " U[        R                  " SU[        R                  5      US5      n[        XgXR                  U R                  5        Mq     g )Nr_   r   r.   r  r   r   r  r  s	            r    r   BaseQRinsert.test_tall_p_row  s|    ]]6!]<
aa(CqQ,FB1bggabgg61=BRRDII6 )r"   c           
          U R                  SSS9u  pp4[        UR                  S   S-   5       HJ  n[        X#XESSS9u  pg[        R
                  " XUS5      n[        XgXR                  U R                  5        ML     g )Nr_   r   rn  r   Fr  r  r  s	            r    r   BaseQRinsert.test_tall_1_col  sk    ]]6]7
aa(CqQU%HFB11a(BRRDII6 )r"   c           
      F   U R                  SSUS9u  p#pE[        UR                  S   S-   5       Hn  n[        X4XVSSS9u  px[        R
                  " U[        R                  " X[        R                  5      US5      n	[        XxXR                  U R                  5        Mp     g )Nr_   r   r  r   Fr  r  
rV   r   r   r*   r+   r  r   r   r   r   s
             r    base_tall_p_col_xxx BaseQRinsert.base_tall_p_col_xxx  s~    ]]6!]<
aa(CqQU%HFB1bggabgg61=BRRDII6 )r"   c                 &    U R                  S5        g r   r  rU   s    r    test_tall_p_col_tall!BaseQRinsert.test_tall_p_col_tall        #r"   c                 &    U R                  S5        g r   r  rU   s    r    test_tall_p_col_sqr BaseQRinsert.test_tall_p_col_sqr  r  r"   c                 &    U R                  S5        g r   r  rU   s    r    test_tall_p_col_fat BaseQRinsert.test_tall_p_col_fat  r  r"   c                     U R                  SSS9u  pp4[        UR                  S   S-   5       HJ  n[        X#XE5      u  pg[        R
                  " XUS5      n[        XgXR                  U R                  5        ML     g )Nr`   r   rn  r   r   r  r  s	            r    r   BaseQRinsert.test_fat_1_row  r  r"   c           	      F   U R                  SSUS9u  p#pE[        UR                  S   S-   5       Hn  n[        X4XV5      u  px[        R
                  " U[        R                  " X[        R                  5      US5      n	[        XxXR                  U R                  5        Mp     g )Nr`   r   r  r   r   r  )
rV   r   r   r*   r+   r  r   r   r   r   s
             r    base_fat_p_row_xxxBaseQRinsert.base_fat_p_row_xxx  sz    ]]5];
aa(CqQ,FB1bggabgg61=BRRDII6 )r"   c                 &    U R                  S5        g r   r  rU   s    r    test_fat_p_row_fatBaseQRinsert.test_fat_p_row_fat      "r"   c                 &    U R                  S5        g r   r  rU   s    r    test_fat_p_row_sqrBaseQRinsert.test_fat_p_row_sqr  r  r"   c                 &    U R                  S5        g r   r  rU   s    r    test_fat_p_row_tall BaseQRinsert.test_fat_p_row_tall  r  r"   c           
          U R                  SSS9u  pp4[        UR                  S   S-   5       HJ  n[        X#XESSS9u  pg[        R
                  " XUS5      n[        XgXR                  U R                  5        ML     g )Nr`   r   rn  r   Fr  r  r  s	            r    r   BaseQRinsert.test_fat_1_col  r  r"   c           
      H   U R                  SSSS9u  pp4[        UR                  S   S-   5       Ho  n[        X#XESSS9u  pg[        R
                  " U[        R                  " SU[        R                  5      US5      n[        XgXR                  U R                  5        Mq     g )Nr`   r   r.   r  r   Fr  r  r  s	            r    r   BaseQRinsert.test_fat_p_col  r  r"   c           	         U R                  SSS5      u  pp4[        UR                  S   S-   5       HJ  n[        X#XESS9u  pg[        R
                  " XUS5      n[        XgXR                  U R                  S5        ML     g )Nr_   r   r   r   r   Fr  r  r  s	            r    r    BaseQRinsert.test_economic_1_row  sk    ]]6:u=
aa(CqQ5AFB11a(BRRDIIu= )r"   c           	      N   U R                  SSSS5      u  pp4[        UR                  S   S-   5       Ho  n[        X#XESS9u  pg[        R
                  " U[        R                  " SU[        R                  5      US5      n[        XgXR                  U R                  S5        Mq     g )	Nr_   r   r   r.   r   r   Fr  r  r  s	            r    test_economic_p_row BaseQRinsert.test_economic_p_row  s    ]]6:ua@
aa(CqQ5AFB1bggabgg61=BRRDIIu= )r"   c           
         U R                  SSSS9u  pp4[        UR                  S   S-   5       HZ  n[        X#UR	                  5       USSS9u  pg[
        R                  " XUS5      n[        XgXR                  U R                  S5        M\     g )Nr_   r   r   rn  r   Fr  )
rk   r|   r   r
   r   r   r  r,   r   r   r  s	            r    r    BaseQRinsert.test_economic_1_col  sw    ]]6:U]C
aa(CqQVVXsEOFB11a(BRRDIIu= )r"   c           	         [         R                  " SSU R                  S9n[         R                  " SU R                  S9n[         R                  " / SQU R                  5      n[	        [
        R                  [        XUSS5        g )Nr1   r.   )r   )r   r   r   r   r   r   r   )r   r   r   r~  rp  r   LinAlgErrorr
   )rV   r*   r+   r  s       r    test_economic_1_col_bad_update+BaseQRinsert.test_economic_1_col_bad_update"  sZ     FF1atzz*FF1DJJ'HH_djj1f(()Q1aGr"   c           
      J   U R                  SSSUS9u  p#pE[        UR                  S   S-   5       Ho  n[        X4XVSSS9u  px[        R
                  " U[        R                  " X[        R                  5      US5      n	[        XxXR                  U R                  S5        Mq     g )Nr_   r   r   r  r   Fr  r  r  s
             r    base_economic_p_col_xxx$BaseQRinsert.base_economic_p_col_xxx.  s    ]]6:Ua]H
aa(CqQU%HFB1bggabgg61=BRRDIIu= )r"   c                 &    U R                  S5        g r   r  rU   s    r    test_economic_p_col_eco$BaseQRinsert.test_economic_p_col_eco5  r   r"   c                 &    U R                  S5        g r   r  rU   s    r    test_economic_p_col_sqr$BaseQRinsert.test_economic_p_col_sqr9  r   r"   c                 &    U R                  S5        g r   r  rU   s    r    test_economic_p_col_fat$BaseQRinsert.test_economic_p_col_fat=  r   r"   c                     U R                  SSS9u  pp4[        UR                  S   S-   5       HJ  n[        X#XE5      u  pg[        R
                  " XUS5      n[        XgXR                  U R                  5        ML     g )Nra   r   rn  r   r   r  r  s	            r    r   BaseQRinsert.test_Mx1_1_rowA  r  r"   c           	      H   U R                  SSSS9u  pp4[        UR                  S   S-   5       Ho  n[        X#XE5      u  pg[        R
                  " U[        R                  " SU[        R                  5      US5      n[        XgXR                  U R                  5        Mq     g )Nra   r   r.   r  r   r   r  r  s	            r    r   BaseQRinsert.test_Mx1_p_rowH  |    ]]5];
aa(CqQ,FB1bggabgg61=BRRDII6 )r"   c           
          U R                  SSS9u  pp4[        UR                  S   S-   5       HJ  n[        X#XESSS9u  pg[        R
                  " XUS5      n[        XgXR                  U R                  5        ML     g )Nra   r   rn  r   Fr  r  r  s	            r    test_Mx1_1_colBaseQRinsert.test_Mx1_1_colO  r  r"   c           
      H   U R                  SSSS9u  pp4[        UR                  S   S-   5       Ho  n[        X#XESSS9u  pg[        R
                  " U[        R                  " SU[        R                  5      US5      n[        XgXR                  U R                  5        Mq     g )Nra   r   r.   r  r   Fr  r  r  s	            r    test_Mx1_p_colBaseQRinsert.test_Mx1_p_colV      ]]5];
aa(CqQU%HFB1bggabgg61=BRRDII6 )r"   c           	         U R                  SSS5      u  pp4[        UR                  S   S-   5       HK  n[        X#XE5      u  pg[        R
                  " XUS5      n[        XgXR                  U R                  S5        MM     g )Nra   r   r   r   r   Fr  r  s	            r    r   $BaseQRinsert.test_Mx1_economic_1_row]  si    ]]5*e<
aa(CqQ,FB11a(BRRDIIu= )r"   c           	      P   U R                  SSSS5      u  pp4[        UR                  S   S-   5       Hp  n[        X#XE5      u  pg[        R
                  " U[        R                  " SU[        R                  5      US5      n[        XgXR                  U R                  S5        Mr     g )Nra   r   r   r.   r   r   Fr  r  s	            r    r   $BaseQRinsert.test_Mx1_economic_p_rowd  s~    ]]5*eQ?
aa(CqQ,FB1bggabgg61=BRRDIIu= )r"   c           
         U R                  SSS5      u  pp4[        UR                  S   S-   5       HK  n[        X#XESSS9u  pg[        R
                  " XUS5      n[        XgXR                  U R                  S5        MM     g )Nra   r   r   r   Fr  r  r  s	            r    test_Mx1_economic_1_col$BaseQRinsert.test_Mx1_economic_1_colk  sm    ]]5*e<
aa(CqQU%HFB11a(BRRDIIu= )r"   c           
      P   U R                  SSSS5      u  pp4[        UR                  S   S-   5       Hp  n[        X#XESSS9u  pg[        R
                  " U[        R                  " SU[        R                  5      US5      n[        XgXR                  U R                  S5        Mr     g )Nra   r   r   r.   r   Fr  r  r  s	            r    test_Mx1_economic_p_col$BaseQRinsert.test_Mx1_economic_p_colr  s    ]]5*eQ?
aa(CqQU%HFB1bggabgg61=BRRDIIu= )r"   c                     U R                  SSS9u  pp4[        UR                  S   S-   5       HJ  n[        X#XE5      u  pg[        R
                  " XUS5      n[        XgXR                  U R                  5        ML     g )Nrb   r   rn  r   r   r  r  s	            r    test_1xN_1_rowBaseQRinsert.test_1xN_1_rowy  r  r"   c           	      H   U R                  SSSS9u  pp4[        UR                  S   S-   5       Ho  n[        X#XE5      u  pg[        R
                  " U[        R                  " SU[        R                  5      US5      n[        XgXR                  U R                  5        Mq     g )Nrb   r   r.   r  r   r   r  r  s	            r    test_1xN_p_rowBaseQRinsert.test_1xN_p_row  r  r"   c           
          U R                  SSS9u  pp4[        UR                  S   S-   5       HJ  n[        X#XESSS9u  pg[        R
                  " XUS5      n[        XgXR                  U R                  5        ML     g )Nrb   r   rn  r   Fr  r  r  s	            r    r   BaseQRinsert.test_1xN_1_col  r  r"   c           
      H   U R                  SSSS9u  pp4[        UR                  S   S-   5       Ho  n[        X#XESSS9u  pg[        R
                  " U[        R                  " SU[        R                  5      US5      n[        XgXR                  U R                  5        Mq     g )Nrb   r   r.   r  r   Fr  r  r  s	            r    r   BaseQRinsert.test_1xN_p_col  r  r"   c                     U R                  SSS9u  pp4[        UR                  S   S-   5       HJ  n[        X#XE5      u  pg[        R
                  " XUS5      n[        XgXR                  U R                  5        ML     g )Nrc   r   rn  r   r   r  r  s	            r    test_1x1_1_rowBaseQRinsert.test_1x1_1_row  r  r"   c           	      H   U R                  SSSS9u  pp4[        UR                  S   S-   5       Ho  n[        X#XE5      u  pg[        R
                  " U[        R                  " SU[        R                  5      US5      n[        XgXR                  U R                  5        Mq     g )Nrc   r   r.   r  r   r   r  r  s	            r    test_1x1_p_rowBaseQRinsert.test_1x1_p_row  r  r"   c           
          U R                  SSS9u  pp4[        UR                  S   S-   5       HJ  n[        X#XESSS9u  pg[        R
                  " XUS5      n[        XgXR                  U R                  5        ML     g )Nrc   r   rn  r   Fr  r  r  s	            r    test_1x1_1_colBaseQRinsert.test_1x1_1_col  r  r"   c           
      H   U R                  SSSS9u  pp4[        UR                  S   S-   5       Ho  n[        X#XESSS9u  pg[        R
                  " U[        R                  " SU[        R                  5      US5      n[        XgXR                  U R                  5        Mq     g )Nrc   r   r.   r  r   Fr  r  r  s	            r    test_1x1_p_colBaseQRinsert.test_1x1_p_col  r  r"   c           	      n   U R                  SSS9u  pp4[        [        [        US   X4SS5        [        [        [        X#S   USS5        [        [        [        X#US   SS5        [        [        [        US   X4SS5        [        [        [        X#S   USS5        [        [        [        X#US   SS5        g )Nrc   r   rn  r   r   r   rk   rp  r5   r
   rV   r   r*   r+   r  s        r    test_1x1_1_scalarBaseQRinsert.test_1x1_1_scalar  s    ]]5]6
aj)QtWaAuEj)Q$AuEj)Q1Q4EBj)QtWaAuEj)Q$AuEj)Q1Q4EBr"   c           
          S GH  nU R                  XTUS9u  pgpU" XxU	45      u  pnUS:X  a   [        R                  " XbXS:X  a  SOS5      nOL[        R                  " U[        R                  " X2[        R                  5      US:X  a  U	OU	US:X  a  SOS5      nUR                  S5      nUR                  S5      nU	R                  S5      n[        XUX$SS9u  nn[        UUXR                  U R                  5        [        XUX$S	S9u  nn[        UUXR                  U R                  5        UR                  S5      nUR                  S5      nU	R                  S5      n[        XUX$SS9u  nn[        UUXR                  U R                  5        [        XUX$S	S9u  nn[        UUXR                  U R                  5        UR                  S5      nUR                  S5      nU	R                  S5      n[        XXUSS9u  nn[        UUXR                  U R                  5        [        XXUS	S9u  nn[        UUXR                  U R                  5        UR                  S5      nUR                  S5      nU	R                  S5      nU" XU45      u  pn[        XXUSS9u  nn[        UUXR                  U R                  5        [        XXUS	S9u  nn [        UU XR                  U R                  5        GM     g )
Nr   r  r   r   r   r   Fr  T)
rk   r   r  rn   r  r   r
   r,   r   r   )!rV   r   r:   r   r   ri   r   r  r  u0r  r  usair*   r+   r  r   r   r  r  r  r  r	  r
  r  r  r  r  q5r5q5or5os!                                    r    r  $BaseQRinsert.base_non_simple_strides  s   *D MM$qMAMA2'5JBBAvYYqRun!DYYq"''!"8#un""e^4 AAAraGFBRRDII6 14HHCS#r99dii8AAAqaGFBRRDII6 14HHCS#r99dii8AAAqREGFBRRDII6 re4HHCS#r99dii8AAA'q	2JBBrre5IFBRRDII6 TJHCS#r99dii8_ +r"   c                 4    U R                  [        SSS5        g Nr   r   r   r  rU   s    r    r  (BaseQRinsert.test_non_unit_strides_1_row      $$\1a?r"   c                 4    U R                  [        SSS5        g Nr   r.   r   r  rU   s    r    r  (BaseQRinsert.test_non_unit_strides_p_row  rM  r"   c                 4    U R                  [        SSS5        g Nr   r   r   r  rU   s    r    r  (BaseQRinsert.test_non_unit_strides_1_col  rM  r"   c                 4    U R                  [        SSS5        g Nr   r.   r   r  rU   s    r    r  (BaseQRinsert.test_non_unit_strides_p_col  rM  r"   c                 4    U R                  [        SSS5        g rK  r"  rU   s    r    r#  #BaseQRinsert.test_neg_strides_1_row      $$^Q5Ar"   c                 4    U R                  [        SSS5        g rO  r"  rU   s    r    r(  #BaseQRinsert.test_neg_strides_p_row  rY  r"   c                 4    U R                  [        SSS5        g rR  r"  rU   s    r    r,  #BaseQRinsert.test_neg_strides_1_col  rY  r"   c                 4    U R                  [        SSS5        g rU  r"  rU   s    r    r/  #BaseQRinsert.test_neg_strides_p_col  rY  r"   c                 4    U R                  [        SSS5        g rK  r2  rU   s    r    test_non_itemsize_strides_1_row,BaseQRinsert.test_non_itemsize_strides_1_row      $$%8!QFr"   c                 4    U R                  [        SSS5        g rO  r2  rU   s    r    test_non_itemsize_strides_p_row,BaseQRinsert.test_non_itemsize_strides_p_row  rc  r"   c                 4    U R                  [        SSS5        g rR  r2  rU   s    r    test_non_itemsize_strides_1_col,BaseQRinsert.test_non_itemsize_strides_1_col  rc  r"   c                 4    U R                  [        SSS5        g rU  r2  rU   s    r    test_non_itemsize_strides_p_col,BaseQRinsert.test_non_itemsize_strides_p_col  rc  r"   c                 4    U R                  [        SSS5        g rK  r@  rU   s    r    rA  -BaseQRinsert.test_non_native_byte_order_1_row  rY  r"   c                 4    U R                  [        SSS5        g rO  r@  rU   s    r    rD  -BaseQRinsert.test_non_native_byte_order_p_row  rY  r"   c                 4    U R                  [        SSS5        g rR  r@  rU   s    r    rG  -BaseQRinsert.test_non_native_byte_order_1_col  rY  r"   c                 4    U R                  [        SSS5        g rU  r@  rU   s    r    rJ  -BaseQRinsert.test_non_native_byte_order_p_col  rY  r"   c           	         U R                  SSSS9u  pp4UR                  S5      nUR                  5       n[        XSUSSSS9u  px[        R                  " USUS5      n	[        XxXR                  U R                  5        [        XSXR                  U R                  5        [        XSUSSS	S9u  p[        XXR                  U R                  5        [        XU R                  U R                  S
9  [        XFR                  5       U R                  U R                  5        UR                  S5      nUR                  5       n[        XUSSSS9u  p[        XXR                  U R                  5        [        XXR                  U R                  5        [        XUSSS	S9u  nn[        UUXR                  U R                  5        [        UXR                  U R                  S
9  g )Nr^   r   r   r  rR  r   Fr  Tr   r   )
rk   r   r
   r   r  r,   r   r   r   r   )rV   r   r  r+   r  r*   rB  r   r   r   r  r  qFu1r  r  q4r4s                     r    test_overwrite_qu_rank_1%BaseQRinsert.test_overwrite_qu_rank_1  st   
 }}U%1}=qGGCLVVX1AuEBYYq!R#YY		2q))TYY/ 1AuDAYY		2DIIDII>779dii; WWS\WWY2"aeDYY		299dii0 2"adCBRYY		2BYYTYY?r"   c           	         U R                  SSSS9u  pp4UR                  S5      n[        R                  " U[        R                  " S[        R
                  5      US5      n[        XSUSSSS	9u  px[        XxX`R                  U R                  5        [        XSXR                  U R                  5        [        XSUSSS
S	9u  p[        XX`R                  U R                  5        [        XU R                  U R                  S9  g )Nr^   r   r.   r  r   r   r   Fr  Tr   )rk   r   r   r  r4   r  r
   r,   r   r   r   )rV   r   r  r+   r  r*   r   r   r   r  r  s              r    test_overwrite_qu_rank_p%BaseQRinsert.test_overwrite_qu_rank_p>  s     }}U%1}=qGGCLYYq"((1bgg.15 1AuEBYY		2q))TYY/ 1AuDAYY		2DIIDII>r"   c           	      >   U R                  SSS9u  pp4[        [        [        [        R
                  " / 5      X4SS5        [        [        [        U[        R
                  " / 5      USS5        [        [        [        X#[        R
                  " / 5      SS5        [        [        [        [        R
                  " / 5      X4SS5        [        [        [        U[        R
                  " / 5      USS5        [        [        [        X#[        R
                  " / 5      SS5        g )Nr^   r   rn  r   r   )rk   rp  r5   r
   r   r~  r>  s        r    test_empty_inputsBaseQRinsert.test_empty_inputsP  s    ]]5]6
aj)RXXb\1EJj)QaEJj)Q288B<EJj)RXXb\1EJj)QaEJj)Q288B<EJr"   c           	      n   U R                  SSS9u  pp4[        [        [        X#SS  USS5        [        [        [        US S X4SS5        [        [        [        X#USS  SS5        [        [        [        X#SS  USS5        [        [        [        US S X4SS5        [        [        [        X#USS  SS5        g )Nr_   r   rn  r   r   r   r=  r>  s        r    test_mismatched_shapes#BaseQRinsert.test_mismatched_shapesY  s    ]]6]7
aj)Q!"q!UCj)QsVQ1eDj)Q1QR5!UCj)Q!"q!UCj)QsVQ1eDj)Q1QR5!UCr"   c           
      h   / SQnU R                  SSS9u  p#pEU GH  nUR                  R                  U5      n[        R                  " SS9   UR                  R                  U5      nS S S 5        UR                  R                  U5      n	[        [        [        XtUSS5        [        [        [        XtUSS5        [        [        [        UWUSS5        [        [        [        X8USS5        [        [        [        X4U	SS5        [        [        [        X4U	SS5        GM     g ! , (       d  f       N= f)	Nr  r^   r   rn  r  r  r   r   )rk   r  rN   r   r  rp  r5   r
   )
rV   r  r   r  r  rB  r   r*   r+   r  s
             r    r  $BaseQRinsert.test_unsupported_dtypesb  s     e59rEu%AX.GGNN5) /u%A*iAuE*iAuE*iQAuE*iAuE*iAuE*iAuE ..s   D##
D1	c           	         U R                  SSSS9u  pp4UR                  S5      n[        R                  US'   [	        [
        [        XSUS S 2S4   SS5        [	        [
        [        XSUSS5        [	        [
        [        XSUS S 2S4   SS5        [	        [
        [        XSUSS5        UR                  S5      n[        R                  US'   [	        [
        [        X&US S 2S4   SS5        [	        [
        [        X&USS5        [	        [
        [        X&US S 2S4   SS5        [	        [
        [        X&USS5        UR                  S5      n[        R                  US	'   [	        [
        [        X#US S 2S4   SS5        [	        [
        [        X#USS5        [	        [
        [        X#US S 2S4   SS5        [	        [
        [        X#USS5        g )
Nr^   r   r.   r  r   r]   r   r   r   )rk   r   r   r  rp  r5   r
   )rV   r  r  r  rB  r*   r+   r  s           r    r  BaseQRinsert.test_check_finitet  sp   uEQ?GGCL#j)QBqsGQFj)QB5Aj)QBqsGQFj)QB5AGGCL#j)RBqsGQFj)RB5Aj)RBqsGQFj)RB5AGGCL#j)RQqsVQFj)RQ5Aj)RQqsVQFj)RQ5Ar"   rt   )rn   r   r   )Iro   rp   rq   rr   rk   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   r1  r4  r7  r:  r?  r  r  r  r  r  r#  r(  r,  r/  ra  re  rh  rk  rA  rD  rG  rJ  rz  r}  r  r  r  r  rs   __classcell__r  s   @r    r  r  x  sq   677777777$$$77###77>>>H>(((7777>>>>77777777C09d@@@@BBBBGGGGBBBB@B?$KDF$B Br"   r  c                   8    \ rS rSr\R
                  " S5      rSrg)TestQRinsert_fi  r  rt   Nr  rt   r"   r    r  r    r  r"   r  c                   8    \ rS rSr\R
                  " S5      rSrg)TestQRinsert_Fi  r   rt   Nr  rt   r"   r    r  r    r  r"   r  c                   8    \ rS rSr\R
                  " S5      rSrg)TestQRinsert_di  r  rt   Nr  rt   r"   r    r  r    r  r"   r  c                   8    \ rS rSr\R
                  " S5      rSrg)TestQRinsert_Di  r  rt   Nr  rt   r"   r    r  r    r  r"   r  c                   4  ^  \ rS rSrS0U 4S jj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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(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/r1U =r2$ )1BaseQRupdatei  c                 @  > [         TU ]  X5      u  pEnUS:X  aY  [        R                  R                  UR                  S   5      n[        R                  R                  UR                  S   5      nO\[        R                  R                  UR                  S   U45      n[        R                  R                  UR                  S   U45      n[        R
                  " U R                  R                  S5      5      (       ab  [        R                  R                  UR                  5      n	USU	-  -   n[        R                  R                  UR                  5      n
USU
-  -   nUR                  U R                  5      nUR                  U R                  5      nXEXgU4$ )Nr   r   rd   )	r  rk   r   rf   r   rh   r   ri   rN   )rV   ri   re   r   r   r*   r+   r  vrC   rK   r  s              r    rk   BaseQRupdate.generate  s-   '"4.a 6		  ,A		  ,A		  !''!*a1A		  !''!*a1A??4::??1-..		  )ABF
A		  )ABF
AHHTZZ HHTZZ Q1}r"   c                     U R                  S5      u  pp4n[        X#XES5      u  pgU[        R                  " XER	                  5       5      -   n[        XgXR                  U R                  5        g )Nr^   Frk   r	   r   outerr   r,   r   r   	rV   r   r*   r+   r  r  r   r   r   s	            r    test_sqr_rank_1BaseQRupdate.test_sqr_rank_1  S    e,aA1u-!VVX&&YY		2r"   c                 |   S H  nU R                  SUS9u  p#pEnUS:X  a8  UR                  UR                  S5      nUR                  UR                  S5      n[        X4XVS5      u  pxU[        R
                  " XVR                  R                  5       5      -   n	[        XxXR                  U R                  5        M     g )Nr   r   r.   r1   r^   r   r   Frk   reshapesizer	   r   r   r   r   r,   r   r   
rV   r   r   r*   r+   r  r  r   r   r   s
             r    test_sqr_rank_pBaseQRupdate.test_sqr_rank_p  s    A MM%1M5MA!AvIIaffa(IIaffa(qQ51FBRVVAssxxz**BRRDII6 r"   c                     U R                  S5      u  pp4n[        X#XES5      u  pgU[        R                  " XER	                  5       5      -   n[        XgXR                  U R                  5        g )Nr_   Fr  r  s	            r    test_tall_rank_1BaseQRupdate.test_tall_rank_1  sS    f-aA1u-!VVX&&YY		2r"   c                 |   S H  nU R                  SUS9u  p#pEnUS:X  a8  UR                  UR                  S5      nUR                  UR                  S5      n[        X4XVS5      u  pxU[        R
                  " XVR                  R                  5       5      -   n	[        XxXR                  U R                  5        M     g )Nr  r_   r  r   Fr  r  s
             r    test_tall_rank_pBaseQRupdate.test_tall_rank_p  s    A MM&AM6MA!AvIIaffa(IIaffa(qQ51FBRVVAssxxz**BRRDII6 r"   c                     U R                  S5      u  pp4n[        X#XES5      u  pgU[        R                  " XER	                  5       5      -   n[        XgXR                  U R                  5        g )Nr`   Fr  r  s	            r    test_fat_rank_1BaseQRupdate.test_fat_rank_1  r  r"   c                 |   S H  nU R                  SUS9u  p#pEnUS:X  a8  UR                  UR                  S5      nUR                  UR                  S5      n[        X4XVS5      u  pxU[        R
                  " XVR                  R                  5       5      -   n	[        XxXR                  U R                  5        M     g )Nr  r`   r  r   Fr  r  s
             r    test_fat_rank_pBaseQRupdate.test_fat_rank_p  s    A MM%1M5MA!AvIIaffa(IIaffa(qQ51FBRVVAssxxz**BRRDII6 r"   c                     U R                  SS5      u  pp4n[        X#XES5      u  pgU[        R                  " XER	                  5       5      -   n[        XgXR                  U R                  S5        g )Nr_   r   Fr  r  s	            r    test_economic_rank_1!BaseQRupdate.test_economic_rank_1  sW    fj9aA1u-!VVX&&YY		59r"   c           	         S H  nU R                  SSU5      u  p#pEnUS:X  a8  UR                  UR                  S5      nUR                  UR                  S5      n[        X4XVS5      u  pxU[        R
                  " XVR                  R                  5       5      -   n	[        XxXR                  U R                  S5        M     g )Nr  r_   r   r   Fr  r  s
             r    test_economic_rank_p!BaseQRupdate.test_economic_rank_p  s    A MM&*a@MA!AvIIaffa(IIaffa(qQ51FBRVVAssxxz**BRRDIIu= r"   c                     U R                  S5      u  pp4n[        X#XES5      u  pgU[        R                  " XER	                  5       5      -   n[        XgXR                  U R                  5        g )Nra   Fr  r  s	            r    test_Mx1_rank_1BaseQRupdate.test_Mx1_rank_1  r  r"   c                 ^   U R                  SSS9u  pp4nUR                  UR                  S5      nUR                  UR                  S5      n[        X#XES5      u  pgU[        R
                  " XER                  R                  5       5      -   n[        XgXR                  U R                  5        g )Nra   r   r  Fr  r  s	            r    test_Mx1_rank_pBaseQRupdate.test_Mx1_rank_p       eq1aAIIaffa IIaffa 1u-3388:&&YY		2r"   c                     U R                  SS5      u  pp4n[        X#XES5      u  pgU[        R                  " XER	                  5       5      -   n[        XgXR                  U R                  S5        g )Nra   r   Fr  r  s	            r    test_Mx1_economic_rank_1%BaseQRupdate.test_Mx1_economic_rank_1   sW    eZ8aA1u-!VVX&&YY		59r"   c                 b   U R                  SSSS9u  pp4nUR                  UR                  S5      nUR                  UR                  S5      n[        X#XES5      u  pgU[        R
                  " XER                  R                  5       5      -   n[        XgXR                  U R                  S5        g )Nra   r   r   r  Fr  r  s	            r    test_Mx1_economic_rank_p%BaseQRupdate.test_Mx1_economic_rank_p  s     eZ1=aAIIaffa IIaffa 1u-3388:&&YY		59r"   c                     U R                  S5      u  pp4n[        X#XES5      u  pgU[        R                  " XER	                  5       5      -   n[        XgXR                  U R                  5        g )Nrb   Fr  r  s	            r    test_1xN_rank_1BaseQRupdate.test_1xN_rank_1  r  r"   c                 ^   U R                  SSS9u  pp4nUR                  UR                  S5      nUR                  UR                  S5      n[        X#XES5      u  pgU[        R
                  " XER                  R                  5       5      -   n[        XgXR                  U R                  5        g )Nrb   r   r  Fr  r  s	            r    test_1xN_rank_pBaseQRupdate.test_1xN_rank_p  r  r"   c                     U R                  S5      u  pp4n[        X#XES5      u  pgU[        R                  " XER	                  5       5      -   n[        XgXR                  U R                  5        g )Nrc   Fr  r  s	            r    test_1x1_rank_1BaseQRupdate.test_1x1_rank_1   r  r"   c                 ^   U R                  SSS9u  pp4nUR                  UR                  S5      nUR                  UR                  S5      n[        X#XES5      u  pgU[        R
                  " XER                  R                  5       5      -   n[        XgXR                  U R                  5        g )Nrc   r   r  Fr  r  s	            r    test_1x1_rank_pBaseQRupdate.test_1x1_rank_p&  r  r"   c           	          U R                  S5      u  pp4n[        [        [        US   X4U5        [        [        [        X#S   XE5        [        [        [        X#US   U5        [        [        [        X#XES   5        g )Nrc   r   r   rk   rp  r5   r	   rV   r   r*   r+   r  r  s         r    test_1x1_rank_1_scalar#BaseQRupdate.test_1x1_rank_1_scalar0  sb    e,aAj)QtWaA>j)Q$>j)Q1Q4;j)Q1d;r"   c           	      x   US:X  a  SOSnS GH  nU R                  XbU5      u  pxpnU" XX45      u  ppUS:X  a(  U[        R                  " XR                  5       5      -   nO1U[        R                  " XR
                  R                  5       5      -   nUR                  S5      nU	R                  S5      nU
R                  S5      nUR                  S5      n[        UUUUS5      u  nn[        UUUU R                  U R                  U5        [        UUUUS5      u  nn[        UUUU R                  U R                  U5        U(       aN  [        UUU R                  U R                  S9  [        UUR                  5       U R                  U R                  S9  UR                  S5      nU	R                  S5      nU
R                  S5      nUR                  S5      n[        UUUUS5      u  nn[        UUUU R                  U R                  U5        [        UUUUS5      u  nn[        UUUU R                  U R                  U5        U(       aM  [        UXR                  U R                  S9  [        UUR                  5       U R                  U R                  S9  UR                  S5      nU	R                  S5      nU
R                  S5      nUR                  S5      n[        UUUUS5      u  nn[        UUUU R                  U R                  U5        [        UUUUS5      u  nn [        UU UU R                  U R                  U5        U(       aN  [        U UU R                  U R                  S9  [        UUR                  5       U R                  U R                  S9  UR                  S5      nU	R                  S5      nU
R                  S5      nUR                  S5      n[        UUUUS5      u  n!n"[        U!U"UU R                  U R                  U5        [        UUUUS5      u  n#n$[        U#U$UU R                  U R                  U5        U(       aM  [        U$UU R                  U R                  S9  [        XR                  5       U R                  U R                  S9  UR                  S5      nU	R                  S5      nU
R                  S5      nUR                  S5      nU" UUUU45      u  pp[        XXS5      u  n%n&[        U%U&UU R                  U R                  U5        [        XXS5      u  n'n([        U'U(UU R                  U R                  U5        U(       d  GM]  [        U(XR                  U R                  S9  [        XR                  5       U R                  U R                  S9  GM     g )	Nr   FTr   r   r   rR  r   )rk   r   r  r   r   r   r   r	   r,   r   r   r   ))rV   r   re   r   r   r   ri   r   r  r  rB  v0r  r  rC  vsaupr*   r+   r  r  r   r   r  r  r  r  r	  r
  r  r  r  r  rx  ry  q4or4orE  rF  rG  rH  s)                                            r    r  $BaseQRupdate.base_non_simple_strides7  sy   "j0Ud
*D $d! <A22+RR,<=NBBAv"((2wwy11"&&TTYY[11 AAAAr1aE2FBRS$))TYY
C Q1d3HCS#sDIItyy*EQTYYTYYG2779499499MAAAAq"aE2FBRS$))TYY
C B1d3HCS#sDIItyy*ERiidiiH2779499499MAAAAq!RE2FBRS$))TYY
C Ar1d3HCS#sDIItyy*EQTYYTYYG2779499499MAAAAq!QE2FBRS$))TYY
C Aq"d3HCS#sDIItyy*EQTYYTYYGGGIDIIDIINAAAA+Q1aL9NBBrru5FBRS$))TYY
C 6HCS#sDIItyy*E}RiidiiHGGIDIIDIINS +r"   c                 4    U R                  [        SSS5        g )Nrn   r   Tr  rU   s    r    test_non_unit_strides_rank_1)BaseQRupdate.test_non_unit_strides_rank_1  s    $$\61dCr"   c                 4    U R                  [        SSS5        g )Nr   r   Tr  rU   s    r    %test_non_unit_strides_economic_rank_12BaseQRupdate.test_non_unit_strides_economic_rank_1  s    $$\:q$Gr"   c                 4    U R                  [        SSS5        g Nrn   r.   Fr  rU   s    r    test_non_unit_strides_rank_p)BaseQRupdate.test_non_unit_strides_rank_p  s    $$\61eDr"   c                 4    U R                  [        SSS5        g Nr   r.   Fr  rU   s    r    %test_non_unit_strides_economic_rank_p2BaseQRupdate.test_non_unit_strides_economic_rank_p  s    $$\:q%Hr"   c                 4    U R                  [        SSS5        g Nrn   r   Fr"  rU   s    r    test_neg_strides_rank_1$BaseQRupdate.test_neg_strides_rank_1      $$^VQFr"   c                 4    U R                  [        SSS5        g Nr   r   Fr"  rU   s    r     test_neg_strides_economic_rank_1-BaseQRupdate.test_neg_strides_economic_rank_1      $$^ZEJr"   c                 4    U R                  [        SSS5        g r  r"  rU   s    r    test_neg_strides_rank_p$BaseQRupdate.test_neg_strides_rank_p  r  r"   c                 4    U R                  [        SSS5        g r  r"  rU   s    r     test_neg_strides_economic_rank_p-BaseQRupdate.test_neg_strides_economic_rank_p  r  r"   c                 4    U R                  [        SSS5        g r  r2  rU   s    r     test_non_itemsize_strides_rank_1-BaseQRupdate.test_non_itemsize_strides_rank_1      $$%8&!UKr"   c                 4    U R                  [        SSS5        g r  r2  rU   s    r    )test_non_itemsize_strides_economic_rank_16BaseQRupdate.test_non_itemsize_strides_economic_rank_1      $$%8*aOr"   c                 4    U R                  [        SSS5        g r  r2  rU   s    r     test_non_itemsize_strides_rank_p-BaseQRupdate.test_non_itemsize_strides_rank_p  r  r"   c                 4    U R                  [        SSS5        g r  r2  rU   s    r    )test_non_itemsize_strides_economic_rank_p6BaseQRupdate.test_non_itemsize_strides_economic_rank_p  r  r"   c                 4    U R                  [        SSS5        g r  r@  rU   s    r    !test_non_native_byte_order_rank_1.BaseQRupdate.test_non_native_byte_order_rank_1  r  r"   c                 4    U R                  [        SSS5        g r  r@  rU   s    r    *test_non_native_byte_order_economic_rank_17BaseQRupdate.test_non_native_byte_order_economic_rank_1  r  r"   c                 4    U R                  [        SSS5        g r  r@  rU   s    r    !test_non_native_byte_order_rank_p.BaseQRupdate.test_non_native_byte_order_rank_p  r  r"   c                 4    U R                  [        SSS5        g r  r@  rU   s    r    *test_non_native_byte_order_economic_rank_p7BaseQRupdate.test_non_native_byte_order_economic_rank_p  r  r"   c                    U R                  S5      u  pp4nU[        R                  " XER                  5       5      -   nUR	                  S5      nUR	                  S5      nUR	                  S5      n	UR	                  S5      n
[        XxXS5      u  p[        XX`R                  U R                  5        [        XxXR                  U R                  5        [        XxXS5      u  p[        XX`R                  U R                  5        [        XU R                  U R                  S9  [        XU R                  U R                  S9  UR	                  S5      nUR	                  S5      nUR	                  S5      n	UR	                  S5      n
[        XxXS5      u  nn[        UUX`R                  U R                  5        [        XU R                  U R                  S9  [        UXR                  U R                  S9  g )Nr^   r   FTr   rR  
rk   r   r  r   r   r	   r,   r   r   r   rV   r   r  r  rB  r  r   r*   r+   r  r  r   r   r  r  r  r  s                    r    test_overwrite_qruv_rank_1'BaseQRupdate.test_overwrite_qruv_rank_1  sp    !MM%0rr"ggi((GGCLGGCLGGCLGGCL 1u-YY		2q))TYY/1t,YY		2DIIDII>DIIDII>GGCLGGCLGGCLGGCL1t,BRYY		2DIIDII>AIIDII>r"   c                    U R                  SS5      u  pp4nU[        R                  " XER                  5       5      -   nUR	                  S5      nUR	                  S5      nUR	                  S5      n	UR	                  S5      n
[        XxXS5      u  p[        XX`R                  U R                  S5        [        XxXR                  U R                  S5        [        XxXS5      u  p[        XX`R                  U R                  S5        [        XU R                  U R                  S9  [        XU R                  U R                  S9  UR	                  S5      nUR	                  S5      nUR	                  S5      n	UR	                  S5      n
[        XxXS5      u  nn[        UUX`R                  U R                  S5        [        XU R                  U R                  S9  [        UXR                  U R                  S9  g )Nr_   r   r   FTr   rR  r  r  s                    r    #test_overwrite_qruv_rank_1_economic0BaseQRupdate.test_overwrite_qruv_rank_1_economic  sz    !MM&*=rr"ggi((GGCLGGCLGGCLGGCL 1u-YY		59q))TYY61t,YY		59DIIDII>DIIDII>GGCLGGCLGGCLGGCL1t,BRYY		59DIIDII>AIIDII>r"   c                    U R                  SSS9u  pp4nU[        R                  " XER                  R	                  5       5      -   nUR                  S5      nUR                  S5      nUR                  S5      n	UR                  S5      n
[        XxXS5      u  p[        XX`R                  U R                  5        [        XxXR                  U R                  5        [        XxXS5      u  p[        XX`R                  U R                  5        [        XU R                  U R                  S9  [        XU R                  U R                  S9  g )	Nr^   r.   r  r   rR  FTr   )rk   r   r   r   r   r   r	   r,   r   r   r   )rV   r   r  r  rB  r  r   r*   r+   r  r  r   r   r  r  s                  r    test_overwrite_qruv_rank_p'BaseQRupdate.test_overwrite_qruv_rank_p  s     !MM%1M5rrDDIIK((GGCLGGCLGGCLGGCL 1u-YY		2q))TYY/1t,YY		2DIIDII>DIIDII>r"   c           
         U R                  S5      u  pp4n[        [        [        [        R
                  " / 5      X4U5        [        [        [        U[        R
                  " / 5      XE5        [        [        [        X#[        R
                  " / 5      U5        [        [        [        X#U[        R
                  " / 5      5        g )Nr_   )rk   rp  r5   r	   r   r~  r  s         r    r  BaseQRupdate.test_empty_inputs  sv    f-aAj)RXXb\1Cj)QaCj)Q288B<Cj)Q1bhhrlCr"   c           
          U R                  S5      u  pp4n[        [        [        X#SS  XE5        [        [        [        US S X4U5        [        [        [        X#USS  U5        [        [        [        X#XESS  5        g )Nr_   r   r  r  r  s         r    r  #BaseQRupdate.test_mismatched_shapes  sj    f-aAj)Q!"q<j)QsVQ1=j)Q1QR5!<j)Q1e<r"   c           	      .   / SQnU R                  S5      u  p#pEnU H  nUR                  R                  U5      n[        R                  " SS9   UR                  R                  U5      n	S S S 5        UR                  R                  U5      n
UR                  R                  U5      n[        [        [        XXV5        [        [        [        UW	XV5        [        [        [        X4X5        [        [        [        X4X[5        M     g ! , (       d  f       N= f)Nr  r_   r  r  )rk   r  rN   r   r  rp  r5   r	   )rV   r  r   r  r  rB  r  r   r*   r+   r  r  s               r    r  $BaseQRupdate.test_unsupported_dtypes  s     !MM&1rrEu%AX.GGNN5) /u%Au%A*i?*iQ?*i?*i? ..s   D
D	c                     [         R                  " S5      R                  SS5      nUR                  5       nUS S 2S4   R                  5       nUSS S 24   R                  5       n[	        [
        [        XX45        g )N   r0   r   )r   aranger  r   rp  r5   r	   )rV   r*   r+   r  r  s        r    test_integer_inputBaseQRupdate.test_integer_input%  s[    IIbM!!!Q'FFHadGLLNadGLLNj)Q18r"   c           
      $   U R                  SSS9u  pp4nUR                  S5      n[        R                  US'   [	        [
        [        XcUS S 2S4   US S 2S4   5        [	        [
        [        XcXE5        UR                  S5      n[        R                  US'   [	        [
        [        X'US S 2S4   US S 2S4   5        [	        [
        [        X'XE5        UR                  S5      n[        R                  US'   [	        [
        [        X#US S 2S4   US S 2S4   5        [	        [
        [        X#X5        UR                  S5      n	[        R                  U	S'   [	        [
        [        X#US S 2S4   U	S S 2S4   5        [	        [
        [        X#X5        g )Nr_   r.   r  r   r]   r   r   rk   r   r   r  rp  r5   r	   
rV   r  r  r  rB  r  r*   r+   r  r  s
             r    r  BaseQRupdate.test_check_finite,  s;   !]]6Q]7GGCL#j)QBqsGR!WEj)QB;GGCL#j)RBqsGR!WEj)RB;GGCL#j)RQqsVR!WEj)RQ;GGCL#j)RQqsVQqsVDj)RQ:r"   c           
      &   U R                  SSSS9u  pp4nUR                  S5      n[        R                  US'   [	        [
        [        XcUS S 2S4   US S 2S4   5        [	        [
        [        XcXE5        UR                  S5      n[        R                  US'   [	        [
        [        X'US S 2S4   US S 2S4   5        [	        [
        [        X'XE5        UR                  S5      n[        R                  US'   [	        [
        [        X#US S 2S4   US S 2S4   5        [	        [
        [        X#X5        UR                  S5      n	[        R                  U	S'   [	        [
        [        X#US S 2S4   U	S S 2S4   5        [	        [
        [        X#X5        g )	Nr_   r   r.   )re   r   r   r]   r   r   r/  r0  s
             r    test_economic_check_finite'BaseQRupdate.test_economic_check_finiteC  s=   !]]6
a]HGGCL#j)QBqsGR!WEj)QB;GGCL#j)RBqsGR!WEj)RB;GGCL#j)RQqsVR!WEj)RQ;GGCL#j)RQqsVQqsVDj)RQ:r"   c                    [         R                  " SS/SS/SS/SS//U R                  5      n[         R                  " SS/SS//U R                  5      n[         R                  " / SQU R                  5      n[         R                  " SS/U R                  5      n[        XX45      u  pV[         R                  " X5      [         R
                  " X4R                  5       5      -   n[        XVXpR                  U R                  S5        g )Nr   r   )r   r   r   r$   r   F)
r   r~  r   r	   r   r  r   r,   r   r   )rV   r*   r+   r  r  r   r   r   s           r    test_u_exactly_in_span_q%BaseQRupdate.test_u_exactly_in_span_qZ  s    HHq!fq!fq!fq!f5tzzBHHq!fq!f%tzz2HH]DJJ/HHaVTZZ(1&VVA\BHHQ11YY		59r"   rt   )rn   r   )3ro   rp   rq   rr   rk   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  r3  r6  rs   r  r  s   @r    r  r    s    ,3	73737:>33::3333<KOZDHEIGKGKLPLPGKGK?<?>?*D=@"9;.;.: :r"   r  c                   8    \ rS rSr\R
                  " S5      rSrg)TestQRupdate_fic  r  rt   Nr  rt   r"   r    r9  r9  c  r  r"   r9  c                   8    \ rS rSr\R
                  " S5      rSrg)TestQRupdate_Fif  r   rt   Nr  rt   r"   r    r;  r;  f  r  r"   r;  c                   8    \ rS rSr\R
                  " S5      rSrg)TestQRupdate_dii  r  rt   Nr  rt   r"   r    r=  r=  i  r  r"   r=  c                   8    \ rS rSr\R
                  " S5      rSrg)TestQRupdate_Dil  r  rt   Nr  rt   r"   r    r?  r?  l  r  r"   r?  c            	          SS/n S/n/ SQnSS/n/ SQn[         R                  " XX#U5       H9  u  pVpxn	US:X  a  [        XVXxSU	5        [        XVXxSU	5        M+  [        XVXxSU	5        M;     g )	Nr   rR  rZ   )r   rR  Ar   r.   )r  r  r   r  r   )r   r   check_form_qTu)
q_orderq_shapeu_orderu_shaper   qor  uorC  r  s
             r    test_form_qTurI  o  s}     CjGjGG!fG E g%H 	7221a0221a0221a0 Ir"   c                 V   [         R                  R                  S5        US:X  a  US:X  a  US   4nOUS   U4n[         R                  " U5      nUR                  S;   a?  [         R                  R                  U5      n[         R                  R                  U5      nOUR                  S;   a  [         R                  R                  U5      S[         R                  R                  U5      -  -   n[         R                  R                  U5      S[         R                  R                  U5      -  -   nO[        S5        [         R                  " WXP5      nUS:w  a  [         R                  " WXR5      nO[        WR                  U5      45      u  nS	[         R                  " U5      R                  S
-
  * -  nS
[         R                  " U5      R                  -  n	[         R                  " UR                  R                  5       U5      n
[        R                   " Xg5      n[#        XXS9  g )N/   r   r   fdFDrd   z#form_qTu doesn't support this dtyperA  r   r   r   )r   rf   rg   r   charr5   requirer@   rN   r   r   r   r   r   r   _decomp_update	_form_qTur   )rC  rD  rE  rF  u_ndimr   r*   r  r   r   expectedress               r    rB  rB    s   IINN2!|!1:-1:w'HHUOEzzTIIW%IIW%	t	IIW%299+;+;G+D(DDIIW%299+;+;G+D(DD89


1e%A#~JJq%)188E?,-RXXe_..q011DRXXe_   Dvvacchhj!$H

"
"1
(CC8r"   )NNT)NN)T)*r   numpyr   numpy.testingr   r   r   pytestr   rp  scipyr   scipy.linalg._decomp_updaterP  r   r	   r
   r!   r(   r,   r@   rD   rL   rP   rR   rv   r  r  r  r  r  r  r  r  r  r  r9  r;  r=  r?  rI  rB  rt   r"   r    <module>rZ     s     @ @ *  4 4 G G	C87
4< "F< FB\ \ \ \ RB< RBh\ \ \ \ I:< I:V\ \ \ \ 149r"   