Ë
    sp±jÛ  ã                   óL   — 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d„ Zy)é    N)Ú	train_mlpc                  ó  — t        j                  t        j                  ddd¬«      «      } t        j                  dt
        ¬«      }t        j                  || | j                  d   d«      }t        j                  } ||«      }|j                  } |«       }d}t        |«      }t        |«      }	||	k(  }
|
�sìt        j                  d	|
fd
||	f«      dt        j                   «       v st        j"                  t        «      rt        j$                  t        «      ndt        j$                  |«      dt        j                   «       v st        j"                  |«      rt        j$                  |«      ndt        j$                  |«      t        j$                  |«      t        j$                  |«      dt        j                   «       v st        j"                  t        «      rt        j$                  t        «      nd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}x}
x}x}}	| j+                  d«      |   }| j                  d   }||k  }|j,                  } |«       }|s”t        j                  d|fd||f«      t        j$                  |«      t        j$                  |«      dœz  }d|t        j$                  |«      t        j$                  |«      dœz  }t'        t        j(                  |«      «      ‚d x}x}x}x}}y )Nú
2020-01-01é(   Ú4h©ÚperiodsÚfreq)Údtypeé   é
   é   ©ú==)zÇ%(py9)s
{%(py9)s = %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.flatnonzero
}(%(py3)s)
}.tolist
}()
} == %(py18)s
{%(py18)s = %(py11)s(%(py16)s
{%(py16)s = %(py12)s(%(py14)s)
})
}ÚnpÚmaskÚlistÚrange)Úpy0Úpy2Úpy3Úpy5Úpy7Úpy9Úpy11Úpy12Úpy14Úpy16Úpy18zassert %(py20)sÚpy20iöÿÿÿ)Ú<)z%(py1)s < %(py4)s©Úpy1Úpy4z@assert %(py10)s
{%(py10)s = %(py8)s
{%(py8)s = %(py6)s.all
}()
})Úpy6Úpy8Úpy10)ÚpdÚSeriesÚ
date_ranger   ÚonesÚboolr   Úpurged_training_maskÚilocÚflatnonzeroÚtolistr   r   Ú
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚshiftÚall)ÚtimesÚvalidr   Ú@py_assert1Ú@py_assert4Ú@py_assert6Ú@py_assert8Ú@py_assert13Ú@py_assert15Ú@py_assert17Ú@py_assert10Ú@py_format19Ú@py_format21Ú@py_assert0Ú@py_assert3Ú@py_assert2Ú@py_assert7Ú@py_assert9Ú@py_format5Ú@py_format11s                       út/Users/jameslopez/projects/TradingBot25/.worktrees/mlp-comparable-measurement/tests/test_mlp_training_measurement.pyÚ3test_purge_removes_exact_labels_crossing_validationrO      s  € Ü�I‰I”b—m‘m L¸"À4ÔHÓI€EÜ�G‰G�BœdÔ#€EÜ×)Ñ)¨%°¸¿
¹
À2¹ÈÓK€DÜ�>‰>Ð;‰>˜$ÓÐ;Ð×&Ñ&Ð;Ñ&Ó(Ð;°rÐ;´°r³Ð;¬D°«OÐ;Ð(¨OÑ;×;×;Ö;Ð(¨O×;×;×;×;×;Ñ;Œ2×;×;Ó;Œ2×;×;Ô;ˆ>×;×;×;×;×;Ð;˜$×;×;Ó;˜$×;×;Ô;Ð×;×;Ò;Ð&×;×;Ò;Ð(×;×;×;×;×;Ð;¬D×;×;Ó;¬D×;×;×;×;×;Ò;´×;×;Ó;´×;×;Ô;°r×;×;Ò;°×;×;Ò;¨O×;×;×;×;×;×;×;Õ;Ø�K‰K˜Ó˜TÑ"Ð: U§Z¡Z°¡^Ð:Ð" ^Ñ3Ñ:×8Ñ8Ð:Ñ8Ó:Ð:Ñ:×:×:Ò:Ð" ^×:×:Ó:Ð"×:×:Ò: ^×:×:×:Ñ:Ð8×:×:Ò:Ð:×:×:×:×:×:×:Ñ:ó    c           	      óô  — t        j                  ddd¬«      }| dz  }t        j                  |D �cg c]  }t        |j	                  «       «      ‘Œ c}ddœ«      j                  |d¬	«       |j                  t        j                  d
d«       |j                  t        j                  dd«       t        j                  |«      }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 c c}w )Nr   é   r   r   z	input.csvé   )ÚtimeÚcloseF)ÚindexÚTRAIN_STARTÚ	TRAIN_ENDú
2020-01-02é   r   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sÚlenÚgot)r   r#   r   r%   zassert %(py8)sr&   éÿÿÿÿz2020-01-02 20:00©zO%(py1)s == %(py9)s
{%(py9)s = %(py5)s
{%(py5)s = %(py3)s.Timestamp
}(%(py7)s)
}r(   ©r#   r   r   r   r   úassert %(py11)sr   )r(   r*   Ú	DataFrameÚintÚ	timestampÚto_csvÚsetattrr   ÚconfigÚ	load_datar[   r1   r2   r3   r4   r5   r6   r7   r8   rT   r.   Ú	Timestamp)Útmp_pathÚmonkeypatchr;   ÚpathÚtr\   rI   Ú@py_assert5r>   Ú@py_format7Ú@py_format9rG   r?   r@   Ú@py_format10Ú@py_format12s                   rN   Ú-test_training_loader_epoch_and_full_final_dayrr      sÖ  € Ü�M‰M˜,°¸Ô>€EØ�kÑ!€DÜ‡L�L±uÓ=±u°!œ3˜qŸ{™{›}Õ-°uÑ=ÈÑJÓK×RÑRÐSWÐ_dÐRÔeØ×Ñœ	×(Ñ(¨-¸ÔFØ×Ñœ	×(Ñ(¨+°|ÔDÜ
×
Ñ
˜dÓ
#€CÜˆs‹8Ð�rÐˆ8�r‰>××Õˆ8�r×××××ÑŒ3××ÓŒ3×××××Òˆs××Óˆs××Ôˆ8××Ò�r××××××ÓØ�8‰8�=‰=˜ÑÐ@¤§¡Ð@Ð-?Ð@¡Ð-?Ó @Ð@ÐÐ @Ñ@×@×@Õ@ÐÐ @×@×@Ó@Ð×@×@×@×@×@Ð@¤×@×@Ó@¤×@×@Ô@ ×@×@Ò@Ð-?×@×@Ò@Ð @×@×@×@×@×@×@×@Ð@ùò >s   ± K5c           
      ón  ‡— t        j                  t        j                  ddd¬«      «      }t        j                  |dddœ«      }t	        j
                  d«      t	        j
                  d	«      fg}t        j                  t        j                  |«      g d
