From b5a6f26af1f44a5e00db124f7edfb105a03bd373 Mon Sep 17 00:00:00 2001 From: hneemann Date: Fri, 27 Nov 2020 09:19:38 +0100 Subject: [PATCH] adds some test cases --- .../digital/testing/TestExecutorTest.java | 48 +++ .../resources/dig/setStateToTestResult.dig | 276 ++++++++++++++++++ 2 files changed, 324 insertions(+) create mode 100644 src/test/java/de/neemann/digital/testing/TestExecutorTest.java create mode 100644 src/test/resources/dig/setStateToTestResult.dig diff --git a/src/test/java/de/neemann/digital/testing/TestExecutorTest.java b/src/test/java/de/neemann/digital/testing/TestExecutorTest.java new file mode 100644 index 000000000..5e0807116 --- /dev/null +++ b/src/test/java/de/neemann/digital/testing/TestExecutorTest.java @@ -0,0 +1,48 @@ +package de.neemann.digital.testing; + +import de.neemann.digital.core.Model; +import de.neemann.digital.draw.elements.Circuit; +import de.neemann.digital.integration.ToBreakRunner; +import junit.framework.TestCase; + +import java.util.List; + +public class TestExecutorTest extends TestCase { + + private Model m; + private TestCaseDescription tcd; + + @Override + public void setUp() throws Exception { + ToBreakRunner tbr = new ToBreakRunner("dig/setStateToTestResult.dig"); + List tl = tbr.getCircuit().getTestCases(); + assertEquals(1, tl.size()); + tcd = tl.get(0).getTestCaseDescription(); + m = tbr.getModel(); + } + + public void testSetStateToTestResult0() throws Exception { + new TestExecutor(tcd, m).executeTo(0); + assertEquals(0, m.getOutput("S").getValue()); + assertEquals(0, m.getOutput("O").getValue()); + } + + public void testSetStateToTestResult12() throws Exception { + new TestExecutor(tcd, m).executeTo(12); + assertEquals(6, m.getOutput("S").getValue()); + assertEquals(0, m.getOutput("O").getValue()); + } + + public void testSetStateToTestResultCarry() throws Exception { + new TestExecutor(tcd, m).executeTo(256 * 2 - 1); + assertEquals(0, m.getOutput("S").getValue()); + assertEquals(1, m.getOutput("O").getValue()); + } + + public void testSetStateToTestResultError() throws Exception { + new TestExecutor(tcd, m).executeTo(256 * 256 * 2 - 1); + assertEquals(255, m.getOutput("S").getValue()); + assertEquals(0, m.getOutput("O").getValue()); + } + +} \ No newline at end of file diff --git a/src/test/resources/dig/setStateToTestResult.dig b/src/test/resources/dig/setStateToTestResult.dig new file mode 100644 index 000000000..31fff32a9 --- /dev/null +++ b/src/test/resources/dig/setStateToTestResult.dig @@ -0,0 +1,276 @@ + + + 1 + + + + Testcase + + + Testdata + + A B C O S + +loop (a,256) +loop (b,256) +loop (c,2) +let sum=a+b+c; +(a) (b) (c) (sum>>8) (sum) +end loop +end loop +end loop + + + + + + + + In + + + Label + A + + + Bits + 8 + + + + + + In + + + Label + B + + + Bits + 8 + + + + + + In + + + Label + C + + + + + + Out + + + Label + S + + + Bits + 8 + + + + + + Add + + + Bits + 8 + + + + + + Out + + + Label + O + + + + + + Comparator + + + Bits + 8 + + + + + + Comparator + + + Bits + 8 + + + + + + Const + + + Value + 255 + + + Bits + 8 + + + + + + NAnd + + + + + And + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file