
    dy                    Z   d dl m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
                    5   ej        d           d dlmZ d dlmZ ddd           n# 1 swxY w Y   ej        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S )    )annotationsN)assert_equalnumpyz1.22)
minversionignore)Arrayreturn!tuple[xr.DataArray, xr.DataArray]c                 F   t          j        t                              g dddt          j        gg          ddddgi          } t          j        t          j        g dddt          j        gg          ddddgi          }t          |j        t                    sJ | |fS )	N)      ?       @g      @g      @g      @xyr   
      )dimscoords)
xr	DataArraynparraynanxpasarray
isinstancedatar   )np_arrxp_arrs     ;lib/python3.11/site-packages/xarray/tests/test_array_api.pyarraysr!      s    \
///Cbf#5677b"X  F
 \

OOOc3%7899b"X  F
 fk5)))))6>    r!   Nonec                |    | \  }}|dz   }|dz   }t          |j        t                    sJ t          ||           d S )N   r   r   r   r   r!   r   r   expectedactuals        r    test_arithmeticr*   "   sK    NFFzHaZFfk5)))))"""""r"   c                    | \  }}|                                 }|                                 }t          |j        t                    sJ t	          ||           d S Nsumr   r   r   r   r'   s        r    test_aggregationr/   *   sS    NFFzz||HZZ\\Ffk5)))))"""""r"   c                    | \  }}|                     d          }|                     d          }t          |j        t                    sJ t	          ||           d S )NF)skipnar-   r'   s        r    test_aggregation_skipnar2   2   s_    NFFzzz''HZZuZ%%Ffk5)))))"""""r"   c                   | \  }}|                     t          j                  }|                     t          j                  }|j        t          j        k    sJ t	          |j        t                    sJ t          ||           d S r,   )astyper   int64dtyper   r   r   r   r'   s        r    test_astyper7   :   st    NFF}}RX&&H]]28$$F<28####fk5)))))"""""r"   c                   | \  }}t          j        t                              ddg          d          }t          j        t	          j        ddg          d          }t          j        ||          }t          j        ||          }t          |          t          |          k    sJ t          ||          D ]1\  }}t          |j
        t                    sJ t          ||           2d S )Nr   r   r   r   )r   r   r   r   r   r   	broadcastlenzipr   r   r   r   )	r!   r   r   np_arr2xp_arr2r(   r)   aes	            r    test_broadcastrA   C   s    NFFl288S#J//c:::Gl2:sCj11<<<G|FG,,H\&'**Fv;;#h--''''FH%%  1!&%(((((Q r"   c                    | \  }}t          j        ||fd          }t          j        ||fd          }t          |j        t                    sJ t          ||           d S )Nr   )dim)r   concatr   r   r   r   r'   s        r    test_concatrE   P   sk    NFFy&&)s333HY'S111Ffk5)))))"""""r"   c                    | \  }}|d d df         }|d d df         }t          |j        t                    sJ t          ||           d S )Nr   r&   r'   s        r    test_indexingrG   X   s[    NFFaaad|HAAAqD\Ffk5)))))"""""r"   c                l    | \  }}|j         |j        j         k    sJ |j         |j        j         k    sJ d S r,   )nbytesr   )r!   r   r   s      r    test_propertiesrJ   `   sA    NFF=FK.....=FK.......r"   c                    | \  }}|                                 }|                                 }t          |j        t                    sJ t	          ||           d S r,   )	transposer   r   r   r   r'   s        r    test_reorganizing_operationrM   f   s[    NFF!!HFfk5)))))"""""r"   c                    | \  }}|                     d          }|                     d          }t          |j        t                    sJ t	          ||           d S )Nr   )z)stackr   r   r   r   r'   s        r    
test_stackrQ   n   s_    NFF||j|))H\\J\''Ffk5)))))"""""r"   c                 j   t          j        t                              ddg          d          } t          j        t	          j        ddg          d          }t          j        | dd          }t          j        |dd          }t          |j        t                    sJ t          ||           d S )N   r   r   r9   )r   r   r   r   r   r   wherer   r   r   r   )r   r   r(   r)   s       r    
test_whererU   v   s    \"((Aq6**555F\"*aV,,3777Fx1%%HXfa##Ffk5)))))"""""r"   )r	   r
   )r!   r
   r	   r#   )r	   r#   )
__future__r   warningspytestxarrayr   xarray.testingr   importorskipr   catch_warningssimplefilternumpy.array_api	array_apir   numpy.array_api._array_objectr   fixturer!   r*   r/   r2   r7   rA   rE   rG   rJ   rM   rQ   rU    r"   r    <module>rc      s   " " " " " "       ' ' ' ' ' 'VV444X 4 4H(###      3333334 4 4 4 4 4 4 4 4 4 4 4 4 4 4    # # # ## # # ## # # ## # # #
 
 
 
# # # ## # # #/ / / /# # # ## # # ## # # # # #s   A##A'*A'