added a 6 transistor xor test case

This commit is contained in:
hneemann 2017-06-23 21:30:51 +02:00
parent 0c80f6684f
commit 8a04ea0e83
2 changed files with 267 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(77, new FileScanner(this::check).scan(examples));
assertEquals(71, testCasesInFiles);
assertEquals(78, new FileScanner(this::check).scan(examples));
assertEquals(72, testCasesInFiles);
}

View File

@ -0,0 +1,265 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>1</version>
<attributes/>
<visualElements>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>B</string>
</entry>
</elementAttributes>
<pos x="180" y="360"/>
</visualElement>
<visualElement>
<elementName>PFET</elementName>
<elementAttributes/>
<pos x="260" y="300"/>
</visualElement>
<visualElement>
<elementName>NFET</elementName>
<elementAttributes>
<entry>
<string>unidirectional</string>
<boolean>true</boolean>
</entry>
</elementAttributes>
<pos x="260" y="380"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="3"/>
</entry>
<entry>
<string>Label</string>
<string>Y</string>
</entry>
</elementAttributes>
<pos x="320" y="500"/>
</visualElement>
<visualElement>
<elementName>TransGate</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
</elementAttributes>
<pos x="400" y="360"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>A</string>
</entry>
</elementAttributes>
<pos x="180" y="260"/>
</visualElement>
<visualElement>
<elementName>PFET</elementName>
<elementAttributes/>
<pos x="480" y="200"/>
</visualElement>
<visualElement>
<elementName>NFET</elementName>
<elementAttributes/>
<pos x="480" y="280"/>
</visualElement>
<visualElement>
<elementName>Ground</elementName>
<elementAttributes/>
<pos x="500" y="340"/>
</visualElement>
<visualElement>
<elementName>VDD</elementName>
<elementAttributes/>
<pos x="500" y="180"/>
</visualElement>
<visualElement>
<elementName>Testcase</elementName>
<elementAttributes>
<entry>
<string>Testdata</string>
<testData>
<dataString>A B Y
0 0 0
0 1 1
1 0 1
1 1 0
# transitions
0 0 0
0 1 1
0 0 0
1 0 1
0 0 0
1 1 0
0 0 0
0 1 1
1 0 1
0 1 1
1 1 0
0 1 1
1 0 1
1 1 0
1 0 1
</dataString>
</testData>
</entry>
</elementAttributes>
<pos x="460" y="480"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="460" y="320"/>
<p2 x="480" y="320"/>
</wire>
<wire>
<p1 x="240" y="420"/>
<p2 x="260" y="420"/>
</wire>
<wire>
<p1 x="180" y="260"/>
<p2 x="380" y="260"/>
</wire>
<wire>
<p1 x="500" y="260"/>
<p2 x="540" y="260"/>
</wire>
<wire>
<p1 x="380" y="260"/>
<p2 x="460" y="260"/>
</wire>
<wire>
<p1 x="180" y="360"/>
<p2 x="220" y="360"/>
</wire>
<wire>
<p1 x="280" y="360"/>
<p2 x="320" y="360"/>
</wire>
<wire>
<p1 x="400" y="360"/>
<p2 x="440" y="360"/>
</wire>
<wire>
<p1 x="220" y="360"/>
<p2 x="240" y="360"/>
</wire>
<wire>
<p1 x="320" y="360"/>
<p2 x="360" y="360"/>
</wire>
<wire>
<p1 x="280" y="440"/>
<p2 x="380" y="440"/>
</wire>
<wire>
<p1 x="380" y="440"/>
<p2 x="540" y="440"/>
</wire>
<wire>
<p1 x="280" y="280"/>
<p2 x="380" y="280"/>
</wire>
<wire>
<p1 x="460" y="200"/>
<p2 x="480" y="200"/>
</wire>
<wire>
<p1 x="240" y="300"/>
<p2 x="260" y="300"/>
</wire>
<wire>
<p1 x="220" y="460"/>
<p2 x="440" y="460"/>
</wire>
<wire>
<p1 x="240" y="300"/>
<p2 x="240" y="360"/>
</wire>
<wire>
<p1 x="240" y="360"/>
<p2 x="240" y="420"/>
</wire>
<wire>
<p1 x="320" y="360"/>
<p2 x="320" y="500"/>
</wire>
<wire>
<p1 x="500" y="240"/>
<p2 x="500" y="260"/>
</wire>
<wire>
<p1 x="500" y="320"/>
<p2 x="500" y="340"/>
</wire>
<wire>
<p1 x="500" y="180"/>
<p2 x="500" y="200"/>
</wire>
<wire>
<p1 x="500" y="260"/>
<p2 x="500" y="280"/>
</wire>
<wire>
<p1 x="280" y="340"/>
<p2 x="280" y="360"/>
</wire>
<wire>
<p1 x="280" y="420"/>
<p2 x="280" y="440"/>
</wire>
<wire>
<p1 x="280" y="280"/>
<p2 x="280" y="300"/>
</wire>
<wire>
<p1 x="280" y="360"/>
<p2 x="280" y="380"/>
</wire>
<wire>
<p1 x="440" y="360"/>
<p2 x="440" y="460"/>
</wire>
<wire>
<p1 x="220" y="360"/>
<p2 x="220" y="460"/>
</wire>
<wire>
<p1 x="380" y="380"/>
<p2 x="380" y="440"/>
</wire>
<wire>
<p1 x="380" y="260"/>
<p2 x="380" y="280"/>
</wire>
<wire>
<p1 x="380" y="280"/>
<p2 x="380" y="340"/>
</wire>
<wire>
<p1 x="460" y="200"/>
<p2 x="460" y="260"/>
</wire>
<wire>
<p1 x="460" y="260"/>
<p2 x="460" y="320"/>
</wire>
<wire>
<p1 x="540" y="260"/>
<p2 x="540" y="440"/>
</wire>
</wires>
<measurementOrdering/>
</circuit>