U
    e»{j­  ã                   @   sh   d Z ddlZddlZddlmZ ddlmZmZ ddl	m
Z
mZmZmZ G dd„ dƒZG dd	„ d	ƒZdS )
z$
Module to test statistic functions
é    N)Úassert_almost_equal)ÚIdentityÚMapping)ÚleastsquareÚleastsquare_1dÚleastsquare_2dÚleastsquare_3dc                   @   sL   e Zd ZdZedd„ ƒZdd„ Zdd„ Zdd	„ Zd
d„ Z	dd„ Z
dd„ ZdS )ÚTestLeastSquare_XDz>Tests for leastsquare with pre-specified number of dimensions.c                 C   sj   t dd�| _t dd�tddd�B | _t dd�tddd�B | _tjdddd	� | _ | _ | _	| _
d| _d S )
Né   ©Zn_inputsé   ©r   é   r   é
   éd   ©Únum)r   Úmodel1Dr   Úmodel2DÚmodel3DÚnpÚlinspaceÚdataÚxÚyÚzÚlsq_exp©Úcls© r   úe/var/www/html/bwave/python/venv/lib/python3.8/site-packages/astropy/modeling/tests/test_statistics.pyÚsetup_class   s
    $zTestLeastSquare_XD.setup_classc                 C   s$   t | j| jd | jƒ}t|| jƒ d S ©N)r   r   r   r   r   r   ©ÚselfZlsqr   r   r    Útest_1d_no_weights    s    z%TestLeastSquare_XD.test_1d_no_weightsc                 C   s*   t | j| jt d¡| jƒ}t|| jƒ d S ©Nr   )r   r   r   r   Úonesr   r   r   r#   r   r   r    Útest_1d_with_weights$   s    z'TestLeastSquare_XD.test_1d_with_weightsc                 C   s(   t | j| jd | j| jƒ}t|| jƒ d S r"   )r   r   r   r   r   r   r   r#   r   r   r    Útest_2d_no_weights(   s    z%TestLeastSquare_XD.test_2d_no_weightsc                 C   s.   t | j| jt d¡| j| jƒ}t|| jƒ d S r&   )	r   r   r   r   r'   r   r   r   r   r#   r   r   r    Útest_2d_with_weights,   s    z'TestLeastSquare_XD.test_2d_with_weightsc                 C   s,   t | j| jd | j| j| jƒ}t|| jƒ d S r"   )r   r   r   r   r   r   r   r   r#   r   r   r    Útest_3d_no_weights0   s    z%TestLeastSquare_XD.test_3d_no_weightsc                 C   s2   t | j| jt d¡| j| j| jƒ}t|| j	ƒ d S r&   )
r   r   r   r   r'   r   r   r   r   r   r#   r   r   r    Útest_3d_with_weights4   s         ÿz'TestLeastSquare_XD.test_3d_with_weightsN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úclassmethodr!   r%   r(   r)   r*   r+   r,   r   r   r   r    r	      s   
r	   c                   @   sD   e Zd ZdZedd„ ƒZdd„ Zdd„ Zdd	„ Zd
d„ Z	dd„ Z
dS )ÚTestLeastSquare_NDzTests for leastsquare.c                 C   sR   t dd�| _t dd�tddd�B | _tjdddd� | _ | _ | _| _	d| _
d S )	Nr
   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   >   s    $zTestLeastSquare_ND.setup_classc                 C   s$   t | j| jd | jƒ}t|| jƒ d S r"   )r   r   r   r   r   r   r#   r   r   r    r%   F   s    z%TestLeastSquare_ND.test_1d_no_weightsc                 C   s*   t | j| jt d¡| jƒ}t|| jƒ d S r&   )r   r   r   r   r'   r   r   r   r#   r   r   r    r(   J   s    z'TestLeastSquare_ND.test_1d_with_weightsc                 C   s,   t | j| jd | j| j| jƒ}t|| jƒ d S r"   )r   r   r   r   r   r   r   r   r#   r   r   r    r+   N   s    z%TestLeastSquare_ND.test_3d_no_weightsc                 C   s2   t | j| jt d¡| j| j| jƒ}t|| j	ƒ d S r&   )
r   r   r   r   r'   r   r   r   r   r   r#   r   r   r    r,   R   s    "z'TestLeastSquare_ND.test_3d_with_weightsc              	   C   s4   d}t jt|d�� td| jd | jƒ W 5 Q R X d S )Nz/Shape mismatch between model .* and measured .*)Úmatchr   )ÚpytestZraisesÚ
ValueErrorr   r   r   )r$   ZMESSAGEr   r   r    Útest_shape_mismatchV   s    z&TestLeastSquare_ND.test_shape_mismatchN)r-   r.   r/   r0   r1   r!   r%   r(   r+   r,   r6   r   r   r   r    r2   ;   s   
r2   )r0   Únumpyr   r4   Znumpy.testingr   Zastropy.modeling.modelsr   r   Zastropy.modeling.statisticr   r   r   r   r	   r2   r   r   r   r    Ú<module>   s   '