U
    »mœd  ã                   @   sP   d dl Z d dlZd dlmZ d dlmZ eddddgdd	gƒZG d
d„ dƒZdS )é    N)Úassert_equal)Ú_make_tuple_bunchÚResultÚxÚyÚzÚwÚbetac                   @   s|  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zej d%d&d'gd(gfd)d*gd+gfd)d'gd,gfg¡d-d.„ ƒZej d%d)d'd(d'gd+gfd)d'd(gd(d+gfg¡d/d0„ ƒZej d%d)d1gd+gfd)d'gd2gfg¡d3d4„ ƒZej d%d)d5gd+gfd)d'gd6gfd7d'gd+gfg¡d8d9„ ƒZd:d;„ Zd<S )=ÚTestMakeTupleBunchc                 C   s   t dddddd�| _d S )Né   é   é   éc   ç      à?©r   r   r   r   r	   )r   Úresult©Úself© r   úT/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/scipy/_lib/tests/test_bunch.pyÚsetup_method   s    zTestMakeTupleBunch.setup_methodc                 C   sJ   t | jjdƒ t | jjdƒ t | jjdƒ t | jjdƒ t | jjdƒ d S )Nr   r   r   r   r   )r   r   r   r   r   r   r	   r   r   r   r   Útest_attribute_access   s
    z(TestMakeTupleBunch.test_attribute_accessc              	   C   sh   t | jd dƒ t | jd dƒ t | jd dƒ t | jd dƒ tjtdd�� | jd  W 5 Q R X d S )Nr   r   r   r   éÿÿÿÿzindex out of range©Úmatch)r   r   ÚpytestÚraisesÚ
IndexErrorr   r   r   r   Útest_indexing   s    z TestMakeTupleBunch.test_indexingc                 C   s,   | j \}}}t|||fdƒ t| j dƒ d S ©N©r   r   r   )r   r   )r   Zx0Zy0Zz0r   r   r   Útest_unpacking&   s    z!TestMakeTupleBunch.test_unpackingc                 C   sD   t | jdd … dƒ t | jd d d… dƒ t | jd d d… dƒ d S )Nr   )r   r   r   )r   r   r   )r   r   r   )r   r   r   r   r   r   Ú
test_slice+   s    zTestMakeTupleBunch.test_slicec                 C   s   t t| jƒdƒ d S )Nr   )r   Úlenr   r   r   r   r   Útest_len0   s    zTestMakeTupleBunch.test_lenc                 C   s   t | jƒ}t|dƒ d S )Nz%Result(x=1, y=2, z=3, w=99, beta=0.5))Úreprr   r   )r   Úsr   r   r   Ú	test_repr3   s    
zTestMakeTupleBunch.test_reprc                 C   s   t t| jƒtdƒƒ d S r   )r   Úhashr   r   r   r   r   Ú	test_hash7   s    zTestMakeTupleBunch.test_hashc                 C   sx   t  | j¡}t  |¡}t|tƒs$t‚t|j| jjƒ t|j	| jj	ƒ t|j
| jj
ƒ t|j| jjƒ t|j| jjƒ d S )N)ÚpickleÚdumpsr   ÚloadsÚ
isinstancer   ÚAssertionErrorr   r   r   r   r   r	   )r   r&   Úobjr   r   r   Útest_pickle:   s    
zTestMakeTupleBunch.test_picklec              	   C   s&   t jtdd�� d| j_W 5 Q R X d S )Nzcan't set attributer   r   )r   r   ÚAttributeErrorr   r   r   r   r   r   Útest_read_only_existingD   s    z*TestMakeTupleBunch.test_read_only_existingc                 C   s   d| j _| j jdkst‚d S )Nzlattice of coincidence)r   Zplate_of_shrimpr.   r   r   r   r   Útest_read_only_newH   s    z%TestMakeTupleBunch.test_read_only_newc              	   C   s.   t jtdd�� tddddd� W 5 Q R X d S )NÚmissingr   r   r   r   ç      è?)r   r   r   r	   ©r   r   Ú	TypeErrorr   r   r   r   r   Ú"test_constructor_missing_parameterL   s    z5TestMakeTupleBunch.test_constructor_missing_parameterc              	   C   s2   t jtdd�� tddddddd	� W 5 Q R X d S )
NZ
unexpectedr   r   r   r   é{   r5   iç  )r   r   r   r   r	   Úfoor6   r   r   r   r   Ú$test_constructor_incorrect_parameterQ   s    z7TestMakeTupleBunch.test_constructor_incorrect_parameterc                 C   s"   d}t tj|ƒ t | jj|ƒ d S )Nzscipy._lib.tests.test_bunch)r   r   Ú
__module__r   )r   Úmr   r   r   Útest_moduleV   s    zTestMakeTupleBunch.test_modulec                 C   s|   t dddddd�}t ddd	d
dd�}t|jdƒ t|jdƒ t|d d … dƒ t|jd
ƒ t|jdƒ t|d d … dƒ d S )Nr   r   r   r   g        r   é   é   é   r   g      ð?r    )r?   r@   rA   )r   r   r   r	   )r   Zresult1Zresult2r   r   r   Útest_extra_fields_per_instance[   s    z1TestMakeTupleBunch.test_extra_fields_per_instancec                 C   sH   t dddgƒ}|ddd�}t|jdƒ t|jdƒ t|ƒ}t|dƒ d S )NÚSquareÚwidthÚheightr   r   )rD   rE   zSquare(width=1, height=2))r   r   rD   rE   r%   )r   rC   Úsqr&   r   r   r   Ú"test_extra_field_names_is_optionaln   s    z5TestMakeTupleBunch.test_extra_field_names_is_optionalc                 C   s>   t dddgƒ}|ddd�}t|tƒs(t‚t|d tƒs:t‚d S )NÚTupÚaÚbr   r   )rI   rJ   )r   )r   r-   Útupler.   )r   rH   Ztur   r   r   Útest_tuple_likev   s    z"TestMakeTupleBunch.test_tuple_likec                 C   sD   d}t ddgddg|d�}|ddd	d
�}t|j|ƒ t|j|ƒ d S )Nzsome.module.nameÚFoor   rI   rJ   )Úmoduler   ic  éq   )r   rI   rJ   )r   r   r<   )r   r=   rM   r:   r   r   r   Útest_explicit_module|   s
    z'TestMakeTupleBunch.test_explicit_moduleÚargsZ123rI   rJ   rM   z-3r   z+-*/c              	   C   s&   t jtdd�� t|Ž  W 5 Q R X d S )NZidentifiersr   ©r   r   Ú
