added some test cases

This commit is contained in:
hneemann 2017-02-28 09:08:06 +01:00
parent c65378ba0c
commit 92b970bd47
3 changed files with 936 additions and 2 deletions

View File

@ -39,8 +39,8 @@ public class TestExamples extends TestCase {
*/
public void testTestExamples() throws Exception {
File examples = new File(Resources.getRoot(), "/dig/test");
assertEquals(43, new FileScanner(this::check).scan(examples));
assertEquals(35, testCasesInFiles);
assertEquals(45, new FileScanner(this::check).scan(examples));
assertEquals(37, testCasesInFiles);
}

View File

@ -0,0 +1,519 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>1</version>
<visualElements>
<visualElement>
<elementName>Relay</elementName>
<elementAttributes/>
<pos x="380" y="200"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>A</string>
</entry>
</elementAttributes>
<pos x="320" y="140"/>
</visualElement>
<visualElement>
<elementName>PullUp</elementName>
<elementAttributes/>
<pos x="460" y="180"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y1</string>
</entry>
</elementAttributes>
<pos x="480" y="200"/>
</visualElement>
<visualElement>
<elementName>Ground</elementName>
<elementAttributes/>
<pos x="360" y="220"/>
</visualElement>
<visualElement>
<elementName>Relay</elementName>
<elementAttributes/>
<pos x="380" y="320"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y2</string>
</entry>
</elementAttributes>
<pos x="480" y="320"/>
</visualElement>
<visualElement>
<elementName>Ground</elementName>
<elementAttributes/>
<pos x="360" y="340"/>
</visualElement>
<visualElement>
<elementName>PullDown</elementName>
<elementAttributes/>
<pos x="460" y="340"/>
</visualElement>
<visualElement>
<elementName>Relay</elementName>
<elementAttributes/>
<pos x="380" y="480"/>
</visualElement>
<visualElement>
<elementName>PullUp</elementName>
<elementAttributes/>
<pos x="460" y="460"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y3</string>
</entry>
</elementAttributes>
<pos x="480" y="480"/>
</visualElement>
<visualElement>
<elementName>Relay</elementName>
<elementAttributes/>
<pos x="380" y="600"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y4</string>
</entry>
</elementAttributes>
<pos x="480" y="600"/>
</visualElement>
<visualElement>
<elementName>PullDown</elementName>
<elementAttributes/>
<pos x="460" y="620"/>
</visualElement>
<visualElement>
<elementName>VDD</elementName>
<elementAttributes/>
<pos x="360" y="460"/>
</visualElement>
<visualElement>
<elementName>VDD</elementName>
<elementAttributes/>
<pos x="360" y="580"/>
</visualElement>
<visualElement>
<elementName>Testcase</elementName>
<elementAttributes>
<entry>
<string>Testdata</string>
<testData>
<dataString>A Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8
0 1 0 1 0 1 0 1 0
1 0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1 0
1 0 0 1 1 0 0 1 1
</dataString>
</testData>
</entry>
</elementAttributes>
<pos x="240" y="620"/>
</visualElement>
<visualElement>
<elementName>Relay</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
</elementAttributes>
<pos x="680" y="200"/>
</visualElement>
<visualElement>
<elementName>PullUp</elementName>
<elementAttributes/>
<pos x="720" y="180"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y5</string>
</entry>
</elementAttributes>
<pos x="740" y="200"/>
</visualElement>
<visualElement>
<elementName>Ground</elementName>
<elementAttributes/>
<pos x="620" y="220"/>
</visualElement>
<visualElement>
<elementName>Relay</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
</elementAttributes>
<pos x="680" y="320"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y6</string>
</entry>
</elementAttributes>
<pos x="740" y="320"/>
</visualElement>
<visualElement>
<elementName>Ground</elementName>
<elementAttributes/>
<pos x="620" y="340"/>
</visualElement>
<visualElement>
<elementName>PullDown</elementName>
<elementAttributes/>
<pos x="720" y="340"/>
</visualElement>
<visualElement>
<elementName>Relay</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
</elementAttributes>
<pos x="680" y="480"/>
</visualElement>
<visualElement>
<elementName>PullUp</elementName>
<elementAttributes/>
<pos x="720" y="460"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y7</string>
</entry>
</elementAttributes>
<pos x="740" y="480"/>
</visualElement>
<visualElement>
<elementName>Relay</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
</elementAttributes>
<pos x="680" y="600"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y8</string>
</entry>
</elementAttributes>
<pos x="740" y="600"/>
</visualElement>
<visualElement>
<elementName>PullDown</elementName>
<elementAttributes/>
<pos x="720" y="620"/>
</visualElement>
<visualElement>
<elementName>VDD</elementName>
<elementAttributes/>
<pos x="620" y="460"/>
</visualElement>
<visualElement>
<elementName>VDD</elementName>
<elementAttributes/>
<pos x="620" y="580"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="420" y="320"/>
<p2 x="460" y="320"/>
</wire>
<wire>
<p1 x="360" y="320"/>
<p2 x="380" y="320"/>
</wire>
<wire>
<p1 x="680" y="320"/>
<p2 x="720" y="320"/>
</wire>
<wire>
<p1 x="620" y="320"/>
<p2 x="640" y="320"/>
</wire>
<wire>
<p1 x="720" y="320"/>
<p2 x="740" y="320"/>
</wire>
<wire>
<p1 x="460" y="320"/>
<p2 x="480" y="320"/>
</wire>
<wire>
<p1 x="420" y="480"/>
<p2 x="460" y="480"/>
</wire>
<wire>
<p1 x="360" y="480"/>
<p2 x="380" y="480"/>
</wire>
<wire>
<p1 x="680" y="480"/>
<p2 x="720" y="480"/>
</wire>
<wire>
<p1 x="620" y="480"/>
<p2 x="640" y="480"/>
</wire>
<wire>
<p1 x="720" y="480"/>
<p2 x="740" y="480"/>
</wire>
<wire>
<p1 x="460" y="480"/>
<p2 x="480" y="480"/>
</wire>
<wire>
<p1 x="340" y="260"/>
<p2 x="400" y="260"/>
</wire>
<wire>
<p1 x="600" y="260"/>
<p2 x="660" y="260"/>
</wire>
<wire>
<p1 x="340" y="420"/>
<p2 x="400" y="420"/>
</wire>
<wire>
<p1 x="600" y="660"/>
<p2 x="660" y="660"/>
</wire>
<wire>
<p1 x="340" y="120"/>
<p2 x="600" y="120"/>
</wire>
<wire>
<p1 x="420" y="200"/>
<p2 x="460" y="200"/>
</wire>
<wire>
<p1 x="360" y="200"/>
<p2 x="380" y="200"/>
</wire>
<wire>
<p1 x="680" y="200"/>
<p2 x="720" y="200"/>
</wire>
<wire>
<p1 x="620" y="200"/>
<p2 x="640" y="200"/>
</wire>
<wire>
<p1 x="720" y="200"/>
<p2 x="740" y="200"/>
</wire>
<wire>
<p1 x="460" y="200"/>
<p2 x="480" y="200"/>
</wire>
<wire>
<p1 x="420" y="600"/>
<p2 x="460" y="600"/>
</wire>
<wire>
<p1 x="360" y="600"/>
<p2 x="380" y="600"/>
</wire>
<wire>
<p1 x="680" y="600"/>
<p2 x="720" y="600"/>
</wire>
<wire>
<p1 x="620" y="600"/>
<p2 x="640" y="600"/>
</wire>
<wire>
<p1 x="720" y="600"/>
<p2 x="740" y="600"/>
</wire>
<wire>
<p1 x="460" y="600"/>
<p2 x="480" y="600"/>
</wire>
<wire>
<p1 x="600" y="380"/>
<p2 x="660" y="380"/>
</wire>
<wire>
<p1 x="320" y="140"/>
<p2 x="340" y="140"/>
</wire>
<wire>
<p1 x="340" y="140"/>
<p2 x="400" y="140"/>
</wire>
<wire>
<p1 x="340" y="540"/>
<p2 x="400" y="540"/>
</wire>
<wire>
<p1 x="600" y="540"/>
<p2 x="660" y="540"/>
</wire>
<wire>
<p1 x="400" y="140"/>
<p2 x="400" y="160"/>
</wire>
<wire>
<p1 x="400" y="260"/>
<p2 x="400" y="280"/>
</wire>
<wire>
<p1 x="400" y="420"/>
<p2 x="400" y="440"/>
</wire>
<wire>
<p1 x="400" y="540"/>
<p2 x="400" y="560"/>
</wire>
<wire>
<p1 x="720" y="180"/>
<p2 x="720" y="200"/>
</wire>
<wire>
<p1 x="720" y="320"/>
<p2 x="720" y="340"/>
</wire>
<wire>
<p1 x="720" y="460"/>
<p2 x="720" y="480"/>
</wire>
<wire>
<p1 x="720" y="600"/>
<p2 x="720" y="620"/>
</wire>
<wire>
<p1 x="660" y="640"/>
<p2 x="660" y="660"/>
</wire>
<wire>
<p1 x="660" y="240"/>
<p2 x="660" y="260"/>
</wire>
<wire>
<p1 x="660" y="360"/>
<p2 x="660" y="380"/>
</wire>
<wire>
<p1 x="660" y="520"/>
<p2 x="660" y="540"/>
</wire>
<wire>
<p1 x="340" y="120"/>
<p2 x="340" y="140"/>
</wire>
<wire>
<p1 x="340" y="260"/>
<p2 x="340" y="420"/>
</wire>
<wire>
<p1 x="340" y="140"/>
<p2 x="340" y="260"/>
</wire>
<wire>
<p1 x="340" y="420"/>
<p2 x="340" y="540"/>
</wire>
<wire>
<p1 x="600" y="120"/>
<p2 x="600" y="260"/>
</wire>
<wire>
<p1 x="600" y="380"/>
<p2 x="600" y="540"/>
</wire>
<wire>
<p1 x="600" y="260"/>
<p2 x="600" y="380"/>
</wire>
<wire>
<p1 x="600" y="540"/>
<p2 x="600" y="660"/>
</wire>
<wire>
<p1 x="360" y="200"/>
<p2 x="360" y="220"/>
</wire>
<wire>
<p1 x="360" y="320"/>
<p2 x="360" y="340"/>
</wire>
<wire>
<p1 x="360" y="460"/>
<p2 x="360" y="480"/>
</wire>
<wire>
<p1 x="360" y="580"/>
<p2 x="360" y="600"/>
</wire>
<wire>
<p1 x="620" y="200"/>
<p2 x="620" y="220"/>
</wire>
<wire>
<p1 x="620" y="320"/>
<p2 x="620" y="340"/>
</wire>
<wire>
<p1 x="620" y="460"/>
<p2 x="620" y="480"/>
</wire>
<wire>
<p1 x="620" y="580"/>
<p2 x="620" y="600"/>
</wire>
<wire>
<p1 x="460" y="180"/>
<p2 x="460" y="200"/>
</wire>
<wire>
<p1 x="460" y="320"/>
<p2 x="460" y="340"/>
</wire>
<wire>
<p1 x="460" y="460"/>
<p2 x="460" y="480"/>
</wire>
<wire>
<p1 x="460" y="600"/>
<p2 x="460" y="620"/>
</wire>
</wires>
</circuit>

View File

@ -0,0 +1,415 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>1</version>
<visualElements>
<visualElement>
<elementName>Relay</elementName>
<elementAttributes/>
<pos x="380" y="200"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>A</string>
</entry>
</elementAttributes>
<pos x="320" y="140"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y1</string>
</entry>
</elementAttributes>
<pos x="480" y="200"/>
</visualElement>
<visualElement>
<elementName>Ground</elementName>
<elementAttributes/>
<pos x="360" y="220"/>
</visualElement>
<visualElement>
<elementName>Relay</elementName>
<elementAttributes/>
<pos x="380" y="320"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y2</string>
</entry>
</elementAttributes>
<pos x="480" y="320"/>
</visualElement>
<visualElement>
<elementName>Ground</elementName>
<elementAttributes/>
<pos x="360" y="340"/>
</visualElement>
<visualElement>
<elementName>Relay</elementName>
<elementAttributes/>
<pos x="380" y="480"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y3</string>
</entry>
</elementAttributes>
<pos x="480" y="480"/>
</visualElement>
<visualElement>
<elementName>Relay</elementName>
<elementAttributes/>
<pos x="380" y="600"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y4</string>
</entry>
</elementAttributes>
<pos x="480" y="600"/>
</visualElement>
<visualElement>
<elementName>VDD</elementName>
<elementAttributes/>
<pos x="360" y="460"/>
</visualElement>
<visualElement>
<elementName>VDD</elementName>
<elementAttributes/>
<pos x="360" y="580"/>
</visualElement>
<visualElement>
<elementName>Testcase</elementName>
<elementAttributes>
<entry>
<string>Testdata</string>
<testData>
<dataString>A Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8
0 z z z z z z z z
1 0 0 1 1 0 0 1 1
0 z z z z z z z z
1 0 0 1 1 0 0 1 1
</dataString>
</testData>
</entry>
</elementAttributes>
<pos x="240" y="620"/>
</visualElement>
<visualElement>
<elementName>Relay</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
</elementAttributes>
<pos x="680" y="200"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y5</string>
</entry>
</elementAttributes>
<pos x="740" y="200"/>
</visualElement>
<visualElement>
<elementName>Ground</elementName>
<elementAttributes/>
<pos x="620" y="220"/>
</visualElement>
<visualElement>
<elementName>Relay</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
</elementAttributes>
<pos x="680" y="320"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y6</string>
</entry>
</elementAttributes>
<pos x="740" y="320"/>
</visualElement>
<visualElement>
<elementName>Ground</elementName>
<elementAttributes/>
<pos x="620" y="340"/>
</visualElement>
<visualElement>
<elementName>Relay</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
</elementAttributes>
<pos x="680" y="480"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y7</string>
</entry>
</elementAttributes>
<pos x="740" y="480"/>
</visualElement>
<visualElement>
<elementName>Relay</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
</elementAttributes>
<pos x="680" y="600"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y8</string>
</entry>
</elementAttributes>
<pos x="740" y="600"/>
</visualElement>
<visualElement>
<elementName>VDD</elementName>
<elementAttributes/>
<pos x="620" y="460"/>
</visualElement>
<visualElement>
<elementName>VDD</elementName>
<elementAttributes/>
<pos x="620" y="580"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="420" y="320"/>
<p2 x="480" y="320"/>
</wire>
<wire>
<p1 x="360" y="320"/>
<p2 x="380" y="320"/>
</wire>
<wire>
<p1 x="680" y="320"/>
<p2 x="740" y="320"/>
</wire>
<wire>
<p1 x="620" y="320"/>
<p2 x="640" y="320"/>
</wire>
<wire>
<p1 x="420" y="480"/>
<p2 x="480" y="480"/>
</wire>
<wire>
<p1 x="360" y="480"/>
<p2 x="380" y="480"/>
</wire>
<wire>
<p1 x="680" y="480"/>
<p2 x="740" y="480"/>
</wire>
<wire>
<p1 x="620" y="480"/>
<p2 x="640" y="480"/>
</wire>
<wire>
<p1 x="340" y="260"/>
<p2 x="400" y="260"/>
</wire>
<wire>
<p1 x="600" y="260"/>
<p2 x="660" y="260"/>
</wire>
<wire>
<p1 x="340" y="420"/>
<p2 x="400" y="420"/>
</wire>
<wire>
<p1 x="600" y="660"/>
<p2 x="660" y="660"/>
</wire>
<wire>
<p1 x="340" y="120"/>
<p2 x="600" y="120"/>
</wire>
<wire>
<p1 x="420" y="200"/>
<p2 x="480" y="200"/>
</wire>
<wire>
<p1 x="360" y="200"/>
<p2 x="380" y="200"/>
</wire>
<wire>
<p1 x="680" y="200"/>
<p2 x="740" y="200"/>
</wire>
<wire>
<p1 x="620" y="200"/>
<p2 x="640" y="200"/>
</wire>
<wire>
<p1 x="420" y="600"/>
<p2 x="480" y="600"/>
</wire>
<wire>
<p1 x="360" y="600"/>
<p2 x="380" y="600"/>
</wire>
<wire>
<p1 x="680" y="600"/>
<p2 x="740" y="600"/>
</wire>
<wire>
<p1 x="620" y="600"/>
<p2 x="640" y="600"/>
</wire>
<wire>
<p1 x="600" y="380"/>
<p2 x="660" y="380"/>
</wire>
<wire>
<p1 x="320" y="140"/>
<p2 x="340" y="140"/>
</wire>
<wire>
<p1 x="340" y="140"/>
<p2 x="400" y="140"/>
</wire>
<wire>
<p1 x="340" y="540"/>
<p2 x="400" y="540"/>
</wire>
<wire>
<p1 x="600" y="540"/>
<p2 x="660" y="540"/>
</wire>
<wire>
<p1 x="400" y="140"/>
<p2 x="400" y="160"/>
</wire>
<wire>
<p1 x="400" y="260"/>
<p2 x="400" y="280"/>
</wire>
<wire>
<p1 x="400" y="420"/>
<p2 x="400" y="440"/>
</wire>
<wire>
<p1 x="400" y="540"/>
<p2 x="400" y="560"/>
</wire>
<wire>
<p1 x="660" y="640"/>
<p2 x="660" y="660"/>
</wire>
<wire>
<p1 x="660" y="240"/>
<p2 x="660" y="260"/>
</wire>
<wire>
<p1 x="660" y="360"/>
<p2 x="660" y="380"/>
</wire>
<wire>
<p1 x="660" y="520"/>
<p2 x="660" y="540"/>
</wire>
<wire>
<p1 x="340" y="120"/>
<p2 x="340" y="140"/>
</wire>
<wire>
<p1 x="340" y="260"/>
<p2 x="340" y="420"/>
</wire>
<wire>
<p1 x="340" y="140"/>
<p2 x="340" y="260"/>
</wire>
<wire>
<p1 x="340" y="420"/>
<p2 x="340" y="540"/>
</wire>
<wire>
<p1 x="600" y="120"/>
<p2 x="600" y="260"/>
</wire>
<wire>
<p1 x="600" y="380"/>
<p2 x="600" y="540"/>
</wire>
<wire>
<p1 x="600" y="260"/>
<p2 x="600" y="380"/>
</wire>
<wire>
<p1 x="600" y="540"/>
<p2 x="600" y="660"/>
</wire>
<wire>
<p1 x="360" y="200"/>
<p2 x="360" y="220"/>
</wire>
<wire>
<p1 x="360" y="320"/>
<p2 x="360" y="340"/>
</wire>
<wire>
<p1 x="360" y="460"/>
<p2 x="360" y="480"/>
</wire>
<wire>
<p1 x="360" y="580"/>
<p2 x="360" y="600"/>
</wire>
<wire>
<p1 x="620" y="200"/>
<p2 x="620" y="220"/>
</wire>
<wire>
<p1 x="620" y="320"/>
<p2 x="620" y="340"/>
</wire>
<wire>
<p1 x="620" y="460"/>
<p2 x="620" y="480"/>
</wire>
<wire>
<p1 x="620" y="580"/>
<p2 x="620" y="600"/>
</wire>
</wires>
</circuit>