+
    0.j  c                   X    R t ^ RIt^ RIHu Ht ^ RIt^ RIH	t	 ^ RI
Ht  ! R R4      tR# )z#Tests for market regime classifier.N)MarketRegime)regime_classifierc                   8   a  ] tR t^	t o R tR tR tR tRtV t	R# )TestRegimeClassifierc                   R RR^RRRRRRRR	R
R/p\         P                  ! V4      pVP                  p\        P                  qCV8H  qU'       Eg   \
        P                  ! RV3RW434      RR\        P                  ! 4       9   g   \
        P                  ! V4      '       d   \
        P                  ! V4      MRR\
        P                  ! V4      RR\        P                  ! 4       9   g!   \
        P                  ! \        4      '       d   \
        P                  ! \        4      MRR\
        P                  ! V4      /,          pRRV/,          p\        \
        P                  ! V4      4      hR;p;rTVP                  p\        V4      p	^ qV
8H  q'       Eg3   \
        P                  ! RV3RW34      RR\        P                  ! 4       9   g!   \
        P                  ! \        4      '       d   \
        P                  ! \        4      MRRR\        P                  ! 4       9   g   \
        P                  ! V4      '       d   \
        P                  ! V4      MRR\
        P                  ! V4      R\
        P                  ! V	4      R\
        P                  ! V
4      /,          pRRV/,          p\        \
        P                  ! V4      4      hR;p;p	;rR# )priceP  adxatri  bb_widthg?	ema_shortema_longi  historical_volatilityg      ?py0resultpy2py4r   py6assert %(py8)spy8Nlenpy1py3py5zassert %(py10)spy10==)zO%(py2)s
{%(py2)s = %(py0)s.regime
} == %(py6)s
{%(py6)s = %(py4)s.EXTREME_VOL
})zW%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.active_strategies
})
} == %(py8)s)r   classifyregimer   EXTREME_VOL
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationactive_strategiesr   )self
indicatorsr   @py_assert1@py_assert5@py_assert3@py_format7@py_format9@py_assert2@py_assert4@py_assert7@py_assert6@py_format11s   &            FC:\xampp\htdocs\tradingbinance\backend\tests\test_regime_classifier.pytest_extreme_volatility,TestRegimeClassifier.test_extreme_volatility
   s@   U24#S

 #++J788888888888888888888888888888888888888888811111111111111111111111111111111111111111111    c                   R RR^#RRRRRRR	R
RR/p\         P                  ! V4      pVP                  p\        P                  qCV8H  qU'       Eg   \
        P                  ! RV3RW434      RR\        P                  ! 4       9   g   \
        P                  ! V4      '       d   \
        P                  ! V4      MRR\
        P                  ! V4      RR\        P                  ! 4       9   g!   \
        P                  ! \        4      '       d   \
        P                  ! \        4      MRR\
        P                  ! V4      /,          pRRV/,          p\        \
        P                  ! V4      4      hR;p;rTRqP                  qV	9   q'       g   \
        P                  ! RV
3RW34      R\
        P                  ! V4      RR\        P                  ! 4       9   g   \
        P                  ! V4      '       d   \
        P                  ! V4      MRR\
        P                  ! V	4      /,          pRRV/,          p\        \
        P                  ! V4      4      hR;p;rR# ) r   r   r   r	   i  r
   g{Gz?r   i8  r   ih  r   g333333?r   r   r   r   r   r   r   r   Ntrendr   r   r   zassert %(py7)spy7r   )zL%(py2)s
{%(py2)s = %(py0)s.regime
} == %(py6)s
{%(py6)s = %(py4)s.TREND_UP
})in)z9%(py1)s in %(py5)s
{%(py5)s = %(py3)s.active_strategies
})r   r   r   r   TREND_UPr   r    r!   r"   r#   r$   r%   r&   r'   )r(   r)   r   r*   r+   r,   r-   r.   @py_assert0r0   r/   @py_format6@py_format8s   &            r4   test_trend_up"TestRegimeClassifier.test_trend_up   s   U23#S

 #++J755555555555555555555555555555555555555555522222222222222222222222222222r7   c                   R RR^RRRRRRR	R
RR/p\         P                  ! V4      pVP                  p\        P                  qCV8H  qU'       Eg   \
        P                  ! RV3RW434      RR\        P                  ! 4       9   g   \
        P                  ! V4      '       d   \
        P                  ! V4      MRR\
        P                  ! V4      RR\        P                  ! 4       9   g!   \
        P                  ! \        4      '       d   \
        P                  ! \        4      MRR\
        P                  ! V4      /,          pRRV/,          p\        \
        P                  ! V4      4      hR;p;rT\         P                  q2P                  pRq! W4      q'       Eg%   RRR\        P                  ! 4       9   g!   \
        P                  ! \         4      '       d   \
        P                  ! \         4      MRR\
        P                  ! V4      RR\        P                  ! 4       9   g   \
        P                  ! V4      '       d   \
        P                  ! V4      MRR\
        P                  ! V4      R\
        P                  ! V	4      R\
        P                  ! V
4      /,          p\        \
        P                  ! V4      4      hR;p;p;rR# )r   r   r   r	   i  r
   g{Gz?r   iZ  r   iF  r   g?r   r   r   r   r   r   r   r   Nmean_reversionzzassert %(py9)s
{%(py9)s = %(py2)s
{%(py2)s = %(py0)s.is_strategy_allowed
}(%(py5)s
{%(py5)s = %(py3)s.regime
}, %(py7)s)
}r   r   r   r:   py9r   )zI%(py2)s
{%(py2)s = %(py0)s.regime
} == %(py6)s
{%(py6)s = %(py4)s.RANGE
})r   r   r   r   RANGEr   r    r!   r"   r#   r$   r%   r&   is_strategy_allowed)r(   r)   r   r*   r+   r,   r-   r.   r0   r2   @py_assert8@py_format10s   &           r4    test_range_allows_mean_reversion5TestRegimeClassifier.test_range_allows_mean_reversion&   s@   U23#S

 #++J7222222222222222222222222222222222222222222UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUr7   c                   \         P                  ! R R/4      pVP                  p\        P                  q2V8H  qD'       Eg   \
        P                  ! RV3RW#34      RR\        P                  ! 4       9   g   \
        P                  ! V4      '       d   \
        P                  ! V4      MRR\
        P                  ! V4      RR\        P                  ! 4       9   g!   \
        P                  ! \        4      '       d   \
        P                  ! \        4      MRR\
        P                  ! V4      /,          pRR	V/,          p\        \
        P                  ! V4      4      hR
;p;rCR
# )errorinsufficient_datar   r   r   r   r   r   r   r   Nr   )zK%(py2)s
{%(py2)s = %(py0)s.regime
} == %(py6)s
{%(py6)s = %(py4)s.NO_DATA
})r   r   r   r   NO_DATAr   r    r!   r"   r#   r$   r%   r&   )r(   r   r*   r+   r,   r-   r.   s   &      r4   test_no_data!TestRegimeClassifier.test_no_data4   s    "++W6I,JK444444444444444444444444444444444444444444r7    N)
__name__
__module____qualname____firstlineno__r5   r@   rI   rO   __static_attributes____classdictcell__)__classdict__s   @r4   r   r   	   s     23V5 5r7   r   )__doc__builtinsr!   _pytest.assertion.rewrite	assertionrewriter   pytest
app.modelsr   app.services.regime_classifierr   r   rQ   r7   r4   <module>ra      s    )    # <-5 -5r7   