diff --git a/alib2algo/src/stringology/matching/LevenshteinMatchingAutomaton.h b/alib2algo/src/stringology/matching/LevenshteinMatchingAutomaton.h index 301e253f19a3a0aa5b0d7b864de082992b61b361..05a8f059d68236dd0c27beef44a4b376e859eafe 100644 --- a/alib2algo/src/stringology/matching/LevenshteinMatchingAutomaton.h +++ b/alib2algo/src/stringology/matching/LevenshteinMatchingAutomaton.h @@ -60,10 +60,8 @@ automaton::EpsilonNFA < SymbolType, void, ext::pair<unsigned int, unsigned int> to = ext::make_pair(i, j + 1); for (const SymbolType& symbol : pattern.getAlphabet()) { - if (symbol != pattern.getContent()[i]) { - // add horizontal transition representing insertion - result.addTransition(from, symbol, to); - } + // add horizontal transition representing insertion + result.addTransition(from, symbol, to); } } } diff --git a/alib2algo/test-src/stringology/matching/GeneralizedLevenshteinMatchingAutomatonTest.cpp b/alib2algo/test-src/stringology/matching/GeneralizedLevenshteinMatchingAutomatonTest.cpp index c41b2c2f2cd744e001064979ad54d849a7a4edf0..d7d3f42196a73050f634a7458b3d03da07a05825 100644 --- a/alib2algo/test-src/stringology/matching/GeneralizedLevenshteinMatchingAutomatonTest.cpp +++ b/alib2algo/test-src/stringology/matching/GeneralizedLevenshteinMatchingAutomatonTest.cpp @@ -78,15 +78,18 @@ void GeneralizedLevenshteinMatchingAutomatonTest::testSimpleConstruction() { res.addTransition(q5, q8); res.addTransition(q1, 'a', q4); // insertions + res.addTransition(q1, 'b', q4); res.addTransition(q1, 'c', q4); res.addTransition(q1, 'd', q4); res.addTransition(q2, 'a', q5); res.addTransition(q2, 'b', q5); + res.addTransition(q2, 'c', q5); res.addTransition(q2, 'd', q5); res.addTransition(q5, 'a', q7); res.addTransition(q5, 'b', q7); + res.addTransition(q5, 'c', q7); res.addTransition(q5, 'd', q7); res.addTransition(q0, 'b', r1); // transposition diff --git a/alib2algo/test-src/stringology/matching/GeneralizedLevenshteinSequenceMatchingAutomatonTest.cpp b/alib2algo/test-src/stringology/matching/GeneralizedLevenshteinSequenceMatchingAutomatonTest.cpp index 27104a1fc3ebbb41980754657ade555bf8c08cb0..01e2aa26ae7ad7e440d48d29c100436c0b4acfac 100644 --- a/alib2algo/test-src/stringology/matching/GeneralizedLevenshteinSequenceMatchingAutomatonTest.cpp +++ b/alib2algo/test-src/stringology/matching/GeneralizedLevenshteinSequenceMatchingAutomatonTest.cpp @@ -77,15 +77,18 @@ void GeneralizedLevenshteinSequenceMatchingAutomatonTest::testSimpleConstruction test.addTransition(q5, q8); test.addTransition(q1, 'a', q4); // insertions + test.addTransition(q1, 'b', q4); test.addTransition(q1, 'c', q4); test.addTransition(q1, 'd', q4); test.addTransition(q2, 'a', q5); test.addTransition(q2, 'b', q5); + test.addTransition(q2, 'c', q5); test.addTransition(q2, 'd', q5); test.addTransition(q5, 'a', q7); test.addTransition(q5, 'b', q7); + test.addTransition(q5, 'c', q7); test.addTransition(q5, 'd', q7); test.addTransition(q1, 'a', q1); // loops for sequence matching diff --git a/alib2algo/test-src/stringology/matching/LevenshteinMatchingAutomatonTest.cpp b/alib2algo/test-src/stringology/matching/LevenshteinMatchingAutomatonTest.cpp index b5a5a2105738477177c01f2fb6bf3cf287c98cf6..4b5726e0d32259a12537577cb24b73cbfe66221e 100644 --- a/alib2algo/test-src/stringology/matching/LevenshteinMatchingAutomatonTest.cpp +++ b/alib2algo/test-src/stringology/matching/LevenshteinMatchingAutomatonTest.cpp @@ -74,15 +74,18 @@ void LevenshteinMatchingAutomatonTest::testSimpleConstruction() { res.addTransition(q5, q8); res.addTransition(q1, 'a', q4); // insertions + res.addTransition(q1, 'b', q4); res.addTransition(q1, 'c', q4); res.addTransition(q1, 'd', q4); res.addTransition(q2, 'a', q5); res.addTransition(q2, 'b', q5); + res.addTransition(q2, 'c', q5); res.addTransition(q2, 'd', q5); res.addTransition(q5, 'a', q7); res.addTransition(q5, 'b', q7); + res.addTransition(q5, 'c', q7); res.addTransition(q5, 'd', q7); CPPUNIT_ASSERT(res == automaton::simplify::UnreachableStatesRemover::remove(resulting_automata)); diff --git a/alib2algo/test-src/stringology/matching/LevenshteinSequenceMatchingAutomatonTest.cpp b/alib2algo/test-src/stringology/matching/LevenshteinSequenceMatchingAutomatonTest.cpp index 7bb6061bf1cdc54b751a3aea9174ca7026dc65ea..88bdb69167ce20d22d734bb2b24a435f2196e3ca 100644 --- a/alib2algo/test-src/stringology/matching/LevenshteinSequenceMatchingAutomatonTest.cpp +++ b/alib2algo/test-src/stringology/matching/LevenshteinSequenceMatchingAutomatonTest.cpp @@ -73,14 +73,17 @@ void LevenshteinSequenceMatchingAutomatonTest::testSimpleConstruction() { test.addTransition(q5, q8); test.addTransition(q1, 'a', q4); // insertions + test.addTransition(q1, 'b', q4); test.addTransition(q1, 'c', q4); test.addTransition(q1, 'd', q4); test.addTransition(q2, 'a', q5); test.addTransition(q2, 'b', q5); + test.addTransition(q2, 'c', q5); test.addTransition(q2, 'd', q5); test.addTransition(q5, 'a', q7); + test.addTransition(q5, 'c', q7); test.addTransition(q5, 'b', q7); test.addTransition(q5, 'd', q7);