
    ^h*                        S SK r S SKJr  S SKJrJrJrJrJrJ	r	J
r
JrJrJr  SSKJr  S SKrS SKJr  \ R$                  " SS/S	9S
 5       r " S S\5      r " S S\5      rS r " S S\5      r " S S5      rS rS rS r " S S\5      rS r " S S\5      rS rS r S r!S r"S  r#S! r$S" r%S# r&S$ r'S% r(S& r)S' r*S( r+S) r,S* r-g)+    N)mock)
BoolTupleListInstanceCFloatCIntFloatInt
TraitErrorobserve   )setup)WidgetTF)paramsc              #      #    [         R                  R                  R                  nU R                  [         R                  R                  l        U R                  v   U[         R                  R                  l        g 7fN)
ipywidgetswidgetswidgetJUPYTER_WIDGETS_ECHOparam)requestoldvalues     a/home/james-whalen/.local/lib/python3.13/site-packages/ipywidgets/widgets/tests/test_set_state.pyechor      sR     !!((==H5<]]J2
--5=J2s   A<A>c                       \ rS rSr\" 5       R                  SS9r\" \" 5       \" 5       \" 5       SS9R                  SS9r\	" \" 5       5      R                  SS9r
Srg)SimpleWidget   Tsync)FFF)default_value N)__name__
__module____qualname____firstlineno__r   tagar   br   c__static_attributes__r#       r   r   r      sS    