¢f   }t        j                  |t	        j
                  d«      dd	g|d d dgd	d	d«      }| j                  t        dd„ «       i Šˆfd„}| j                  t        d|«       t        j                  ||«       ‰d   }|j                  d   }||k(  }	|	slt        j                  d|	fd||f«      t        j                  |«      t        j                  |«      dœz  }
dd|
iz  }t!        t        j"                  |«      «      ‚d x}x}	}‰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#}||k(  }	|	slt        j                  d|	fd||f«      t        j                  |«      t        j                  |«      dœz  }
dd|
iz  }t!        t        j"                  |«      «      ‚d x}x}	}y )$Nr   é   r   r   g      Y@g     @Y@)rT   rU   Úhigh)rS   r   rS   )ç        rv   rv   rv   )rt   r   r   é   )NrY   z
2020-01-03rv   Ú_score_to_signalsc                 ó   — | S )N© )ÚdÚargss     rN   Ú<lambda>zMtest_fitness_preserves_preboundary_history_and_full_end_day.<locals>.<lambda>!   s   € ÉrP   c                 ó    •— | j                   j                  d   ‰d<   | j                   j                  d   ‰d<   ‰j                  |«       dddœS )Nr   Úfirstr]   Úlastg      ð?rS   )zCalmar RatiozTotal Trades)rT   r.   Úupdate)ÚslÚkwargsÚseens     €rN   ÚmetricszLtest_fitness_preserves_preboundary_history_and_full_end_day.<locals>.metrics#   sE   ø€ ØŸ™Ÿ™ Q™ˆˆW‰Ø—w‘w—|‘| BÑ'ˆˆV‰Ø�‰�FÔØ "°AÑ6Ð6rP   Úcalculate_metricsr   r   r   )z%(py1)s == %(py4)sr"   zassert %(py6)sr%   r€   z2020-01-03 20:00r^   r(   r_   r`   r   Úscore_startrY   )r(   r)   r*   ra   r   ÚzerosÚr_r   Úflatten_layersÚmake_fitness_contextre   Úevaluate_thetar.   r1   r2   r6   r7   r8   rh   r3   r4   r5   )rj   r;   ÚframeÚlayersÚthetaÚcontextr…   rG   rH   rI   rL   rn   r>   r?   r@   rp   rq   r„   s                    @rN   Ú;test_fitness_preserves_preboundary_history_and_full_end_dayr‘      s2  ø€ Ü�I‰I”b—m‘m L¸"À4ÔHÓI€EÜ�L‰L %°$ÀÑEÓF€EÜ�x‰x˜Ó ¤"§(¡(¨1£+Ð.Ð/€FÜ�E‰E”)×*Ñ*¨6Ó2Ò4DÐDÑE€EÜ×,Ñ,¨U´B·H±H¸XÓ4FÈÈQÈÐQVÐWZÐXZÐQ[Ø	+Ð,¨a°°Bó8€Gà×Ñœ	Ð#6Ñ8JÔKØ€Dô7ð
 ×Ñœ	Ð#6¸Ô@Ü×Ñ˜U GÔ,Ø�‰=Ð)˜EŸJ™J q™MÐ)ˆ=˜MÑ)×)×)Õ)ˆ=˜M×)×)Ó)ˆ=×)×)Ò)˜M×)×)×)×)×)×)Ó)Ø�‰<Ð;œ2Ÿ<™<Ð;Ð(:Ð;™<Ð(:Ó;Ð;ˆ<Ð;Ñ;×;×;Õ;ˆ<Ð;×;×;Ó;ˆ<×;×;×;×;×;Ð;œ2×;×;Ó;œ2×;×;Ô;˜<×;×;Ò;Ð(:×;×;Ò;Ð;×;×;×;×;×;×;×;Ø�ÑÐ. ,Ð.Ð ,Ñ.×.×.Õ.Ð ,×.×.Ó.Ð×.×.Ò. ,×.×.×.×.×.×.Ô.rP   )Úbuiltinsr3   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter1   Únumpyr   Úpandasr(   Útoolsr   rO   rr   r‘   rz   rP   rN   Ú<module>r™      s#   ðß  „ Ó Û å ò;òAó/rP   