
    <i                     d   S SK Jr  S SKrS SKrS SKJr   S SKJr   S SK	J
r
  \
" SS/5      r\
" SS	S
/5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      rS S S /r " S S\R*                  5      rg! \ a    Sr Npf = f! \ a     " S S\5      r " S S\5      r Nvf = f)    )absolute_importN)StringIO)mock)
namedtupleValuevaluePointxyc                        \ rS rSrS rS rSrg)r      c                 ,    [         R                  X5      $ Ntuple__new__clsargss     Z/home/james-whalen/.local/lib/python3.13/site-packages/simplejson/tests/test_namedtuple.pyr   Value.__new__       ==++    c                     SU S   0$ )Nr   r    selfs    r   _asdictValue._asdict   s    T!W%%r   r   N__name__
__module____qualname____firstlineno__r   r   __static_attributes__r   r   r   r   r      s    	,	&r   c                        \ rS rSrS rS rSrg)r	      c                 ,    [         R                  X5      $ r   r   r   s     r   r   Point.__new__   r   r   c                     U S   U S   S.$ )Nr      )r
   r   r   r   s    r   r   Point._asdict   s    atAw//r   r   Nr    r   r   r   r	   r	      s    	,	0r   c                        \ rS rSrS rS rSrg)	DuckValue   c                     [        U6 U l        g r   )r   r   r   r   s     r   __init__DuckValue.__init__       D\
