U
    Cvf                     @  sT  d dl mZ d dlZd dlZd dlZd dlZd dl	m
Z ejdd Zejdd Zejdd	 Zejd
d ZddddZddddZddddZddddZddddZddddZddddZddddZddddZddd d!Zddd"d#Zddd$d%Zddd&d'Zddd(d)Zddd*d+Zddd,d-Z dS ).    )annotationsN)formatting_htmlc                   C  s   t tjdddS )Nr         )xrZ	DataArraynprandomZRandomStaterandn r
   r
   E/tmp/pip-unpacked-wheel-h316xyqg/xarray/tests/test_formatting_html.py	dataarray   s    r   c                 C  s   t d |  S )NZdask)pytestZimportorskipchunk)r   r
   r
   r   dask_dataarray   s    
r   c                  C  s,   t jjddgddggdd} ti d| iS )Nab      )Zlevel_1Zlevel_2)namesx)pdZ
MultiIndexZfrom_productr   Dataset)Zmindexr
   r
   r   
multiindex   s
     r   c                  C  s   t jdddd} tdtj | jjd d  }dd	|d
d  }|dtj	|j
d  }|d dtj	|j
d  }tjd|fd|fd| dddgdddidS )Nz
2000-01-01z
2001-12-31time)namer   g     v@gQ?
      r      )r   location)tminZtmaxz<IA>INZILdescriptionz
Test data.)attrs)r   Z
date_ranger   sinpiZ	dayofyearvaluesZreshaper   r	   sizer   r   )timesZannual_cyclebaseZtmin_valuesZtmax_valuesr
   r
   r   dataset   s     r*   None)returnc                 C  s   t | }|dstd S )Nz
<pre>array)fhshort_data_repr_html
startswithAssertionError)r   	data_reprr
   r
   r   test_short_data_repr_html1   s    
r2   c                 C  s    |  ddd i}t| d S )Nr   c                 S  s   | d S )Nr    r
   )r   r
   r
   r   <lambda>7       z8test_short_data_repr_html_non_str_keys.<locals>.<lambda>)Zassignr-   dataset_repr)r*   dsr
   r
   r   &test_short_data_repr_html_non_str_keys6   s    r7   c                 C  s0   t | jdstt| }|| j ks,td S )N_repr_html_)hasattrdatar0   r-   r.   r8   )r   r1   r
   r
   r   test_short_data_repr_html_dask;   s    
r;   c                  C  s$   i } g }t | |}|dks td S )N r-   Zformat_dimsr0   ZdimsZdims_with_index	formattedr
   r
   r   test_format_dims_no_dimsA   s    r@   c                  C  s*   ddd} g }t | |}d|ks&td S )Nr   r   z<x>yz	&lt;x&gt;r=   r>   r
   r
   r    test_format_dims_unsafe_dim_nameH   s    
rC   c                  C  s.   ddddg } }t | |}d|ks*td S )Nr   r   r   rB   r   class='xr-has-index'r=   r>   r
   r
   r   test_format_dims_non_indexO   s    rF   c                  C  s.   ddddg } }t | |}d|ks*td S )Nr   r   rD   r   rE   r=   r>   r
   r
   r   test_format_dims_indexU   s    rG   c                  C  sH   ddd} t | }d|ks td|ks,td|ks8td|ksDtd S )Nr   z<pd.DataFrame>rA   z!<dt><span>&lt;x&gt; :</span></dt>z<dt><span>y :</span></dt>z
<dd>3</dd>z<dd>&lt;pd.DataFrame&gt;</dd>)r-   Zsummarize_attrsr0   )r#   r?   r
   r
   r   4test_summarize_attrs_with_unsafe_attr_name_and_value[   s    

rH   c              	   C  s   t | }d|kst|ddks(t|ddks:ttjdd@ t | }d|ks^t|ddkspt|ddkstW 5 Q R X d S )	Ndim_0z,class='xr-array-in' type='checkbox' checked>r   z8class='xr-section-summary-in' type='checkbox' disabled >r   F)Zdisplay_expand_datar   )r-   
array_reprr0   countr   set_options)r   r?   r
   r
   r   test_repr_of_dataarrayd   s    

rM   c                 C  s   t | }d|kstd S )Nz(x)r-   r5   r0   )r   r?   r
   r
   r   test_repr_of_multiindexz   s    
rO   c              	   C  s   t | }|ddkst|ddks.td|ksBd|ksBtd|ksNttjdddd	d
B t | }|ddks~td|ksd|kstd|kstW 5 Q R X d S )Nz7class='xr-section-summary-in' type='checkbox'  checked>r   z0class='xr-section-summary-in' type='checkbox'  >r   z&lt;U4z&gt;U4z
&lt;IA&gt;FT)Zdisplay_expand_coordsZdisplay_expand_data_varsZdisplay_expand_attrsZdisplay_expand_indexes)r-   r5   rK   r0   r   rL   r*   r?   r
   r
   r   test_repr_of_dataset   s&    

rQ   c                 C  s   t | }d|kstd S )Nz#<pre class='xr-text-repr-fallback'>rN   rP   r
   r
   r   test_repr_text_fallback   s    
rR   c               	   C  s   t ddgdddgdddggd	d
i} t| ds4tt jdd |   }W 5 Q R X |drl|dsptd|ks|td S )Nr   r   r   r   r   r      r   Zfoobarr8   htmlZdisplay_stylez<divz</div>zxarray.Variable)	r   Variabler9   r0   rL   r8   stripr/   endswithvrU   r
   r
   r   test_variable_repr_html   s    &r\   c                 C  sD   |   }d|jd< |d |d< t|}d|ks4td|ks@td S )Nz
Test valuer   r    r   z,<dt><span>1 :</span></dt><dd>Test value</dd>z'<div class='xr-var-name'><span>2</span>)copyr#   r-   r5   r0   )r*   r6   r?   r
   r
   r   test_repr_of_nonstr_dataset   s    

r^   c                 C  s<   | j dd}d|jd< t|}d|ks,td|ks8td S )Nr   )rI   valuer   z'<dt><span>1 :</span></dt><dd>value</dd>z<li><span>15</span>: 4</li>)renamer#   r-   rJ   r0   )r   dar?   r
   r
   r   test_repr_of_nonstr_dataarray   s
    

rb   c               	   C  st   t ddgdddgdddggd	d
i} t| ds4tt jdd |   }W 5 Q R X d|ksdtd|ksptd S )Nr   r   r   r   r   r   rS   r      rT   r8   rU   rV   z&<dt><span>22 :</span></dt><dd>bar</dd>z <li><span>10</span>: 3</li></ul>)r   rW   r9   r0   rL   r8   rX   rZ   r
   r
   r   test_nonstr_variable_repr_html   s    &rd   )!
__future__r   Znumpyr   Zpandasr   r   Zxarrayr   Zxarray.corer   r-   Zfixturer   r   r   r*   r2   r7   r;   r@   rC   rF   rG   rH   rM   rO   rQ   rR   r\   r^   rb   rd   r
   r
   r
   r   <module>   s:   



		