Fusing Wires will no longer initialize Wires with value U
[Mograsim.git] / net.mograsim.logic.core / src / net / mograsim / logic / core / tests / ComponentTest.java
index cc170cb..9c5a615 100644 (file)
@@ -101,6 +101,7 @@ class ComponentTest
                rB.feedSignals(Bit.ONE, Bit.ZERO);\r
                ReadWriteEnd rC = c.createReadWriteEnd();\r
                rC.feedSignals(Bit.ONE, Bit.ZERO, Bit.ONE);\r
+\r
                t.executeAll();\r
                assertBitArrayEquals(out.getValues(), Bit.ZERO, Bit.ONE, Bit.ZERO, Bit.ONE, Bit.ZERO, Bit.ONE, Bit.ZERO, Bit.ONE);\r
                out.createReadWriteEnd().feedSignals(Bit.ONE, Bit.ZERO, Bit.ONE, Bit.ZERO, Bit.ONE, Bit.ZERO, Bit.ONE, Bit.ZERO);\r
@@ -123,11 +124,39 @@ class ComponentTest
                t.reset();\r
                Wire a = new Wire(t, 3, 1), b = new Wire(t, 3, 1);\r
                Wire.fuse(a, b);\r
-               a.createReadWriteEnd().feedSignals(Bit.ONE, Bit.U, Bit.Z);\r
+               ReadWriteEnd rw = a.createReadWriteEnd();\r
+               t.executeAll();\r
+               assertBitArrayEquals(b.getValues(), Bit.U, Bit.U, Bit.U);\r
+\r
+               rw.feedSignals(Bit.ONE, Bit.U, Bit.Z);\r
                t.executeAll();\r
                assertBitArrayEquals(b.getValues(), Bit.ONE, Bit.U, Bit.Z);\r
        }\r
 \r
+       @Test\r
+       void fusionTest3()\r
+       {\r
+               t.reset();\r
+               Wire a = new Wire(t, 3, 1), b = new Wire(t, 3, 1);\r
+               a.createReadWriteEnd().feedSignals(Bit.Z, Bit.U, Bit.X);\r
+               t.executeAll();\r
+               Wire.fuse(a, b);\r
+               t.executeAll();\r
+               assertBitArrayEquals(b.getValues(), Bit.Z, Bit.U, Bit.X);\r
+       }\r
+\r
+//     @Test\r
+//     void connectorTest()\r
+//     {\r
+//             t.reset();\r
+//             Wire a = new Wire(t, 3, 1), b = new Wire(t, 3, 1);\r
+//             new Connector(t, a.createReadWriteEnd(), b.createReadWriteEnd()).connect();\r
+////           b.createReadWriteEnd();\r
+//             a.createReadWriteEnd();\r
+//             t.executeAll();\r
+//             assertBitArrayEquals(b.getValues(), Bit.U, Bit.U, Bit.U);\r
+//     }\r
+\r
        @Test\r
        void triStateBufferTest()\r
        {\r