
    'YHh#1                     d   d dl mZ d dlZd dlZd dlZd dlmZm	Z	m
Z
mZmZmZmZ d dlmZ  ej"                  ddg      d        Zd	 Z G d
 d      Zd Zd Zd Zd Z G d de      Z ej"                  eeedf      d        Zd Zd Zd Zd Z ej"                  dd ej@                  d       ejB                  dg      df      d        Z" ej"                   ejF                  d      ddddf      d        Z$d  Z%d! Z& ej"                  dd ej@                  d"       ejB                  d#g      f      d$        Z' ej"                  d% ej@                  d%      d& e(d'      d(d) ejR                  d      f      d*        Z*d+ Z+d, Z, ej"                  g d-      d.        Z-d/ Z.d0 Z/y)1    )OrderedDictN)
array_likePandasWrapper	bool_like	dict_like
float_likeint_likestring_like)_right_squeezeTF)paramsc                     | j                   S Nparamrequests    k/var/www/html/planif/env/lib/python3.12/site-packages/statsmodels/tools/validation/tests/test_validation.py
use_pandasr          ==    c                 *   | dk(  r.t        j                  d      }|rt        j                  |      }|S | dk(  r.t        j                  d      }|rt        j                  |      }|S t        j                  t        j
                  dd| z               }|S )N   
         r      )npemptypdSeries	DataFramearange)dimr   outs      r   gen_datar&      s    
