From fa89a91df8c9365e9eb7a9c54f9395002d124d1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20T=C3=A5quist?= Date: Wed, 24 Jan 2024 16:24:55 +0100 Subject: [PATCH] fix bug failing test --- .../ralib/oracles/mto/OptimizedSymbolicSuffixBuilder.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/learnlib/ralib/oracles/mto/OptimizedSymbolicSuffixBuilder.java b/src/main/java/de/learnlib/ralib/oracles/mto/OptimizedSymbolicSuffixBuilder.java index a18d42a2..f060b026 100644 --- a/src/main/java/de/learnlib/ralib/oracles/mto/OptimizedSymbolicSuffixBuilder.java +++ b/src/main/java/de/learnlib/ralib/oracles/mto/OptimizedSymbolicSuffixBuilder.java @@ -421,15 +421,21 @@ SymbolicSuffix coalesceSuffixes(SymbolicSuffix suffix1, SymbolicSuffix suffix2) // TODO Do we need to make sv free if one of the sv's is equal to a previous sv? boolean free = freeIndices1.contains(index1) || freeIndices2.contains(index1) || freeIndices1.contains(index2) || freeIndices2.contains(index2); + boolean notSeen = false; if (seenVals1.contains(sv1) && !free) { sv = sValMapping.get(sv1); } else if (seenVals2.contains(sv2) && !free) { sv = sValMapping.get(sv2); } else { + notSeen = true; + } + if (sv != null && freeValues.contains(sv)) + free = true; + if (notSeen || free) { sv = sgen.next(type); if (free) { - freeValues.add(sv); + freeValues.add(sv); } } seenVals1.add(sv1);