import java.util.Random;
import java.util.function.LongConsumer;
-import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.api.TestInstance.Lifecycle;
import net.mograsim.logic.core.components.Connector;
import net.mograsim.logic.core.components.Demux;
{
private Timeline t = new Timeline(11);
- @Before
+ @BeforeEach
void resetTimeline()
{
t.reset();
void fusionTest1()
{
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);
- Wire.fuse(a, out, 0, 0, a.length);
- Wire.fuse(b, out, 0, a.length, b.length);
- Wire.fuse(c, out, 0, a.length + b.length, c.length);
+ Wire.fuse(a, out, 0, 0, a.width);
+ Wire.fuse(b, out, 0, a.width, b.width);
+ Wire.fuse(c, out, 0, a.width + b.width, c.width);
ReadWriteEnd rA = a.createReadWriteEnd();
rA.feedSignals(Bit.ZERO, Bit.ONE, Bit.ZERO);
ReadWriteEnd rB = b.createReadWriteEnd();
assertBitArrayEquals(b.getValues(), Bit.Z, Bit.U, Bit.X);
}
+ @Test
+ void fusionTest4()
+ {
+ Wire a = new Wire(t, 3, 1), b = new Wire(t, 3, 1);
+ a.createReadWriteEnd();
+ t.executeAll();
+
+ Wire.fuse(a, b);
+ t.executeAll();
+ assertBitArrayEquals(b.getValues(), Bit.U, Bit.U, Bit.U);
+ }
+
// @Test
// void connectorTest()
// {
fail("Not all events were executed in order!");
}
+ // TODO: Adapt this test, now that update notifications are issued whenever any input to a wire changes
+ @Disabled("Out of date")
@Test
void multipleInputs()
{
assertBitArrayEquals(w.getValues(), Bit.ONE, Bit.Z);
}
+ @Disabled("Braucht den Connector noch irgendjemand?")
@Test
void wireConnections()
{