axhhrm))C.C J 
hhx ,,s#C J hhryyAG,-Jr   c                   z    e Zd Zd Zd Zd Zd Zd Zd Ze	j                  j                  d      d	        Zd
 Zy)TestArrayLikec                 L   t        d|      }t        |d      }|j                  dk(  sJ |j                  dk(  sJ t	        |      t
        j                  u sJ t        |dd      }|j                  dk(  sJ t        |dd      }|j                  dk(  sJ t        |ddd      }|j                  dk(  sJ t        |ddd	      }|j                  dk(  sJ |j                  d	k(  sJ t        j                  t        d
      5  t        |dd       d d d        y # 1 sw Y   y xY w)Nr   ar   ndim)shaper   r-   r.   r   )r   r   a is required to have shapematch)r   
r&   r   r-   r.   typer   ndarraypytestraises
ValueErrorselfr   datar*   s       r   test_1dzTestArrayLike.test_1d)   s   :&tS!vv{{ww%Aw"**$$$tSq)vv{{tS.ww%tSq8vv{{tSq8vv{{ww'!!!]]:-JK 	.tS-	. 	. 	.s   DD#c                    t        d|      }t        |dd      }|j                  dk(  sJ |j                  dk(  sJ t	        |      t
        j                  u sJ t        |dd      }|j                  dk(  sJ t        |ddd      }|j                  dk(  sJ t        |ddd      }|j                  dk(  sJ t        |ddd      }|j                  dk(  sJ t        |ddd	      }|j                  dk(  sJ t        |dd
      }|j                  d
k(  sJ |j                  dk(  sJ t        j                  t        d      5  t        |ddd       d d d        t        j                  t        d      5  t        |ddd       d d d        t        j                  t        d      5  t        |ddd       d d d        d}t        j                  t        |      5  t        |dd       d d d        d}t        j                  t        |      5  t        |dd       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   bxY w# 1 sw Y   y xY w)Nr   r*   r,   r   )r   Nr/   )r   )Nr   )NN   )r   r   r   r0   r1   r+   )r   r   )Nr   z+a is required to have ndim 1 but has ndim 2r   a must have ndim <= 1maxdimr3   )r:   r   r;   r*   r2   s        r   test_2dzTestArrayLike.test_2d=   s+   :&tSq)vv{{ww("""Aw"**$$$tSq)vv{{tSq
;ww("""tSq6ww("""tSq
;ww("""tSq=vv{{tSq)vv{{ww+%%%]]:-JK 	7tSq6	7]]:-JK 	:tSq9	:]]:-JK 	<tSq
;	<=]]:U3 	*tSq)	*']]:U3 	,tS+	, 	,	7 	7	: 	:	< 	<	* 	*	, 	,s<   H+7H7*III+H47I III$c                    t        dd      }t        |dd      }|j                  dk(  sJ |j                  dk(  sJ t	        |      t
        j                  u sJ t        |ddd      }|j                  dk(  sJ t        |ddd      }|j                  dk(  sJ t        |dd	      }|j                  d
k(  sJ t        j                  t        d      5  t        |ddd       d d d        t        j                  t        d      5  t        |ddd       d d d        d}t        j                  t        |      5  t        |dd       d d d        d}t        j                  t        |      5  t        |dd       d d d        d}t        j                  t        |      5  t        |dd       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   bxY w# 1 sw Y   y xY w)Nr>   Fr*   r,   )r         )r   NrE   r/   )NNrE   r   )r   rD   rE   r   r   r0   r1   r+   )NNr   z+a is required to have ndim 2 but has ndim 3r   r?   r   r@   za must have ndim <= 2)
r&   r   r.   r-   r4   r   r5   r6   r7   r8   )r:   r;   r*   r2   s       r   test_3dzTestArrayLike.test_3d`   s   5!tSq)ww)###vv{{Aw"**$$$tSq=ww)###tSq@ww)###tSq)ww/)))]]:-JK 	7tSq6	7]]:-JK 	AtSq@	A=]]:U3 	*tSq)	*']]:U3 	,tS+	,']]:U3 	,tS+	, 	,	7 	7	A 	A	* 	*	, 	,	, 	,s<   F<G<G0G $G,<GGG G),G5c                 F   t        j                  d      }t        |dd      }|j                  dk(  sJ t        j                  d      }t        |dd      }|j                  dk(  sJ t        j                  d      }t        |dd      }|j                  dk(  sJ t        j                  d      }t        |dd      }|j                  dk(  sJ t        j                  d	      }t	        j
                  t              5  t        |dd       d d d        y # 1 sw Y   y xY w)
N)r   r   r   r*   r>   r,   r   )r   r   r   )r   r   )r   r   r   r   )r   r   r   r   r   r   )r   r   r   r.   r6   r7   r8   )r:   r;   r*   s      r   test_right_squeeze_and_padz(TestArrayLike.test_right_squeeze_and_pad{   s    xx	"tSq)ww)###xx{tSq)ww)###xxtSq)ww)###xx%tSq)ww)###xx*+]]:& 	*tSq)	* 	* 	*s   ?DD c                     t        j                  d      }|d d d   }t        |dd      }|j                  d   rJ |j                  d   sJ y )Nr   r   r*   T)
contiguousC_CONTIGUOUS)r   r#   r   flags)r:   xyr*   s       r   test_contiguouszTestArrayLike.test_contiguous   sN    IIbMccFq#$/77>***ww~&&&r   c                    t        j                  d      }t        |dt         j                        }|j                  t         j                  k(  sJ t        |dt         j
                        }|j                  t         j
                  k(  sJ y )Nr   r*   )dtype)r   r#   r   float32rQ   uint8)r:   rM   r*   s      r   
test_dtypezTestArrayLike.test_dtype   s_    IIbMq#RZZ0ww"**$$$q#RXX.ww"(("""r   zFailing for now)reasonc                     t        d|      }t        |d      }t        |j                  j	                  |      t              rJ t        |j                  j	                  |      t              rJ y )Nr   r*   )r&   r   
isinstanceTdotr9   s       r   test_dotzTestArrayLike.test_dot   sU    :&tS!accggdmZ888accggaj*5555r   c                 x    t        d|      }t        |dd      }t        |dd        t        j                  u sJ y )Nr   r*   r,   r   )r&   r   r4   r   r5   r9   s       r   
test_slicezTestArrayLike.test_slice   s8    :&tSq)AabE{bjj(((r   N)__name__
__module____qualname__r<   rB   rF   rH   rO   rT   r6   markxfailrZ   r\    r   r   r(   r(   (   sM    .(!,F,6*&'# [[/06 16)r   r(   c                     t        j                  d      } t        |       }|j                  dk(  sJ t        j                  d      } t        |       }|j                  dk(  sJ t        j                  d      } t        |       }|j                  dk(  sJ t        j                  d      } t        |       }|j                  dk(  sJ y )N)r   r   r   )r   r   r   )r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r.   )rM   rN   s     r   test_right_squeezerd      s    
AqA77k!!!
AqA77h
()AqA77h
+,AqA77k!!!r   c                    t        d|       }t        dd      }t        |      j                  |      }| rt        j                  nt
        j                  }t        ||      sJ | r|j                  J t        |      j                  |d      }t        ||      sJ | r|j                  dk(  sJ t        |      j                  |dg      }t        ||      sJ | r|j                  dk(  sJ | rt        j                  nt
        j                  }t        |      j                  |d d d f         }t        ||      sJ | r|j                  d   dk(  sJ t        |      j                  |d d d f   dg      }t        ||      sJ | r|j                  dgk(  sJ | rd}t        j                  t        |      5  t        |      j                  |d d d d f          d d d        d}t        j                  t        |      5  t        |      j                  |d |j                  d   d	z          d d d        y y # 1 sw Y   ^xY w# 1 sw Y   y xY w)
