diff --git a/src/main/java/ab1/impl/GRUPPE/Tuple.java b/src/main/java/ab1/impl/GRUPPE/Tuple.java deleted file mode 100644 index 50408cc..0000000 --- a/src/main/java/ab1/impl/GRUPPE/Tuple.java +++ /dev/null @@ -1,30 +0,0 @@ -package ab1.impl.GRUPPE; - -public class Tuple { - private Character element_1; - - public Character getElement_1() { - return element_1; - } - - public void setElement_1(Character element_1) { - this.element_1 = element_1; - } - - public String getElement_2() { - return element_2; - } - - public void setElement_2(String element_2) { - this.element_2 = element_2; - } - - private String element_2; - - - - public Tuple(Character firstElement, String secondElement){ - this.element_1=firstElement; - this.element_2=secondElement; - } -} diff --git a/src/main/java/ab1/impl/GRUPPE/NFAFactoryImpl.java b/src/main/java/ab1/impl/gruppe10_aigensberger_dworski_walcher/NFAFactoryImpl.java similarity index 61% rename from src/main/java/ab1/impl/GRUPPE/NFAFactoryImpl.java rename to src/main/java/ab1/impl/gruppe10_aigensberger_dworski_walcher/NFAFactoryImpl.java index ba6743a..78e09c8 100644 --- a/src/main/java/ab1/impl/GRUPPE/NFAFactoryImpl.java +++ b/src/main/java/ab1/impl/gruppe10_aigensberger_dworski_walcher/NFAFactoryImpl.java @@ -1,4 +1,4 @@ -package ab1.impl.GRUPPE; +package ab1.impl.gruppe10_aigensberger_dworski_walcher; import ab1.NFA; import ab1.NFAFactory; @@ -6,6 +6,9 @@ import ab1.NFAFactory; public class NFAFactoryImpl implements NFAFactory { @Override public NFA buildNFA(String startState) { + if (startState == null) { + return null; + } return new NFAImpl(startState); } } diff --git a/src/main/java/ab1/impl/gruppe10_aigensberger_dworski_walcher/Tuple.java b/src/main/java/ab1/impl/gruppe10_aigensberger_dworski_walcher/Tuple.java new file mode 100644 index 0000000..4dff076 --- /dev/null +++ b/src/main/java/ab1/impl/gruppe10_aigensberger_dworski_walcher/Tuple.java @@ -0,0 +1,14 @@ +package ab1.impl.gruppe10_aigensberger_dworski_walcher; + +import lombok.Getter; + +@Getter +public class Tuple { + private final Character element_1; + private final String element_2; + + public Tuple(Character firstElement, String secondElement){ + this.element_1=firstElement; + this.element_2=secondElement; + } +} diff --git a/src/test/java/ab1/NFAProvider.java b/src/test/java/ab1/NFAProvider.java index 35a3994..cc26c68 100644 --- a/src/test/java/ab1/NFAProvider.java +++ b/src/test/java/ab1/NFAProvider.java @@ -1,6 +1,6 @@ package ab1; -import ab1.impl.GRUPPE.NFAFactoryImpl; +import ab1.impl.gruppe10_aigensberger_dworski_walcher.NFAFactoryImpl; public class NFAProvider { public static NFAFactory provideFactory() { diff --git a/src/test/java/ab1/tests/GRUPPE/betterSimpleTests.java b/src/test/java/ab1/tests/GRUPPE/betterSimpleTests.java new file mode 100644 index 0000000..b529cec --- /dev/null +++ b/src/test/java/ab1/tests/GRUPPE/betterSimpleTests.java @@ -0,0 +1,76 @@ +package ab1.tests.GRUPPE; + +import ab1.NFAFactory; +import ab1.NFAProvider; +import ab1.Transition; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +public class betterSimpleTests { + private final NFAFactory factory = NFAProvider.provideFactory(); + @Test + public void invalidInputTest() { + var instance = factory.buildNFA(null); + assertNull(instance); + } + + @Test + public void invalidAcceptingState() { + var instance = factory.buildNFA("START"); + instance.addAcceptingState(null); + assertEquals(0, instance.getAcceptingStates().size()); + } + + @Test + public void invalidTransition() { + var instance = factory.buildNFA("START"); + assertThrows(IllegalArgumentException.class, () -> instance.addTransition(null)); + } + + @Test + public void transitionWithoutToState() { + var instance = factory.buildNFA("START"); + Transition transition = ab1.Transition.builder() + .readSymbol('a') + .fromState("START") + .build(); + + assertThrows(IllegalArgumentException.class, () -> instance.addTransition(transition)); + } + + + @Test + public void transitionWithoutExistingToState() { + var instance = factory.buildNFA("START"); + instance.addTransition( + ab1.Transition.builder() + .readSymbol('a') + .fromState("START") + .toState("END") + .build() + ); + assertEquals(1, instance.getTransitions().size()); + assertEquals(2, instance.getStates().size()); + assertEquals(0, instance.getAcceptingStates().size()); + } + + @Test + public void notInAlphabet(){ + var instance = factory.buildNFA("START"); + instance.addTransition( + ab1.Transition.builder() + .readSymbol('a') + .fromState("START") + .toState("END") + .build() + ); + instance.addAcceptingState("END"); + instance.finalizeAutomaton(); + + assertFalse(instance.acceptsWord("b")); + assertTrue(instance.acceptsWord("a")); + assertFalse(instance.acceptsWord("ab")); + + } +} diff --git a/src/test/java/ab1/tests/myTests.java b/src/test/java/ab1/tests/GRUPPE/myTests.java similarity index 98% rename from src/test/java/ab1/tests/myTests.java rename to src/test/java/ab1/tests/GRUPPE/myTests.java index 3187091..aa169d5 100644 --- a/src/test/java/ab1/tests/myTests.java +++ b/src/test/java/ab1/tests/GRUPPE/myTests.java @@ -1,4 +1,4 @@ -package ab1.tests; +package ab1.tests.GRUPPE; import ab1.NFA; import ab1.NFAFactory;