Commit 20cc62c1 authored by Dr.李's avatar Dr.李

fixed rank test in sql engine test

parent 1857b5d7
...@@ -106,7 +106,7 @@ def linear_builder(er: np.ndarray, ...@@ -106,7 +106,7 @@ def linear_builder(er: np.ndarray,
objective = Minimize(-w.T * er) objective = Minimize(-w.T * er)
prob = Problem(objective, constraints) prob = Problem(objective, constraints)
prob.solve(solver='ECOS', feastol=1e-9, abstol=1e-9, reltol=1e-9) prob.solve(solver='ECOS', feastol=1e-10, abstol=1e-10, reltol=1e-10)
if prob.status == 'optimal' or prob.status == 'optimal_inaccurate': if prob.status == 'optimal' or prob.status == 'optimal_inaccurate':
return prob.status, prob.value, w.value.flatten() return prob.status, prob.value, w.value.flatten()
......
...@@ -536,13 +536,13 @@ class TestSqlEngine(unittest.TestCase): ...@@ -536,13 +536,13 @@ class TestSqlEngine(unittest.TestCase):
series = (ind_matrix[cols] * np.array(range(1, len(cols)+1))).sum(axis=1) series = (ind_matrix[cols] * np.array(range(1, len(cols)+1))).sum(axis=1)
df3['cat'] = series.values df3['cat'] = series.values
expected_rank = df3[['ROE', 'cat']].groupby('cat').transform(lambda x: rankdata(x.values) - 1.) expected_rank = df3[['ROE', 'cat']].groupby('cat').transform(lambda x: rankdata(x.values))
expected_rank[np.isnan(df3.ROE)] = np.nan expected_rank[np.isnan(df3.ROE)] = np.nan
df3['rank'] = expected_rank['ROE'].values df3['rank'] = expected_rank['ROE'].values
np.testing.assert_array_almost_equal(df3['rank'].values, np.testing.assert_array_almost_equal(df3['rank'].values,
df1['f'].values) df1['f'].values)
expected_quantile = df3[['ROE', 'cat']].groupby('cat').transform(lambda x: (rankdata(x.values) - 1.) / ((len(x) - 1.) if len(x) > 1 else 1.)) expected_quantile = df3[['ROE', 'cat']].groupby('cat').transform(lambda x: rankdata(x.values) / (len(x) + 1))
expected_quantile[np.isnan(df3.ROE)] = np.nan expected_quantile[np.isnan(df3.ROE)] = np.nan
df3['quantile'] = expected_quantile['ROE'].values df3['quantile'] = expected_quantile['ROE'].values
np.testing.assert_array_almost_equal(df3['quantile'].values, np.testing.assert_array_almost_equal(df3['quantile'].values,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment