diff --git a/src/main/java/de/neemann/digital/gui/components/test/Value.java b/src/main/java/de/neemann/digital/gui/components/test/Value.java index 13265a1dd..b7444e42e 100644 --- a/src/main/java/de/neemann/digital/gui/components/test/Value.java +++ b/src/main/java/de/neemann/digital/gui/components/test/Value.java @@ -12,7 +12,24 @@ public class Value { /** * Types of values */ - public enum Type {NORMAL, DONTCARE, HIGHZ, CLOCK} + public enum Type { + /** + * normal value, value is stored in member variable value + */ + NORMAL, + /** + * Value don't care in test + */ + DONTCARE, + /** + * value is "high impedance" + */ + HIGHZ, + /** + * its a clock value which is handled as a 0-1-0 sequence + */ + CLOCK + } private final long value; private final Type type; @@ -71,6 +88,9 @@ public class Value { if (v.type != type) return false; + // both types are equal! + if (type == Type.HIGHZ) return true; + return value == v.value; } diff --git a/src/test/java/de/neemann/digital/gui/components/test/TestResultTest.java b/src/test/java/de/neemann/digital/gui/components/test/TestResultTest.java index 17f93340c..98cd215a8 100644 --- a/src/test/java/de/neemann/digital/gui/components/test/TestResultTest.java +++ b/src/test/java/de/neemann/digital/gui/components/test/TestResultTest.java @@ -61,7 +61,7 @@ public class TestResultTest extends TestCase { assertEquals(false, ((MatchedValue)tr.getValue(3,2)).isPassed()); } - public void testResultErrorDC() throws Exception { + public void testResultDontCare() throws Exception { Model model = getModel("A+B"); TestData data = new TestData( "A B Y\n" @@ -73,4 +73,16 @@ public class TestResultTest extends TestCase { assertTrue(tr.allPassed()); } + public void testResultDontCare2() throws Exception { + Model model = getModel("A+B"); + TestData data = new TestData( + "A B Y\n" + + "0 0 x\n" + + "0 1 1\n" + + "1 0 1\n" + + "1 1 1\n"); + TestResult tr = new TestResult(data).create(model); + assertTrue(tr.allPassed()); + } + } \ No newline at end of file diff --git a/src/test/java/de/neemann/digital/integration/TestTestableExamples.java b/src/test/java/de/neemann/digital/integration/TestTestableExamples.java index 0da2d8096..acb94aa7c 100644 --- a/src/test/java/de/neemann/digital/integration/TestTestableExamples.java +++ b/src/test/java/de/neemann/digital/integration/TestTestableExamples.java @@ -24,9 +24,13 @@ public class TestTestableExamples extends TestCase { public void testTestableTest() throws Exception { File examples = new File(Resources.getRoot(), "/dig/test"); - assertEquals(2, new FileScanner(this::check).scan(examples)); + assertEquals(3, new FileScanner(this::check).scan(examples)); } +// public void testFile() throws Exception { +// check(new File(Resources.getRoot(), "/dig/test/highz.dig")); +// } + /** * Loads the model and initializes and tests it * diff --git a/src/test/resources/dig/test/highz.dig b/src/test/resources/dig/test/highz.dig new file mode 100644 index 000000000..10eb58a2b --- /dev/null +++ b/src/test/resources/dig/test/highz.dig @@ -0,0 +1,87 @@ + + + 1 + + + Driver + + + flipSelPos + true + + + + + + In + + + Label + I + + + + + + In + + + Label + en + + + + + + Out + + + Label + O + + + + + + Testcase + + + Label + High Z + + + Testdata + + I en O +1 1 1 +0 1 0 +1 0 Z +0 0 Z +1 0 X +0 0 X + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file