Adfdfdf4IJNNTXNYATVd#Ar-   r   c                       \ rS rSr\" 5       R                  SS9r\" 5       R                  SS9r\	" 5       R                  SS9r
\" 5       R                  SS9rSrg)NumberWidget"   Tr    r#   N)r$   r%   r&   r'   r
   r(   fr   cfr   ir	   cir,   r#   r-   r   r/   r/   "   sJ    A	4	 B		t	A		Br-   r/   c                 B    U S   (       d  U $ S/U SS -   U S   U S   /-   $ )Nr   Fr   r#   )datar   s     r   transform_fromjsonr9   +   s5     77T!BZ48T"X"666r-   c                   J    \ rS rSr\" \" 5       5      R                  S\S9rSr	g)TransformerWidget2   T)r!   	from_jsonr#   N)
r$   r%   r&   r'   r   r   r(   r9   dr,   r#   r-   r   r;   r;   2   s    TVd.@AAr-   r;   c                       \ rS rSrSS jrSrg)DataInstance8   Nc                     Xl         g r   r8   )selfr8   s     r   __init__DataInstance.__init__9   s    	r-   rC   r   )r$   r%   r&   r'   rE   r,   r#   r-   r   r@   r@   8   s    r-   r@   c                 X    SU R                   (       a  [        U R                   5      0$ S 0$ Nr8   )r8   
memoryviewinstancer   s     r   mview_serializerrL   <   s$    (--Z.KKTKKr-   c                     SU R                   (       a-  [        [        U R                   5      R                  5       5      0$ S 0$ rH   )r8   	bytearrayrI   tobytesrJ   s     r   bytes_serializerrP   ?   s3    x}}Yz(--8@@BC``Z^``r-   c                 f    [        U (       a   [        U S   5      R                  5       5      $ S 5      $ rH   )r@   rI   rO   	json_datar   s     r   deserializerrT   B   s+    IIf$56>>@YYSWYYr-   c                   @    \ rS rSr\" \SS9R                  S\\S9r	Sr
g)
DataWidgetE   r#   argsTr!   to_jsonr=   N)r$   r%   r&   r'   r   r@   r(   rL   rT   r>   r,   r#   r-   r   rV   rV   E   s"    B'++?O[g+hAr-   rV   c                 Z    [        U (       a  U S   S S R                  5       5      $ S 5      $ )Nr8      )r@   rO   rR   s     r   truncate_deserializerr^   I   s,    Y6*3B/779RRDRRr-   c                   @    \ rS rSr\" \SS9R                  S\\S9r	Sr
g)TruncateDataWidgetL   r#   rX   TrZ   N)r$   r%   r&   r'   r   r@   r(   rP   r^   r>   r,   r#   r-   r   r`   r`   L   s"    B'++?O[p+qAr-   r`   c                     [        5       nUR                  [        S/ SQ/ SQS95        [        UR                  R
                  5      U (       a  SOS:X  d   eg )NTTFTFTF)r)   r*   r+   r   r   )r   	set_statedictlencommmessagesr   ws     r   test_set_state_simplerl   T   sF    AKK


  qvvA1555r-   c                 J   [        5       nUR                  [        / SQS95        / nU (       a-  UR                  S[        / [        / S[        / SQS9S9S945        UR                  S[        / [        / S[        / SQS9S9S945        UR                  R
                  U:X  d   eg )	Nrc   r>   r#   echo_update)buffer_pathsmethodstate)buffersr8   updaterd   )r;   re   rf   appendrh   ri   )r   rk   expecteds      r   test_set_state_transformerrw   _   s    AKK
  H$01 	 OO	T-.
 	 66??h&&&r-   c                     [        5       n[        S5      nUR                  [        SSU0S95        [	        UR
                  R                  5      U (       a  SOS:X  d   eg )N   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTr8   r)   r>   r   r   )rV   rI   re   rf   rg   rh   ri   )r   rk   r8   s      r   test_set_state_datar{   z   sQ    AgDKK
4.  qvvA1555r-   c                    [        5       n[        S5      nUR                  [        SSU0S95        U (       a%  [	        UR
                  R                  5      S:X  d   e UR
                  R                  S   nUS   R                  S5      nUS	[        [        S
[        0 S9SS//S9S94:X  d   e[	        U5      S:X  d   eUS   US S R                  5       :X  d   eg )Nry   Tr8   rz      r   r7   rs   r#   rt   rn   r>   rq   rr   rp   rC   r   r]   )	r`   rI   re   rf   rg   rh   ri   poprO   )r   rk   r8   msgrs   s        r   test_set_state_data_truncater      s    AgDKK
4. 
 )-3qvv1$33!
&&//"
C!fjj#G2t*-
     w<11:cr**,,,,r-   c           	          [        5       nUR                  [        SSSSS95        [        UR                  R
                  5      U (       a  SOS:X  d   eg )Nr   r}         )r1   r2   r3   r4   r   r/   re   rf   rg   rh   ri   rj   s     r   test_set_state_numbers_intr      sK     	AKK	  qvvA1555r-   c                     [        5       nUR                  [        SSSS95        [        UR                  R
                  5      U (       a  SOS:X  d   eg )Ng      ?       @g      @)r1   r2   r4   r   r   r   rj   s     r   test_set_state_numbers_floatr      sF    AKK  qvvA1555r-   c                     [        5       nUR                  [        SSS95        [        UR                  R
                  5      U (       a  SOS:X  d   eg )Ng333333?g@)r1   r2   r   r   r   rj   s     r   test_set_state_float_to_floatr      sC    AKK 
 qvvA1555r-   c                    [        5       nUR                  [        SS95        [        UR                  R
                  5      U (       a  SOS:X  d   eUR                  R
                  S   nUS   S   nUS   S:X  d   eUS	   S
S0:X  d   eg )Ngffffff@)r4   r}   r   r7   r8   rq   rt   rr   r4      r   )r   rk   r   r8   s       r   test_set_state_cint_to_floatr      s    A KK  qvvA1555
&&//"
Cq6&>D>X%%%=T1I%%%r-   c                      [        5       n U R                  [        SS95        [        U R                  R
                  5      S:X  d   eg )Ng      @r3   r   r   )rk   s    r   !_x_test_set_state_int_to_int_liker      s>    
 	AKK  qvv1$$$r-   c                     [        5       n[        R                  " [        5         UR	                  [        SS95        S S S 5        g ! , (       d  f       g = f)Ng      @r   )r/   pytestraisesr   re   rf   rj   s     r   test_set_state_int_to_floatr      s9    A 
z	"	D
 	 
#	"	"s   A
Ac                 ,    " S S[         5      nU" SS9nUR                  S:X  d   e[        R                  " 5       Ul        UR                  SS05        UR                  S:X  d   eUR                  SL d   e/ nUR                  R                  U5        g )Nc                   h    \ rS rSr\" 5       R                  SS9r\" S5      r\	" S5      S 5       r
Srg)	*test_property_lock.<locals>.AnnoyingWidget   Tr    Fvaluec                     [        SUR                  5        U R                  (       a  g UR                  S:X  a  SU l        UR                  S:X  a  SU l        SU l        g g )N_propagate_value*   r}   T)printnewstopr   rD   changes     r   r   ;test_property_lock.<locals>.AnnoyingWidget._propagate_value   sL    $fjj1yyzzR
zzQ 	
 r-   )r   r   N)r$   r%   r&   r'   r
   r(   r   r   r   r   r   r,   r#   r-   r   AnnoyingWidgetr      s4    &E{			  
	 r-   r   r   r   r   r   T)r   r   r   	MagicMock_sendre   r   assert_has_calls)r   r   r   callss       r   test_property_lockr      s        !$F<<1>>#FL
gr]#<<2;;$ E
LL!!%(r-   c                     " S S[         5      nU" SS9nUR                  S:X  d   e[        R                  " 5       Ul        UR                  SS05        UR                  S:X  d   eUR                  S:X  d   eS	SS
0/ S.n[        R                  " U/ S9nSSS0/ S.n[        R                  " U/ S9nSSS0/ S.n[        R                  " U/ S9nU (       a  XEU/OXV/nUR                  R                  U5        g )Nc                       \ rS rSr\" 5       R                  SS9r\" 5       R                  SS9r\" S5      S 5       r	Sr
g)&test_hold_sync.<locals>.AnnoyingWidgeti  Tr    r   c                 n    [        SUR                  5        UR                  S:X  a  SU l        SU l        g g )Nr   r   r}      )r   r   r   otherr   s     r   r   7test_hold_sync.<locals>.AnnoyingWidget._propagate_value  s0    $fjj1zzR

  r-   )r   r   N)r$   r%   r&   r'   r
   r(   r   r   r   r   r,   r#   r-   r   r   r     s=    &&			  
	 r-   r   r   r   r   r   r}   r   ro         E@r~   rs   rt   r   r   g      &@)	r   r   r   r   r   re   r   callr   )r   r   r   r   call42call2call11r   s           r   test_hold_syncr   	  s    	  	  !$F<<1>>#FL
gr]#<<1<<2"gt_b
QCYYsB'F#
KCIIc2&E$
LCYYsB'F'+VF#%E
LL!!%(r-   c                  H    " S S[         5      n U " SS9nUR                  S:X  d   e[        R                  " 5       Ul        UR                  SSS.5        UR                  S:X  d   eSS	S
0/ S.n[        R                  " U/ S9nU/nUR                  R                  U5        g )Nc                   <    \ rS rSr\" 5       R                  SS9rSrg)test_echo.<locals>.ValueWidgeti/  Tr    r#   Nr$   r%   r&   r'   r
   r(   r   r,   r#   r-   r   ValueWidgetr   /  s    &r-   r   r   r   r   +   )r   unexpected_fieldro   r   r   r~   r   )r   r   r   r   r   re   r   r   )r   r   r   r   r   s        r   	test_echor   -  s    'f ' q!F<<1>>#FL
rr:;<<2 #gt_b
QCYYsB'FHE
LL!!%(r-   c                      " S S[         5      n U " SS9nUR                  S:X  d   e[        R                  " 5       Ul        UR                  SSSSS	0S
.005        UR                  S	:X  d   eUR                  S:X  d   eSSS0/ S.n[        R                  " U/ S9nSSS0/ S.n[        R                  " U/ S9nX4/nUR                  R                  U5        g )Nc                       \ rS rSr\" 5       R                  SS9r\" 5       R                  SS9r\" S5      S 5       r	Sr
g)%test_echo_single.<locals>.ValueWidgetiD  Tr    r   c                 ,    U R                   S-  U l        g )Nr}   )r   squarer   s     r   _square-test_echo_single.<locals>.ValueWidget._squareG  s    **a-DKr-   )r   N)r$   r%   r&   r'   r
   r(   r   r   r   r   r,   r#   r-   r   r   r   D  s=    &$'			( 
	(r-   r   r   r   contentr8   rt   r      rq   rr   @   ro   g       @r~   r   r   )	r   r   r   r   r   _handle_msgr   r   r   )r   r   r   r   r   r   s         r   test_echo_singler   B  s    (f ( q!F<<1>>#FL
"Q
	 	 <<1==B #gs^R
PC99S"%D2
KCIIc2&E ME
LL!!%(r-   c                     " S S[         5      nU" SS9nUR                  S:X  d   e[        R                  " 5       Ul        UR                  SSSSS	0S
.005        UR                  S	:X  d   eUR                  R                  5         SUl        UR                  R                  [        R                  " SSS0/ S./ S9/5        g )Nc                   >    \ rS rSr\" 5       R                  SSS9rSrg)!test_no_echo.<locals>.ValueWidgetil  TF)r!   ro   r#   Nr   r#   r-   r   r   r   l  s    59r-   r   r   r   r   r8   rt   r   r   r   r   g     E@r~   r   )	r   r   r   r   r   r   assert_not_calledr   r   )r   r   r   s      r   test_no_echor   j  s    :f : q!F<<1>>#FL
"R
	 	 <<2 LL""$ FL
LL!!499GUY?ln-oy{#|"}~r-   ).r   unittestr   	traitletsr   r   r   r   r   r	   r
   r   r   r   utilsr   r   r   fixturer   r   r/   r9   r;   r@   rL   rP   rT   rV   r^   r`   rl   rw   r{   r   r   r   r   r   r   r   r   r   r   r   r   r#   r-   r   <module>r      s      ` ` `    e}%> &>$6 $6 7B B LaZi iSr r6'66-06 	66&"%)< )H)*%)Pr-   