ValueErrorr   ©r   rQ   r   r   r   Útest_identifiers_not_allowed‡   s    z/TestMakeTupleBunch.test_identifiers_not_allowedc              	   C   s&   t jtdd�� t|Ž  W 5 Q R X d S )NZ	Duplicater   rR   rT   r   r   r   Útest_repeated_field_namesŽ   s    z,TestMakeTupleBunch.test_repeated_field_namesZ_aZ_xc              	   C   s&   t jtdd�� t|Ž  W 5 Q R X d S )NZ
underscorer   rR   rT   r   r   r   Ú#test_leading_underscore_not_allowed”   s    z6TestMakeTupleBunch.test_leading_underscore_not_allowedÚdefÚorÚandc              	   C   s&   t jtdd�� t|Ž  W 5 Q R X d S )NÚkeywordr   rR   rT   r   r   r   Ú"test_keyword_not_allowed_in_fieldsš   s    z5TestMakeTupleBunch.test_keyword_not_allowed_in_fieldsc              	   C   s.   t jtdd�� tdg ddgƒ W 5 Q R X d S )Nzat least one namer   ZQwertyrI   rJ   rR   r   r   r   r   Ú%test_at_least_one_field_name_required¡   s    z8TestMakeTupleBunch.test_at_least_one_field_name_requiredN)Ú__name__r<   Ú__qualname__r   r   r   r!   r"   r$   r'   r)   r0   r2   r3   r8   r;   r>   rB   rG   rL   rP   r   ÚmarkZparametrizerU   rV   rW   r\   r]   r   r   r   r   r
      sJ   
þ
ÿ
ÿ
þ
r
   )r   r*   Znumpy.testingr   Zscipy._lib._bunchr   r   r
   r   r   r   r   Ú<module>   s
   