mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-27 15:03:21 -04:00
added switch multi-bit tests
This commit is contained in:
parent
a3a609178c
commit
c157bee3a7
@ -8,7 +8,7 @@ planned as v0.10
|
||||
- Added a real bidirectional switch and a relay.
|
||||
- Added N and P channel FETs and some CMOS examples
|
||||
- Improved and documented the file import strategy.
|
||||
- Easier editing of truth tables.
|
||||
- Truth tables are easier to edit.
|
||||
|
||||
v0.9, released on 03. Feb 2017
|
||||
- improved documentation
|
||||
|
@ -9,18 +9,17 @@ import de.neemann.digital.core.element.ElementAttributes;
|
||||
import de.neemann.digital.core.element.ElementTypeDescription;
|
||||
import de.neemann.digital.core.element.Keys;
|
||||
|
||||
|
||||
import static de.neemann.digital.core.element.PinInfo.input;
|
||||
|
||||
/**
|
||||
* A multiplicator
|
||||
* A multiplier
|
||||
*
|
||||
* @author hneemann
|
||||
*/
|
||||
public class Mul extends Node implements Element {
|
||||
|
||||
/**
|
||||
* The multiplicators description
|
||||
* The multiplier description
|
||||
*/
|
||||
public static final ElementTypeDescription DESCRIPTION
|
||||
= new ElementTypeDescription(Mul.class, input("a"), input("b"))
|
||||
|
@ -16,13 +16,13 @@ public class ObservableValueTest extends TestCase {
|
||||
public void testSetValue2() throws Exception {
|
||||
ObservableValue v = new ObservableValue("z", 63);
|
||||
v.setValue(-1);
|
||||
assertEquals((1l << 63) - 1, v.getValue());
|
||||
assertEquals((1L << 63) - 1, v.getValue());
|
||||
}
|
||||
|
||||
public void testSetValue3() throws Exception {
|
||||
ObservableValue v = new ObservableValue("z", 62);
|
||||
v.setValue(-1);
|
||||
assertEquals((1l << 62) - 1, v.getValue());
|
||||
assertEquals((1L << 62) - 1, v.getValue());
|
||||
}
|
||||
|
||||
}
|
@ -39,8 +39,8 @@ public class TestExamples extends TestCase {
|
||||
*/
|
||||
public void testTestExamples() throws Exception {
|
||||
File examples = new File(Resources.getRoot(), "/dig/test");
|
||||
assertEquals(46, new FileScanner(this::check).scan(examples));
|
||||
assertEquals(38, testCasesInFiles);
|
||||
assertEquals(48, new FileScanner(this::check).scan(examples));
|
||||
assertEquals(41, testCasesInFiles);
|
||||
}
|
||||
|
||||
|
||||
|
188
src/test/resources/dig/test/fet/multiBit.dig
Normal file
188
src/test/resources/dig/test/fet/multiBit.dig
Normal file
@ -0,0 +1,188 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<circuit>
|
||||
<version>1</version>
|
||||
<visualElements>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>rotation</string>
|
||||
<rotation rotation="3"/>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>A</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="300" y="380"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>Y</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>8</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="380" y="420"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>B</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>8</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="260" y="420"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Testcase</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>n-chan</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Testdata</string>
|
||||
<testData>
|
||||
<dataString>A B Y
|
||||
0 0 z
|
||||
0 7 z
|
||||
1 0 0
|
||||
1 7 7
|
||||
|
||||
</dataString>
|
||||
</testData>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="340" y="340"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>NFET</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>rotation</string>
|
||||
<rotation rotation="3"/>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>8</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="340" y="400"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>rotation</string>
|
||||
<rotation rotation="3"/>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>A1</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="340" y="560"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>Y1</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>8</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="380" y="600"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>B1</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>8</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="260" y="600"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Testcase</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>p-chan</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Testdata</string>
|
||||
<testData>
|
||||
<dataString>A1 B1 Y1
|
||||
0 0 0
|
||||
0 7 7
|
||||
1 0 z
|
||||
1 7 z
|
||||
|
||||
</dataString>
|
||||
</testData>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="200" y="520"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>PFET</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>rotation</string>
|
||||
<rotation rotation="3"/>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>8</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="340" y="580"/>
|
||||
</visualElement>
|
||||
</visualElements>
|
||||
<wires>
|
||||
<wire>
|
||||
<p1 x="260" y="420"/>
|
||||
<p2 x="300" y="420"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="340" y="420"/>
|
||||
<p2 x="380" y="420"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="260" y="600"/>
|
||||
<p2 x="300" y="600"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="340" y="600"/>
|
||||
<p2 x="380" y="600"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="340" y="560"/>
|
||||
<p2 x="340" y="580"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="300" y="380"/>
|
||||
<p2 x="300" y="400"/>
|
||||
</wire>
|
||||
</wires>
|
||||
</circuit>
|
99
src/test/resources/dig/test/switch/switch2.dig
Normal file
99
src/test/resources/dig/test/switch/switch2.dig
Normal file
@ -0,0 +1,99 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<circuit>
|
||||
<version>1</version>
|
||||
<visualElements>
|
||||
<visualElement>
|
||||
<elementName>Relay</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>8</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="300" y="440"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>A</string>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="280" y="400"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Out</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>Y</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>8</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="380" y="440"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>In</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Label</string>
|
||||
<string>B</string>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>Bits</string>
|
||||
<int>8</int>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="260" y="440"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Testcase</elementName>
|
||||
<elementAttributes>
|
||||
<entry>
|
||||
<string>Testdata</string>
|
||||
<testData>
|
||||
<dataString>A B Y
|
||||
0 0 z
|
||||
0 7 z
|
||||
1 0 0
|
||||
1 7 7
|
||||
|
||||
</dataString>
|
||||
</testData>
|
||||
</entry>
|
||||
</elementAttributes>
|
||||
<pos x="260" y="300"/>
|
||||
</visualElement>
|
||||
<visualElement>
|
||||
<elementName>Ground</elementName>
|
||||
<elementAttributes/>
|
||||
<pos x="360" y="420"/>
|
||||
</visualElement>
|
||||
</visualElements>
|
||||
<wires>
|
||||
<wire>
|
||||
<p1 x="280" y="400"/>
|
||||
<p2 x="300" y="400"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="340" y="400"/>
|
||||
<p2 x="360" y="400"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="260" y="440"/>
|
||||
<p2 x="300" y="440"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="340" y="440"/>
|
||||
<p2 x="380" y="440"/>
|
||||
</wire>
|
||||
<wire>
|
||||
<p1 x="360" y="400"/>
|
||||
<p2 x="360" y="420"/>
|
||||
</wire>
|
||||
</wires>
|
||||
</circuit>
|
Loading…
x
Reference in New Issue
Block a user