
    d                       d dl mZ d dlZd dlZd dlmZmZ d dlmZ d dlm	Z	m
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 G d d          Zej                            dddg          d             ZdS )    )annotationsN)concatmerge)
FILE_CACHE)OPTIONS_get_keep_attrs)create_test_datareturnNonec                     t          j        t                    5  t          j        d           d d d            d S # 1 swxY w Y   d S )NT)not_a_valid_optionspytestraises
ValueErrorxarrayset_options     9lib/python3.11/site-packages/xarray/tests/test_options.pytest_invalid_option_raisesr      s    	z	"	" 5 5t44445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s   =AAc                    t          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        d           d d d            d S # 1 swxY w Y   d S )Nr   display_widthig      @r   r   r   r   test_display_widthr      s|   	z	"	" , ,++++, , , , , , , , , , , , , , ,	z	"	" . .----. . . . . . . . . . . . . . .	z	"	" . .----. . . . . . . . . . . . . . . . . .s3   <A A  BB	B&C		CCc                    t          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   t          j        d          5  t
          d         dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Ninvalidarithmetic_joinexactr   )r   r   r   r   r   r   r   r   r   test_arithmetic_joinr!      s   	z	"	" 6 6955556 6 6 6 6 6 6 6 6 6 6 6 6 6 6		G	4	4	4 5 5()W444445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s!   <A A A>>BBc                 t   t          j        t                    5  t          j        d            d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        d          5  t          d         sJ 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )N)enable_cftimeindexzno-op)matchTr#   )r   r   r   r   r   warnsFutureWarningr   r   r   r   test_enable_cftimeindexr'   !   sr   	z	"	" 4 4d33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	m7	3	3	3 1 14888 	1 	1/00000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1sE   <A A "B-8B	B-B	B-B	B--B14B1c                 N   t          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   t
          j        } t          j        d          5  t
          j        dk    sJ 	 d d d            n# 1 swxY w Y   t
          j        | k    sJ d S )Nr   )file_cache_maxsize{   )r   r   r   r   r   r   maxsize)original_sizes    r   test_file_cache_maxsizer-   )   s   	z	"	" 1 1a00001 1 1 1 1 1 1 1 1 1 1 1 1 1 1&M		s	3	3	3 ) )!S((((() ) ) ) ) ) ) ) ) ) ) ) ) ) )......s!   <A A (BBBc                 ,   t          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   t          j        d          5  t
          d         sJ 	 d d d            n# 1 swxY w Y   t          j        d          5  t
          d         rJ 	 d d d            n# 1 swxY w Y   t          j        d          5  t          d          sJ t          d          rJ 	 d d d            d S # 1 swxY w Y   d S )Ninvalid_str
keep_attrsTr1   Fdefault)r2   )r   r   r   r   r   r   r   r   r   r   test_keep_attrsr3   2   s   	z	"	" 5 5m44445 5 5 5 5 5 5 5 5 5 5 5 5 5 5		t	,	,	, % %|$$$$$% % % % % % % % % % % % % % %		u	-	-	- ) )<((((() ) ) ) ) ) ) ) ) ) ) ) ) ) )		y	1	1	1 2 2t,,,,,,"511111112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2sE   <A A A99A= A=B66B:=B:%D		DDc                 p   t           d         } t          j        d          5  t           d         dk    sJ t          j        d          5  t           d         dk    sJ 	 d d d            n# 1 swxY w Y   t           d         dk    sJ 	 d d d            n# 1 swxY w Y   t           d         | k    sJ d S )Nr      r      )r   r   r   originals    r   test_nested_optionsr9   >   sD   'H		!	,	,	, - -'1,,,,a000 	1 	1?+q00000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1'1,,,,,	- - - - - - - - - - - - - - -
 ?#x//////s5   )BA-!B-A1	1B4A1	5BBBc                 d   d} t           d         | k    sJ t          j        t                    5  t	          j        d           d d d            n# 1 swxY w Y   t	          j        d          5  t           d         dk    sJ 	 d d d            n# 1 swxY w Y   t           d         | k    sJ d S )Nhtmldisplay_styler/   r<   text)r   r   r   r   r   r   r7   s    r   test_display_styler?   H   s4   H?#x////	z	"	" 8 877778 8 8 8 8 8 8 8 8 8 8 8 8 8 8		&	1	1	1 2 2'6111112 2 2 2 2 2 2 2 2 2 2 2 2 2 2?#x//////s#   AAA1BBBc                >    t          |           }ddddid|_        |S N   historynested	more_infoattr1attr2attr3r	   attrs)seeddss     r   create_test_dataset_attrsrN   R   s*    	$		BY(K9PQQBHIr   var1c                J    t          |           |         }ddddid|_        |S rA   rJ   )rL   vardas      r   create_test_dataarray_attrsrS   X   s/    	$			$BY(K9PQQBHIr   c                  z    e Zd ZddZddZddZddZej        j	        dd            Z
ddZdd	Zdd
ZddZdS )TestAttrRetentionr
   r   c                N   t                      }|j        }|                                }|j        i k    sJ t          j        d          5  |                                }|j        i k    sJ 	 d d d            n# 1 swxY w Y   t          j        d          5  |                                }|j        |k    sJ 	 d d d            n# 1 swxY w Y   t          j        d          5  |                                }|j        i k    sJ 	 d d d            d S # 1 swxY w Y   d S Nr2   r0   TF)rN   rK   meanr   r   )selfrM   original_attrsresults       r   test_dataset_attr_retentionz-TestAttrRetention.test_dataset_attr_retention_   s   &(( |r!!!!9555 	& 	&WWYYF<2%%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 4000 	2 	2WWYYF<>11111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 5111 	& 	&WWYYF<2%%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&6   "A;;A?A?"C

