mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-13 06:49:36 -04:00
improves the variable naming in the ModelAnalyser
This commit is contained in:
parent
7f69dcda70
commit
395c04daef
@ -12,6 +12,7 @@ public class LabelNumbering {
|
||||
|
||||
private final String name;
|
||||
private int pos;
|
||||
private boolean useIndex = false;
|
||||
|
||||
/**
|
||||
* Creates a new instance
|
||||
@ -21,9 +22,10 @@ public class LabelNumbering {
|
||||
public LabelNumbering(String name) {
|
||||
this.name = name;
|
||||
pos = name.length();
|
||||
if (name.endsWith("_n"))
|
||||
if (name.endsWith("^n")) {
|
||||
pos = name.length() - 2;
|
||||
else if (name.endsWith("n"))
|
||||
useIndex = true;
|
||||
} else if (name.endsWith("n"))
|
||||
pos = name.length() - 1;
|
||||
}
|
||||
|
||||
@ -48,7 +50,10 @@ public class LabelNumbering {
|
||||
}
|
||||
|
||||
private String addNumber(int n) {
|
||||
return name.substring(0, pos) + n + name.substring(pos);
|
||||
if (useIndex)
|
||||
return name.substring(0, pos) + "_" + n + name.substring(pos);
|
||||
else
|
||||
return name.substring(0, pos) + n + name.substring(pos);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -13,7 +13,8 @@ public class LabelNumberingTest extends TestCase {
|
||||
assertEquals("test", new LabelNumbering("test").create(name -> false));
|
||||
assertEquals("test2", new LabelNumbering("test").create(new TestCheck()));
|
||||
assertEquals("test2n", new LabelNumbering("testn").create(new TestCheck()));
|
||||
assertEquals("test2_n", new LabelNumbering("test_n").create(new TestCheck()));
|
||||
assertEquals("test_2^n", new LabelNumbering("test^n").create(new TestCheck()));
|
||||
assertEquals("test_2n", new LabelNumbering("test_n").create(new TestCheck()));
|
||||
}
|
||||
|
||||
private class TestCheck implements LabelNumbering.Exists {
|
||||
|
@ -170,23 +170,23 @@ public class ModelAnalyserTest extends TestCase {
|
||||
Model model = createModel("dig/analyze/uniqueNames3.dig");
|
||||
ArrayList<Signal> ins = new ModelAnalyser(model).getInputs();
|
||||
assertEquals(2,ins.size());
|
||||
assertEquals("Zn",ins.get(0).getName());
|
||||
assertEquals("Z1n",ins.get(1).getName());
|
||||
assertEquals("Z^n",ins.get(0).getName());
|
||||
assertEquals("Z_1^n",ins.get(1).getName());
|
||||
}
|
||||
|
||||
public void testAnalyzerUniqueNames4() throws Exception {
|
||||
Model model = createModel("dig/analyze/uniqueNames4.dig");
|
||||
ArrayList<Signal> ins = new ModelAnalyser(model).getInputs();
|
||||
assertEquals(2,ins.size());
|
||||
assertEquals("Bn",ins.get(0).getName());
|
||||
assertEquals("An",ins.get(1).getName());
|
||||
assertEquals("B^n",ins.get(0).getName());
|
||||
assertEquals("A^n",ins.get(1).getName());
|
||||
}
|
||||
|
||||
public void testAnalyzerMultiBit() throws Exception {
|
||||
Model model = createModel("dig/analyze/multiBitCounter.dig");
|
||||
TruthTable tt = new ModelAnalyser(model).analyse();
|
||||
checkTable(tt.getResult("Q0n+1"), one, zero, one, zero);
|
||||
checkTable(tt.getResult("Q1n+1"), zero, one, one, zero);
|
||||
checkTable(tt.getResult("Q0^{n+1}"), one, zero, one, zero);
|
||||
checkTable(tt.getResult("Q1^{n+1}"), zero, one, one, zero);
|
||||
|
||||
assertEquals("Y1", tt.getResultName(2));
|
||||
assertEquals("Y0", tt.getResultName(3));
|
||||
|
Loading…
x
Reference in New Issue
Block a user