From ae614b6135b2333994f13783507149bda1207e4d Mon Sep 17 00:00:00 2001 From: hneemann Date: Wed, 5 Jul 2017 12:39:10 +0200 Subject: [PATCH] added tests for the async flip-flops --- .../core/flipflops/FlipflopDAsyncTest.java | 36 ++++++++++++++ ...D_FlipflopTest.java => FlipflopDTest.java} | 4 +- .../core/flipflops/FlipflopJKAsyncTest.java | 47 +++++++++++++++++++ ..._FlipflopTest.java => FlipflopJKTest.java} | 2 +- ...ipflopRS_Test.java => FlipflopRSTest.java} | 2 +- ...FlipflopT_Test.java => FlipflopTTest.java} | 2 +- 6 files changed, 88 insertions(+), 5 deletions(-) create mode 100644 src/test/java/de/neemann/digital/core/flipflops/FlipflopDAsyncTest.java rename src/test/java/de/neemann/digital/core/flipflops/{D_FlipflopTest.java => FlipflopDTest.java} (90%) create mode 100644 src/test/java/de/neemann/digital/core/flipflops/FlipflopJKAsyncTest.java rename src/test/java/de/neemann/digital/core/flipflops/{JK_FlipflopTest.java => FlipflopJKTest.java} (96%) rename src/test/java/de/neemann/digital/core/flipflops/{FlipflopRS_Test.java => FlipflopRSTest.java} (96%) rename src/test/java/de/neemann/digital/core/flipflops/{FlipflopT_Test.java => FlipflopTTest.java} (97%) diff --git a/src/test/java/de/neemann/digital/core/flipflops/FlipflopDAsyncTest.java b/src/test/java/de/neemann/digital/core/flipflops/FlipflopDAsyncTest.java new file mode 100644 index 000000000..00422e262 --- /dev/null +++ b/src/test/java/de/neemann/digital/core/flipflops/FlipflopDAsyncTest.java @@ -0,0 +1,36 @@ +package de.neemann.digital.core.flipflops; + +import de.neemann.digital.TestExecuter; +import de.neemann.digital.core.Model; +import de.neemann.digital.core.ObservableValue; +import de.neemann.digital.core.element.ElementAttributes; +import junit.framework.TestCase; + +import static de.neemann.digital.core.ObservableValues.ovs; + +/** + * @author hneemann + */ +public class FlipflopDAsyncTest extends TestCase { + public void testFlipFlop() throws Exception { + ObservableValue set = new ObservableValue("set", 1); + ObservableValue d = new ObservableValue("d", 8); + ObservableValue c = new ObservableValue("c", 1); + ObservableValue clr = new ObservableValue("clr", 1); + + Model model = new Model(); + FlipflopDAsync out = model.add(new FlipflopDAsync(new ElementAttributes().setBits(8))); + out.setInputs(ovs(set, d, c, clr)); + + TestExecuter sc = new TestExecuter(model).setInputs(set, d, c, clr).setOutputs(out.getOutputs()); + // set D C clr Q ~Q + sc.check(0, 0, 0, 0, 0, 255); + sc.check(1, 0, 0, 0, 255, 0); // set + sc.check(0, 0, 0, 0, 255, 0); + sc.check(0, 0, 0, 1, 0, 255); // clr + sc.check(0, 0, 0, 0, 0, 255); + sc.check(0, 1, 0, 0, 0, 255); + sc.check(0, 1, 1, 0, 1, 254); + sc.check(0, 0, 0, 0, 1, 254); + } +} \ No newline at end of file diff --git a/src/test/java/de/neemann/digital/core/flipflops/D_FlipflopTest.java b/src/test/java/de/neemann/digital/core/flipflops/FlipflopDTest.java similarity index 90% rename from src/test/java/de/neemann/digital/core/flipflops/D_FlipflopTest.java rename to src/test/java/de/neemann/digital/core/flipflops/FlipflopDTest.java index e4ea21039..6efcb9c70 100644 --- a/src/test/java/de/neemann/digital/core/flipflops/D_FlipflopTest.java +++ b/src/test/java/de/neemann/digital/core/flipflops/FlipflopDTest.java @@ -11,9 +11,9 @@ import static de.neemann.digital.core.ObservableValues.ovs; /** * @author hneemann */ -public class D_FlipflopTest extends TestCase { +public class FlipflopDTest extends TestCase { public void testFlipFlop() throws Exception { - ObservableValue d = new ObservableValue("s", 8); + ObservableValue d = new ObservableValue("d", 8); ObservableValue c = new ObservableValue("c", 1); Model model = new Model(); diff --git a/src/test/java/de/neemann/digital/core/flipflops/FlipflopJKAsyncTest.java b/src/test/java/de/neemann/digital/core/flipflops/FlipflopJKAsyncTest.java new file mode 100644 index 000000000..b3aa831bf --- /dev/null +++ b/src/test/java/de/neemann/digital/core/flipflops/FlipflopJKAsyncTest.java @@ -0,0 +1,47 @@ +package de.neemann.digital.core.flipflops; + +import de.neemann.digital.TestExecuter; +import de.neemann.digital.core.Model; +import de.neemann.digital.core.ObservableValue; +import de.neemann.digital.core.element.ElementAttributes; +import junit.framework.TestCase; + +import static de.neemann.digital.core.ObservableValues.ovs; + +/** + * @author hneemann + */ +public class FlipflopJKAsyncTest extends TestCase { + public void testFlipFlop() throws Exception { + ObservableValue set = new ObservableValue("set", 1); + ObservableValue j = new ObservableValue("j", 1); + ObservableValue c = new ObservableValue("c", 1); + ObservableValue k = new ObservableValue("k", 1); + ObservableValue clr = new ObservableValue("clr", 1); + + Model model = new Model(); + FlipflopJKAsync out = model.add(new FlipflopJKAsync(new ElementAttributes())); + out.setInputs(ovs(set, j, c, k, clr)); + + TestExecuter sc = new TestExecuter(model).setInputs(set, j, c, k, clr).setOutputs(out.getOutputs()); + // Set J C K clr Q ~Q + sc.check(0, 0, 0, 0, 0, 0, 1); + sc.check(0, 0, 0, 0, 0, 0, 1); + sc.check(0, 1, 0, 0, 0, 0, 1); + sc.check(0, 0, 1, 0, 0, 0, 1); + sc.check(0, 1, 0, 0, 0, 0, 1); + sc.check(0, 1, 1, 0, 0, 1, 0); + sc.check(0, 1, 0, 1, 0, 1, 0); + sc.check(0, 1, 1, 1, 0, 0, 1); + sc.check(0, 1, 0, 1, 0, 0, 1); + sc.check(0, 1, 1, 1, 0, 1, 0); + sc.check(0, 0, 0, 1, 0, 1, 0); + sc.check(0, 0, 1, 1, 0, 0, 1); + sc.check(0, 0, 0, 0, 0, 0, 1); + // async + sc.check(1, 0, 0, 0, 0, 1, 0); + sc.check(0, 0, 0, 0, 0, 1, 0); + sc.check(0, 0, 0, 0, 1, 0, 1); + sc.check(0, 0, 0, 0, 0, 0, 1); + } +} \ No newline at end of file diff --git a/src/test/java/de/neemann/digital/core/flipflops/JK_FlipflopTest.java b/src/test/java/de/neemann/digital/core/flipflops/FlipflopJKTest.java similarity index 96% rename from src/test/java/de/neemann/digital/core/flipflops/JK_FlipflopTest.java rename to src/test/java/de/neemann/digital/core/flipflops/FlipflopJKTest.java index 3927c6a2a..941199ce7 100644 --- a/src/test/java/de/neemann/digital/core/flipflops/JK_FlipflopTest.java +++ b/src/test/java/de/neemann/digital/core/flipflops/FlipflopJKTest.java @@ -11,7 +11,7 @@ import static de.neemann.digital.core.ObservableValues.ovs; /** * @author hneemann */ -public class JK_FlipflopTest extends TestCase { +public class FlipflopJKTest extends TestCase { public void testFlipFlop() throws Exception { ObservableValue j = new ObservableValue("j", 1); ObservableValue c = new ObservableValue("c", 1); diff --git a/src/test/java/de/neemann/digital/core/flipflops/FlipflopRS_Test.java b/src/test/java/de/neemann/digital/core/flipflops/FlipflopRSTest.java similarity index 96% rename from src/test/java/de/neemann/digital/core/flipflops/FlipflopRS_Test.java rename to src/test/java/de/neemann/digital/core/flipflops/FlipflopRSTest.java index 1ce297153..4edb6bae8 100644 --- a/src/test/java/de/neemann/digital/core/flipflops/FlipflopRS_Test.java +++ b/src/test/java/de/neemann/digital/core/flipflops/FlipflopRSTest.java @@ -11,7 +11,7 @@ import static de.neemann.digital.core.ObservableValues.ovs; /** * @author hneemann */ -public class FlipflopRS_Test extends TestCase { +public class FlipflopRSTest extends TestCase { public void testFlipFlop() throws Exception { ObservableValue s = new ObservableValue("s", 1); ObservableValue c = new ObservableValue("c", 1); diff --git a/src/test/java/de/neemann/digital/core/flipflops/FlipflopT_Test.java b/src/test/java/de/neemann/digital/core/flipflops/FlipflopTTest.java similarity index 97% rename from src/test/java/de/neemann/digital/core/flipflops/FlipflopT_Test.java rename to src/test/java/de/neemann/digital/core/flipflops/FlipflopTTest.java index ef610e33e..b0c58596a 100644 --- a/src/test/java/de/neemann/digital/core/flipflops/FlipflopT_Test.java +++ b/src/test/java/de/neemann/digital/core/flipflops/FlipflopTTest.java @@ -11,7 +11,7 @@ import junit.framework.TestCase; /** * @author hneemann */ -public class FlipflopT_Test extends TestCase { +public class FlipflopTTest extends TestCase { public void testFlipFlop() throws Exception { ObservableValue c = new ObservableValue("c", 1);