Ë
    ¦S±j~	  ã                   óF   — d dl Zd dlmc mZ d dlZd dlZ	d dl
mZ d„ Zd„ Zy)é    Nc                 óò  ‡‡— t        j                  t        t        j                  g d¢«      g d¢g d¢g d¢g d¢dgdz  dgdz  ¬«      «      }| j	                  t
        d	d
«       | j	                  t
        dd«       | j	                  t
        dd«       | j	                  t
        dd«       | j	                  t
        ddg«       | j	                  t
        dg «       | j	                  t
        dd„ «       | j	                  t
        dd„ «       g Št
        j                  Šˆˆfd„}| j	                  t
        d|«       t        j                  dddid|d d d fi«       ‰d   d   j                  j                  d   }t         j                  }d} ||«      }||k(  }|sÝt        j                  d |fd!||f«      t        j                  |«      d"t        j                  «       v st        j                   t         «      rt        j                  t         «      nd"t        j                  |«      t        j                  |«      t        j                  |«      d#œz  }d$d%|iz  }	t#        t        j$                  |	«      «      ‚d x}x}x}x}}‰d&   d   j                  j                  d   }t         j                  }d} ||«      }||k  }|sÝt        j                  d'|fd(||f«      t        j                  |«      d"t        j                  «       v st        j                   t         «      rt        j                  t         «      nd"t        j                  |«      t        j                  |«      t        j                  |«      d#œz  }d$d%|iz  }	t#        t        j$                  |	«      «      ‚d x}x}x}x}}‰d)   d   j                  j                  d   }t         j                  }d*} ||«      }||k(  }|sÝt        j                  d |fd!||f«      t        j                  |«      d"t        j                  «       v st        j                   t         «      rt        j                  t         «      nd"t        j                  |«      t        j                  |«      t        j                  |«      d#œz  }d$d%|iz  }	t#        t        j$                  |	«      «      ‚d x}x}x}x}}‰d)   d&   d+   }d}
