.
This commit is contained in:
parent
c81659c1f9
commit
8a6cd6a806
6 changed files with 96 additions and 33 deletions
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package ab1.impl.GRUPPE;
|
package ab1.impl.gruppe10_aigensberger_dworski_walcher;
|
||||||
|
|
||||||
import ab1.NFA;
|
import ab1.NFA;
|
||||||
import ab1.NFAFactory;
|
import ab1.NFAFactory;
|
||||||
|
|
@ -6,6 +6,9 @@ import ab1.NFAFactory;
|
||||||
public class NFAFactoryImpl implements NFAFactory {
|
public class NFAFactoryImpl implements NFAFactory {
|
||||||
@Override
|
@Override
|
||||||
public NFA buildNFA(String startState) {
|
public NFA buildNFA(String startState) {
|
||||||
|
if (startState == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return new NFAImpl(startState);
|
return new NFAImpl(startState);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package ab1;
|
package ab1;
|
||||||
|
|
||||||
import ab1.impl.GRUPPE.NFAFactoryImpl;
|
import ab1.impl.gruppe10_aigensberger_dworski_walcher.NFAFactoryImpl;
|
||||||
|
|
||||||
public class NFAProvider {
|
public class NFAProvider {
|
||||||
public static NFAFactory provideFactory() {
|
public static NFAFactory provideFactory() {
|
||||||
|
|
|
||||||
76
src/test/java/ab1/tests/GRUPPE/betterSimpleTests.java
Normal file
76
src/test/java/ab1/tests/GRUPPE/betterSimpleTests.java
Normal file
|
|
@ -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"));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package ab1.tests;
|
package ab1.tests.GRUPPE;
|
||||||
|
|
||||||
import ab1.NFA;
|
import ab1.NFA;
|
||||||
import ab1.NFAFactory;
|
import ab1.NFAFactory;
|
||||||
Reference in a new issue