
    ECj^
                    l    d dl mZ d dlZd dlmc mZ d dlZd dl	m
Z
 d dlmZ d dlmZ ddZd Zd ZdS )    )annotationsN)Path)v76_paper_supervisor)	STRICT_IDpathr   rowdictreturnNonec                    | j                             dd           |                     dd          5 }|                    t	          j        |          dz              d d d            d S # 1 swxY w Y   d S )NT)parentsexist_okazutf-8)encoding
)parentmkdiropenwritejsondumps)r   r   fhs      U/home/agent/projects/CryptoTradingBot/Crypto_Agent/tests/test_v76_paper_supervisor.py_appendr   
   s    KdT222	3	)	) )R
C4'((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   +A,,A03A0c           
     `    |                     t          d fd            dz  dz  t          z  }t          |dz  ddddd	           t          |dz  d
dddddd           t          |dz  d
dddddd           t          |dz  dddgd           |dz                      t          j        dddddii                     t          j        t                    }|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}||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}||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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,}||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}||k    }|slt          j	        d|fd||f          t          j
        |          t          j
        |          dz  }d d!|iz  }t          t          j        |                    d x}x}}|d/         d0         }d}||k    }|slt          j	        d|fd||f          t          j
        |          t          j
        |          dz  }d d!|iz  }t          t          j        |                    d x}x}}|d1         d2         }d3}||u }|slt          j	        d4|fd5||f          t          j
        |          t          j
        |          dz  }d d!|iz  }t          t          j        |                    d x}x}}|d6         d2         }d3}||u }|slt          j	        d4|fd5||f          t          j
        |          t          j
        |          dz  }d d!|iz  }t          t          j        |                    d x}x}}|d7         }d3}||u }|slt          j	        d4|fd5||f          t          j
        |          t          j
        |          dz  }d d!|iz  }t          t          j        |                    d x}x}}d S )8N
_repo_rootc                      S N tmp_paths   r   <lambda>zGtest_v76_supervisor_status_includes_lifecycle_summary.<locals>.<lambda>       H     runtimeexperimentstrade_journal.jsonlentryBTCF)eventcoinlive_order_allowedmainnet_signed_actionexittake_profitz0.42)r*   r+   exit_reasonnet_pnl_usdr,   r-   ETH	stop_lossz-0.21zsignal_journal.jsonlzblocked:costcostconfluence_block_new_entry)final_decisionblock_reasonz
state.jsonopen_positions100z0.2)r(   sizeentries   ==z%(py1)s == %(py4)spy1py4assert %(py6)spy6exits   open_by_coinopen_notional_usdz20.00exit_reasons)r/   r3   closed_net_pnl_usdz0.21winrate_pctz50.00profit_factorz2.00recent_signal_blockersblockedtrade_journal_metaexistsTisz%(py1)s is %(py4)ssignal_journal_meta
paper_only)setattrr   r   r   
write_textr   r   _lifecycle_summary
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanation	r!   monkeypatchr%   summary@py_assert0@py_assert3@py_assert2@py_format5@py_format7s	   `        r   5test_v76_supervisor_status_includes_lifecycle_summaryrf      s
   ,l<L<L<L<LMMM"]2Y>GG++wej  FK  .L  .L  M  M  MG++vu]j  |B  Z_  z  .@  .@  A  A  AG++vu]h  zA  Y^  y~  .  .  @  @  @G,,bh  kG  bH  /I  /I  J  J  J|''
4DuX]glNmNmFn3o(p(pqqq"5i@@G9""""""""""""""""""""""""""""""""""""""""""""""""7 q q          q         q                           #$))$))))))))))$)))))$)))))))))))))))))))))))))))))))>"0uaj0"j0000000000"j00000"0000j000000000000000000000000000&'272'72222222222'722222'22227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>"Haa&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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'(2F2(F2222222222(F22222(2222F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=!,W,!W,,,,,,,,,,!W,,,,,!,,,,W,,,,,,,,,,,,,,,,,,,,,,,,,,,?#-v-#v----------#v-----#----v---------------------------+,V4994999999999949999949999999999999999999999999999999+,Y7<1<71<<<<<<<<<<71<<<<<7<<<<1<<<<<<<<<<<<<<<<<<<<<<<<<<<'(2:d:2d::::::::::2d:::::2::::d:::::::::::::::::::::::::::()(3;t;3t;;;;;;;;;;3t;;;;;3;;;;t;;;;;;;;;;;;;;;;;;;;;;;;;;;< (D( D(((((((((( D((((( ((((D(((((((((((((((((((((((((((((r$   c           	         |                     t          d fd            dz  dz  t          z  }t          |dz  dddd	d
d           t          j        t                    }|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}||u }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j	        |                    d x}x}}d S )Nr   c                      S r   r   r    s   r   r"   zBtest_v76_supervisor_detects_unexpected_live_flag.<locals>.<lambda>,   r#   r$   r%   r&   r'   r.   r)   r3   z-0.12T)r*   r+   r0   r1   r,   
live_flagsr<   r=   r?   r@   rC   rD   rU   FrQ   rS   )
rV   r   r   r   rX   rY   rZ   r[   r\   r]   r^   s	   `        r   0test_v76_supervisor_detects_unexpected_live_flagrj   +   s   ,l<L<L<L<LMMM"]2Y>GG++vu]h  zA  Y]  .^  .^  _  _  _"5i@@G< %A% A%%%%%%%%%% A%%%%% %%%%A%%%%%%%%%%%%%%%%%%%%%%%%%%%< )E) E)))))))))) E))))) ))))E)))))))))))))))))))))))))))))r$   )r   r   r   r	   r
   r   )
__future__r   builtins@py_builtins_pytest.assertion.rewrite	assertionrewriterY   r   pathlibr   	src.toolsr   src.tools.v76_paper_runtimer   r   rf   rj   r   r$   r   <module>rt      s    " " " " " "                     * * * * * * 1 1 1 1 1 1) ) ) )) ) )6* * * * *r$   