CC*"DD!Dc                N   t                      }|j        }|                                }|j        i k    sJ t          j        d          5  |                                }|j        i k    sJ 	 d d d            n# 1 swxY w Y   t          j        d          5  |                                }|j        |k    sJ 	 d d d            n# 1 swxY w Y   t          j        d          5  |                                }|j        i k    sJ 	 d d d            d S # 1 swxY w Y   d S rW   )rS   rK   rX   r   r   )rY   rR   rZ   r[   s       r   test_dataarray_attr_retentionz/TestAttrRetention.test_dataarray_attr_retentions   s   (** |r!!!!9555 	& 	&WWYYF<2%%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 4000 	2 	2WWYYF<>11111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 5111 	& 	&WWYYF<2%%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&r]   c                (   t          j        g ddg dfg          }ddddid|_        |j        }|                    d                              d	
          }|j        |k    sJ t          j        d
          5  |                    d                              d	
          }|j        |k    sJ 	 d d d            n# 1 swxY w Y   t          j        d	
          5  |                    d          }|                                }|j        |k    sJ 	 d d d            n# 1 swxY w Y   t          j        d
          5  |                    d                                          }|j        i k    sJ 	 d d d            d S # 1 swxY w Y   d S )N)r5   r6      x)r5   r5   r6   rB   rC   rD   rE   rF   Tr0   r2   F)r   	DataArrayrK   groupbysumr   )rY   rR   rZ   r[   result1s        r   test_groupby_attr_retentionz-TestAttrRetention.test_groupby_attr_retention   s]   iii3			*:);<<h=TUU C$$$55|~----9555 	2 	2ZZ__((D(99F<>11111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 4000 	2 	2jjooG[[]]F<>11111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2
 5111 	& 	&ZZ__((**F<2%%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s6   <7C  CC 7D$$D(+D(5FFFc                    t                      }t                      }ddi|_        |j        }t          ||gd          }|j        |k    sJ d S )Nwrong
attributesdim1)dim)rN   rK   r   )rY   ds1ds2rZ   r[   s        r   test_concat_attr_retentionz,TestAttrRetention.test_concat_attr_retention   s\    '))'))l+	
 c
///|~------r   c                    t          d          }t          d          }ddi|_        |j        }t          ||g          }|j        |k    sJ d S )NrO   )rQ   var2ri   rj   )rS   rK   r   )rY   da1da2rZ   r[   s        r   test_merge_attr_retentionz+TestAttrRetention.test_merge_attr_retention   sa    )f555)f555l+	 Sz""|~------r   c                    t                      }t          j        d          5  |                                }|                    d          sJ d|v sJ d|v sJ 	 d d d            d S # 1 swxY w Y   d S )Nr>   r=   <pre>&#x27;nested&#x27;z&lt;xarray.Dataset&gt;rN   r   r   _repr_html_
startswith)rY   rM   r>   s      r   test_display_style_textz)TestAttrRetention.test_display_style_text   s    &((f555 	4 	4>>##D??7+++++'4////+t33333		4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   8A**A.1A.c                    t                      }t          j        d          5  |                                }|                    d          sJ d|v sJ 	 d d d            d S # 1 swxY w Y   d S )Nr;   r=   <div>rw   rx   )rY   rM   r;   s      r   test_display_style_htmlz)TestAttrRetention.test_display_style_html   s    &((f555 	0 	0>>##D??7+++++'4/////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0   2A$$A(+A(c                    t                      }t          j        d          5  |                                }|                    d          sJ d|v sJ 	 d d d            d S # 1 swxY w Y   d S )Nr>   r=   rv   z%&lt;xarray.DataArray &#x27;var1&#x27;rS   r   r   ry   rz   )rY   rR   r>   s      r   !test_display_dataarray_style_textz3TestAttrRetention.test_display_dataarray_style_text   s    (**f555 	C 	C>>##D??7+++++:dBBBBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cr   c                    t                      }t          j        d          5  |                                }|                    d          sJ d|v sJ 	 d d d            d S # 1 swxY w Y   d S )Nr;   r=   r}   z#x27;nested&#x27;r   )rY   rR   r;   s      r   !test_display_dataarray_style_htmlz3TestAttrRetention.test_display_dataarray_style_html   s    (**f555 	/ 	/>>##D??7+++++&$.....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/r   Nr
   r   )__name__
__module____qualname__r\   r_   rg   ro   r   markxfailrt   r{   r~   r   r   r   r   r   rU   rU   ^   s        & & & &(& & & &(& & & &*
. 
. 
. 
. [	. 	. 	. 	.4 4 4 40 0 0 0C C C C/ / / / / /r   rU   	set_valueleftr    c                    t          j        |           5  t          j                    }|d         | k    sJ 	 ddd           dS # 1 swxY w Y   dS )zDTest to check if get_options will return changes made by set_optionsr   r   N)r   r   get_options)r   r   s     r   test_get_options_retentionr      s     
	I	6	6	6 ; ;(**,-:::::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;s   "AA
A
r   )r   )r   rO   )
__future__r   r   r   r   r   xarray.backends.file_managerr   xarray.core.optionsr   r   xarray.tests.test_datasetr	   r   r   r!   r'   r-   r3   r9   r?   rN   rS   rU   r   parametrizer   r   r   r   <module>r      s   " " " " " "                   3 3 3 3 3 3 8 8 8 8 8 8 8 8 6 6 6 6 6 65 5 5 5
. . . .5 5 5 51 1 1 1/ / / /	2 	2 	2 	20 0 0 00 0 0 0      q/ q/ q/ q/ q/ q/ q/ q/h  ; ;	 ; ; ;r   