Nr   Fname)columnsr   z!Can only wrap 1 or 2-d array_liker1   z6obj must have the same number of elements in axis 0 asr   )r&   r   wrapr    r!   r   r5   rW   rf   r"   rg   r6   r7   r8   r.   )r   r*   bwrappedexpected_typer2   s         r   test_wrap_pandasrl      s&   JAEAA##A&G!+BIIMg}---W\\111A##Av#6Gg}---W\\V333A##Ax#8Gg}---W\\V333$.BLLBJJMA##AagJ/Gg}---W__Q/1444A##AagJ#AGg}---W__8883]]:U3 	4!!!!AtTM"23	4 I]]:U3 	8!!!!$5aggajAo"67	8 	8 	4 	4	8 	8s   :#H:.I:IIc                     t        dd      } d| _        t        dd      }t        |       j                  |d      }d}|j                  |k(  sJ t        dd      } t	        | j
                  d         D cg c]  }d	t        |      z    c}| _        t        dd      }t        |       j                  |d      }| j                  D cg c]  }|d
z   	 }}t        |j                        |k(  sJ y c c}w c c}w )Nr   TappleFappendedappendapple_appendedr   apple_	_appended)	r&   rf   r   rh   ranger.   strrg   listr*   ri   rj   expectedics         r   test_wrap_pandas_appendr|      s    DAAFEAA##Aj#9GH<<8###DA,1!''!*,=>qCF">AIEAA##Aj#9G)*3AK3H3 H,,,	 ? 4s   5C1C6c                     t        dd      } d| _        t        dd      }t        |       j                  |d      }d}|j                  |k(  sJ t        dd      } t	        | j
                  d         D cg c]  }| c}| _        t        dd      }t        |       j                  |d      }| j                  D cg c]  }| d		 }}t        |j                        |k(  sJ y c c}w c c}w )
Nr   TrE   Fro   rp   
7_appendedr   rt   )r&   rf   r   rh   ru   r.   rg   rw   rx   s         r   "test_wrap_pandas_append_non_stringr      s    DAAFEAA##Aj#9GH<<8###DA!!''!*-.q.AIEAA##Aj#9G)*3A1#Y3H3 H,,,	 / 4s   5	C%<C*c                       e Zd Zy)
CustomDictN)r]   r^   r_   rb   r   r   r   r     s    r   r   c                     | j                   S r   r   r   s    r   	dict_typer     r   r   c                 d    |  |        n| }t        |dd      }t        |t        |            sJ y )NvalueToptional)r   rW   r4   )r   valr%   s      r   test_optional_dict_liker   
  s2    ".)+IC
C4
0Cc49%%%r   c                  ~   d} t        j                  t        |       5  t        g dd       d d d        t        j                  t        |       5  t        dhdd       d d d        t        j                  t        |       5  t        ddd       d d d        y # 1 sw Y   oxY w# 1 sw Y   HxY w# 1 sw Y   y xY w)Nz5value must be a dict or dict_like \(i.e., a Mapping\)r1   r   Tr   r*   )r6   r7   	TypeErrorr   r1   s    r   test_optional_dict_like_errorr     s    DE	y	. ."g-.	y	. 13%401	y	. /#w./ /	. .1 1/ /s#   BB'B3B$'B03B<c                     t        dd      } | dk(  sJ t        ddd      } | dk(  sJ t        j                  t        d      5  t        dd       d d d        t        j                  t        d      5  t        dd       d d d        t        j                  t        d	      5  t        d
dd       d d d        y # 1 sw Y   lxY w# 1 sw Y   HxY w# 1 sw Y   y xY w)Nrn   r   rn   bananacherryoptionsvalue must be a stringr1   r      4z1value must be one of: 'apple', 'banana', 'cherry'date)r
   r6   r7   r   r8   r%   s    r   test_stringr     s    
