Ë
    Bp±jn  ã                   óD   — d dl Zd dlmc mZ d dlZd dlmZ	 d„ Z
d„ Zd„ Zy)é    N)Úrun_mlp_deep_sweepc            	      ó|  — t        j                  dd«      } g d¢}| |k(  }|s™t        j                  d|fd| |f«      dt	        j
                  «       v st        j                  | «      rt        j                  | «      ndt        j                  |«      dœz  }dd	|iz  }t        t        j                  |«      «      ‚d x}}| D ���cg c]  \  }}t        ||«      D ]  }|‘Œ Œ }}}}d}	t        |	«      }
t        |
«      }||k(  }|�s&t        j                  d|fd
||f«      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}
}y c c}}}w )Né   é   ))r   é   )r   é   )r   é	   )r	   r   ©ú==©z%(py0)s == %(py3)sÚranges©Úpy0Úpy3úassert %(py5)sÚpy5)zP%(py1)s == %(py10)s
{%(py10)s = %(py3)s(%(py8)s
{%(py8)s = %(py4)s(%(py6)s)
})
}ÚlistÚrange)Úpy1r   Úpy4Úpy6Úpy8Úpy10zassert %(py12)sÚpy12)ÚsweepÚpartition_candidate_rangesÚ
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationr   r   )r   Ú@py_assert2Ú@py_assert1Ú@py_format4Ú@py_format6ÚstartÚendÚidxÚ@py_assert0Ú@py_assert5Ú@py_assert7Ú@py_assert9Ú@py_format11Ú@py_format13s                 ún/Users/jameslopez/projects/TradingBot25/.worktrees/mlp-comparable-measurement/tests/test_mlp_sweep_sharding.pyÚ5test_partition_candidate_ranges_is_balanced_and_exactr3      sO  € Ü×-Ñ-¨b°!Ó4€Fâ6Ð6ˆ6Ð6Ñ6×6×6Õ6ˆ6Ð6×6×6×6×6×6Ñ6ˆ6×6×6Ó6ˆ6×6×6Ô6Ð6×6×6×6×6×6×6Ñ6Ù"(ÕF¡&‘J�E˜3´E¸%ÀÖ4E¨SŠCÐ4EˆC &ÐYÒFÐUWÐYÌuÐUWËyÐYÌ$ÈyË/ÐYÐFÈ/ÑY×Y×YÖYÐFÈ/×Y×YÓYÐF×Y×Y×Y×Y×YÐYÌ$×Y×YÓYÌ$×Y×Y×Y×Y×YÒYÌu×Y×YÓYÌu×Y×YÔYÐUW×Y×YÒYÈy×Y×YÒYÈ/×Y×Y×Y×Y×Y×Y×YÐYùÔFs   ÃH7c                 ó2  ‡— t        d«      D �cg c]  }d|i‘Œ }}t        d«      D �cg c]  }d|i‘Œ c}Šd„ }| j                  t        j                  j                  d|«       | j                  t        dˆfd„«       t        j
                  d|d«      \  }}|‰k(  }|sÆt        j                  d	|fd
|‰f«      dt        j                  «       v st        j                  |«      rt        j                  |«      nddt        j                  «       v st        j                  ‰«      rt        j                  ‰«      nddœz  }dd|iz  }t        t        j                  |«      «      ‚d }d}	||	k(  }|s™t        j                  d	|fd||	f«      dt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |	«      dœz  }
dd|
iz  }t        t        j                  |«      «      ‚d x}}	y c c}w c c}w )Nr   Ú	candidateÚresultc                  ó   — t        dd«      ‚)Né   znot permitted)ÚPermissionError)Ú_kwargss    r2   Ú	deny_poolzDtest_pool_permission_error_uses_subprocess_shards.<locals>.deny_pool   s   € Ü˜a Ó1Ð1ó    ÚProcessPoolExecutorÚevaluate_candidates_subprocessc                 ó   •— ‰|fS )N© )ÚtfÚitemsÚworkersÚexpecteds      €r2   Ú<lambda>zCtest_pool_permission_error_uses_subprocess_shards.<locals>.<lambda>   s
   ø€  H¨gÑ#6r<   Ú8Hr
   )z%(py0)s == %(py2)sÚresultsrD   )r   Úpy2zassert %(py4)sr   r   rC   r   r   r   )r   Úsetattrr   Ú
