o
    Gf                     @   s   d dl Z d dlmZ d dlZd dlmZ d dlZ	d dl
Z
d dlm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S )    N)StringIO)cyclerc                  C   b   t  \} }|tdg d tdD ]}|tdtd qdd |jD g dks/J d S )Ncolorrgy   
   c                 S      g | ]}|  qS  Z	get_color.0lr   r   <lib/python3.10/site-packages/matplotlib/tests/test_cycles.py
<listcomp>       z)test_colorcycle_basic.<locals>.<listcomp>r   r   r	   r   pltsubplotsset_prop_cycler   rangeplotlinesfigax_r   r   r   test_colorcycle_basic   
    r!   c                  C   s   t  \} }|tdg dtdg d  tdD ]}|tdtd qdd |jD g d	ks6J d
d |jD g dksDJ d S )Ncr   marker.*xr
   r   c                 S   r   r   r   r   r   r   r   r      r   z%test_marker_cycle.<locals>.<listcomp>r   c                 S   r   r   Z
get_markerr   r   r   r   r      r   r&   r'   r(   r&   r   r   r   r   r   test_marker_cycle   s    r+   c                  C   s   t  \} }|jtg dtg dd tdD ]}|tdtd qdd |jD g dks5J d	d |jD g d
ksCJ d S )Nr   r%   )r#   r$   r
   r   c                 S   r   r   r   r   r   r   r   r   $   r   z=test_marker_cycle_kwargs_arrays_iterators.<locals>.<listcomp>r   c                 S   r   r   r)   r   r   r   r   r   %   r   r*   )	r   r   r   nparrayiterr   r   r   r   r   r   r   )test_marker_cycle_kwargs_arrays_iterators   s   
 r/   c                  C   r   )Nls---:r
   r   c                 S   r   r   Zget_linestyler   r   r   r   r   -   r   z-test_linestylecycle_basic.<locals>.<listcomp>r2   r3   r4   r2   r   r   r   r   r   test_linestylecycle_basic(   r"   r7   c                  C   s   t  \} }|tdg dtdg d tdg d  tdD ]}|tdtd q"d	d
 |jD dd
 dD ks@J dd
 |jD g dksNJ dd
 |jD g dks\J d S )Nr#   r   hatchxxO|-Z	linestyler1   r
   r   c                 S   r   r   Zget_facecolorr   pr   r   r   r   7   r   z(test_fillcycle_basic.<locals>.<listcomp>c                 S      g | ]}t j|qS r   mplZcolorsZto_rgbar   r#   r   r   r   r   8       r   c                 S   r   r   Z	get_hatchr>   r   r   r   r   9   r   )r:   r;   r<   r:   c                 S   r   r   r5   r>   r   r   r   r   :   r   r6   r   r   r   r   r   fillpatchesr   r   r   r   test_fillcycle_basic0   s    rI   c                  C   s   t  \} }|tdg dtdg d tdg d  td}|j||dd	d
 |j||dd
 ||| ||| dd |jD dd dD ksPJ dd |jD g dks^J d S )Nr   r   r8   r9   r$   )r&   r'   Dr   r   r:   )r8   r;   c                 S   r   r   r=   r>   r   r   r   r   K   r   z)test_fillcycle_ignore.<locals>.<listcomp>c                 S   r@   r   rA   rC   r   r   r   r   L   rD   )r   r   r   r	   c                 S   r   r   rE   r>   r   r   r   r   M   r   )r:   r;   r;   r<   rF   )r   r   tr   r   r   test_fillcycle_ignore=   s    rL   c                  C   s|   t  \} }|dddg td}tddD ]
}|j||dd q||| ||| dd	 |jD g d
ks<J d S )N	linewidth   r
   r      皙?lwc                 S   r   r   Zget_linewidthr   r   r   r   r   X   r   z0test_property_collision_plot.<locals>.<listcomp>)rP   rP   rP   rN   r
   )r   r   r   r   r   r   r   r   rK   r#   r   r   r   test_property_collision_plotP   s    rU   c                  C   s   t  \} }|jg ddd td}tddD ]
}|j||dd q||| ||| d	d
 |jD dd
 dD ks@J dd
 |jD g dksNJ d S )N)rN      r
         Zbgcmy)rM   Z	facecolorr   rO   r
   rP   rQ   c                 S   r   r   r=   r>   r   r   r   r   c   r   z0test_property_collision_fill.<locals>.<listcomp>c                 S   r@   r   rA   rC   r   r   r   r   d   rD   c                 S   r   r   rS   r>   r   r   r   r   e   r   )rP   rP   rP   rW   rX   )r   r   r   r   rG   rH   rT   r   r   r   test_property_collision_fill[   s    rY   c               	   C   s  t  \} }|d  |tdddg |dd |dd |dddg |dtddg |dtddg |dtg dg d	g d
g |dg ddgg dg |jddgddgddgd |jtddgtddgtddgd d S )NrM   rO   rN   r   ZrgywkbcmrR   )rO   rN   )rO   r   r   )r   rO   r   )r   r   rO   Zdashes   )   rV   rO   rV   kwr2   r3   )rR   r   r0   )r   r   r   r   r.   r,   r-   r   r   r   r   r   test_valid_input_formsh   s$   

r_   c                  C   s6  t  \} }t }t }t }t| t |jddgddd  W d    n1 s-w   Y  |jg dd t| t |jddgddd  W d    n1 sXw   Y  | | ksgJ |d  t| t |jddgddd  W d    n1 sw   Y  | | ksJ d S )NrO   rN   label)r`   r   )r   	   r
   )rM   )	r   r   r   
contextlibredirect_stdoutZgetpr   r   getvalue)r   r   Zprop0Zprop1Zprop2r   r   r   test_cycle_reset|   s"   
re   c                  C   sr  t  \} }tttf |d W d    n1 sw   Y  tttf |ddg W d    n1 s;w   Y  tttf |dd W d    n1 sXw   Y  tttf |dd W d    n1 suw   Y  tttf |dddh W d    n1 sw   Y  tttf |jddd W d    n1 sw   Y  tttf |dddg W d    n1 sw   Y  tttf |jddgd	 W d    n1 sw   Y  tttf |tddgd	 W d    n	1 sw   Y  tt |td
dd W d    d S 1 s2w   Y  d S )NrO   rN   r   ZfishrM   r   )rM   r   foobar)rf   ZrgbZcmy)r   r#   )r   r   pytestZraises	TypeError
ValueErrorr   r   r^   r   r   r   test_invalid_input_forms   s>   $rj   )rb   ior   Z
matplotlibrB   Zmatplotlib.pyplotZpyplotr   Znumpyr,   rg   r   r!   r+   r/   r7   rI   rL   rU   rY   r_   re   rj   r   r   r   r   <module>   s$    

