
    M/Ph                         d 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lmc mZ ddlmZmZmZ d Zd	 Z G d
 d          Z G d de          ZdS )zM
Created on Wed Feb 17 23:44:18 2021

Author: Josef Perktold
License: BSD-3

    N)assert_allcloseassert_array_less)stats)CopulaDistributionArchimedeanCopula)
transforms)BernsteinDistributionBernsteinDistributionBVBernsteinDistributionUVc                     t          j        dg          } | j        dk    }| j        |                                          dz  | j        |<   d| j                                        z
  | j        | j        dk    <   t	          j        dd          }|                    t          j        | j                            }t          |          }|                    | j                  }t          ||d           t          t          j        t          j        ||z
                      d	           |                    t          j        | j                            }|                    | j                  }t          ||d
           t          t          j        t          j        ||z
                      d           t          j        | j                  }t          |          }	|	                    |          }
t          |
|d           |	                    |          }t          ||d           |	                    |d          }
t          |
|d           |	                    |d          }t          ||d           |	                    |d          }
t          |
|d           |	                    |d          }t          ||d           |                    d          }t#          |          dk    sJ d S )Ni  r               {Gzt?atolMbP?g{Gz?{Gz?vIh%<=beta)methodbpolyd   )dt_Gridx_flatminr   r   cdfnpsqueezer	   r   r   medianabspdfr   rvslen)gridlocdistrcdf_gbpdcdf_bppdfvpdf_bpxfbpd1cdf_bp1pdf_bp1r%   s                n/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/distributions/tests/test_bernstein.pytest_bernstein_distribution_1dr4      s   8SE??D
+
C{C4(,,..2DK$%(9(9$9DKq !Jq!EIIbj--..E

&
&CWWT[!!FFE....biv~ 6 677???99RZ,,--DWWT[!!FFDt,,,,biv} 5 566=== 
DK	 	 B"5))DhhrllGGV%0000hhrllGGV%0000hhr&h))GGV%0000hhr&h))GGV%0000hhr'h**GGV%0000hhr'h**GGV%0000 ''#,,Cs88s??????    c                  N   t          j        ddg          } t          j        }d}t	           |                      }t
          j        }t
          j        }t          |||g|          }|                    | j	        |          }|
                    | j                  }t          |          }	|	                    | j	                  }
t          |
|d           t          t          j        t          j        |
|z
                      d           t          j        ddgd          }|                    |j	                  }|	                    |j	                  }t          ||d	d
           t          t          j        t          j        ||z
                      d           t          j        t          j        ddd          t          j        d          f          }|	                    |          }t          ||d d df         d           t          j        t          j        d          t          j        ddd          f          }|	                    |          }t          ||d d df         d           t          j        ddd          }|d d d f         }|	                    d          }|                    |          }t          ||d           |                    |          }t          |t          j        t/          |                    d           |	                    d          }|                    |          }t          ||d           |                    |          }t          |t          j        t/          |                    d           d S )N3   r   cop_argsr   r   r   g:0yE>epsr   g{Gz?r   rtol皙?r   r   r   r   )r   r   traTransfFrankr   r   uniformr   r   r   reshapek_gridr	   r   r   r    r"   r#   r$   column_stacklinspaceonesget_marginalr&   )r'   cop_trargscadistr1distr2cadcdfvr*   r+   r,   grid_epsr-   r.   xxcdf_m1cdf_m2xx_bpd_m1pdf_m1bpd_mcdf_mpdf_ms                          r3   test_bernstein_distribution_2drZ   @   s   8RHD_FD	6688	$	$B]F]F
R&&!1D
A
A
AC774;%%DLL%%E

&
&CWWT[!!FFDu----biv} 5 566>>>xRd+++H778?##DWWX_%%FFDt$7777biv} 5 566=== 
"+aA..

;	<	<BWWR[[FFBqqq!tH51111	"'!**bk!Q&:&:;	<	<BWWR[[FFBqqq!tH51111
+aA

C	QQQWBa  FZZ^^FFCe,,,,ZZ^^FFBGCGG,,59999QEIIbMMEE3U++++IIbMMEE273r77++%888888r5   c                   0    e Zd Zed             Zd Zd ZdS )TestBernsteinBeta2dc                    t          j        ddg          }t          j        }d}t	           |                      }t          j        dd          }t          j        dd          }t          |||g|          }|                    |j	        |          }|
                    |j                  }	|| _        || _        || _        t          |	          | _        d S N[   e   r8      r   r9   )r   r   r@   rA   r   r   r   r   r   r   rC   rD   r'   rO   r)   r
   r+   
clsr'   rI   rJ   rK   rL   rM   rN   rO   r*   s
             r3   setup_classzTestBernsteinBeta2d.setup_classr   s    xS	""vvxx((Aq!!Aq!! ff%5EEEwwt{D))T[))	)%00r5   c                 X   | j         }| j        }| j        }| j        }|j        j        d         dk     rc|                    |j                  }t          ||d           t          t          j
        t          j        ||z
                      d           t          j        ddgd          }|                    |j                  }|                    |j                  }t          ||dd           t          t          j
        t          j        ||z
                      d           |                    |j                  }|                    |j                  }t          ||d	d
           t          t          j
        t          j        ||z
                      d           d S )Nr   i)
  r?   r   r   r7   r;   r=   gQ?g?)r+   r'   rO   r)   r   shaper   r   r   r    r"   r#   r   r   r$   )	selfr+   r'   rO   r)   r,   rP   r-   r.   s	            r3   
test_basiczTestBernsteinBeta2d.test_basic   sk   hyy
;Q%''WWT[))FFDt4444biv}(=(=>>EEE8RH$///yy))))4d;;;;")BF6D=$9$9::DAAAyy))))4c::::")BF6D=$9$9::DAAAAAr5   c                 d    | j                             d          }t          |          dk    sJ d S )Nr   )r+   r%   r&   )rg   r%   s     r3   test_rvszTestBernsteinBeta2d.test_rvs   s,    hll33xx3r5   N)__name__
__module____qualname__classmethodrd   rh   rj    r5   r3   r\   r\   p   sN        1 1 [1"B B B,    r5   r\   c                   $    e Zd Zed             ZdS )TestBernsteinBeta2ddc                    t          j        ddg          }t          j        }d}t	           |                      }t          j        dd          }t          j        dd          }t          |||g|          }|                    |j	        |          }|
                    |j                  }	|| _        || _        || _        t          |	          | _        d S r^   )r   r   r@   rA   r   r   r   r   r   r   rC   rD   r'   rO   r)   r	   r+   rb   s
             r3   rd   z TestBernsteinBeta2dd.setup_class   s    xS	""vvxx((Aq!!Aq!! ff%5EEEwwt{D))T[))	'..r5   N)rk   rl   rm   rn   rd   ro   r5   r3   rq   rq      s-        / / [/ / /r5   rq   )__doc__numpyr    numpy.testingr   r   scipyr   $statsmodels.distributions.copula.apir   r   r   r@   statsmodels.distributions.toolsdistributionstoolsr   #statsmodels.distributions.bernsteinr	   r
   r   r4   rZ   r\   rq   ro   r5   r3   <module>r|      sV        < < < < < < < <      / / / / / / / / B B B B B B , , , , , , , , ,M M M M M M M M M M( ( (V-9 -9 -9`- - - - - - - -`/ / / / /. / / / / /r5   