adds a NOT optimizing test case

This commit is contained in:
hneemann 2021-01-07 10:01:00 +01:00
parent 4c0b0aafc1
commit a93ebf3554
4 changed files with 287 additions and 6 deletions

View File

@ -51,8 +51,8 @@ public class VerilogSimulatorTest extends TestCase {
File examples = new File(Resources.getRoot(), "/dig/test/vhdl");
try {
int tested = new FileScanner(this::checkVerilogExport).noOutput().scan(examples);
assertEquals(60, tested);
assertEquals(53, testBenches);
assertEquals(61, tested);
assertEquals(54, testBenches);
} catch (FileScanner.SkipAllException e) {
// if iverilog is not installed its also ok
}

View File

@ -43,8 +43,8 @@ public class VHDLSimulatorTest extends TestCase {
File examples = new File(Resources.getRoot(), "/dig/test/vhdl");
try {
int tested = new FileScanner(this::checkVHDLExport).noOutput().scan(examples);
assertEquals(60, tested);
assertEquals(53, testBenches);
assertEquals(61, tested);
assertEquals(54, testBenches);
} catch (FileScanner.SkipAllException e) {
// if ghdl is not installed its also ok
}

View File

@ -50,8 +50,8 @@ public class TestExamples extends TestCase {
*/
public void testTestExamples() throws Exception {
File examples = new File(Resources.getRoot(), "/dig/test");
assertEquals(199, new FileScanner(this::check).scan(examples));
assertEquals(188, testCasesInFiles);
assertEquals(200, new FileScanner(this::check).scan(examples));
assertEquals(189, testCasesInFiles);
}
/**

View File

@ -0,0 +1,281 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>1</version>
<attributes/>
<visualElements>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>A</string>
</entry>
</elementAttributes>
<pos x="340" y="180"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="360" y="180"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>B</string>
</entry>
</elementAttributes>
<pos x="340" y="220"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="360" y="220"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="420" y="220"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>C</string>
</entry>
</elementAttributes>
<pos x="340" y="260"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="360" y="260"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="420" y="260"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="480" y="260"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>D</string>
</entry>
</elementAttributes>
<pos x="340" y="300"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="360" y="300"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="420" y="300"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="480" y="300"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="540" y="300"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>E</string>
</entry>
</elementAttributes>
<pos x="340" y="340"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="360" y="340"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="420" y="340"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="480" y="340"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="540" y="340"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="600" y="340"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y</string>
</entry>
</elementAttributes>
<pos x="660" y="340"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>X</string>
</entry>
</elementAttributes>
<pos x="660" y="300"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Z</string>
</entry>
</elementAttributes>
<pos x="660" y="260"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>U</string>
</entry>
</elementAttributes>
<pos x="660" y="220"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>V</string>
</entry>
</elementAttributes>
<pos x="660" y="180"/>
</visualElement>
<visualElement>
<elementName>Testcase</elementName>
<elementAttributes>
<entry>
<string>Testdata</string>
<testData>
<dataString>A B C D E Y X Z U V
0 0 0 0 0 1 0 1 0 1
1 1 1 1 1 0 1 0 1 0
</dataString>
</testData>
</entry>
</elementAttributes>
<pos x="460" y="380"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="340" y="180"/>
<p2 x="360" y="180"/>
</wire>
<wire>
<p1 x="400" y="180"/>
<p2 x="660" y="180"/>
</wire>
<wire>
<p1 x="340" y="260"/>
<p2 x="360" y="260"/>
</wire>
<wire>
<p1 x="400" y="260"/>
<p2 x="420" y="260"/>
</wire>
<wire>
<p1 x="460" y="260"/>
<p2 x="480" y="260"/>
</wire>
<wire>
<p1 x="520" y="260"/>
<p2 x="660" y="260"/>
</wire>
<wire>
<p1 x="340" y="340"/>
<p2 x="360" y="340"/>
</wire>
<wire>
<p1 x="400" y="340"/>
<p2 x="420" y="340"/>
</wire>
<wire>
<p1 x="460" y="340"/>
<p2 x="480" y="340"/>
</wire>
<wire>
<p1 x="520" y="340"/>
<p2 x="540" y="340"/>
</wire>
<wire>
<p1 x="580" y="340"/>
<p2 x="600" y="340"/>
</wire>
<wire>
<p1 x="640" y="340"/>
<p2 x="660" y="340"/>
</wire>
<wire>
<p1 x="340" y="220"/>
<p2 x="360" y="220"/>
</wire>
<wire>
<p1 x="400" y="220"/>
<p2 x="420" y="220"/>
</wire>
<wire>
<p1 x="460" y="220"/>
<p2 x="660" y="220"/>
</wire>
<wire>
<p1 x="340" y="300"/>
<p2 x="360" y="300"/>
</wire>
<wire>
<p1 x="400" y="300"/>
<p2 x="420" y="300"/>
</wire>
<wire>
<p1 x="460" y="300"/>
<p2 x="480" y="300"/>
</wire>
<wire>
<p1 x="520" y="300"/>
<p2 x="540" y="300"/>
</wire>
<wire>
<p1 x="580" y="300"/>
<p2 x="660" y="300"/>
</wire>
</wires>
<measurementOrdering/>
</circuit>