concurrentÚfuturesÚevaluate_candidatesr   r   r   r    r!   r"   r#   r$   )Úmonkeypatchr+   Ú
candidatesr;   rG   rC   r&   Ú@py_format3Ú@py_format5r%   r'   r(   rD   s               @r2   Ú1test_pool_permission_error_uses_subprocess_shardsrQ      s\  ø€ Ü05°a´Ó9±¨�; Ò$°€JÐ9Ü+0°¬8Ó4©8 C�˜3’¨8Ñ4€Hò2ð ×Ñœ×(Ñ(×0Ñ0Ð2GÈÔSØ×ÑÜØ(Û6ôô ×0Ñ0°°zÀ1ÓEÑ€GˆWà�hÑ××Õˆ7�h×××××Ñˆ7××Óˆ7×××××Ò�h××Ó�h××××××ÑØÐˆ7�a‰<××Õˆ7�a×××××Ñˆ7××Óˆ7××Ô�a××××××Òùò! :ùÚ4s
   �H©Hc                 óš  — | dz  }| dz  }ddiddig}dddddd	|d
œ}|j                  d«      5 }t        j                  ||«       d d d «       |j                  t        ddd„«       t	        j
                  d||«       |j                  d«      5 }t        j                  |«      }d 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}
}	|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}
}	|d   }ddiddig}	||	k(  }
|
slt        j                  d|
fd||	f«      t        j                  |«      t        j                  |	«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}x}
}	y # 1 sw Y   �ŒðxY w# 1 sw Y   �ŒžxY w)Nz	input.pklz
output.pklr5   é   r   r8   ÚCOINBASE_BTCUSDrF   r   )ÚversionÚassetrA   Úordinalr)   r*   rN   ÚwbÚevaluate_candidates_sequentialc                 ó6   — |D �cg c]	  }d|d   i‘Œ c}S c c}w )Nr6   r5   r@   )rA   rB   Úshow_progressÚitems       r2   rE   z?test_internal_shard_preserves_candidate_order.<locals>.<lambda>4   s(   € Ù6;ó0
Ù6;¨dˆX�t˜KÑ(Ò)°eò0
ùò 0
s   …Úrbr)   r
   )z%(py1)s == %(py4)s)r   r   zassert %(py6)sr   r*   rG   r6   )F)ÚopenÚpickleÚdumprI   r   Úrun_internal_shardÚloadr   r   r"   r#   r$   )Útmp_pathrM   Ú
input_pathÚoutput_pathrN   ÚpayloadÚhandleÚoutputr,   Ú@py_assert3r%   rP   Ú@py_format7s                r2   Ú-test_internal_shard_preserves_candidate_orderrk   !   sË  € Ø˜KÑ'€JØ˜\Ñ)€KØ Ð" [°!Ð$4Ð5€JàØ"ØØØØØ ñ€Gð 
�‰˜Ô	 &Ü�‰�G˜VÔ$÷ 
ð ×ÑÜØ(ò	
ôô 
×Ñ˜T :¨{Ô;à	×	Ñ	˜$Ô	 6Ü—‘˜VÓ$ˆ÷ 
 à�'‰?Ð˜aÐˆ?˜aÑ××Õˆ?˜a××Óˆ?××Ò˜a××××××ÓØ�%‰=Ð˜AÐˆ=˜AÑ××Õˆ=˜A××Óˆ=××Ò˜A××××××ÓØ�)ÑÐ> (¨A °¸1°Ð >Ð>ÐÐ >Ñ>×>×>Õ>ÐÐ >×>×>Ó>Ð×>×>Ò>Ð >×>×>×>×>×>×>Ô>÷# 
Ñ	ú÷ 
 Ñ	ús   ®H3ÂI È3H=É I
)Úbuiltinsr   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter   r_   Útoolsr   r   r3   rQ   rk   r@   r<   r2   Ú<module>rq      s   ðß  „ ƒå -òZòó(?r<   