added additional test cases, see #255

This commit is contained in:
hneemann 2019-02-26 18:41:40 +01:00
parent c265112c9f
commit 610f00bad9
3 changed files with 601 additions and 3 deletions

View File

@ -94,7 +94,7 @@ public final class PlainSwitch implements NodeInterface {
else {
constant = in2.searchConstant();
if (constant != null)
return new UniDirectionalSwitch(constant, output1, true);
return new UniDirectionalSwitch(constant, output1);
else
return new RealSwitch(in1, in2);
}

View File

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

View File

@ -0,0 +1,598 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>1</version>
<attributes/>
<visualElements>
<visualElement>
<elementName>Const</elementName>
<elementAttributes/>
<pos x="660" y="400"/>
</visualElement>
<visualElement>
<elementName>RelayDT</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="1"/>
</entry>
</elementAttributes>
<pos x="680" y="480"/>
</visualElement>
<visualElement>
<elementName>Ground</elementName>
<elementAttributes/>
<pos x="640" y="500"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>A_1</string>
</entry>
</elementAttributes>
<pos x="600" y="420"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y_1</string>
</entry>
</elementAttributes>
<pos x="760" y="420"/>
</visualElement>
<visualElement>
<elementName>Testcase</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>1</string>
</entry>
<entry>
<string>Testdata</string>
<testData>
<dataString>A_1 Y_1 X_1
0 0 0
1 z 1
0 0 0
1 z 1
</dataString>
</testData>
</entry>
</elementAttributes>
<pos x="540" y="500"/>
</visualElement>
<visualElement>
<elementName>Const</elementName>
<elementAttributes/>
<pos x="1020" y="320"/>
</visualElement>
<visualElement>
<elementName>RelayDT</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="1"/>
</entry>
</elementAttributes>
<pos x="1020" y="400"/>
</visualElement>
<visualElement>
<elementName>Ground</elementName>
<elementAttributes/>
<pos x="980" y="420"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>A_2</string>
</entry>
</elementAttributes>
<pos x="940" y="340"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y_2</string>
</entry>
</elementAttributes>
<pos x="1100" y="340"/>
</visualElement>
<visualElement>
<elementName>Const</elementName>
<elementAttributes/>
<pos x="1020" y="660"/>
</visualElement>
<visualElement>
<elementName>RelayDT</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="1"/>
</entry>
</elementAttributes>
<pos x="1020" y="620"/>
</visualElement>
<visualElement>
<elementName>Ground</elementName>
<elementAttributes/>
<pos x="980" y="640"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>A_3</string>
</entry>
</elementAttributes>
<pos x="940" y="560"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y_3</string>
</entry>
</elementAttributes>
<pos x="1100" y="560"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>X_1</string>
</entry>
</elementAttributes>
<pos x="760" y="500"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>X_2</string>
</entry>
</elementAttributes>
<pos x="1100" y="420"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>X_3</string>
</entry>
</elementAttributes>
<pos x="1100" y="640"/>
</visualElement>
<visualElement>
<elementName>Testcase</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>2</string>
</entry>
<entry>
<string>Testdata</string>
<testData>
<dataString>A_2 Y_2 X_2
0 z 1
1 0 0
0 z 1
1 0 0
</dataString>
</testData>
</entry>
</elementAttributes>
<pos x="880" y="420"/>
</visualElement>
<visualElement>
<elementName>Testcase</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>3</string>
</entry>
<entry>
<string>Testdata</string>
<testData>
<dataString>A_3 Y_3 X_3
0 z 1
1 1 z
0 z 1
1 1 z
</dataString>
</testData>
</entry>
</elementAttributes>
<pos x="880" y="640"/>
</visualElement>
<visualElement>
<elementName>Text</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>see issue #255</string>
</entry>
</elementAttributes>
<pos x="560" y="320"/>
</visualElement>
<visualElement>
<elementName>PullDown</elementName>
<elementAttributes/>
<pos x="680" y="520"/>
</visualElement>
<visualElement>
<elementName>Const</elementName>
<elementAttributes/>
<pos x="660" y="640"/>
</visualElement>
<visualElement>
<elementName>RelayDT</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="1"/>
</entry>
</elementAttributes>
<pos x="680" y="720"/>
</visualElement>
<visualElement>
<elementName>Ground</elementName>
<elementAttributes/>
<pos x="640" y="740"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>A_4</string>
</entry>
</elementAttributes>
<pos x="600" y="660"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y_4</string>
</entry>
</elementAttributes>
<pos x="760" y="660"/>
</visualElement>
<visualElement>
<elementName>Testcase</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>4</string>
</entry>
<entry>
<string>Testdata</string>
<testData>
<dataString>A_4 Y_4 X_4
0 0 0
1 0 1
0 0 0
1 0 1
</dataString>
</testData>
</entry>
</elementAttributes>
<pos x="540" y="740"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>X_4</string>
</entry>
</elementAttributes>
<pos x="760" y="740"/>
</visualElement>
<visualElement>
<elementName>PullDown</elementName>
<elementAttributes/>
<pos x="720" y="760"/>
</visualElement>
<visualElement>
<elementName>PullDown</elementName>
<elementAttributes/>
<pos x="1020" y="440"/>
</visualElement>
<visualElement>
<elementName>Const</elementName>
<elementAttributes/>
<pos x="1000" y="740"/>
</visualElement>
<visualElement>
<elementName>RelayDT</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="1"/>
</entry>
</elementAttributes>
<pos x="1020" y="820"/>
</visualElement>
<visualElement>
<elementName>Ground</elementName>
<elementAttributes/>
<pos x="980" y="840"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>A_5</string>
</entry>
</elementAttributes>
<pos x="940" y="760"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y_5</string>
</entry>
</elementAttributes>
<pos x="1100" y="760"/>
</visualElement>
<visualElement>
<elementName>Testcase</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>5</string>
</entry>
<entry>
<string>Testdata</string>
<testData>
<dataString>A_5 Y_5 X_5
0 0 0
1 0 1
0 0 0
1 0 1
</dataString>
</testData>
</entry>
</elementAttributes>
<pos x="880" y="840"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>X_5</string>
</entry>
</elementAttributes>
<pos x="1100" y="840"/>
</visualElement>
<visualElement>
<elementName>PullDown</elementName>
<elementAttributes/>
<pos x="1080" y="860"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="660" y="400"/>
<p2 x="680" y="400"/>
</wire>
<wire>
<p1 x="1020" y="320"/>
<p2 x="1040" y="320"/>
</wire>
<wire>
<p1 x="1020" y="560"/>
<p2 x="1100" y="560"/>
</wire>
<wire>
<p1 x="940" y="560"/>
<p2 x="980" y="560"/>
</wire>
<wire>
<p1 x="1060" y="640"/>
<p2 x="1100" y="640"/>
</wire>
<wire>
<p1 x="660" y="640"/>
<p2 x="680" y="640"/>
</wire>
<wire>
<p1 x="1020" y="340"/>
<p2 x="1100" y="340"/>
</wire>
<wire>
<p1 x="940" y="340"/>
<p2 x="980" y="340"/>
</wire>
<wire>
<p1 x="600" y="420"/>
<p2 x="640" y="420"/>
</wire>
<wire>
<p1 x="700" y="420"/>
<p2 x="760" y="420"/>
</wire>
<wire>
<p1 x="1020" y="420"/>
<p2 x="1100" y="420"/>
</wire>
<wire>
<p1 x="680" y="500"/>
<p2 x="760" y="500"/>
</wire>
<wire>
<p1 x="1040" y="580"/>
<p2 x="1060" y="580"/>
</wire>
<wire>
<p1 x="600" y="660"/>
<p2 x="640" y="660"/>
</wire>
<wire>
<p1 x="700" y="660"/>
<p2 x="720" y="660"/>
</wire>
<wire>
<p1 x="720" y="660"/>
<p2 x="760" y="660"/>
</wire>
<wire>
<p1 x="680" y="740"/>
<p2 x="760" y="740"/>
</wire>
<wire>
<p1 x="1000" y="740"/>
<p2 x="1020" y="740"/>
</wire>
<wire>
<p1 x="940" y="760"/>
<p2 x="980" y="760"/>
</wire>
<wire>
<p1 x="1040" y="760"/>
<p2 x="1080" y="760"/>
</wire>
<wire>
<p1 x="1080" y="760"/>
<p2 x="1100" y="760"/>
</wire>
<wire>
<p1 x="1020" y="840"/>
<p2 x="1100" y="840"/>
</wire>
<wire>
<p1 x="640" y="480"/>
<p2 x="640" y="500"/>
</wire>
<wire>
<p1 x="640" y="420"/>
<p2 x="640" y="440"/>
</wire>
<wire>
<p1 x="640" y="720"/>
<p2 x="640" y="740"/>
</wire>
<wire>
<p1 x="640" y="660"/>
<p2 x="640" y="680"/>
</wire>
<wire>
<p1 x="1040" y="320"/>
<p2 x="1040" y="360"/>
</wire>
<wire>
<p1 x="1040" y="760"/>
<p2 x="1040" y="780"/>
</wire>
<wire>
<p1 x="720" y="660"/>
<p2 x="720" y="760"/>
</wire>
<wire>
<p1 x="980" y="400"/>
<p2 x="980" y="420"/>
</wire>
<wire>
<p1 x="980" y="340"/>
<p2 x="980" y="360"/>
</wire>
<wire>
<p1 x="980" y="620"/>
<p2 x="980" y="640"/>
</wire>
<wire>
<p1 x="980" y="560"/>
<p2 x="980" y="580"/>
</wire>
<wire>
<p1 x="980" y="820"/>
<p2 x="980" y="840"/>
</wire>
<wire>
<p1 x="980" y="760"/>
<p2 x="980" y="780"/>
</wire>
<wire>
<p1 x="1060" y="580"/>
<p2 x="1060" y="640"/>
</wire>
<wire>
<p1 x="680" y="400"/>
<p2 x="680" y="440"/>
</wire>
<wire>
<p1 x="680" y="480"/>
<p2 x="680" y="500"/>
</wire>
<wire>
<p1 x="680" y="640"/>
<p2 x="680" y="680"/>
</wire>
<wire>
<p1 x="680" y="720"/>
<p2 x="680" y="740"/>
</wire>
<wire>
<p1 x="680" y="500"/>
<p2 x="680" y="520"/>
</wire>
<wire>
<p1 x="1080" y="760"/>
<p2 x="1080" y="860"/>
</wire>
<wire>
<p1 x="1020" y="340"/>
<p2 x="1020" y="360"/>
</wire>
<wire>
<p1 x="1020" y="400"/>
<p2 x="1020" y="420"/>
</wire>
<wire>
<p1 x="1020" y="560"/>
<p2 x="1020" y="580"/>
</wire>
<wire>
<p1 x="1020" y="620"/>
<p2 x="1020" y="660"/>
</wire>
<wire>
<p1 x="1020" y="740"/>
<p2 x="1020" y="780"/>
</wire>
<wire>
<p1 x="1020" y="820"/>
<p2 x="1020" y="840"/>
</wire>
<wire>
<p1 x="1020" y="420"/>
<p2 x="1020" y="440"/>
</wire>
<wire>
<p1 x="700" y="420"/>
<p2 x="700" y="440"/>
</wire>
<wire>
<p1 x="700" y="660"/>
<p2 x="700" y="680"/>
</wire>
</wires>
</circuit>