||
k(  }|slt        j                  d |fd,||
f«      t        j                  |«      t        j                  |
«      d-œz  }d.d/|iz  }t#        t        j$                  |«      «      ‚d x}x}}
‰d0   d   j                  j                  d   }t         j                  }d1} ||«      }||k(  }|sÝt        j                  d |fd!||f«      t        j                  |«      d"t        j                  «       v st        j                   t         «      rt        j                  t         «      nd"t        j                  |«      t        j                  |«      t        j                  |«      d#œz  }d$d%|iz  }	t#        t        j$                  |	«      «      ‚d x}x}x}x}}y )2N)ú2020-12-31 18:00z2021-01-01 00:00ú2021-01-01 06:00z2021-01-02 00:00ú2021-01-02 18:00)ç      Y@ç     €[@g     @^@r   r   )é   r	   r	   r	   r	   )TFFFFFé   g        )ÚtimeÚcloseÚhighÚpositionÚexecute_entryÚexecute_exitÚactivation_scoreÚSCORE_STARTú
2020-12-31Ú	TRAIN_ENDz
2021-01-02ÚSUBPERIOD_SPLITú
2021-01-01Ú	OOS_STARTz
2021-01-03Ú	WFO_FOLDS)r   r   r   Ú
PARAM_COLSÚ_score_to_signalsc                 ó   — | S ©N© )ÚscoredÚargss     úp/Users/jameslopez/projects/TradingBot25/.worktrees/mlp-comparable-measurement/tests/test_mlp_sweep_accounting.pyÚ<lambda>zJtest_evaluation_preserves_history_and_complete_end_dates.<locals>.<lambda>   s   € É&ó    Úfragile_countc                   ó   — y)Nr   r   )r   s    r    r!   zJtest_evaluation_preserves_history_and_complete_end_dates.<locals>.<lambda>   s   € ¸ar"   c                 óX   •— ‰j                  | j                  «       |f«        ‰| fi |¤ŽS r   )ÚappendÚcopy)ÚdfÚkwargsÚcallsÚreals     €€r    ÚcapturezItest_evaluation_preserves_history_and_complete_end_dates.<locals>.capture   s*   ø€ Ø�‰�b—g‘g“i Ð(Ô)Ù�BÑ!˜&Ñ!Ð!r"   Úcalculate_metricsÚ4HÚmlp_weights_fileÚfaker   éÿÿÿÿr   ©ú==©zO%(py1)s == %(py9)s
{%(py9)s = %(py5)s
{%(py5)s = %(py3)s.Timestamp
}(%(py7)s)
}Úpd©Úpy1Úpy3Úpy5Úpy7Úpy9úassert %(py11)sÚpy11r	   )Ú<)zN%(py1)s < %(py9)s
{%(py9)s = %(py5)s
{%(py5)s = %(py3)s.Timestamp
}(%(py7)s)
}é   r   Úscore_start)z%(py1)s == %(py4)s)r7   Úpy4zassert %(py6)sÚpy6é   r   )r5   Ú	DataFrameÚdictÚto_datetimeÚsetattrÚsweepr-   Úevaluater   ÚilocÚ	TimestampÚ
@pytest_arÚ_call_reprcompareÚ	_safereprÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚAssertionErrorÚ_format_explanation)ÚmonkeypatchÚframer,   Ú@py_assert0Ú@py_assert4Ú@py_assert6Ú@py_assert8Ú@py_assert2Ú@py_format10Ú@py_format12Ú@py_assert3Ú@py_format5Ú@py_format7r*   r+   s                @@r    Ú8test_evaluation_preserves_history_and_complete_end_datesr`      sY  ù€ Ü�L‰Lœ¤2§>¡>ò 30ó $1ò -Ò3MÚÒ,JØ�W˜Q‘Y°"°°a±ô9ó :€Eð ×Ñœ˜}¨lÔ;Ø×Ñœ˜{¨LÔ9Ø×ÑœÐ0°,Ô?Ø×Ñœ˜{¨LÔ9Ø×Ñœ˜{Ð-WÐ,XÔYØ×Ñœ˜|¨RÔ0Ø×ÑœÐ2Ñ4PÔQØ×Ñœ˜±Ô@Ø€EÜ×"Ñ"€Dõ"ð ×ÑœÐ2°GÔ<Ü	‡N�N�4Ð,¨fÐ5¸ÀÀtÈDÐQUÐ@VÐ7WÔXØ�‰8�A‰;×Ñ× Ñ  Ñ$ÐH¬¯©ÐHÐ5GÐH©Ð5GÓ(HÐHÐ$Ð(HÑH×H×HÕHÐ$Ð(H×H×HÓHÐ$×H×H×H×H×HÐH¬×H×HÓH¬×H×HÔH¨×H×HÒHÐ5G×H×HÒHÐ(H×H×H×H×H×H×H×HØ�‰8�A‰;×Ñ× Ñ  Ñ$ÐA¤r§|¡|ÐA°LÐA¡|°LÓ'AÐAÐ$Ð'AÑA×A×AÕAÐ$Ð'A×A×AÓAÐ$×A×A×A×A×AÐA¤r×A×AÓA¤r×A×AÔA |×A×AÒA°L×A×AÒAÐ'A×A×A×A×A×A×A×AØ�‰8�A‰;×Ñ× Ñ  Ñ#ÐG¤r§|¡|ÐGÐ4FÐG¡|Ð4FÓ'GÐGÐ#Ð'GÑG×G×GÕGÐ#Ð'G×G×GÓGÐ#×G×G×G×G×GÐG¤r×G×GÓG¤r×G×GÔG |×G×GÒGÐ4F×G×GÒGÐ'G×G×G×G×G×G×G×GØ�‰8�A‰;�}Ñ%Ð5¨Ð5Ð%¨Ñ5×5×5Õ5Ð%¨×5×5Ó5Ð%×5×5Ò5¨×5×5×5×5×5×5Ó5Ø�‰8�A‰;×Ñ× Ñ  Ñ$ÐH¬¯©ÐHÐ5GÐH©Ð5GÓ(HÐHÐ$Ð(HÑH×H×HÕHÐ$Ð(H×H×HÓHÐ$×H×H×H×H×HÐH¬×H×HÓH¬×H×HÔH¨×H×HÒHÐ5G×H×HÒHÐ(H×H×H×H×H×H×H×HÐHr"   c                 óÆ  ‡— | dz  Št        j                  ddgddgddgdœ«      j                  ‰d¬«       |j                  t        d	ˆfd
„«       |j                  t        dd„ «       |j                  t        dd„ «       |j                  t        dd„ «       t	        j
                  dd«      ^}}t        |«      }d}||k(  }|söt        j                  d|fd||f«      dt        j                  «       v st        j                  t        «      rt        j                  t        «      nddt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      t        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}}|j                  j                   d   }	t         j"                  }d}
 ||
«      }|	|k(  }|sÝt        j                  d|fd|	|f«      t        j                  |	«      dt        j                  «       v st        j                  t         «      rt        j                  t         «      ndt        j                  |«      t        j                  |
«      t        j                  |«      dœz  }d d!|iz  }t        t        j                  |«      «      ‚d x}	x}x}x}
}y )"Nzbars.csvi fî_i`ºî_éd   ée   )r   r   r   F)ÚindexÚ	data_pathc                 ó   •— ‰S r   r   )ÚtfÚpaths    €r    r!   z@test_loader_interprets_numeric_time_as_seconds.<locals>.<lambda>'   s   ø€ ±tr"   Úload_mlp_artifactc                 ó   — g g dœS )N)Úfeature_colsÚlayersr   )rh   s    r    r!   z@test_loader_interprets_numeric_time_as_seconds.<locals>.<lambda>(   s   € ÐQSÐ^`ÒAar"   Ú_prepare_featuresc                 óB   — t        j                  t        | «      df«      S )Né
   ©ÚnpÚzerosÚlen)rU   Úcolss     r    r!   z@test_loader_interprets_numeric_time_as_seconds.<locals>.<lambda>)   s   € ÌÏÉÔRUÐV[ÓR\Ð]_ÐQ`ÔHar"   Úmlp_forwardc                 ó>   — t        j                  t        | «      «      S r   rp   )Úfeaturesrl   s     r    r!   z@test_loader_interprets_numeric_time_as_seconds.<locals>.<lambda>*   s   € ÄrÇxÁxÔPSÐT\ÓP]ÔG^r"   r.   r0   r?   r2   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)srs   rU   )Úpy0r7   r8   rB   zassert %(py8)sÚpy8r   r   r4   r5   r6   r<   r=   )r5   rD   Úto_csvrG   rH   Úload_scored_framers   rL   rM   rO   rP   rQ   rN   rR   rS   r   rJ   rK   )Útmp_pathrT   rU   Ú_rZ   Ú@py_assert5rW   r_   Ú@py_format9rV   rX   rY   r[   r\   rh   s                 @r    Ú.test_loader_interprets_numeric_time_as_secondsr€   $   sÖ  ø€ Ø�jÑ €DÜ‡L�L˜* ZÐ0¸3¸s¸)ÈSÐQTÈIÑVÓW×^Ñ^Ð_cÐjoÐ^ÔpØ×Ñœ˜{«OÔ<Ø×ÑœÐ2Ñ4aÔbØ×ÑœÐ2Ñ4aÔbØ×Ñœ˜}Ñ.^Ô_Ü×'Ñ'¨¨VÓ4€I€EˆAÜˆu‹:Ð˜Ðˆ:˜‰?××Õˆ:˜×××××ÑŒ3××ÓŒ3×××××Òˆu××Óˆu××Ôˆ:××Ò˜××××××ÓØ�:‰:�?‰?˜1ÑÐ;¤§¡Ð;¨lÐ;¡¨lÓ!;Ð;ÐÐ!;Ñ;×;×;Õ;ÐÐ!;×;×;Ó;Ð×;×;×;×;×;Ð;¤×;×;Ó;¤×;×;Ô; ×;×;Ò;¨l×;×;Ò;Ð!;×;×;×;×;×;×;×;Ð;r"   )ÚbuiltinsrO   Ú_pytest.assertion.rewriteÚ	assertionÚrewriterL   Únumpyrq   Úpandasr5   Útools.run_mlp_deep_sweepÚrun_mlp_deep_sweeprH   r`   r€   r   r"   r    Ú<module>r‰      s   ðß  „ Ó Û å (òIó:	<r"   