complement1Test works
fuck yea
This commit is contained in:
parent
59a7df7ad1
commit
b1b97fff10
3 changed files with 50 additions and 52 deletions
75
.idea/workspace.xml
generated
75
.idea/workspace.xml
generated
|
|
@ -5,15 +5,12 @@
|
||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" name="Changes" comment="changed a bit">
|
<list default="true" id="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" name="Changes" comment="changed a bit">
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/shelf/Uncommitted_changes_before_Update_at_08_01_2024_18_35__Changes_.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/shelf/Uncommitted_changes_before_Update_at_08_01_2024_18_35__Changes_.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/java/ab1/impl/GRUPPE/NFAImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/ab1/impl/GRUPPE/NFAImpl.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/main/java/ab1/impl/GRUPPE/NFAImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/ab1/impl/GRUPPE/NFAImpl.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/target/classes/ab1/impl/GRUPPE/NFAImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/ab1/impl/GRUPPE/NFAImpl.class" afterDir="false" />
|
|
||||||
</list>
|
</list>
|
||||||
<list id="39d4ccb3-eae9-4ed4-996a-5a13f44678fa" name="Changes by carol" comment="" />
|
<list id="39d4ccb3-eae9-4ed4-996a-5a13f44678fa" name="Changes by carol" comment="" />
|
||||||
<list id="2bf04d9d-9125-4ed6-9018-847e14e9822c" name="Changes by danie" comment="">
|
<list id="2bf04d9d-9125-4ed6-9018-847e14e9822c" name="Changes by danie" comment="" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/java/ab1/impl/GRUPPE/NFAImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/ab1/impl/GRUPPE/NFAImpl.java" afterDir="false" />
|
|
||||||
</list>
|
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
|
|
@ -22,7 +19,7 @@
|
||||||
<component name="Git.Settings">
|
<component name="Git.Settings">
|
||||||
<option name="RECENT_BRANCH_BY_REPOSITORY">
|
<option name="RECENT_BRANCH_BY_REPOSITORY">
|
||||||
<map>
|
<map>
|
||||||
<entry key="$PROJECT_DIR$" value="2-playing-around" />
|
<entry key="$PROJECT_DIR$" value="3-daniel-hat-a-skill-issue" />
|
||||||
</map>
|
</map>
|
||||||
</option>
|
</option>
|
||||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||||
|
|
@ -43,49 +40,6 @@
|
||||||
"second": "2afc8825-f511-4d8a-8cc1-901875567c84"
|
"second": "2afc8825-f511-4d8a-8cc1-901875567c84"
|
||||||
}
|
}
|
||||||
}</component>
|
}</component>
|
||||||
<component name="LineStatusTrackerManager">
|
|
||||||
<file path="$PROJECT_DIR$/src/main/java/ab1/impl/GRUPPE/NFAImpl.java">
|
|
||||||
<ranges>
|
|
||||||
<range start1="16" end1="17" start2="16" end2="16" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="37" end1="37" start2="36" end2="42" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="52" end1="52" start2="57" end2="61" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="64" end1="65" start2="73" end2="76" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="69" end1="70" start2="80" end2="81" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="87" end1="88" start2="98" end2="99" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="95" end1="95" start2="106" end2="112" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="96" end1="97" start2="113" end2="114" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="104" end1="106" start2="121" end2="122" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="107" end1="109" start2="123" end2="124" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="110" end1="110" start2="125" end2="126" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="111" end1="111" start2="127" end2="129" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="112" end1="112" start2="130" end2="139" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="113" end1="117" start2="140" end2="147" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="118" end1="127" start2="148" end2="158" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="128" end1="130" start2="159" end2="161" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="131" end1="131" start2="162" end2="163" changelist="2bf04d9d-9125-4ed6-9018-847e14e9822c" />
|
|
||||||
<range start1="132" end1="133" start2="164" end2="170" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="135" end1="136" start2="172" end2="179" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="137" end1="139" start2="180" end2="184" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="140" end1="142" start2="185" end2="190" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="260" end1="262" start2="308" end2="310" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="263" end1="264" start2="311" end2="312" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="265" end1="265" start2="313" end2="315" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="266" end1="268" start2="316" end2="317" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="269" end1="269" start2="318" end2="322" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="270" end1="271" start2="323" end2="331" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="272" end1="273" start2="332" end2="348" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="301" end1="301" start2="376" end2="378" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="303" end1="317" start2="380" end2="387" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="319" end1="326" start2="389" end2="390" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="328" end1="329" start2="392" end2="393" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="344" end1="345" start2="408" end2="409" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="374" end1="376" start2="438" end2="440" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="380" end1="382" start2="444" end2="444" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="424" end1="425" start2="486" end2="487" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
<range start1="428" end1="431" start2="490" end2="493" changelist="f5e08808-a5af-4c89-a1ee-21b3bcb9ae3e" />
|
|
||||||
</ranges>
|
|
||||||
</file>
|
|
||||||
</component>
|
|
||||||
<component name="MarkdownSettingsMigration">
|
<component name="MarkdownSettingsMigration">
|
||||||
<option name="stateVersion" value="1" />
|
<option name="stateVersion" value="1" />
|
||||||
</component>
|
</component>
|
||||||
|
|
@ -99,11 +53,12 @@
|
||||||
</component>
|
</component>
|
||||||
<component name="PropertiesComponent"><![CDATA[{
|
<component name="PropertiesComponent"><![CDATA[{
|
||||||
"keyToString": {
|
"keyToString": {
|
||||||
|
"JUnit.ComplexTests.concat1Test.executor": "Debug",
|
||||||
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
||||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||||
"WebServerToolWindowFactoryState": "false",
|
"WebServerToolWindowFactoryState": "false",
|
||||||
"full.screen.before.presentation.mode": "false",
|
"full.screen.before.presentation.mode": "false",
|
||||||
"git-widget-placeholder": "main",
|
"git-widget-placeholder": "3-daniel-hat-a-skill-issue",
|
||||||
"ignore.virus.scanning.warn.message": "true",
|
"ignore.virus.scanning.warn.message": "true",
|
||||||
"node.js.detected.package.eslint": "true",
|
"node.js.detected.package.eslint": "true",
|
||||||
"node.js.detected.package.tslint": "true",
|
"node.js.detected.package.tslint": "true",
|
||||||
|
|
@ -135,6 +90,22 @@
|
||||||
<option name="Make" enabled="true" />
|
<option name="Make" enabled="true" />
|
||||||
</method>
|
</method>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
<configuration name="ComplexTests.concat1Test" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
|
||||||
|
<module name="ETI_Abgabe" />
|
||||||
|
<extension name="coverage">
|
||||||
|
<pattern>
|
||||||
|
<option name="PATTERN" value="ab1.tests.*" />
|
||||||
|
<option name="ENABLED" value="true" />
|
||||||
|
</pattern>
|
||||||
|
</extension>
|
||||||
|
<option name="PACKAGE_NAME" value="ab1.tests" />
|
||||||
|
<option name="MAIN_CLASS_NAME" value="ab1.tests.ComplexTests" />
|
||||||
|
<option name="METHOD_NAME" value="concat1Test" />
|
||||||
|
<option name="TEST_OBJECT" value="method" />
|
||||||
|
<method v="2">
|
||||||
|
<option name="Make" enabled="true" />
|
||||||
|
</method>
|
||||||
|
</configuration>
|
||||||
<configuration name="ComplexTests.union1Test" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
|
<configuration name="ComplexTests.union1Test" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
|
||||||
<module name="ETI_Abgabe" />
|
<module name="ETI_Abgabe" />
|
||||||
<extension name="coverage">
|
<extension name="coverage">
|
||||||
|
|
@ -187,10 +158,10 @@
|
||||||
<recent_temporary>
|
<recent_temporary>
|
||||||
<list>
|
<list>
|
||||||
<item itemvalue="JUnit.ComplexTests.complement1Test" />
|
<item itemvalue="JUnit.ComplexTests.complement1Test" />
|
||||||
|
<item itemvalue="JUnit.ComplexTests.concat1Test" />
|
||||||
<item itemvalue="JUnit.ab1 in ETI_Abgabe" />
|
<item itemvalue="JUnit.ab1 in ETI_Abgabe" />
|
||||||
<item itemvalue="JUnit.ComplexTests.union1Test" />
|
<item itemvalue="JUnit.ComplexTests.union1Test" />
|
||||||
<item itemvalue="JUnit.ab1.tests in ETI_Abgabe" />
|
<item itemvalue="JUnit.ab1.tests in ETI_Abgabe" />
|
||||||
<item itemvalue="JUnit.ab1.tests in ETI_Abgabe" />
|
|
||||||
</list>
|
</list>
|
||||||
</recent_temporary>
|
</recent_temporary>
|
||||||
</component>
|
</component>
|
||||||
|
|
@ -247,7 +218,7 @@
|
||||||
</line-breakpoint>
|
</line-breakpoint>
|
||||||
<line-breakpoint enabled="true" type="java-line">
|
<line-breakpoint enabled="true" type="java-line">
|
||||||
<url>file://$PROJECT_DIR$/src/main/java/ab1/impl/GRUPPE/NFAImpl.java</url>
|
<url>file://$PROJECT_DIR$/src/main/java/ab1/impl/GRUPPE/NFAImpl.java</url>
|
||||||
<line>347</line>
|
<line>447</line>
|
||||||
<option name="timeStamp" value="21" />
|
<option name="timeStamp" value="21" />
|
||||||
</line-breakpoint>
|
</line-breakpoint>
|
||||||
</breakpoints>
|
</breakpoints>
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import lombok.Getter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public class NFAImpl implements NFA {
|
public class NFAImpl implements NFA {
|
||||||
|
private Set<Character> completeAlphabet; //contains the full Alphabet possible (currently all small letters, can be changed...)
|
||||||
private Set<String> states;
|
private Set<String> states;
|
||||||
private Set<Transition> transitions;
|
private Set<Transition> transitions;
|
||||||
|
|
||||||
|
|
@ -26,6 +27,10 @@ public class NFAImpl implements NFA {
|
||||||
this.acceptingStates = new HashSet<>();
|
this.acceptingStates = new HashSet<>();
|
||||||
this.alphabet = new HashSet<>();
|
this.alphabet = new HashSet<>();
|
||||||
this.isFinalized = false;
|
this.isFinalized = false;
|
||||||
|
this.completeAlphabet = new HashSet<>();
|
||||||
|
for(int i='a';i<='z';i++){
|
||||||
|
completeAlphabet.add((char)i);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -309,6 +314,7 @@ public class NFAImpl implements NFA {
|
||||||
nfa.addAllTransitions(this.transitions);
|
nfa.addAllTransitions(this.transitions);
|
||||||
nfa.addAllAcceptingStates(this.acceptingStates);
|
nfa.addAllAcceptingStates(this.acceptingStates);
|
||||||
|
|
||||||
|
nfaAddTrap(nfa);
|
||||||
NFAImpl fakeNFA = convertNFAtoDFA(nfa);
|
NFAImpl fakeNFA = convertNFAtoDFA(nfa);
|
||||||
|
|
||||||
// state -> accepting
|
// state -> accepting
|
||||||
|
|
@ -496,4 +502,25 @@ public class NFAImpl implements NFA {
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void nfaAddTrap(NFAImpl input){
|
||||||
|
String trap = changeIfNecessary("TRAP", input.getStates());
|
||||||
|
input.states.add(trap);
|
||||||
|
Set<Transition> newTransitions = new HashSet<>();
|
||||||
|
for(String state : input.getStates()){
|
||||||
|
for(char letter : completeAlphabet){
|
||||||
|
boolean hasTransition = false;
|
||||||
|
for(Transition transition : input.getTransitions()){
|
||||||
|
if(transition.fromState().equals(state)&&transition.readSymbol().equals(letter)){
|
||||||
|
hasTransition = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!hasTransition){
|
||||||
|
newTransitions.add(new Transition(state, letter, trap));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
input.addAllTransitions(newTransitions); //input.transitions.addAll(newTransitions);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Binary file not shown.
Reference in a new issue