|
@@ -1,26 +1,57 @@
|
|
|
package info.hkzlab.dupal.analyzer;
|
|
|
|
|
|
-import static org.junit.Assert.assertEquals;
|
|
|
+import static org.junit.Assert.*;
|
|
|
|
|
|
import org.junit.Test;
|
|
|
|
|
|
import info.hkzlab.dupal.analyzer.devices.PAL16L8Specs;
|
|
|
+import info.hkzlab.dupal.analyzer.exceptions.DuPALAnalyzerException;
|
|
|
import info.hkzlab.dupal.analyzer.palanalisys.formatter.EspressoFormatter;
|
|
|
+import info.hkzlab.dupal.analyzer.palanalisys.graph.OutLink;
|
|
|
+import info.hkzlab.dupal.analyzer.palanalisys.graph.OutState;
|
|
|
+import info.hkzlab.dupal.analyzer.palanalisys.graph.OutStatePins;
|
|
|
|
|
|
-public class FormattersTest
|
|
|
-{
|
|
|
+public class FormattersTest {
|
|
|
@Test
|
|
|
public void espressoFormatterShouldBuildCorrect16L8Header() {
|
|
|
PAL16L8Specs pSpecs = new PAL16L8Specs();
|
|
|
int ioAsOutMask = 0x03;
|
|
|
String header = EspressoFormatter.formatEspressoTableHeader(pSpecs, ioAsOutMask);
|
|
|
- String expectedHeader = "# PAL16L8\n" +
|
|
|
- ".i 16\n" +
|
|
|
- ".o 8\n" +
|
|
|
- ".ilb i1 i2 i3 i4 i5 i6 i7 i8 i9 i11 io16 io15 io14 io13 fio18 fio17 \n" +
|
|
|
- ".ob o19 o12 io18 io17 o19oe o12oe io18oe io17oe \n" +
|
|
|
- ".phase 00001111\n\n";
|
|
|
-
|
|
|
+ String expectedHeader = "# PAL16L8\n" + ".i 16\n" + ".o 8\n"
|
|
|
+ + ".ilb i1 i2 i3 i4 i5 i6 i7 i8 i9 i11 io16 io15 io14 io13 fio18 fio17 \n"
|
|
|
+ + ".ob o19 o12 io18 io17 o19oe o12oe io18oe io17oe \n" + ".phase 00001111\n\n";
|
|
|
+
|
|
|
assertEquals("EspressoFormatter should build a correct 16L8 header", expectedHeader, header);
|
|
|
}
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void espressoFormatterShouldBuildCorrect16L8TableWithoutRegLinks() throws DuPALAnalyzerException {
|
|
|
+ PAL16L8Specs pSpecs = new PAL16L8Specs();
|
|
|
+ int ioAsOutMask = 0x38;
|
|
|
+
|
|
|
+ OutState[] states = new OutState[3];
|
|
|
+
|
|
|
+ states[0] = new OutState(new OutStatePins(0x38, 0xC0), 3);
|
|
|
+ states[1] = new OutState(new OutStatePins(0xAF, 0x20), 3);
|
|
|
+ states[2] = new OutState(new OutStatePins(0x00, 0x00), 3);
|
|
|
+
|
|
|
+ states[0].addOutLink(new OutLink(states[0], states[0], 0x00));
|
|
|
+ states[0].addOutLink(new OutLink(states[0], states[1], 0x3800));
|
|
|
+ states[0].addOutLink(new OutLink(states[0], states[2], 0x04));
|
|
|
+
|
|
|
+ states[1].addOutLink(new OutLink(states[1], states[0], 0x00));
|
|
|
+ states[1].addOutLink(new OutLink(states[1], states[1], 0x07));
|
|
|
+ states[1].addOutLink(new OutLink(states[1], states[2], 0x04));
|
|
|
+
|
|
|
+ states[2].addOutLink(new OutLink(states[2], states[2], 0x09));
|
|
|
+ states[2].addOutLink(new OutLink(states[2], states[1], 0x2800));
|
|
|
+ states[2].addOutLink(new OutLink(states[2], states[1], 0x04));
|
|
|
+
|
|
|
+ String[] rows = EspressoFormatter.formatEspressoTable(pSpecs, ioAsOutMask, states);
|
|
|
+
|
|
|
+ System.out.print(EspressoFormatter.formatEspressoTableHeader(pSpecs, ioAsOutMask));
|
|
|
+ for(String row : rows) System.out.print(row);
|
|
|
+
|
|
|
+ assertArrayEquals("EspressoFormatter should build the correct truth table for specified states", new String[3], rows);
|
|
|
+ }
|
|
|
}
|