r   c                 6    U R                   R                  5       $ r   )r   r   r   s    r   r   DuckValue._asdict"       zz!!##r   )r   Nr!   r"   r#   r$   r2   r   r%   r   r   r   r.   r.          "$r   r.   c                        \ rS rSrS rS rSrg)	DuckPoint%   c                     [        U6 U l        g r   )r	   pointr1   s     r   r2   DuckPoint.__init__&   r4   r   c                 6    U R                   R                  5       $ r   )r>   r   r   s    r   r   DuckPoint._asdict)   r7   r   )r>   Nr8   r   r   r   r;   r;   %   r9   r   r;   c                       \ rS rSrSrSrg)DeadDuck,   Nr   r!   r"   r#   r$   r   r%   r   r   r   rC   rC   ,       Gr   rC   c                       \ rS rSrSrSrg)DeadDict/   Nr   rE   r   r   r   rH   rH   /   rF   r   rH   c                     U $ r   r   vs    r   <lambda>rM   3   s    ar   c                     U /$ r   r   rK   s    r   rM   rM   4   s    qcr   c                     SU 0/$ )Nkeyr   rK   s    r   rM   rM   5   s
    qzlr   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestNamedTuple8   c                 V   [        S5      [        SS5      [        S5      [        SS5      4 H  nUR	                  5       nU R                  U[        R                  " [        R                  " U5      5      5        U R                  U[        R                  " [        R                  " USS95      5        U R                  U[        R                  " [        R                  " USS95      5        U R                  U[        R                  " [        R                  " USSS95      5        M     g Nr+      Tnamedtuple_as_objectF)tuple_as_array)rX   rY   )	r   r	   r.   r;   r   assertEqualjsonloadsdumps)r   rL   ds      r   test_namedtuple_dumps$TestNamedTuple.test_namedtuple_dumps9   s    (E!QK1yAGA		AQ

4::a= 9:

4::adCDF Q

4::a+N OP

4::ad5:< => Hr   c                    [        S5      [        SS5      4 Hl  n[        U5      nU R                  U[        R
                  " [        R                  " USS95      5        U R                  [        [        R                  USSS9  Mn     g Nr+   rV   FrW   )rY   rX   )	r   r	   listrZ   r[   r\   r]   assertRaises	TypeError)r   rL   ls      r   test_namedtuple_dumps_false*TestNamedTuple.test_namedtuple_dumps_falseF   sr    (E!QK(AQA

4::aeDEG iQ$5  B )r   c                 *   [        S5      [        SS5      [        S5      [        SS5      4 GHb  nUR	                  5       n[        5       n[        R                  " X5        U R                  U[        R                  " UR                  5       5      5        [        5       n[        R                  " XSS9  U R                  U[        R                  " UR                  5       5      5        [        5       n[        R                  " XSS9  U R                  U[        R                  " UR                  5       5      5        [        5       n[        R                  " XSSS9  U R                  U[        R                  " UR                  5       5      5        GMe     g rU   )r   r	   r.   r;   r   r   r[   dumprZ   r\   getvalue)r   rL   r^   sios       r   test_namedtuple_dump#TestNamedTuple.test_namedtuple_dumpO   s   (E!QK1yAGA		A*CIIaQ

3<<> :;*CIIa48

3<<>*, *CIIaU3Q

3<<> :;*CIIa4%*,

3<<>*,! Hr   c           
      X   [        S5      [        SS5      4 H  n[        U5      n[        5       n[        R
                  " XSS9  U R                  U[        R                  " UR                  5       5      5        U R                  [        [        R
                  U[        5       SSS9  M     g rb   )r   r	   rc   r   r[   rj   rZ   r\   rk   rd   re   )r   rL   rf   rl   s       r   test_namedtuple_dump_false)TestNamedTuple.test_namedtuple_dump_falsed   s    (E!QK(AQA*CIIa59

3<<>*, iAxz$5  B )r   c           	         [          H  nU R                  [        [        R                  U" [        5       5      [        5       SS9  [        5       n[        R                  " U" [        5       5      USS9  U R                  [        R                  " U" 0 5      5      UR                  5       5        U R                  [        [        R                  U" [        5      [        5       SS9  M     g NTrW   )CONSTRUCTORSrd   re   r[   rj   rC   r   rH   rZ   r]   rk   r   )r   frl   s      r   test_asdict_not_callable_dump,TestNamedTuple.test_asdict_not_callable_dumpo   s    A		(*
%)   *CIIa
mStD

1R5!  		%
%)   r   c           
      x   [          H  nU R                  [        [        R                  U" [        5       5      SS9  U R                  [        [        R                  U" [        5      SS9  U R                  [        R                  " U" 0 5      5      [        R                  " U" [        5       5      SS95        M     g rs   )	rt   rd   re   r[   r]   rC   r   rZ   rH   r   ru   s     r   test_asdict_not_callable_dumps-TestNamedTuple.test_asdict_not_callable_dumps   s    Ai

AhjM  F

%%)	   

1R5!

1XZ=tDF r   c           	          [          H[  nU R                  [        R                  " U" [        5      S S9[        R                  " U" [        R
                  5      5      5        M]     g )Nc                     U R                   $ r   )r!   rK   s    r   rM   ATestNamedTuple.test_asdict_unbound_method_dumps.<locals>.<lambda>   s    qzzr   )default)rt   rZ   r[   r]   r   r!   ry   s     r    test_asdict_unbound_method_dumps/TestNamedTuple.test_asdict_unbound_method_dumps   sB    A

1U8-AB

1U^^,- r   c                    [         (       d7  [        [        S5      (       a  [        R                  " S5      e[	        S5        g [         R
                  " 5       nU R                  [        US5      5        U R                  [        UR                  5      5        U R                  [        UR                  5       [        5      5        U R                  [        5         [        R                  " SU0SSS9  S S S 5        g ! , (       d  f       g = f)	NSkipTestzunittest.mock requiredzunittest.mock not availabler      TF)rX   for_json)r   hasattrunittestr   printMock
assertTruecallabler   assertFalse
isinstancedictrd   re   r[   r]   )r   fakes     r    test_asdict_does_not_return_dict/TestNamedTuple.test_asdict_does_not_return_dict   s    tx,,''(@AA34yy{i01./DLLND9: y)JJDzuM *))s   C;;
D	r   N)r!   r"   r#   r$   r_   rg   rm   rp   rv   rz   r   r   r%   r   r   r   rR   rR   8   s.    >B,*	B,FNr   rR   )
__future__r   r   
simplejsonr[   simplejson.compatr   r   ImportErrorcollectionsr   r   r	   r   objectr.   r;   rC   r   rH   rt   TestCaserR   r   r   r   <module>r      s    &   &,& w	*Ewc
+E$ $$ $v t  vNX&& vNa  D
  0& &0 00s"   B B BBB/.B/