
    !gO                         d Z ddlZddlmZmZ ddlmc mZ	 ddl
mZmZ  G d d      Z G d de      Z G d	 d
e      Z G d de      Z G d de      Z G d de      Z G d de      Zy)zL
Created on Wed May 16 22:21:26 2018

Author: Josef Perktold
License: BSD-3
    N)assert_allcloseassert_equal)approx_fprimeapprox_hessc                       e Zd Zd Zd Zy)CheckPenaltyc           
      \   | j                   }| j                  }t        j                  |D cg c]&  }|j	                  t        j
                  |            ( c}      }t        ||d d d   d       t        |j	                  dt        j
                  |d         z        dd       y c c}w )N绽|=)rtolr   )penparamsnparrayfunc
atleast_1dr   )selfr   xxips        b/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/base/tests/test_penalties.pytest_symmetryzCheckPenalty.test_symmetry   s    hhKKHHA>bchhr}}R01>?1TrT7/R]]1Q4%8!8915I ?s   +B)c           
      h   | j                   }| j                  }t        j                  |D cg c]&  }|j	                  t        j
                  |            ( c}      }t        j                  |D cg c]+  }t        t        j
                  |      |j                        - c}      }t        ||dd       t        j                  |D cg c]&  }|j                  t        j
                  |            ( c}      }t        j                  |D cg c]+  }t        t        j
                  |      |j                        - c}      }|j                  dk(  r6t        j                  |D cg c]  }t        j                  |       c}      }t        ||dd       y c c}w c c}w c c}w c c}w c c}w )NHz>:0yE>r   atol   )r   r   r   r   derivr   r   r   r   deriv2r   ndimdiag)	r   r   r   r   pspsnphphnphis	            r   test_derivativeszCheckPenalty.test_derivatives   s%   hhKKXXa@syyr!23@AhhQOrbmmB&7BOPCd6XXqAszz"--"34ABhh1MRBMM"$5sxx@MN77a< 26C2773<67BCd6 AO BM 7s   +F10F 
+F%0F*(F/N)__name__
__module____qualname__r   r(        r   r   r      s    J7r-   r   c                   "    e Zd Zed        Zd Zy)TestL2Constraints0c                     t        j                  ddd      }t        j                  ||f      | _        t	        j
                         | _        y N皙ɿ皙?   r   linspacecolumn_stackr   smpenL2ConstraintsPenaltyr   clsx0s     r   setup_classzTestL2Constraints0.setup_class-   s8    [[sB'__b"X.
,,.r-   c                 Z   | j                   }| j                  }|j                  d   }t        j                  t        j                  |            }t        j                  t        j                  |            }|j                  |j                        }|j                  |j                        }t        j                  |D cg c]&  }|j                  t        j                  |            ( c}      }	||fD ]  }
t        |
j                  |j                        |dd       t        |
j                  |j                        |dd       t        j                  |D cg c]&  }|j                  t        j                  |            ( c}      }t        ||	dd        y c c}w c c}w )N   weightsrestrictionr   r   r   r   )r   r   shaper8   r9   r   oneseyer   Tr   r   r    r   r   )r   r   r   kpen2pen3fdr   d2pen_d2_s               r   test_equivalencez#TestL2Constraints0.test_equivalence3   s*   hhKKGGAJ))"''!*=))bffQi@HHQSSMIIaccNhhB"

