From 34b4761446b48e8785b187e9deaba7ceeca3b030 Mon Sep 17 00:00:00 2001 From: Willem Date: Fri, 24 Jan 2025 20:08:08 +0100 Subject: [PATCH] Fixed cake offsets in E10 lexer parsing --- .../fc18/zion7/FourCornerZionStenoLexer.java | 10 +++---- .../fc18/FourCornerUnicodeDisplayTest.java | 26 +++++++++++++++++++ 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZionStenoLexer.java b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZionStenoLexer.java index aa752bd..fd6b548 100644 --- a/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZionStenoLexer.java +++ b/nx01-x4o-fc18/src/main/java/org/x4o/fc18/zion7/FourCornerZionStenoLexer.java @@ -742,7 +742,7 @@ public class FourCornerZionStenoLexer { decModeReset(); return false; } - lexer.handler.strobeWord(FourCornerDotCake.FC_AMD0110_SA, cdcPoint); + lexer.handler.strobeWord(FourCornerDotCake.FC_AMD0110_SA, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); return true; } if (FCDotDEC0801DashE10.E10_NES0127_9C.equals(cdcDECModeE10)) { @@ -750,7 +750,7 @@ public class FourCornerZionStenoLexer { decModeReset(); return false; } - lexer.handler.strobeWord(FourCornerDotCake.FC_NES0127_9C, cdcPoint); + lexer.handler.strobeWord(FourCornerDotCake.FC_NES0127_9C, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); return true; } if (FCDotDEC0801DashE10.E10_NXP0103_S3.equals(cdcDECModeE10)) { @@ -758,7 +758,7 @@ public class FourCornerZionStenoLexer { decModeReset(); return false; } - lexer.handler.strobeWord(FourCornerDotCake.FC_NXP0103_S3, cdcPoint); + lexer.handler.strobeWord(FourCornerDotCake.FC_NXP0103_S3, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); return true; } if (FCDotDEC0801DashE10.E10_UWU0101_S1.equals(cdcDECModeE10)) { @@ -774,7 +774,7 @@ public class FourCornerZionStenoLexer { decModeReset(); return false; } - lexer.handler.strobeWord(FourCornerDotCake.FC_ICL0126_9B, cdcPoint); + lexer.handler.strobeWord(FourCornerDotCake.FC_ICL0126_9B, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); return true; } if (FCDotDEC0801DashE10.E10_OCE0801_H3.equals(cdcDECModeE10)) { @@ -782,7 +782,7 @@ public class FourCornerZionStenoLexer { decModeReset(); return false; } - lexer.handler.strobeWord(FourCornerDotCake.FC_OCE0801_H3, cdcPoint); + lexer.handler.strobeWord(FourCornerDotCake.FC_OCE0801_H3, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal()); return true; } decModeReset(); diff --git a/nx01-x4o-fc18/src/test/java/org/x4o/fc18/FourCornerUnicodeDisplayTest.java b/nx01-x4o-fc18/src/test/java/org/x4o/fc18/FourCornerUnicodeDisplayTest.java index 4c80561..bd7f1fa 100644 --- a/nx01-x4o-fc18/src/test/java/org/x4o/fc18/FourCornerUnicodeDisplayTest.java +++ b/nx01-x4o-fc18/src/test/java/org/x4o/fc18/FourCornerUnicodeDisplayTest.java @@ -32,6 +32,7 @@ import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence; import org.x4o.fc18.cake2.pie9c.FCDotPIE9CDash26; import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6; import org.x4o.fc18.cake2.zero33.dec1.FCDotCMD5401Dash2D; +import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC0801DashE10; import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0; import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8; @@ -143,4 +144,29 @@ public class FourCornerUnicodeDisplayTest { Assertions.assertEquals("𝘩𝘰𝘪╗╞╘hoi", FourCornerUnicodeDisplay.text().renderFromX06(cdc)); } + + @Test + public void testDecE10RangeChecks() throws Exception { + List cdc = new ArrayList<>(); + cdc.add(FCDotDEC2701DashPX0.ESC_DEC0801_E10); + cdc.add(FCDotDEC0801DashE10.E10_UWU0101_S1); + cdc.add(FCDotCDC1604DashP6.NX08_H); // H + cdc.add(FCDotDEC2701DashPX0.ESC_DEC0801_E10); + cdc.add(FCDotDEC0801DashE10.E10_UWU0101_S1); + cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION); + cdc.add(FCDotCDC1604DashP6.NX15_O); // O + cdc.add(FCDotDEC2701DashPX0.ESC_DEC0801_E10); + cdc.add(FCDotDEC0801DashE10.E10_UWU0101_S1); + cdc.add(FCDotDEC2701DashPX0.ESC_STOP); + cdc.add(FCDotCDC1604DashP6.NX09_I); // I + cdc.add(FCDotDEC2701DashPX0.ESC_DEC0801_E10); + cdc.add(FCDotDEC0801DashE10.E10_UWU0101_S1); + cdc.add(FCDotCDC1604DashP6.NX01_A); // tab space + cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION); + cdc.add(FCDotCDC1604DashP6.NX08_H); // HOI + cdc.add(FCDotCDC1604DashP6.NX15_O); + cdc.add(FCDotCDC1604DashP6.NX09_I); + + Assertions.assertEquals("HOI__ __.:=UWU=:.__ __HOI", FourCornerUnicodeDisplay.text().renderFromX06(cdc)); + } }