diff --git a/src/test/java/de/neemann/digital/analyse/ModelAnalyserTest.java b/src/test/java/de/neemann/digital/analyse/ModelAnalyserTest.java
index 48ede886d..2270a307e 100644
--- a/src/test/java/de/neemann/digital/analyse/ModelAnalyserTest.java
+++ b/src/test/java/de/neemann/digital/analyse/ModelAnalyserTest.java
@@ -10,7 +10,7 @@ import junit.framework.TestCase;
public class ModelAnalyserTest extends TestCase {
public void testAnalyzer() throws Exception {
- Model model = new ToBreakRunner("dig/analyzeTest.dig").getModel();
+ Model model = new ToBreakRunner("dig/analyze/analyzeTest.dig").getModel();
TruthTable tt = new ModelAnalyser(model).analyse();
assertEquals(4, tt.getRows());
@@ -30,19 +30,19 @@ public class ModelAnalyserTest extends TestCase {
}
public void testAnalyzerDFF() throws Exception {
- Model model = new ToBreakRunner("dig/analyzeTestDFF.dig").getModel();
+ Model model = new ToBreakRunner("dig/analyze/analyzeTestDFF.dig").getModel();
TruthTable tt = new ModelAnalyser(model).analyse();
check2BitCounter(tt);
}
public void testAnalyzerJKFF() throws Exception {
- Model model = new ToBreakRunner("dig/analyzeTestJKFF.dig", false).getModel();
+ Model model = new ToBreakRunner("dig/analyze/analyzeTestJKFF.dig", false).getModel();
TruthTable tt = new ModelAnalyser(model).analyse();
check2BitCounter(tt);
}
public void testAnalyzerTFF() throws Exception {
- Model model = new ToBreakRunner("dig/analyzeTestTFF.dig", false).getModel();
+ Model model = new ToBreakRunner("dig/analyze/analyzeTestTFF.dig", false).getModel();
TruthTable tt = new ModelAnalyser(model).analyse();
check2BitCounter(tt);
}
@@ -70,4 +70,25 @@ public class ModelAnalyserTest extends TestCase {
"1\t1\t0\t0\t\n", tt.toString());
}
+ public void testAnalyzerUniqueNames() throws Exception {
+ Model model = new ToBreakRunner("dig/analyze/uniqueNames.dig", false).getModel();
+ try {
+ new ModelAnalyser(model);
+ fail();
+ } catch (AnalyseException e) {
+
+ }
+ }
+
+ public void testAnalyzerUniqueNames2() throws Exception {
+ Model model = new ToBreakRunner("dig/analyze/uniqueNames2.dig", false).getModel();
+ try {
+ new ModelAnalyser(model);
+ fail();
+ } catch (AnalyseException e) {
+
+ }
+ }
+
+
}
\ No newline at end of file
diff --git a/src/test/resources/dig/analyze/analyzeTest.dig b/src/test/resources/dig/analyze/analyzeTest.dig
new file mode 100644
index 000000000..a972c0f62
--- /dev/null
+++ b/src/test/resources/dig/analyze/analyzeTest.dig
@@ -0,0 +1,147 @@
+
+
+ 1
+
+
+ In
+
+
+ Label
+ $A$
+
+
+
+ 0
+
+
+ In
+
+
+ Label
+ $B$
+
+
+
+ 0
+
+
+ Out
+
+
+ Label
+ $Y$
+
+
+
+ 0
+
+
+ Or
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ Not
+
+
+ 0
+
+
+ Not
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/test/resources/dig/analyze/analyzeTestDFF.dig b/src/test/resources/dig/analyze/analyzeTestDFF.dig
new file mode 100644
index 000000000..df58354d5
--- /dev/null
+++ b/src/test/resources/dig/analyze/analyzeTestDFF.dig
@@ -0,0 +1,289 @@
+
+
+ 1
+
+
+ Tunnel
+
+
+ Inputs
+ 1
+
+
+ NetName
+ Q_1n
+
+
+
+ 0
+
+
+ D_FF
+
+
+ Label
+ Q_1n
+
+
+ Inputs
+ 1
+
+
+
+ 0
+
+
+ Or
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ And
+
+
+ 0
+
+
+ Tunnel
+
+
+ Inputs
+ 1
+
+
+ NetName
+ Q_0n
+
+
+
+ 0
+
+
+ D_FF
+
+
+ Label
+ Q_0n
+
+
+ Inputs
+ 1
+
+
+
+ 0
+
+
+ Tunnel
+
+
+ rotation
+
+
+
+ NetName
+ Q_0n
+
+
+
+ 1
+
+
+ Not
+
+
+ rotation
+
+
+
+
+ 3
+
+
+ Tunnel
+
+
+ rotation
+
+
+
+ NetName
+ Q_1n
+
+
+
+ 1
+
+
+ Not
+
+
+ rotation
+
+
+
+
+ 3
+
+
+ Clock
+
+
+ runRealTime
+ true
+
+
+ rotation
+
+
+
+ Label
+ C
+
+
+
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/test/resources/dig/analyze/analyzeTestJKFF.dig b/src/test/resources/dig/analyze/analyzeTestJKFF.dig
new file mode 100644
index 000000000..2d526e577
--- /dev/null
+++ b/src/test/resources/dig/analyze/analyzeTestJKFF.dig
@@ -0,0 +1,102 @@
+
+
+ 1
+
+
+ JK_FF
+
+
+ Label
+ Q_1n
+
+
+
+ 0
+
+
+ JK_FF
+
+
+ Label
+ Q_0n
+
+
+
+ 0
+
+
+ Clock
+
+
+ 0
+
+
+ Const
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/test/resources/dig/analyze/analyzeTestTFF.dig b/src/test/resources/dig/analyze/analyzeTestTFF.dig
new file mode 100644
index 000000000..3173d2a36
--- /dev/null
+++ b/src/test/resources/dig/analyze/analyzeTestTFF.dig
@@ -0,0 +1,84 @@
+
+
+ 1
+
+
+ JK_FF
+
+
+ Label
+ Q_1n
+
+
+
+ 0
+
+
+ Clock
+
+
+ 0
+
+
+ T_FF
+
+
+ Label
+ Q_0n
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/test/resources/dig/analyze/uniqueNames.dig b/src/test/resources/dig/analyze/uniqueNames.dig
new file mode 100644
index 000000000..9456a3ce8
--- /dev/null
+++ b/src/test/resources/dig/analyze/uniqueNames.dig
@@ -0,0 +1,55 @@
+
+
+ 1
+
+
+ And
+
+
+
+
+ In
+
+
+ Label
+ A
+
+
+
+
+
+ Out
+
+
+ Label
+ Y
+
+
+
+
+
+ In
+
+
+ Label
+ A
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/test/resources/dig/analyze/uniqueNames2.dig b/src/test/resources/dig/analyze/uniqueNames2.dig
new file mode 100644
index 000000000..409d817af
--- /dev/null
+++ b/src/test/resources/dig/analyze/uniqueNames2.dig
@@ -0,0 +1,277 @@
+
+
+ 1
+
+
+ Tunnel
+
+
+ Inputs
+ 1
+
+
+ NetName
+ Q_1n
+
+
+
+
+
+ D_FF
+
+
+ Label
+ Q_0n
+
+
+ Inputs
+ 1
+
+
+
+
+
+ Or
+
+
+
+
+ And
+
+
+
+
+ And
+
+
+
+
+ Tunnel
+
+
+ Inputs
+ 1
+
+
+ NetName
+ Q_0n
+
+
+
+
+
+ D_FF
+
+
+ Label
+ Q_0n
+
+
+ Inputs
+ 1
+
+
+
+
+
+ Tunnel
+
+
+ rotation
+
+
+
+ NetName
+ Q_0n
+
+
+
+
+
+ Not
+
+
+ rotation
+
+
+
+
+
+
+ Tunnel
+
+
+ rotation
+
+
+
+ NetName
+ Q_1n
+
+
+
+
+
+ Not
+
+
+ rotation
+
+
+
+
+
+
+ Clock
+
+
+ runRealTime
+ true
+
+
+ rotation
+
+
+
+ Label
+ C
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file