
    h                     R    S SK JrJrJrJrJrJrJr  S rS r	S r
S rS rS rS rg	)
    )compoundingconstantconstant_thencyclic_triangulardecayingslanted_triangularwarmup_linearc                      [        SS5      n [        U 5      nUS:X  d   e[        U 5      nX!:  d   eUS:  d   eU[        U 5      :  d   eg )NgMbP?g-C6?r   )r   next)ratesrate	next_rates      T/home/james-whalen/.local/lib/python3.13/site-packages/thinc/tests/test_schedules.pytest_decaying_rater      sV    UD!E;D5==UIq==tE{"""    c                      [        SSS5      n [        U 5      nUS:X  d   e[        U 5      n[        U 5      n[        U 5      nXCs=:  a  Us=:  a  U:  d   e   eXC-
  X2-
  s=:  a	  X!-
  :  d   e   eg )N      g)\(?      ?)r   r   r   rate0rate1rate2rate3s        r   test_compounding_rater      s{    2t$EKEC<<KEKEKE(5(5(((((Mem>>>>>>r   c                      [        SSSS9n [        U 5      nUS:  d   e[        U 5      nX!:  d   e[        U 5      nX2:  d   e[        U 5      nXs=:  a  U:  d   e   eg )Nr   g      4@
   )ratio)r   r   r   s        r   test_slanted_triangular_rater   !   sk    sD3EKE3;;KE==KE==KE 5     r   c                      [        SSSS/5      n [        U 5      S:X  d   e[        U 5      S:X  d   e[        U 5      S:X  d   e[        U 5      S:X  d   eg )Nr      d      )r   r   r   s    r   test_constant_then_scheduler%   -   s\    #q3*-E;#;#;#;#r   c                  ^    [        S5      n [        U 5      S:X  d   e[        U 5      S:X  d   eg )N{   )r   r   r$   s    r   test_constantr(   5   s/    SME;#;#r   c                  p    [        SSS5      n / SQn[        S5       H  n[        U 5      X   :X  a  M   e   g )Nr   r!   r   )              ?r   g      ?g      ?g      ?r+   g      ?g      ?g      ?r*      )r	   ranger   r   expectedis      r   test_warmup_linearr1   ;   s7    #q"%EPH2YE{hk))) r   c                  p    [        SSS5      n / SQn[        S5       H  n[        U 5      X   :X  a  M   e   g )N皙?r   r!   )
皙?r   r4   r3   r4   r   r4   r3   r4   r   r   )r   r-   r   r.   s      r   test_cyclic_triangularr5   B   s7    c3*EFH2YE{hk))) r   N)	thinc.apir   r   r   r   r   r   r	   r   r   r   r%   r(   r1   r5    r   r   <module>r8      s7     #?	!**r   