diff --git a/temporian/core/event_set_ops.py b/temporian/core/event_set_ops.py index 24ba42d0a..08bb70fd5 100644 --- a/temporian/core/event_set_ops.py +++ b/temporian/core/event_set_ops.py @@ -119,11 +119,11 @@ def __ne__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> c = a != b >>> c indexes: [] - features: [('ne_f1_f2', bool_)] + features: [('f1', bool_)] events: (3 events): timestamps: [1. 2. 3.] - 'ne_f1_f2': [ True False True] + 'f1': [ True False True] ... ``` @@ -193,12 +193,12 @@ def __add__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> c = a + b >>> c indexes: [] - features: [('add_f1_f3', int64), ('add_f2_f4', int64)] + features: [('f1', int64), ('f2', int64)] events: (3 events): timestamps: [1. 2. 3.] - 'add_f1_f3': [ -1 101 202] - 'add_f2_f4': [ 11 -11 10] + 'f1': [ -1 101 202] + 'f2': [ 11 -11 10] ... ``` @@ -245,11 +245,11 @@ def __add__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> c = a["f1"].cast(tp.float64) + a["f2"] >>> c indexes: [] - features: [('add_f1_f2', float64)] + features: [('f1', float64)] events: (3 events): timestamps: [1. 2. 3.] - 'add_f1_f2': [ 10. 90. 205.] + 'f1': [ 10. 90. 205.] ... ``` @@ -275,11 +275,11 @@ def __add__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> c = a.resample(b) + b >>> c indexes: [] - features: [('add_fa_fb', int64)] + features: [('fa', int64)] events: (4 events): timestamps: [-1. 1.5 3. 5. ] - 'add_fa_fb': [-10 16 33 53] + 'fa': [-10 16 33 53] ... ``` @@ -314,14 +314,14 @@ def __add__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> c = a + b.resample(a) >>> c indexes: [('cat', int64)] - features: [('add_M_N', int64)] + features: [('M', int64)] events: cat=1 (2 events): timestamps: [1. 2.] - 'add_M_N': [20 40] + 'M': [20 40] cat=2 (2 events): timestamps: [3. 4.] - 'add_M_N': [60 80] + 'M': [60 80] ... ``` @@ -382,11 +382,11 @@ def __sub__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> c = a - b >>> c indexes: [] - features: [('sub_f1_f2', int64)] + features: [('f1', int64)] events: (3 events): timestamps: [1. 2. 3.] - 'sub_f1_f2': [-10 80 205] + 'f1': [-10 80 205] ... ``` @@ -475,11 +475,11 @@ def __mul__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> c = a * b >>> c indexes: [] - features: [('mult_f1_f2', int64)] + features: [('f1', int64)] events: (3 events): timestamps: [1. 2. 3.] - 'mult_f1_f2': [ 0 300 400] + 'f1': [ 0 300 400] ... ``` @@ -634,11 +634,11 @@ def __truediv__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> c = a / b >>> c indexes: [] - features: [('div_f1_f2', float64)] + features: [('f1', float64)] events: (3 events): timestamps: [1. 2. 3.] - 'div_f1_f2': [0. 5. 4.] + 'f1': [0. 5. 4.] ... ``` @@ -665,11 +665,11 @@ def __truediv__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> c = a.cast(tp.float64) / b.cast(tp.float64) >>> c indexes: [] - features: [('div_f1_f2', float64)] + features: [('f1', float64)] events: (3 events): timestamps: [1. 2. 3.] - 'div_f1_f2': [0. 5. 4.] + 'f1': [0. 5. 4.] ... ``` @@ -757,11 +757,11 @@ def __floordiv__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> c = a // b >>> c indexes: [] - features: [('floordiv_f1_f2', int64)] + features: [('f1', int64)] events: (3 events): timestamps: [1. 2. 3.] - 'floordiv_f1_f2': [ 0 33 1] + 'f1': [ 0 33 1] ... ``` @@ -850,11 +850,11 @@ def __pow__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> c = a ** b >>> c indexes: [] - features: [('pow_f1_f2', int64)] + features: [('f1', int64)] events: (3 events): timestamps: [1. 2. 3.] - 'pow_f1_f2': [ 1 8 16] + 'f1': [ 1 8 16] ... ``` @@ -943,11 +943,11 @@ def __mod__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> c = a % b >>> c indexes: [] - features: [('mod_f1_f2', int64)] + features: [('f1', int64)] events: (3 events): timestamps: [1. 2. 3.] - 'mod_f1_f2': [ 0 2 50] + 'f1': [ 0 2 50] ... ``` @@ -1033,11 +1033,11 @@ def __gt__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> c = a > b >>> c indexes: [] - features: [('gt_f1_f2', bool_)] + features: [('f1', bool_)] events: (3 events): timestamps: [1. 2. 3.] - 'gt_f1_f2': [ True False True] + 'f1': [ True False True] ... ``` @@ -1109,11 +1109,11 @@ def __ge__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> c = a >= b >>> c indexes: [] - features: [('ge_f1_f2', bool_)] + features: [('f1', bool_)] events: (3 events): timestamps: [1. 2. 3.] - 'ge_f1_f2': [ True True True] + 'f1': [ True True True] ... ``` @@ -1185,11 +1185,11 @@ def __lt__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> c = a < b >>> c indexes: [] - features: [('lt_f1_f2', bool_)] + features: [('f1', bool_)] events: (3 events): timestamps: [1. 2. 3.] - 'lt_f1_f2': [False False False] + 'f1': [False False False] ... ``` @@ -1261,11 +1261,11 @@ def __le__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> c = a <= b >>> c indexes: [] - features: [('le_f1_f2', bool_)] + features: [('f1', bool_)] events: (3 events): timestamps: [1. 2. 3.] - 'le_f1_f2': [False True False] + 'f1': [False True False] ... ``` @@ -1336,11 +1336,11 @@ def __and__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> d = b & c >>> d indexes: [] - features: [('and_f1_f1', bool_)] + features: [('f1', bool_)] events: (3 events): timestamps: [1. 2. 3.] - 'and_f1_f1': [False True False] + 'f1': [False True False] ... ``` @@ -1355,11 +1355,11 @@ def __and__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> c = b["f1"] & b["f2"] >>> c indexes: [] - features: [('and_f1_f2', bool_)] + features: [('f1', bool_)] events: (3 events): timestamps: [1. 2. 3.] - 'and_f1_f2': [False True False] + 'f1': [False True False] ... ``` @@ -1401,11 +1401,11 @@ def __or__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> d = b | c >>> d indexes: [] - features: [('or_f1_f1', bool_)] + features: [('f1', bool_)] events: (3 events): timestamps: [1. 2. 3.] - 'or_f1_f1': [ True False True] + 'f1': [ True False True] ... ``` @@ -1447,11 +1447,11 @@ def __xor__(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> d = b ^ c >>> d indexes: [] - features: [('xor_f1_f1', bool_)] + features: [('f1', bool_)] events: (3 events): timestamps: [1. 2. 3.] - 'xor_f1_f1': [ True False True] + 'f1': [ True False True] ... ``` @@ -2477,11 +2477,11 @@ def equal(self: EventSetOrNode, other: Any) -> EventSetOrNode: >>> c = a.equal(b) >>> c indexes: [] - features: [('eq_f1_f2', bool_)] + features: [('f1', bool_)] events: (3 events): timestamps: [1. 2. 3.] - 'eq_f1_f2': [False True False] + 'f1': [False True False] ... ``` @@ -3529,14 +3529,14 @@ def propagate( >>> div = products / store_resample >>> div indexes: [('product', int64)] - features: [('div_sales_sales', float64)] + features: [('sales', float64)] events: product=1 (3 events): timestamps: [1. 2. 3.] - 'div_sales_sales': [0.01 0.01 0.0167] + 'sales': [0.01 0.01 0.0167] product=2 (3 events): timestamps: [1. 2. 3.] - 'div_sales_sales': [0.1 0.1 0.1667] + 'sales': [0.1 0.1 0.1667] ... ``` diff --git a/temporian/core/operators/binary/base.py b/temporian/core/operators/binary/base.py index 962f7ce83..b2e197c4b 100644 --- a/temporian/core/operators/binary/base.py +++ b/temporian/core/operators/binary/base.py @@ -67,7 +67,7 @@ def __init__( # outputs output_features = [ # pylint: disable=g-complex-comprehension FeatureSchema( - name=self.output_feature_name(feature_1, feature_2), + name=feature_1.name, dtype=self.output_feature_dtype(feature_1, feature_2), ) for feature_1, feature_2 in zip( @@ -107,11 +107,6 @@ def operator_def_key(cls) -> str: def prefix(self) -> str: """Gets the prefix to use for the output features.""" - def output_feature_name( - self, feature_1: FeatureSchema, feature_2: FeatureSchema - ) -> str: - return f"{self.prefix}_{feature_1.name}_{feature_2.name}" - def output_feature_dtype( self, feature_1: FeatureSchema, feature_2: FeatureSchema ) -> DType: diff --git a/temporian/core/operators/glue.py b/temporian/core/operators/glue.py index c8e957f8f..79a47e13f 100644 --- a/temporian/core/operators/glue.py +++ b/temporian/core/operators/glue.py @@ -121,17 +121,17 @@ def glue( >>> c = a["M"] - a["N"] # Glue all features from a,b,c - >>> d = tp.glue(a, b, c) + >>> d = tp.glue(a, b.rename("plus_N"), c.rename("minus_N")) >>> d indexes: [] - features: [('M', int64), ('N', int64), ('add_M_N', int64), ('sub_M_N', int64)] + features: [('M', int64), ('N', int64), ('plus_N', int64), ('minus_N', int64)] events: (3 events): timestamps: [0. 1. 5.] 'M': [ 0 10 50] 'N': [ 50 100 500] - 'add_M_N': [ 50 110 550] - 'sub_M_N': [ -50 -90 -450] + 'plus_N': [ 50 110 550] + 'minus_N': [ -50 -90 -450] ... ``` diff --git a/temporian/core/operators/test/test_arithmetic.py b/temporian/core/operators/test/test_arithmetic.py index e3c26345c..782312dc7 100644 --- a/temporian/core/operators/test/test_arithmetic.py +++ b/temporian/core/operators/test/test_arithmetic.py @@ -57,8 +57,8 @@ def test_addition(self) -> None: features={ "store_id": [1, 1, 1, 1, 2, 2, 2, 2], "product_id": [1, 1, 1, 2, 2, 2, 3, 3], - "add_f1_f3": f64([-9.5, 9.5, 32, 10, 3, 0, 6, 9]), - "add_f2_f4": f32([6, 5, 4, 6, -3, 8, 11, 11]), + "f1": f64([-9.5, 9.5, 32, 10, 3, 0, 6, 9]), + "f2": f32([6, 5, 4, 6, -3, 8, 11, 11]), }, indexes=["store_id", "product_id"], same_sampling_as=self.evset_1, @@ -71,8 +71,8 @@ def test_subtraction(self) -> None: features={ "store_id": [1, 1, 1, 1, 2, 2, 2, 2], "product_id": [1, 1, 1, 2, 2, 2, 3, 3], - "sub_f1_f3": f64([-18.5, 20.5, 0, 10, -3, 16, 0, -1]), - "sub_f2_f4": f32([-4, -1, 2, 2, 13, 4, 3, 5]), + "f1": f64([-18.5, 20.5, 0, 10, -3, 16, 0, -1]), + "f2": f32([-4, -1, 2, 2, 13, 4, 3, 5]), }, indexes=["store_id", "product_id"], same_sampling_as=self.evset_1, @@ -85,8 +85,8 @@ def test_multiplication(self) -> None: features={ "store_id": [1, 1, 1, 1, 2, 2, 2, 2], "product_id": [1, 1, 1, 2, 2, 2, 3, 3], - "mult_f1_f3": f64([-63, -82.5, 256, 0, 0, -64, 9, 20]), - "mult_f2_f4": f32([5, 6, 3, 8, -40, 12, 28, 24]), + "f1": f64([-63, -82.5, 256, 0, 0, -64, 9, 20]), + "f2": f32([5, 6, 3, 8, -40, 12, 28, 24]), }, indexes=["store_id", "product_id"], same_sampling_as=self.evset_1, @@ -99,10 +99,8 @@ def test_division(self) -> None: features={ "store_id": [1, 1, 1, 1, 2, 2, 2, 2], "product_id": [1, 1, 1, 2, 2, 2, 3, 3], - "div_f1_f3": f64( - [-14 / 4.5, -15 / 5.5, 1, np.inf, 0, -1, 1, 0.8] - ), - "div_f2_f4": f32([0.2, 2 / 3, 3, 2, -0.625, 3, 1.75, 8 / 3]), + "f1": f64([-14 / 4.5, -15 / 5.5, 1, np.inf, 0, -1, 1, 0.8]), + "f2": f32([0.2, 2 / 3, 3, 2, -0.625, 3, 1.75, 8 / 3]), }, indexes=["store_id", "product_id"], same_sampling_as=self.evset_1, @@ -115,8 +113,8 @@ def test_floordiv(self) -> None: features={ "store_id": [1, 1, 1, 1, 2, 2, 2, 2], "product_id": [1, 1, 1, 2, 2, 2, 3, 3], - "floordiv_f1_f3": f64([-4, -3, 1, np.inf, 0, -1, 1, 0]), - "floordiv_f2_f4": f32([0, 0, 3, 2, -1, 3, 1, 2]), + "f1": f64([-4, -3, 1, np.inf, 0, -1, 1, 0]), + "f2": f32([0, 0, 3, 2, -1, 3, 1, 2]), }, indexes=["store_id", "product_id"], same_sampling_as=self.evset_1, @@ -142,8 +140,8 @@ def test_noindex_unsorted(self) -> None: expected = event_set( timestamps=[0, 1, 2, 3], features={ - "add_f1_f2": [0, 11, 22, 33], - "add_f2_f1": [0, 9, 18, 27], + "f1": [0, 11, 22, 33], + "f2": [0, 9, 18, 27], }, same_sampling_as=evset_1, ) diff --git a/temporian/core/operators/test/test_logical.py b/temporian/core/operators/test/test_logical.py index 96371f510..a8f0ae868 100644 --- a/temporian/core/operators/test/test_logical.py +++ b/temporian/core/operators/test/test_logical.py @@ -35,7 +35,7 @@ def test_correct_and(self) -> None: """Test correct AND operator.""" expected = event_set( timestamps=[1, 2, 3, 4], - features={"and_x_x": [True, False, False, False]}, + features={"x": [True, False, False, False]}, same_sampling_as=self.evset_1, ) assertOperatorResult(self, self.evset_1 & self.evset_2, expected) @@ -44,7 +44,7 @@ def test_correct_or(self) -> None: """Test correct OR operator.""" expected = event_set( timestamps=[1, 2, 3, 4], - features={"or_x_x": [True, False, True, True]}, + features={"x": [True, False, True, True]}, same_sampling_as=self.evset_1, ) assertOperatorResult(self, self.evset_1 | self.evset_2, expected) @@ -53,7 +53,7 @@ def test_correct_xor(self) -> None: """Test correct XOR operator.""" expected = event_set( timestamps=[1, 2, 3, 4], - features={"xor_x_x": [False, False, True, True]}, + features={"x": [False, False, True, True]}, same_sampling_as=self.evset_1, ) assertOperatorResult(self, self.evset_1 ^ self.evset_2, expected) diff --git a/temporian/core/operators/test/test_relational.py b/temporian/core/operators/test/test_relational.py index 0a6c955ce..9f93e5182 100644 --- a/temporian/core/operators/test/test_relational.py +++ b/temporian/core/operators/test/test_relational.py @@ -47,7 +47,7 @@ def test_correct_equal(self) -> None: features={ "store_id": [0, 0, 1, 1, 2, 2], # NOTE: nan == nan is False - "eq_sales_cost": [True, False, False, False, True, False], + "sales": [True, False, False, False, True, False], }, indexes=["store_id"], same_sampling_as=self.evset_1, @@ -68,7 +68,7 @@ def test_equal_str(self) -> None: expected = event_set( timestamps=timestamps, - features={"eq_a_b": [True, False, False, True]}, + features={"a": [True, False, False, True]}, same_sampling_as=evset_1, ) # NOTE: evset_1 == evset_2 is not overloaded for event-wise comparison @@ -88,7 +88,7 @@ def test_notequal_str(self) -> None: expected = event_set( timestamps=timestamps, - features={"ne_a_b": [False, True, True, False]}, + features={"a": [False, True, True, False]}, same_sampling_as=evset_1, ) @@ -101,7 +101,7 @@ def test_correct_not_equal(self) -> None: features={ "store_id": [0, 0, 1, 1, 2, 2], # NOTE: nan != nan is True - "ne_sales_cost": [False, True, True, True, False, True], + "sales": [False, True, True, True, False, True], }, indexes=["store_id"], same_sampling_as=self.evset_1, @@ -115,7 +115,7 @@ def test_correct_greater(self) -> None: features={ "store_id": [0, 0, 1, 1, 2, 2], # NOTE: any comparison to nan is always False - "gt_sales_cost": [False, True, False, False, False, False], + "sales": [False, True, False, False, False, False], }, indexes=["store_id"], same_sampling_as=self.evset_1, @@ -129,7 +129,7 @@ def test_correct_greater_equal(self) -> None: features={ "store_id": [0, 0, 1, 1, 2, 2], # NOTE: any comparison to nan is always False - "ge_sales_cost": [True, True, False, False, True, False], + "sales": [True, True, False, False, True, False], }, indexes=["store_id"], same_sampling_as=self.evset_1, @@ -143,7 +143,7 @@ def test_correct_less(self) -> None: features={ "store_id": [0, 0, 1, 1, 2, 2], # NOTE: any comparison to nan is always False - "lt_sales_cost": [False, False, True, False, False, False], + "sales": [False, False, True, False, False, False], }, indexes=["store_id"], same_sampling_as=self.evset_1, @@ -157,7 +157,7 @@ def test_correct_less_equal(self) -> None: features={ "store_id": [0, 0, 1, 1, 2, 2], # NOTE: any comparison to nan is always False - "le_sales_cost": [True, False, True, False, True, False], + "sales": [True, False, True, False, True, False], }, indexes=["store_id"], same_sampling_as=self.evset_1, diff --git a/temporian/core/test/magic_methods_test.py b/temporian/core/test/magic_methods_test.py index b776905f9..5b5ce13a9 100644 --- a/temporian/core/test/magic_methods_test.py +++ b/temporian/core/test/magic_methods_test.py @@ -279,8 +279,8 @@ def test_not_equal( ): out = float_1 != float_2 self.assertTrue(isinstance(out.creator, NotEqualOperator)) - self.assertTrue(out.schema.features[0].name == "ne_f1_f3") - self.assertTrue(out.schema.features[1].name == "ne_f2_f4") + self.assertTrue(out.schema.features[0].name == "f1") + self.assertTrue(out.schema.features[1].name == "f2") self._check_boolean(out, float_1) def test_greater( @@ -291,8 +291,8 @@ def test_greater( ): out = float_1 > float_2 self.assertTrue(isinstance(out.creator, GreaterOperator)) - self.assertTrue(out.schema.features[0].name == "gt_f1_f3") - self.assertTrue(out.schema.features[1].name == "gt_f2_f4") + self.assertTrue(out.schema.features[0].name == "f1") + self.assertTrue(out.schema.features[1].name == "f2") self._check_boolean(out, float_1) def test_less( @@ -303,8 +303,8 @@ def test_less( ): out = float_1 < float_2 self.assertTrue(isinstance(out.creator, LessOperator)) - self.assertTrue(out.schema.features[0].name == "lt_f1_f3") - self.assertTrue(out.schema.features[1].name == "lt_f2_f4") + self.assertTrue(out.schema.features[0].name == "f1") + self.assertTrue(out.schema.features[1].name == "f2") self._check_boolean(out, float_1) def test_greater_equal( @@ -315,8 +315,8 @@ def test_greater_equal( ): out = float_1 >= float_2 self.assertTrue(isinstance(out.creator, GreaterEqualOperator)) - self.assertTrue(out.schema.features[0].name == "ge_f1_f3") - self.assertTrue(out.schema.features[1].name == "ge_f2_f4") + self.assertTrue(out.schema.features[0].name == "f1") + self.assertTrue(out.schema.features[1].name == "f2") self._check_boolean(out, float_1) def test_less_equal( @@ -327,8 +327,8 @@ def test_less_equal( ): out = float_1 <= float_2 self.assertTrue(isinstance(out.creator, LessEqualOperator)) - self.assertTrue(out.schema.features[0].name == "le_f1_f3") - self.assertTrue(out.schema.features[1].name == "le_f2_f4") + self.assertTrue(out.schema.features[0].name == "f1") + self.assertTrue(out.schema.features[1].name == "f2") self._check_boolean(out, float_1) # ################################### @@ -428,8 +428,8 @@ def test_addition( ): out = float_1 + float_2 self.assertTrue(isinstance(out.creator, AddOperator)) - self.assertTrue(out.schema.features[0].name == "add_f1_f3") - self.assertTrue(out.schema.features[1].name == "add_f2_f4") + self.assertTrue(out.schema.features[0].name == "f1") + self.assertTrue(out.schema.features[1].name == "f2") self._check_node_same_dtype(float_1, out) def test_subtraction( @@ -440,8 +440,8 @@ def test_subtraction( ): out = float_1 - float_2 self.assertTrue(isinstance(out.creator, SubtractOperator)) - self.assertTrue(out.schema.features[0].name == "sub_f1_f3") - self.assertTrue(out.schema.features[1].name == "sub_f2_f4") + self.assertTrue(out.schema.features[0].name == "f1") + self.assertTrue(out.schema.features[1].name == "f2") self._check_node_same_dtype(float_1, out) def test_multiplication( @@ -452,8 +452,8 @@ def test_multiplication( ): out = float_1 * float_2 self.assertTrue(isinstance(out.creator, MultiplyOperator)) - self.assertTrue(out.schema.features[0].name == "mult_f1_f3") - self.assertTrue(out.schema.features[1].name == "mult_f2_f4") + self.assertTrue(out.schema.features[0].name == "f1") + self.assertTrue(out.schema.features[1].name == "f2") self._check_node_same_dtype(float_1, out) def test_division( @@ -464,8 +464,8 @@ def test_division( ): out = float_1 / float_2 self.assertTrue(isinstance(out.creator, DivideOperator)) - self.assertTrue(out.schema.features[0].name == "div_f1_f3") - self.assertTrue(out.schema.features[1].name == "div_f2_f4") + self.assertTrue(out.schema.features[0].name == "f1") + self.assertTrue(out.schema.features[1].name == "f2") self._check_node_same_dtype(float_1, out) def test_floordiv( @@ -478,8 +478,8 @@ def test_floordiv( # Check floordiv operator instead out = int_1 // int_2 self.assertTrue(isinstance(out.creator, FloorDivOperator)) - self.assertTrue(out.schema.features[0].name == "floordiv_f5_f7") - self.assertTrue(out.schema.features[1].name == "floordiv_f6_f8") + self.assertTrue(out.schema.features[0].name == "f5") + self.assertTrue(out.schema.features[1].name == "f6") self._check_node_same_dtype(int_1, out) def test_modulo( @@ -490,8 +490,8 @@ def test_modulo( ): out = float_1 % float_2 self.assertTrue(isinstance(out.creator, ModuloOperator)) - self.assertTrue(out.schema.features[0].name == "mod_f1_f3") - self.assertTrue(out.schema.features[1].name == "mod_f2_f4") + self.assertTrue(out.schema.features[0].name == "f1") + self.assertTrue(out.schema.features[1].name == "f2") self._check_node_same_dtype(float_1, out) def test_power( @@ -502,8 +502,8 @@ def test_power( ): out = float_1**float_2 self.assertTrue(isinstance(out.creator, PowerOperator)) - self.assertTrue(out.schema.features[0].name == "pow_f1_f3") - self.assertTrue(out.schema.features[1].name == "pow_f2_f4") + self.assertTrue(out.schema.features[0].name == "f1") + self.assertTrue(out.schema.features[1].name == "f2") self._check_node_same_dtype(float_1, out) # ###################################