diff --git a/src/main/dig/test/TafficLight.dig b/src/main/dig/test/TafficLight1.dig similarity index 100% rename from src/main/dig/test/TafficLight.dig rename to src/main/dig/test/TafficLight1.dig diff --git a/src/main/java/de/neemann/digital/core/basic/XOr.java b/src/main/java/de/neemann/digital/core/basic/XOr.java index cacc66a7d..959ef2ffa 100644 --- a/src/main/java/de/neemann/digital/core/basic/XOr.java +++ b/src/main/java/de/neemann/digital/core/basic/XOr.java @@ -69,4 +69,17 @@ public class XOr extends Node implements Element { return out.asList(); } + /** + * @return input A + */ + public ObservableValue getInputA() { + return a; + } + + /** + * @return input B + */ + public ObservableValue getInputB() { + return b; + } } diff --git a/src/test/java/de/neemann/digital/integration/TestExamples.java b/src/test/java/de/neemann/digital/integration/TestExamples.java index 4ad567489..ad15497a4 100644 --- a/src/test/java/de/neemann/digital/integration/TestExamples.java +++ b/src/test/java/de/neemann/digital/integration/TestExamples.java @@ -39,8 +39,8 @@ public class TestExamples extends TestCase { */ public void testTestExamples() throws Exception { File examples = new File(Resources.getRoot(), "/dig/test"); - assertEquals(51, new FileScanner(this::check).scan(examples)); - assertEquals(44, testCasesInFiles); + assertEquals(53, new FileScanner(this::check).scan(examples)); + assertEquals(47, testCasesInFiles); } diff --git a/src/test/java/de/neemann/digital/integration/TestShapes.java b/src/test/java/de/neemann/digital/integration/TestShapes.java index 92b184a6d..0107f6e73 100644 --- a/src/test/java/de/neemann/digital/integration/TestShapes.java +++ b/src/test/java/de/neemann/digital/integration/TestShapes.java @@ -22,9 +22,17 @@ public class TestShapes extends TestCase { * @throws Exception */ public void testShapes() throws Exception { + useShapes(false); + } + + public void testShapesIEEE() throws Exception { + useShapes(true); + } + + private void useShapes(boolean ieee) throws Exception { File filename = new File(Resources.getRoot(), "dig/shapes.dig"); ElementLibrary library = new ElementLibrary(); - ShapeFactory shapeFactory = new ShapeFactory(library); + ShapeFactory shapeFactory = new ShapeFactory(library, ieee); Circuit circuit = Circuit.loadCircuit(filename, shapeFactory); // try to write circuit to graphics instance diff --git a/src/test/java/de/neemann/digital/integration/TestTrans.java b/src/test/java/de/neemann/digital/integration/TestTrans.java new file mode 100644 index 000000000..55b9c4194 --- /dev/null +++ b/src/test/java/de/neemann/digital/integration/TestTrans.java @@ -0,0 +1,38 @@ +package de.neemann.digital.integration; + +import de.neemann.digital.core.Model; +import de.neemann.digital.core.Node; +import de.neemann.digital.core.ObservableValue; +import de.neemann.digital.core.Signal; +import de.neemann.digital.core.basic.XOr; +import junit.framework.TestCase; + +import java.util.ArrayList; + +/** + * Tests the handling of transparent circuits which only connect an input to an output. + *
+ * Created by hneemann on 08.04.17.
+ */
+public class TestTrans extends TestCase {
+
+ public void testTrans() throws Exception {
+ Model model = new ToBreakRunner("dig/test/transp/transtest3.dig").getModel();
+ assertEquals(2, model.getInputs().size());
+ assertEquals(1, model.getOutputs().size());
+ assertEquals(1, model.getNodes().size());
+
+ Node node = model.getNodes().get(0);
+ assertTrue(node instanceof XOr);
+ XOr xor = (XOr) node;
+
+ // The models inputs are the xor input values!
+ // All the intermediate transparent stuff is removed!
+ ArrayList