3
���h;( � @ sL d Z ddlZddlZddlmZmZ ddljjZddl Zddl m
Z
mZmZm
Z
mZ ddlmZmZmZmZmZmZ ddd d
ddd
dddddddgZddlmZ dddddgZee Zd1dd�Zd2d d�Zd3d"d#�Zd$d� Zd4d%d�Zd5d&d'�ZeZ d6d)d �Z!e!Z"d7d*d�Z#d8d+d
�Z$d9d,d�Z%d:d-d�Z&d;d.d
�Z'd<d/d�Z(d=d0d�Z)dS )>z�Miscellaneous functions for testing masked arrays and subclasses
:author: Pierre Gerard-Marchant
:contact: pierregm_at_uga_dot_edu
:version: $Id: testutils.py 3529 2007-11-13 08:01:14Z jarrod.millman $
� N)�ndarray�float_)�assert_�assert_allclose�assert_array_almost_equal_nulp�
assert_raises�
build_err_msg� )�mask_or�getmask�masked_array�nomask�masked�filled�almost�approx�assert_almost_equal�assert_array_almost_equal�assert_array_approx_equal�assert_array_compare�assert_array_equal�assert_array_less�assert_close�assert_equal�assert_equal_records�assert_mask_equal�assert_not_equal�fail_if_array_equal)�TestCaser r r r r T��h㈵��>�:�0�yE>c C s� t t| �t|��}t| �}t|�}|jjdks:|jjdkrJtj||�j� S tt|d|d�|�j t
�}tt|d|d�d�j t
�} tjtj
|| �||tj
| � �}
|
j� S )a�
Returns true if all components of a and b are equal to given tolerances.
If fill_value is True, masked values considered equal. Otherwise,
masked values are considered unequal. The relative error rtol should
be positive and << 1.0 The absolute error atol comes into play for
those elements of b that are very small or zero; it says how small a
must be also.
�OF)�copy�maskr )r
r r �dtype�char�np�equal�ravelr �astyper Z
less_equal�umathZabsolute)�a�b�
fill_value�rtolZatol�m�d1�d2�x�y�d� r5 �3/tmp/pip-build-5_djhm0z/numpy/numpy/ma/testutils.pyr ) s $� c
C s� t t| �t|��}t| �}t|�}|jjdks:|jjdkrJtj||�j� S tt|d|d�|�j t
�}tt|d|d�d�j t
�}tjtj|| �|�d| k} | j� S )z�
Returns True if a and b are equal up to decimal places.
If fill_value is True, masked values considered equal. Otherwise,
masked values are considered unequal.
r! F)r" |