From 395c04daef39cfefd95849061e8ba05625a33cca Mon Sep 17 00:00:00 2001 From: hneemann Date: Sat, 27 Jul 2019 22:14:54 +0200 Subject: [PATCH] improves the variable naming in the ModelAnalyser --- .../de/neemann/digital/analyse/LabelNumbering.java | 11 ++++++++--- .../neemann/digital/analyse/LabelNumberingTest.java | 3 ++- .../neemann/digital/analyse/ModelAnalyserTest.java | 12 ++++++------ 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/main/java/de/neemann/digital/analyse/LabelNumbering.java b/src/main/java/de/neemann/digital/analyse/LabelNumbering.java index 615e820a6..a6c6b0879 100644 --- a/src/main/java/de/neemann/digital/analyse/LabelNumbering.java +++ b/src/main/java/de/neemann/digital/analyse/LabelNumbering.java @@ -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); } /** diff --git a/src/test/java/de/neemann/digital/analyse/LabelNumberingTest.java b/src/test/java/de/neemann/digital/analyse/LabelNumberingTest.java index afcb577ea..bc035f2f7 100644 --- a/src/test/java/de/neemann/digital/analyse/LabelNumberingTest.java +++ b/src/test/java/de/neemann/digital/analyse/LabelNumberingTest.java @@ -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 { diff --git a/src/test/java/de/neemann/digital/analyse/ModelAnalyserTest.java b/src/test/java/de/neemann/digital/analyse/ModelAnalyserTest.java index 4ed4aa70c..086cde996 100644 --- a/src/test/java/de/neemann/digital/analyse/ModelAnalyserTest.java +++ b/src/test/java/de/neemann/digital/analyse/ModelAnalyserTest.java @@ -170,23 +170,23 @@ public class ModelAnalyserTest extends TestCase { Model model = createModel("dig/analyze/uniqueNames3.dig"); ArrayList 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 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));