
    hP`j                     >    S r SSKrSSKJs  Jr  SSKrSSK	r
S rS rg)uo   
Тесты _build_dataset: проверяет корректную сборку признаков для RF.
    Nc            
          " S S5      n  " S S5      nSSK Jn  SSKJn  Sn[        R
                  " [        R                  R                  S	S
U5      [        R                  R                  S	S
U5      [        R                  R                  SSU5      S.5      nU" 5       n0 nU HS  n[        R                  R                  S	S
U5      USU S3'   [        R                  R                  SS
U5      USU S3'   MU     U HS  n[        R                  R                  S	S
U5      USU S3'   [        R                  R                  SS
U5      USU S3'   MU     / SQn	U" XWXi5      n
[        U	5      [        U5      S-  S-  -   nU
R                  oU4oU:H  o(       d  [        R                  " SU4SX45      S[        R                  " 5       ;   d  [        R                  " U
5      (       a  [        R                   " U
5      OS[        R                   " U5      [        R                   " U5      S.-  n[        R"                  " SU SU SU
R                   35      S-   SU0-  n[%        [        R&                  " U5      5      eS=n=p[        R(                  n[        R*                  o" U
5      nU" U5      nU(       Gd  [        R"                  " S5      S-   S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                   " [        5      OS[        R                   " U5      S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                   " [        5      OS[        R                   " U5      S[        R                  " 5       ;   d  [        R                  " U
5      (       a  [        R                   " U
5      OS[        R                   " U5      [        R                   " U5      S .-  n[%        [        R&                  " U5      5      eS=n=n=nn[        R,                  n[        R.                  o" U
5      nU" U5      nU(       + nU(       Gd  [        R"                  " S!5      S"-   S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                   " [        5      OS[        R                   " U5      S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                   " [        5      OS[        R                   " U5      S[        R                  " 5       ;   d  [        R                  " U
5      (       a  [        R                   " U
5      OS[        R                   " U5      [        R                   " U5      S .-  n[%        [        R&                  " U5      5      eS=n=n=n=nng)#u^   _build_dataset возвращает корректную форму с base + expert features.c                       \ rS rSrSrg),test_build_dataset_basic.<locals>.MockExpert    N)__name__
__module____qualname____firstlineno____static_attributes__r       9/home/ai/projects/AI_Strategy/tests/test_build_dataset.py
MockExpertr      s    r   r   c                       \ rS rSrS rSrg).test_build_dataset_basic.<locals>.MockEnsemble   c                     SS/U l         g )Nmomentumvolume_profileexpert_names)selfs    r   __init__7test_build_dataset_basic.<locals>.MockEnsemble.__init__   s    !+-= >Dr   r   N)r   r	   r
   r   r   r   r   r   r   MockEnsembler      s    	?r   r   r   _build_dataset)HORIZONS2      gg?)
rsi_signalvolume_signalclose_to_sma_10
momentum_h_signal_confidencevolume_profile_h   ==z-%(py2)s
{%(py2)s = %(py0)s.shape
} == %(py5)sXpy0py2py5
Expected (z, z), got 
>assert %(py7)spy7NzAll values must be finitez
>assert %(py10)s
{%(py10)s = %(py2)s
{%(py2)s = %(py0)s.all
}(%(py8)s
{%(py8)s = %(py5)s
{%(py5)s = %(py3)s.isfinite
}(%(py6)s)
})
}np)r/   r0   py3r1   py6py8py10zNo NaNs allowedz
>assert not %(py10)s
{%(py10)s = %(py2)s
{%(py2)s = %(py0)s.any
}(%(py8)s
{%(py8)s = %(py5)s
{%(py5)s = %(py3)s.isnan
}(%(py6)s)
})
})
models.moer   models.expertsr   pd	DataFramer5   randomuniformlenshape
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_saferepr_format_assertmsgAssertionError_format_explanationallisfiniteanyisnan)r   r   r   r   ndfensemblesignalshfeature_colsr-   expected_cols@py_assert1@py_assert4@py_assert3@py_format6@py_format8@py_assert7@py_assert9@py_format11@py_assert11@py_format12s                         r   test_build_dataset_basicr`      s    ? ? *'
A	ii''Aq1**2q!499,,UD!< 
B ~H G+-99+<+<RA+F*QCw'(/1yy/@/@Aq/I*QC{+,  131B1B2q!1L"1#W-.57YY5F5Fq!Q5O"1#[12  FLrH;A %H(9A(==M77[-([(([[[[7[[[[[[1[[[[1[[[7[[[([[[[JqcM?'RSRYRYQZ*[[[[[[[[66>"++>+a.>6.!>!>>#>>>>>>>2>>>>2>>>6>>>>>>">>>>">>>+>>>>>>a>>>>a>>>.>>>!>>>>>>vv5bhh5hqk5vk"5""5"55$5555555r5555r555v555555b5555b555h555555q5555q555k555"5555555r   c                     SSK Jn   Sn[        R                  " S[        R
                  R                  SSU5      05      n " S S5      n0 nU " X$U" 5       S/5      nUR                  oaS4ovU:H  o(       d  [        R                  " S	U4S
Xg45      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  n	[        R                  " SU SUR                   35      S-   SU	0-  n
[        [        R                   " U
5      5      eS=n=pg)uA   _build_dataset с пустыми сигналами (no experts).r   r      r"   r    r!   c                       \ rS rSr/ rSrg)6test_build_dataset_empty_signals.<locals>.MockEnsemble:   r   N)r   r	   r
   r   r   r   r   r   r   r   rd   :   s    r   r   r*   r,   r-   r.   r2   z
, 1), got r3   r4   N)r:   r   r<   r=   r5   r>   r?   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   )r   rO   rP   r   rR   r-   rV   rW   rX   rY   rZ   s              r    test_build_dataset_empty_signalsrf   1   s    )
A	bii''Aq1 
B  GrLN\NCA77A!fAfAAAA7AAAAAA1AAAA1AAA7AAAfAAAA
1#ZyAAAAAAAAr   )__doc__builtinsrD   _pytest.assertion.rewrite	assertionrewriterB   numpyr5   pandasr<   r`   rf   r   r   r   <module>rn      s#       &6RBr   