fix: replace absolute difference with difference in compareOperator (#16930)

* fix: replace absolute difference with difference in compareOperator

* fix ut
This commit is contained in:
Yongjie Zhao 2021-10-04 06:31:19 +01:00 committed by GitHub
parent ace9c78684
commit 387ac2b6d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 9 deletions

View File

@ -165,7 +165,7 @@ class PandasAxis(int, Enum):
class PandasPostprocessingCompare(str, Enum): class PandasPostprocessingCompare(str, Enum):
ABS = "absolute" DIFF = "difference"
PCT = "percentage" PCT = "percentage"
RAT = "ratio" RAT = "ratio"

View File

@ -498,13 +498,13 @@ def compare( # pylint: disable=too-many-arguments
) )
if compare_type not in tuple(PandasPostprocessingCompare): if compare_type not in tuple(PandasPostprocessingCompare):
raise QueryObjectValidationError( raise QueryObjectValidationError(
_("`compare_type` must be `absolute`, `percentage` or `ratio`") _("`compare_type` must be `difference`, `percentage` or `ratio`")
) )
if len(source_columns) == 0: if len(source_columns) == 0:
return df return df
for s_col, c_col in zip(source_columns, compare_columns): for s_col, c_col in zip(source_columns, compare_columns):
if compare_type == PandasPostprocessingCompare.ABS: if compare_type == PandasPostprocessingCompare.DIFF:
diff_series = df[s_col] - df[c_col] diff_series = df[s_col] - df[c_col]
elif compare_type == PandasPostprocessingCompare.PCT: elif compare_type == PandasPostprocessingCompare.PCT:
diff_series = ( diff_series = (

View File

@ -478,18 +478,18 @@ class TestPostProcessing(SupersetTestCase):
self.assertListEqual(series_to_list(post_df["z"]), [0.0, 2.0, 8.0, 6.0]) self.assertListEqual(series_to_list(post_df["z"]), [0.0, 2.0, 8.0, 6.0])
def test_compare(self): def test_compare(self):
# `absolute` comparison # `difference` comparison
post_df = proc.compare( post_df = proc.compare(
df=timeseries_df2, df=timeseries_df2,
source_columns=["y"], source_columns=["y"],
compare_columns=["z"], compare_columns=["z"],
compare_type="absolute", compare_type="difference",
) )
self.assertListEqual( self.assertListEqual(
post_df.columns.tolist(), ["label", "y", "z", "absolute__y__z",] post_df.columns.tolist(), ["label", "y", "z", "difference__y__z",]
) )
self.assertListEqual( self.assertListEqual(
series_to_list(post_df["absolute__y__z"]), [0.0, -2.0, -8.0, -6.0], series_to_list(post_df["difference__y__z"]), [0.0, -2.0, -8.0, -6.0],
) )
# drop original columns # drop original columns
@ -497,10 +497,10 @@ class TestPostProcessing(SupersetTestCase):
df=timeseries_df2, df=timeseries_df2,
source_columns=["y"], source_columns=["y"],
compare_columns=["z"], compare_columns=["z"],
compare_type="absolute", compare_type="difference",
drop_original_columns=True, drop_original_columns=True,
) )
self.assertListEqual(post_df.columns.tolist(), ["label", "absolute__y__z",]) self.assertListEqual(post_df.columns.tolist(), ["label", "difference__y__z",])
# `percentage` comparison # `percentage` comparison
post_df = proc.compare( post_df = proc.compare(