2==#45BC4L 	<DDIIaccNADtDDJJqssOQTE88QGrSZZb(9:GHCC%d;		< C Hs   +F#+F(
N)r)   r*   r+   classmethodr=   rP   r,   r-   r   r/   r/   +   s    / /
<r-   r/   c                   "    e Zd Zed        Zd Zy)TestL2Constraints1c                     t        j                  ddd      }t        j                  ||f      | _        t	        j
                  ddgddgg      | _        y )Nr2   r3   r4   r?   r   rB   r5   r:   s     r   r=   zTestL2Constraints1.setup_classG   sF    [[sB'__b"X.
,,1Q%!QIr-   c                     | j                   }| j                  }|j                  }|j                  |j                        dz  j                  d      }t        |j                  |j                        |dd       y )Nr   r   r   r   r   )r   r   rC   dotrG   sumr   r   )r   r   r   rrK   s        r   test_valueszTestL2Constraints1.test_valuesM   sW    hhKKOOUU133Z]"qt$?r-   N)r)   r*   r+   rQ   r=   rY   r,   r-   r   rS   rS   E   s    J J
@r-   rS   c                       e Zd Zed        Zy)TestSmoothedSCADc                     t        j                  ddd      }t        j                  ||f      | _        t	        j
                  dd      | _        y )Nr2   r3   r4   g?)tauc0)r   r6   r7   r   r8   SCADSmoothedr   r:   s     r   r=   zTestSmoothedSCAD.setup_classW   s<    [[sB'__b"X.
$$$7r-   Nr)   r*   r+   rQ   r=   r,   r-   r   r[   r[   U   s    8 8r-   r[   c                   .    e Zd Zed        Zd Zd Zd Zy)TestPseudoHuberc                     t        j                  ddd      }t        j                  ||f      | _        t	        j
                  d      | _        y )Nr2   r3   r4   皙?)r   r6   r7   r   r8   PseudoHuberr   r:   s     r   r=   zTestPseudoHuber.setup_class`   s:    [[sB'__b"X.
##C(r-   c                 d    dg}t        j                  d|      }t        |j                  |       y )N      ?rd   r@   r8   re   r   rA   r   wtsr   s      r   test_backward_compatibilityz+TestPseudoHuber.test_backward_compatibilityf   s)    eS1S[[#&r-   c                 d    dg}t        j                  d|      }t        |j                  |       y )N      ?rd   r@   rh   r   rA   r   s      r   test_deprecated_priorityz(TestPseudoHuber.test_deprecated_priorityk   s)    %W5S[['*r-   c                 f    ddg}t        j                  d|      }t        |j                  |       y )Nrm          @rd   r@   rh   rn   s      r   test_weights_assignmentz'TestPseudoHuber.test_weights_assignmentq   s+    *W5S[['*r-   Nr)   r*   r+   rQ   r=   rk   ro   rr   r,   r-   r   rb   rb   ^   s#    ) )
'
++r-   rb   c                   .    e Zd Zed        Zd Zd Zd Zy)TestL2c                     t        j                  ddd      }t        j                  ||f      | _        t	        j
                         | _        y r1   )r   r6   r7   r   r8   L2r   r:   s     r   r=   zTestL2.setup_classy   s5    [[sB'__b"X.
((*r-   c                 b    dg}t        j                  |      }t        |j                  |       y )Nrg   r@   r8   rw   r   rA   ri   s      r   rk   z"TestL2.test_backward_compatibility   s%    ehhs#S[[#&r-   c                 b    dg}t        j                  |      }t        |j                  |       y )Nrm   r@   ry   rn   s      r   ro   zTestL2.test_deprecated_priority   s%    %hhw'S[['*r-   c                 d    ddg}t        j                  |      }t        |j                  |       y )Nrm   rq   r@   ry   rn   s      r   rr   zTestL2.test_weights_assignment   s'    *hhw'S[['*r-   Nrs   r,   r-   r   ru   ru   w   s#     
'
+
+r-   ru   c                       e Zd Zed        Zy)TestNonePenaltyc                     t        j                  ddd      }t        j                  ||f      | _        t	        j
                         | _        y r1   )r   r6   r7   r   r8   NonePenaltyr   r:   s     r   r=   zTestNonePenalty.setup_class   s8    [[sB'__b"X.
##%r-   Nr`   r,   r-   r   r}   r}      s    & &r-   r}   )__doc__numpyr   numpy.testingr   r   statsmodels.base._penaltiesbase
_penaltiesr8   statsmodels.tools.numdiffr   r   r   r/   rS   r[   rb   ru   r}   r,   r-   r   <module>r      so     7 + + @7 78< <4@ @ 8| 8+l +2+\ +0&l &r-   