mirror of https://github.com/apache/superset.git
fix: replace absolute difference with difference in compareOperator (#16930)
* fix: replace absolute difference with difference in compareOperator * fix ut
This commit is contained in:
parent
ace9c78684
commit
387ac2b6d3
|
@ -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"
|
||||||
|
|
||||||
|
|
|
@ -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 = (
|
||||||
|
|
|
@ -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(
|
||||||
|
|
Loading…
Reference in New Issue