Commented GUIWire
[Mograsim.git] / net.mograsim.logic.core / src / net / mograsim / logic / core / tests / ComponentTest.java
index 0c8a4b8..9c5a615 100644 (file)
@@ -87,6 +87,76 @@ class ComponentTest
                assertBitArrayEquals(out.getValues(), Bit.ZERO, Bit.ONE, Bit.ZERO, Bit.ONE, Bit.ZERO, Bit.ONE, Bit.ZERO, Bit.ONE);\r
        }\r
 \r
+       @Test\r
+       void fusionTest1()\r
+       {\r
+               t.reset();\r
+               Wire a = new Wire(t, 3, 1), b = new Wire(t, 2, 1), c = new Wire(t, 3, 1), out = new Wire(t, 8, 1);\r
+               Wire.fuse(a, out, 0, 0, a.length);\r
+               Wire.fuse(b, out, 0, a.length, b.length);\r
+               Wire.fuse(c, out, 0, a.length + b.length, c.length);\r
+               ReadWriteEnd rA = a.createReadWriteEnd();\r
+               rA.feedSignals(Bit.ZERO, Bit.ONE, Bit.ZERO);\r
+               ReadWriteEnd rB = b.createReadWriteEnd();\r
+               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
+               t.executeAll();\r
+               assertBitArrayEquals(rA.getValues(), Bit.X, Bit.X, Bit.X);\r
+               assertBitArrayEquals(rB.getValues(), Bit.X, Bit.X);\r
+               assertBitArrayEquals(rC.getValues(), Bit.X, Bit.X, Bit.X);\r
+               rA.clearSignals();\r
+               rB.clearSignals();\r
+               rC.clearSignals();\r
+               t.executeAll();\r
+               assertBitArrayEquals(rA.getValues(), Bit.ONE, Bit.ZERO, Bit.ONE);\r
+               assertBitArrayEquals(rB.getValues(), Bit.ZERO, Bit.ONE);\r
+               assertBitArrayEquals(rC.getValues(), Bit.ZERO, Bit.ONE, Bit.ZERO);\r
+       }\r
+\r
+       @Test\r
+       void fusionTest2()\r
+       {\r
+               t.reset();\r
+               Wire a = new Wire(t, 3, 1), b = new Wire(t, 3, 1);\r
+               Wire.fuse(a, b);\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
@@ -400,7 +470,7 @@ class ComponentTest
 \r
                TestBitDisplay test = new TestBitDisplay(t, c.createReadOnlyEnd());\r
                TestBitDisplay test2 = new TestBitDisplay(t, a.createReadOnlyEnd());\r
-               LongConsumer print = time -> System.out.format("Time %2d\n   a: %s\n   b: %s\n   c: %s\n", time, a, b, c);\r
+               LongConsumer print = time -> System.out.format("Time %2d\n a: %s\n b: %s\n c: %s\n", time, a, b, c);\r
 \r
                cI.feedSignals(Bit.ONE);\r
                test.assertAfterSimulationIs(print, Bit.ONE);\r