
    ʥj                     P    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d Zd Zy)    Nc                      t        j                  ddd      } t        j                  | t        dd      d      }t        j                  | g dg d	g d
d      }||fS )Nz
2024-01-01   D)periodsfreqd   l   )timeclose)g      @皙@333333@@ffffff@      @皙@333333@)r   r   r   r   r   r   r   @)r   r   r   r   r   r   r   gffffff@r
   DGS2DGS10DGS30)pd
date_range	DataFramerange)datesbtcyieldss      P/Users/jameslopez/projects/TradingBot25/tests/test_treasury_curve_event_study.py_btc_and_yieldsr       sY    MM,<E
,,c3@
AC\\52Z$L$LN OF ;    c            	         t               \  } }t        j                  | |      }|d   }|j                  } |       }| d   j                  dd  }|j                  } |       }||k(  }	|	st        j                  d|	fd||f      t        j                  |      t        j                  |      t        j                  |      t        j                  |      t        j                  |      t        j                  |      dz  }
dd|
iz  }t        t        j                  |            d x}x}x}x}	x}x}}|d   }|j                  } |       }|d   j                  d d	 }|j                  } |       }||k(  }	|	st        j                  d|	fd||f      t        j                  |      t        j                  |      t        j                  |      t        j                  |      t        j                  |      t        j                  |      dz  }
dd|
iz  }t        t        j                  |            d x}x}x}x}	x}x}}y )
Nr
      ==)z|%(py5)s
{%(py5)s = %(py3)s
{%(py3)s = %(py1)s.tolist
}()
} == %(py12)s
{%(py12)s = %(py10)s
{%(py10)s = %(py8)s.tolist
}()
})py1py3py5py8py10py12zassert %(py14)spy14r   )
r    studyalign_point_in_timetolistiloc
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanation)r   r   aligned@py_assert0@py_assert2@py_assert4@py_assert7@py_assert9@py_assert11@py_assert6@py_format13@py_format15s               r   )test_alignment_lags_yields_by_one_btc_dayrA      s   !#KC''V4G6?D?!!D!#Ds6{'7'7';D';'B'BD'B'DD#'DDDDD#'DDDD?DDD!DDD#DDD';DDD'BDDD'DDDDDDDDD7J""J"$Jw(<(<Sb(AJ(A(H(HJ(H(JJ$(JJJJJ$(JJJJJJJ"JJJ$JJJ(AJJJ(HJJJ(JJJJJJJJJr!   c                 l   | dz  }|j                  d       t        j                  |      }|j                  }|j                  } |       }g d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      t        j                  |      t        j                  |      dz  }dd	|iz  }	t        t        j                  |	            d x}x}x}x}}y )
Nzfred.csvz9observation_date,DGS2,DGS10,DGS30
2024-01-01,4.1,4.0,3.9
r   r$   )zb%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.columns
}.tolist
}()
} == %(py9)sloaded)py0py2py4py6py9zassert %(py11)spy11)
write_textr.   load_yieldscolumnsr0   r2   r3   @py_builtinslocals_should_repr_global_namer4   r5   r6   )
tmp_pathsourcerC   @py_assert1@py_assert3@py_assert5@py_assert8r;   @py_format10@py_format12s
             r   .test_load_yields_accepts_fred_observation_daterX      s    
"F
STv&F>>H>  H "H&HH"&HHHHH"&HHHHHHH6HHH6HHH>HHH HHH"HHH&HHHHHHHHHr!   c                     t               \  } }t        j                  t        j                  | |      dd      }|d   }|j                  } |       }|s`dt        j                  |      t        j                  |      t        j                  |      dz  }t        t        j                  |            d x}x}}|d   j                  d d }|j                  } |       }| }|s`dt        j                  |      t        j                  |      t        j                  |      dz  }t        t        j                  |            d x}x}x}}|d	   j                  d d }|j                  } |       }| }|s`dt        j                  |      t        j                  |      t        j                  |      dz  }t        t        j                  |            d x}x}x}}|d	   j                  dd  }|j                  } |       }|s`dt        j                  |      t        j                  |      t        j                  |      dz  }t        t        j                  |            d x}x}}|d   j                  dd  }|j                  } |       }|s`dt        j                  |      t        j                  |      t        j                  |      dz  }t        t        j                  |            d x}x}}y )
N      change_dayssharp_drop_bpsten_above_thirtyz>assert %(py5)s
{%(py5)s = %(py3)s
{%(py3)s = %(py1)s.all
}()
})r&   r'   r(   all_yields_sharply_fallingzBassert not %(py5)s
{%(py5)s = %(py3)s
{%(py3)s = %(py1)s.any
}()
}two_year_sharply_falling)r    r.   build_signalsr/   allr2   r4   r5   r6   r1   any)	r   r   framer8   r9   r:   @py_format6r>   @py_format7s	            r   =test_hypotheses_identify_curve_inversion_and_joint_sharp_droprh   !   s*   !#KC 9 9#v FTUfhiE#$*$((*(*****$***(**********1277;A;??A?AAAAAAAA;AAA?AAAAAAAAAA/055bq9?9==?=????????9???=??????????+,11!"5;599;9;;;;;5;;;9;;;;;;;;;;-.33AB7=7;;=;=====7===;==========r!   c                     t               \  } }t        j                  | |dd      }|d   d   }|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   }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   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 )NrZ   r[   r\   windowsfullbaselinehorizons1n   r$   )z%(py1)s == %(py4)s)r&   rF   zassert %(py6)srG   r_   signal_days   ra      r`   )r    r.   r2   r3   r4   r5   r6   )	r   r   reportrk   r8   rS   r9   @py_format5rg   s	            r   :test_study_reports_independent_baseline_and_signal_samplesrv   ,   s   !#KC[[f!BGF)V$D
J',S16Q61Q66661Q6661666Q6666666"#M27a72a77772a7772777a7777777*+M:?a?:a????:a???:???a???????,-m<AA<AAAA<AAA<AAAAAAAAAAr!   )builtinsrM   _pytest.assertion.rewrite	assertionrewriter2   pandasr   $tools.run_treasury_curve_event_studyrun_treasury_curve_event_studyr.   r    rA   rX   rh   rv    r!   r   <module>r      s,        4KI>	Br!   