o
    Ti                     @   s   d dl mZ d dlZd dlZd dlmZ zd dlmZ W n e	y5   G dd de
ZG dd de
ZY nw edd	gZedd
dgZG dd deZG dd deZG dd deZG dd deZdd dd dd gZG dd dejZdS )    )absolute_importN)StringIO)
namedtuplec                   @      e Zd Zdd Zdd ZdS )Valuec                 G      t | |S Ntuple__new__clsargs r   O/home/ubuntu/.local/lib/python3.10/site-packages/hjson/tests/test_namedtuple.pyr   
      zValue.__new__c                 C   s   d| d iS )Nvaluer   r   selfr   r   r   _asdict   r   zValue._asdictN__name__
__module____qualname__r   r   r   r   r   r   r   	       r   c                   @   r   )Pointc                 G   r   r   r	   r   r   r   r   r      r   zPoint.__new__c                 C   s   | d | d dS )Nr      )xyr   r   r   r   r   r      s   zPoint._asdictNr   r   r   r   r   r      r   r   r   r   r   c                   @   r   )	DuckValuec                 G      t | | _d S r   )r   r   r   r   r   r   r   __init__      zDuckValue.__init__c                 C   
   | j  S r   )r   r   r   r   r   r   r         
zDuckValue._asdictNr   r   r   r"   r   r   r   r   r   r      r   r   c                   @   r   )	DuckPointc                 G   r    r   )r   pointr!   r   r   r   r"   !   r#   zDuckPoint.__init__c                 C   r$   r   )r(   r   r   r   r   r   r   $   r%   zDuckPoint._asdictNr&   r   r   r   r   r'       r   r'   c                   @      e Zd ZdZdS )DeadDuckNr   r   r   r   r   r   r   r   r*   '       r*   c                   @   r)   )DeadDictNr+   r   r   r   r   r-   *   r,   r-   c                 C   s   | S r   r   vr   r   r   <lambda>.   s    r0   c                 C   s   | gS r   r   r.   r   r   r   r0   /   s    c                 C   s
   d| igS )Nkeyr   r.   r   r   r   r0   0   s   
 c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestNamedTuplec                 C   s   t dtddtdtddfD ]=}| }| |tt| | |ttj|dd | |ttj|dd | |ttj|ddd qd S Nr      Tnamedtuple_as_objectF)tuple_as_array)r6   r7   )	r   r   r   r'   r   assertEqualjsonloads	dumpsJSON)r   r/   dr   r   r   test_namedtuple_dumps4   s   $z$TestNamedTuple.test_namedtuple_dumpsc              
   C   sV   t dtddfD ]}t|}| |ttj|dd | jttj|ddd q	d S Nr   r4   Fr5   )r7   r6   )	r   r   listr8   r9   r:   r;   assertRaises	TypeError)r   r/   lr   r   r   test_namedtuple_dumps_falseA   s   z*TestNamedTuple.test_namedtuple_dumps_falsec                 C   s   t dtddtdtddfD ]]}| }t }t|| | |t	|
  t }tj||dd | |t	|
  t }tj||dd | |t	|
  t }tj||ddd | |t	|
  qd S r3   )r   r   r   r'   r   r   r9   dumpJSONr8   r:   getvalue)r   r/   r<   sior   r   r   test_namedtuple_dumpJ   s.   $
z#TestNamedTuple.test_namedtuple_dumpc              	   C   sj   t dtddfD ])}t|}t }tj||dd | |t|  | j	t
tj|t ddd q	d S r>   )r   r   r?   r   r9   rD   r8   r:   rE   r@   rA   )r   r/   rB   rF   r   r   r   test_namedtuple_dump_false_   s   z)TestNamedTuple.test_namedtuple_dump_falsec                 C   sb   t D ],}| jttj|t t dd t }tj|t |dd | t	|i |
  qd S NTr5   )CONSTRUCTORSr@   rA   r9   rD   r*   r   r-   r8   r;   rE   )r   frF   r   r   r   test_asdict_not_callable_dumpj   s   z,TestNamedTuple.test_asdict_not_callable_dumpc                 C   sN   t D ]"}| jttj|t dd | t|i tj|t dd qd S rI   )rJ   r@   rA   r9   r;   r*   r8   r-   )r   rK   r   r   r   test_asdict_not_callable_dumpst   s   z-TestNamedTuple.test_asdict_not_callable_dumpsN)	r   r   r   r=   rC   rG   rH   rL   rM   r   r   r   r   r2   3   s    	
r2   )
__future__r   unittesthjsonr9   hjson.compatr   collectionsr   ImportErrorr
   r   r   objectr   r'   r*   dictr-   rJ   TestCaser2   r   r   r   r   <module>   s*    