Skip to content

Commit 29ace78

Browse files
add use_filtered_integer_values parameter to IntegerPlaceholderTransformer
1 parent c8c2670 commit 29ace78

2 files changed

Lines changed: 21 additions & 4 deletions

File tree

src/fdlearn/learning/instantiation.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ def instantiate_patterns(
4141
positive_inputs: set[FandangoInput],
4242
value_maps: ValueMap,
4343
reachability_map: ReachabilityMap = None,
44+
use_filtered_integer_values=True,
4445
) -> set[FandangoConstraintCandidate]:
4546

4647
transformers = [
@@ -51,6 +52,7 @@ def instantiate_patterns(
5152
IntegerPlaceholderTransformer(
5253
value_map=value_maps,
5354
test_inputs=positive_inputs,
55+
use_filtered_integer_values=use_filtered_integer_values,
5456
),
5557
StringPlaceholderTransformer(
5658
value_map=value_maps,
@@ -361,9 +363,9 @@ def _expand_searches(
361363
for nt_ in path[1:-1]:
362364
tmp_ = AttributeSearch(RuleSearch(nt_), tmp_)
363365
final = AttributeSearch(RuleSearch(bound_symbol), tmp_)
364-
#print(final)
366+
# print(final)
365367
new_searches[key] = final
366-
#print("New:", new_searches)
368+
# print("New:", new_searches)
367369
final_expanded.append(new_searches)
368370
any_expanded = True
369371
# else:
@@ -407,4 +409,3 @@ def _expand_searches(
407409
final_final_expanded.append(new_searches)
408410

409411
return final_final_expanded
410-

src/fdlearn/learning/value_transformer.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,16 @@ def _visit_expression(
419419

420420
class IntegerPlaceholderTransformer(ValuePlaceholderTransformer):
421421

422+
def __init__(
423+
self,
424+
value_map: ValueMap,
425+
test_inputs: set[FandangoInput],
426+
use_partial_evaluation: bool = False,
427+
use_filtered_integer_values=True,
428+
):
429+
super().__init__(value_map, test_inputs, use_partial_evaluation)
430+
self.use_filtered_integer_values = use_filtered_integer_values
431+
422432
def update_value_map(self, bound: NonTerminal, search: RuleSearch):
423433
"""Update the value map for the given bound with the search symbol."""
424434
if search.symbol in self.value_maps.numeric_values:
@@ -445,11 +455,17 @@ def _visit_comparison(
445455

446456
result: list[ComparisonConstraint] = []
447457

458+
integer_values = (
459+
self.value_maps.filtered_numeric_values
460+
if self.use_filtered_integer_values
461+
else self.value_maps.numeric_values
462+
)
463+
448464
new_replacements, found_pl = self.replace_placeholders(
449465
constraint,
450466
bounded_non_terminals,
451467
placeholder=NonTerminal("<INTEGER>"),
452-
value_map=self.value_maps.numeric_values, # Changed from filtered_numeric_values
468+
value_map=integer_values,
453469
)
454470

455471
if not new_replacements and not found_pl:

0 commit comments

Comments
 (0)