diff --git a/cdisc_rules_engine/check_operators/dataframe_operators.py b/cdisc_rules_engine/check_operators/dataframe_operators.py index a0a9dd18d..a626e9680 100644 --- a/cdisc_rules_engine/check_operators/dataframe_operators.py +++ b/cdisc_rules_engine/check_operators/dataframe_operators.py @@ -814,7 +814,9 @@ def equals_string_part(self, other_value): parsed_id = str(uuid4()) self.value[parsed_id] = parsed_data return self.value.apply( - lambda row: self._check_equality(row, target, parsed_id, value_is_literal), + lambda row: self._check_equality( + row, target, parsed_id, value_is_literal=False + ), axis=1, ) diff --git a/tests/unit/test_check_operators/test_string_comparison.py b/tests/unit/test_check_operators/test_string_comparison.py index ce1de5c96..1ec3277d3 100644 --- a/tests/unit/test_check_operators/test_string_comparison.py +++ b/tests/unit/test_check_operators/test_string_comparison.py @@ -33,6 +33,59 @@ def test_equals_string_part(data, comparator, regex, dataset_type, expected_resu assert result.equals(df.convert_to_series(expected_result)) +@pytest.mark.parametrize( + "data,comparator,regex,dataset_type,value_is_literal,expected_result", + [ + ( + {"VAR2": ["blaAtt", "yyyBtt", "aaaCtt"], "target": ["A", "B", "D"]}, + "VAR2", + ".{3}(.).*", + PandasDataset, + False, + [True, True, False], + ), + ( + {"VAR2": ["blaAtt", "yyyBtt", "aaaCtt"], "target": ["A", "B", "D"]}, + "VAR2", + ".{3}(.).*", + DaskDataset, + False, + [True, True, False], + ), + ( + {"target": ["A", "B", "C"]}, + "blaAtt", + ".{3}(.).*", + PandasDataset, + True, + [True, False, False], + ), + ( + {"target": ["A", "B", "C"]}, + "blaAtt", + ".{3}(.).*", + DaskDataset, + True, + [True, False, False], + ), + ], +) +def test_equals_string_part_literal( + data, comparator, regex, dataset_type, value_is_literal, expected_result +): + df = dataset_type.from_dict(data) + dataframe_type = DataframeType({"value": df}) + result = dataframe_type.equals_string_part( + { + "target": "target", + "comparator": comparator, + "regex": regex, + "value_is_literal": value_is_literal, + } + ) + assert result.equals(df.convert_to_series(expected_result)) + + @pytest.mark.parametrize( "data,comparator,dataset_type,expected_result", [