gw
'C'>>
gw0M
NC'>>	y(@	A  Aw 	y(@	A #D'"#	D
 L 	FG-JK	L L	   # #L Ls$   B<4C$C<CCCc                     t        dd      } | dk(  sJ t        ddd      } | dk(  sJ t        d dd      } | J t        d ddd      } | J t        j                  t        d	      5  t        d
dd       d d d        t        j                  t        d	      5  t        ddd       d d d        y # 1 sw Y   <xY w# 1 sw Y   y xY w)Nrn   r   r   r   Tr   )r   r   r   r1   r   r   )r
   r6   r7   r   r   s    r   test_optional_stringr   ,  s    
gw
'C'>>
gw0M
NC'>>
dGd
3C;;
g.KC ;;	y(@	A /Aw./	y(@	A 2D'D12 2/ /2 2s   )B3B?3B<?Cg      ?g?333333?y333333?        c                     | j                   S r   r   r   s    r   floatingr   A  r   r   r   y333333?      ?z3.2c                     | j                   S r   r   r   s    r   not_floatingr   F  r   r   c                 `   t        t        | d      t              sJ t        t        | dd      t              sJ t        d dd      J t        | t        t        j
                  t        t        j                  f      r0t        t        | dd      t              sJ t        d ddd      J y y )Nr   Tr   strictr   r   )rW   r   floatintr   integerinexact)r   s    r   test_float_liker   K  s    j:6>>>j:EuMMMdJ6>>>(S"**eRZZ@A*Xz$GOOO$
T$GOOO Br   c                 x    t        j                  t              5  t        | d       d d d        y # 1 sw Y   y xY w)Nr   )r6   r7   r   r   )r   s    r   test_not_float_liker   T  s-    	y	! -<,- - -   09g      @g      @c                     | j                   S r   r   r   s    r   r   r   Y  r   r   g	@y      @       @yffffff@        rn   y      ?        c                     | j                   S r   r   r   s    r   not_integerr   ^  s     ==r   c                 8   t        t        | d      t              sJ t        t        | dd      t              sJ t        d dd      J t        | t        t        j                  f      r0t        t        | dd      t              sJ t        d ddd      J y y )Nr   Tr   r   r   r   )rW   r	   r   r   r   )r   s    r   test_int_liker   m  s    hw	2C888hw	DA3GGGD*t4<<<'C,-(7IdCSIIIj4EMMM .r   c                 x    t        j                  t              5  t        | d       d d d        y # 1 sw Y   y xY w)Nr   )r6   r7   r   r	   )r   s    r   test_not_int_liker   v  s-    	y	! )i() ) )r   )TFr   r   r*    c                     | j                   S r   r   r   s    r   booleanr   {  r   r   c                 2   t        t        | d      t              sJ t        d dd      J t        | t              rt        t        | dd      t              sJ y t        j                  t
              5  t        | dd       d d d        y # 1 sw Y   y xY w)Nr   Tr   r   )rW   r   boolr6   r7   r   )r   s    r   test_bool_liker     s~    i3T:::T9t4<<<'4 )GYtDdKKK]]9% 	7gy6	7 	7 	7s   5BBc                      t        j                  t              5  t        t	        j
                  ddg      t               d d d        y # 1 sw Y   y xY w)NT)r6   r7   r   r   r   arrayr   rb   r   r   test_not_bool_liker     s:    	y	! 3"((D$<('23 3 3s   &A		A)0collectionsr   numpyr   pandasr    r6   statsmodels.tools.validationr   r   r   r   r   r	   r
   'statsmodels.tools.validation.validationr   fixturer   r&   r(   rd   rl   r|   r   dictr   r   r   r   r   r   rR   r   r   r   r   r   r   r   complextimedelta64r   r   r   r   r   r   rb   r   r   <module>r      s   #      C e}% &) )D"$!8H- -"	 	 k:t<= >&/L$2* S*"**S/8288SE?HMN O XtUDAB CP-
 Q


33%AB C 

3q

N)
 56 773r   