@@ -57,33 +57,6 @@ def make_fx_rates(cls, fields, currencies, sessions):
5757 'tokyo_mid' : cls .tokyo_mid_rates ,
5858 }
5959
60- @classmethod
61- def get_expected_rate_scalar (cls , rate , quote , base , dt ):
62- """Get the expected FX rate for the given scalar coordinates.
63- """
64- if rate == DEFAULT_FX_RATE :
65- rate = cls .FX_RATES_DEFAULT_RATE
66-
67- col = cls .fx_rates [rate ][quote ][base ]
68- # PERF: We call this function a lot in this suite, and get_loc is
69- # surprisingly expensive, so optimizing it has a meaningful impact on
70- # overall suite performance. See test_fast_get_loc_ffilled_for
71- # assurance that this behaves the same as get_loc.
72- ix = fast_get_loc_ffilled (col .index .values , dt .asm8 )
73- return col .values [ix ]
74-
75- @classmethod
76- def get_expected_rates (cls , rate , quote , bases , dts ):
77- """Get an array of expected FX rates for the given indices.
78- """
79- out = np .empty ((len (dts ), len (bases )), dtype = 'float64' )
80-
81- for i , dt in enumerate (dts ):
82- for j , base in enumerate (bases ):
83- out [i , j ] = cls .get_expected_rate_scalar (rate , quote , base , dt )
84-
85- return out
86-
8760 @property
8861 def reader (self ):
8962 raise NotImplementedError ("Must be implemented by test suite." )
@@ -108,7 +81,7 @@ def test_scalar_lookup(self):
10881 if quote == base :
10982 assert_equal (result_scalar , 1.0 )
11083
111- expected = self .get_expected_rate_scalar (rate , quote , base , dt )
84+ expected = self .get_expected_fx_rate_scalar (rate , quote , base , dt )
11285 assert_equal (result_scalar , expected )
11386
11487 def test_vectorized_lookup (self ):
@@ -133,7 +106,7 @@ def test_vectorized_lookup(self):
133106 # ...And check that we get the expected result when querying
134107 # for those dates/currencies.
135108 result = self .reader .get_rates (rate , quote , bases , dts )
136- expected = self .get_expected_rates (rate , quote , bases , dts )
109+ expected = self .get_expected_fx_rates (rate , quote , bases , dts )
137110
138111 assert_equal (result , expected )
139112
@@ -211,17 +184,6 @@ def reader(self):
211184 return self .h5_fx_reader
212185
213186
214- def fast_get_loc_ffilled (dts , dt ):
215- """
216- Equivalent to dts.get_loc(dt, method='ffill'), but with reasonable
217- microperformance.
218- """
219- ix = dts .searchsorted (dt , side = 'right' ) - 1
220- if ix < 0 :
221- raise KeyError (dt )
222- return ix
223-
224-
225187class FastGetLocTestCase (zp_fixtures .ZiplineTestCase ):
226188
227189 def test_fast_get_loc_ffilled (self ):
@@ -234,12 +196,12 @@ def test_fast_get_loc_ffilled(self):
234196 ])
235197
236198 for dt in pd .date_range ('2014-01-02' , '2014-01-08' ):
237- result = fast_get_loc_ffilled (dts .values , dt .asm8 )
199+ result = zp_fixtures . fast_get_loc_ffilled (dts .values , dt .asm8 )
238200 expected = dts .get_loc (dt , method = 'ffill' )
239201 assert_equal (result , expected )
240202
241203 with self .assertRaises (KeyError ):
242204 dts .get_loc (pd .Timestamp ('2014-01-01' ), method = 'ffill' )
243205
244206 with self .assertRaises (KeyError ):
245- fast_get_loc_ffilled (dts , pd .Timestamp ('2014-01-01' ))
207+ zp_fixtures . fast_get_loc_ffilled (dts , pd .Timestamp ('2014-01-01' ))
0 commit comments