From 5d806130f2a17fddffce69bc2132dc2f56cf80d2 Mon Sep 17 00:00:00 2001 From: Willem Date: Thu, 26 Dec 2024 03:35:29 +0100 Subject: [PATCH] Fixed terminator under range fire test --- .../src/main/java/org/x4o/o2o/CDC1604DashP6.java | 7 ++++++- .../test/java/org/x4o/o2o/CDC1604DashP6Test.java | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/CDC1604DashP6.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/CDC1604DashP6.java index 399b7d7..831f338 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/CDC1604DashP6.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/CDC1604DashP6.java @@ -243,7 +243,12 @@ public enum CDC1604DashP6 { break; } numberMode = cdc.next(); - continue; + if (numberMode.ordinal() < CDC1604DashP6.NX01_A.ordinal()) { + cdcPoint = numberMode; // print char + numberMode = null; // illegal number mode + } else { + continue; + } } if (numberMode == null) { buf.appendCodePoint(cdcPoint.asciiByte()); diff --git a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/CDC1604DashP6Test.java b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/CDC1604DashP6Test.java index c4f1784..3232a38 100644 --- a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/CDC1604DashP6Test.java +++ b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/CDC1604DashP6Test.java @@ -99,6 +99,21 @@ public class CDC1604DashP6Test { Assertions.assertEquals("01201337", out); } + @Test + public void testNumberTerminatorOutOfRange() throws Exception { + List cdc = new ArrayList<>(); + cdc.add(CDC1604DashP6.NX24_X); // = X + cdc.add(CDC1604DashP6.__PIE); + cdc.add(CDC1604DashP6._CARET); // ^ + cdc.add(CDC1604DashP6._PERCENT); // = % + cdc.add(CDC1604DashP6.__PIE); + cdc.add(CDC1604DashP6._AT); + cdc.add(CDC1604DashP6.NX11_K); // = K + + String out = CDC1604DashP6.convertToUnicode(cdc); + Assertions.assertEquals("X^%@K", out); + } + @Test public void testNumberPieOutOfRange() throws Exception { List cdc = new ArrayList<>();