o
    $x`]  ã                   @   s  d dl Z zd dlmZ W n ey   d dlZY nw d dlmZ d dlmZ zd dlmZ W n ey:   e	ƒ ZY nw d dl
mZ d dlmZ d dlmZ d dlmZ d	d
lmZ d	dlmZ d	dlmZ G dd„ dee jƒZeeejjƒ G dd„ deeƒZdS )é    N)Údeque)ÚOrderedDict©ÚMappingProxyType)ÚInvalid)Úcollections)ÚPYPY)ÚPYTHON2é   )Úadd_abc_interface_tests)ÚVerifyClassMixin)ÚVerifyObjectMixinc                	   @   sˆ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Ze	ddhZ
er*e
 eeh¡ erBe
 eeeei  ¡ ƒei  ¡ ƒh¡ i ZdS dS )ÚTestVerifyClassc                 C   ó(   |   tƒ tj¡ |  |  tjt¡¡ d S ©N)ÚassertIsInstanceÚ	frozensetÚabcÚSetÚ
assertTrueÚverifyr   ÚISet©Úself© r   úN/usr/lib/python3/dist-packages/zope/interface/common/tests/test_collections.pyÚtest_frozenset.   ó   zTestVerifyClass.test_frozensetc                 C   r   r   )r   Úlistr   ÚMutableSequencer   r   r   ÚIMutableSequencer   r   r   r   Ú	test_list2   r   zTestVerifyClass.test_listc                 C   ó   |   |  tjtj¡¡ d S r   )r   r   r   r    ÚUserListr   r   r   r   Útest_UserList7   ó   
ÿzTestVerifyClass.test_UserListc                 C   r"   r   )r   r   r   ÚIMutableMappingÚUserDictr   r   r   r   Útest_UserDict;   r%   zTestVerifyClass.test_UserDictc                 C   r"   r   )r   r   r   Ú	ISequenceÚ
UserStringr   r   r   r   Útest_UserString?   r%   zTestVerifyClass.test_UserStringc                 C   sl   zddl m } W n ty   |  d¡ Y nw |  t¡� |  tj|¡ W d   ƒ d S 1 s/w   Y  d S )Nr   )r'   z+No UserDict.NonIterableUserDict on Python 3)r'   ÚImportErrorÚskipTestÚassertRaisesr   r   r   r&   )r   ÚNonIterableUserDictr   r   r   Útest_non_iterable_UserDictC   s   þ"ÿz*TestVerifyClass.test_non_iterable_UserDictÚParseResultsÚRowN)Ú__name__Ú
__module__Ú__qualname__r   r!   r$   r(   r+   r0   Ú
memoryviewÚUNVERIFIABLEr   Úupdater   ÚrangeÚPY2Ú
basestringÚbufferÚxrangeÚtypeÚ	viewitemsÚviewkeysÚNON_STRICT_ROr   r   r   r   r   *   s4    ôù	

÷òr   c                   @   sx  e Zd Zi eji j“eji j“eji j	“e
dd„ “edd„ “edd„ “ejdd„ “eeeƒ ƒƒdd„ “eedƒƒdd„ “d	ej“eei  	¡ ƒƒd
d„ “eei  ¡ ƒƒdd„ “eei  ¡ ƒƒdd„ “edd„ edƒD ƒƒdd„ “eeg ƒƒdd„ “eeg ƒƒdd„ “dej“ddd„ ddd„ eeeƒ ƒƒdd„ eedƒƒdd„ dejeeeƒ ƒƒdd„ i¥Zerºe eji ji¡ dS dS )ÚTestVerifyObjectc                   C   ó   t dƒS ©Nó   abc)r6   r   r   r   r   Ú<lambda>†   ó    zTestVerifyObject.<lambda>c                   C   rC   )Né
   ©r9   r   r   r   r   rF   ‡   rG   c                   C   s   t i ƒS r   r   r   r   r   r   rF   ˆ   rG   c                   C   s
   t  d¡S )Nr   )r   r*   r   r   r   r   rF   ‰   ó   
 c                   C   ó
   t tƒ ƒS r   )ÚiterÚ	bytearrayr   r   r   r   rF   Š   rJ   rE   c                   C   rC   rD   ©rL   r   r   r   r   rF   ‹   rG   Ú	coroutinec                   C   ó   t i  ¡ ƒS r   )rL   Úkeysr   r   r   r   rF   �   ó    c                   C   rP   r   )rL   Úitemsr   r   r   r   rF   Ž   rR   c                   C   rP   r   )rL   Úvaluesr   r   r   r   rF   �   rR   c                 c   ó   � | ]}|V  qd S r   r   ©Ú.0Úir   r   r   Ú	<genexpr>�   ó   € zTestVerifyObject.<genexpr>r
   c                   C   s   dd„ t dƒD ƒS )Nc                 s   rU   r   r   rV   r   r   r   rY   �   rZ   z,TestVerifyObject.<lambda>.<locals>.<genexpr>é   rI   r   r   r   r   rF   �   s    c                   C   ó   t g ƒS r   rN   r   r   r   r   rF   ‘   rG   c                   C   r\   r   )Úreversedr   r   r   r   rF   ’   rG   Úlongrange_iteratorÚrange_iteratorc                   C   ó   t tdƒƒS ©Nr[   ©rL   r9   r   r   r   r   rF   ”   rR   Úrangeiteratorc                   C   r`   ra   rb   r   r   r   r   rF   •   rR   c                   C   rK   r   )rL   Úsetr   r   r   r   rF   –   rJ   Ú c                   C   rC   )Nre   rN   r   r   r   r   rF   —   rG   Úasync_generatorc                   C   rK   r   )rL   Útupler   r   r   r   rF   ™   rJ   N)r3   r4   r5   r   ÚIValuesViewrT   Ú
IItemsViewrS   Ú	IKeysViewrQ   r6   r9   r   r*   r>   rL   rM   ÚunittestÚSkipTestr]   rd   rg   ÚCONSTRUCTORSr:   r8   Ú
viewvaluesr   r   r   r   rB   €   s`    ÿþýüûú
ùø	÷
öõôóòñðïé
ÿþrB   )rk   Úcollections.abcr   r,   r   r   r   Útypesr   ÚobjectÚzope.interfacer   Úzope.interface.commonÚzope.interface._compatr   r	   r:   re   r   r   r   ÚTestCaser   r   r4   rB   r   r   r   r   Ú<module>   s2   ÿ
ÿSÿ