FC18: Shift BYD and added LUA P7D slice to fill with candy

This commit is contained in:
Willem Cazander 2025-09-01 14:26:46 +02:00
parent f93d447ba3
commit 379aef296d
11 changed files with 239 additions and 132 deletions

View file

@ -30,9 +30,10 @@ import org.x4o.fc18.cake2.FourCornerDotCake;
import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7A;
import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7B;
import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7C;
import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7D;
import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7D;
import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7E;
import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7F;
import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7G;
import org.x4o.maisdoc.flake.MaisDocContentCss;
import org.x4o.maisdoc.flake.MaisDocContentWriter;
import org.x4o.maisdoc.model.MaisDocPage;
@ -74,15 +75,16 @@ public class FCDocPageWriterCandy implements MaisDocPageWriter, FCDocSegmentWrit
writeP7x(writer, FourCornerDotCake.FC_LUA0127_P7A, v -> FCDotLUA0127DashP7A.valueOf(v).codePointDotIndex());
writeP7x(writer, FourCornerDotCake.FC_LUA0127_P7B, v -> FCDotLUA0127DashP7B.valueOf(v).codePointDotIndex());
writeP7x(writer, FourCornerDotCake.FC_LUA0127_P7C, v -> FCDotLUA0127DashP7C.valueOf(v).codePointDotIndex());
writeP7x(writer, FourCornerDotCake.FC_LUA0127_P7D, v -> FCDotLUA0127DashP7D.valueOf(v).codePointDotIndex());
}
}
try (ContentCloseable content = writer.docPageContent()) {
String xSpec = FourCornerDotCake.FC_BYD0127_P7D.nameSpec().replaceAll("P7D", "P7x");
String xSpec = FourCornerDotCake.FC_BYD0127_P7E.nameSpec().replaceAll("P7E", "P7x");
try (ContentCloseable table = writer.docTable(xSpec, null, MaisDocContentCss.overviewSummary)) {
writeTableBoxHeaderNumeric(writer, 28, true);
writeP7x(writer, FourCornerDotCake.FC_BYD0127_P7D, v -> FCDotBYD0127DashP7D.valueOf(v).codePointDotIndex());
writeP7x(writer, FourCornerDotCake.FC_BYD0127_P7E, v -> FCDotBYD0127DashP7E.valueOf(v).codePointDotIndex());
writeP7x(writer, FourCornerDotCake.FC_BYD0127_P7F, v -> FCDotBYD0127DashP7F.valueOf(v).codePointDotIndex());
writeP7x(writer, FourCornerDotCake.FC_BYD0127_P7G, v -> FCDotBYD0127DashP7G.valueOf(v).codePointDotIndex());
}
}
try (ContentCloseable content = writer.docPageContent()) {

View file

@ -130,9 +130,10 @@ import org.x4o.fc18.cake2.pie9d.FCDotPIE9DDash27;
import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7A;
import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7B;
import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7C;
import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7D;
import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7D;
import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7E;
import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7F;
import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7G;
import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0;
@ -145,16 +146,15 @@ public enum FourCornerDotCake {
// =========== Allow small terminators to take over 6 bit main frame computers
FC_CDC1604_P6(0, 64, FCDotCDC1604DashP6.values(), "Character Dough Cake"),
__FREE_DEC(64, 27),
//FC_DEC2701_PX0(64, 27, FCDotDEC2701DashPX0.values(), "Direct or Escaped Control"),
FC_LUA0127_P7A(91, 27, FCDotLUA0127DashP7A.values(), "Local Union Alphabet P7A"),
FC_LUA0127_P7B(118, 27, FCDotLUA0127DashP7B.values(), "Local Union Alphabet P7B"),
FC_LUA0127_P7C(145, 27, FCDotLUA0127DashP7C.values(), "Local Union Alphabet P7C"),
FC_BYD0127_P7D(172, 27, FCDotBYD0127DashP7D.values(), "Block Your Display P7D"),
FC_BYD0127_P7E(199, 27, FCDotBYD0127DashP7E.values(), "Block Your Display P7E"),
FC_BYD0127_P7F(226, 27, FCDotBYD0127DashP7F.values(), "Block Your Display P7F"),
FC_LUA0127_P7A(64, 27, FCDotLUA0127DashP7A.values(), "Local Union Alphabet P7A"),
FC_LUA0127_P7B(91, 27, FCDotLUA0127DashP7B.values(), "Local Union Alphabet P7B"),
FC_LUA0127_P7C(118, 27, FCDotLUA0127DashP7C.values(), "Local Union Alphabet P7C"),
FC_LUA0127_P7D(145, 27, FCDotLUA0127DashP7D.values(), "Local Union Alphabet P7D"),
FC_BYD0127_P7E(172, 27, FCDotBYD0127DashP7E.values(), "Block Your Display P7D"),
FC_BYD0127_P7F(199, 27, FCDotBYD0127DashP7F.values(), "Block Your Display P7E"),
FC_BYD0127_P7G(226, 27, FCDotBYD0127DashP7G.values(), "Block Your Display P7F"),
/// Mind the gap, for retro metro, mini maxi mosi members
/// NOTE: MSX 0xFF is the cursor (TODO: move to BYD)

View file

@ -28,43 +28,40 @@ import org.x4o.fc18.cake2.FourCornerDotCake;
import org.x4o.fc18.cake2.FourCornerDotColleZero33;
import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8;
/// "FC.BYD0127-P7E" Four Corner Block Your Display terminal application.
/// "FC.BYD0127-P7D" Four Corner Block Your Display terminal application.
///
/// @author Willem Cazander
/// @version 1.0 Jan 1, 2025
///
public enum FCDotBYD0127DashP7E implements FourCornerDotColleZero33 {
BOX1_01('─'),
BOX1_02('│'),
BOX1_03('┄'),
BOX1_04('┆'),
BOX1_05('┈'),
BOX1_06('┊'),
BOX1_07('┌'),
BOX1_08('┐'),
BOX1_09('└'),
BOX1_10('┘'),
BOX1_11('├'),
BOX1_12('┤'),
BOX1_13('┬'),
BOX1_14('┴'),
BOX1_15('┼'),
BOX1_16('╌'),
BOX1_17('╎'),
BOX1_18('╵'),
BOX1_19('╷'),
BOX1_20('╴'),
BOX1_21('╶'),
BOX2_22('╪'),
BOX2_23('╫'),
BOX2_24('╬'),
BLK3_25('░'),
BLK3_26('▒'),
BLK3_27('▓'),
BOX2_01('═'),
BOX2_02('║'),
BOX2_03('╒'),
BOX2_04('╓'),
BOX2_05('╔'),
BOX2_06('╕'),
BOX2_07('╖'),
BOX2_08('╗'),
BOX2_09('╘'),
BOX2_10('╙'),
BOX2_11('╚'),
BOX2_12('╛'),
BOX2_13('╜'),
BOX2_14('╝'),
BOX2_15('╞'),
BOX2_16('╟'),
BOX2_17('╠'),
BOX2_18('╡'),
BOX2_19('╢'),
BOX2_20('╣'),
BOX2_21('╤'),
BOX2_22('╥'),
BOX2_23('╦'),
BOX2_24('╧'),
BOX2_25('╨'),
BOX2_26('╩'),
BLK3_27('▀'),
;
static final private FCDotBYD0127DashP7E[] VALUES = values(); // values() is slow method

View file

@ -28,43 +28,43 @@ import org.x4o.fc18.cake2.FourCornerDotCake;
import org.x4o.fc18.cake2.FourCornerDotColleZero33;
import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8;
/// "FC.BYD0127-P7F" Four Corner Block Your Display terminal application.
/// "FC.BYD0127-P7E" Four Corner Block Your Display terminal application.
///
/// @author Willem Cazander
/// @version 1.0 Jan 1, 2025
///
public enum FCDotBYD0127DashP7F implements FourCornerDotColleZero33 {
BLK1_01('▁'),
BLK1_02('▂'),
BLK1_03('▃'),
BLK1_04('▄'),
BLK1_05('▅'),
BLK1_06('▆'),
BLK1_07('▇'),
BLK1_08('█'),
BLK1_09('▉'),
BLK1_10('▊'),
BLK1_11('▋'),
BLK1_12('▌'),
BLK1_13('▍'),
BLK1_14('▎'),
BLK1_15('▏'),
BOX1_01('─'),
BOX1_02('│'),
BOX1_03('┄'),
BOX1_04('┆'),
BOX1_05('┈'),
BOX1_06('┊'),
BOX1_07('┌'),
BOX1_08('┐'),
BOX1_09('└'),
BOX1_10('┘'),
BOX1_11('├'),
BOX1_12('┤'),
BOX1_13('┬'),
BOX1_14('┴'),
BOX1_15('┼'),
BOX1_16('╌'),
BOX1_17('╎'),
BLK2_16('▔'),
BLK2_17('╏'),
BLK1_18('▕'),
BLK1_19('▐'),
BOX3_20('╭'),
BOX3_21('╮'),
BOX3_22('╰'),
BOX3_23('╯'),
BOX1_18('╵'),
BOX1_19('╷'),
BOX1_20('╴'),
BOX1_21('╶'),
BLK2_24('▛'),
BLK2_25('▜'),
BLK2_26('▙'),
BLK2_27('▟'),
BOX2_22('╪'),
BOX2_23('╫'),
BOX2_24('╬'),
BLK3_25('░'),
BLK3_26('▒'),
BLK3_27('▓'),
;
static final private FCDotBYD0127DashP7F[] VALUES = values(); // values() is slow method

View file

@ -28,57 +28,60 @@ import org.x4o.fc18.cake2.FourCornerDotCake;
import org.x4o.fc18.cake2.FourCornerDotColleZero33;
import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8;
/// "FC.BYD0127-P7D" Four Corner Block Your Display terminal application.
/// "FC.BYD0127-P7F" Four Corner Block Your Display terminal application.
///
/// @author Willem Cazander
/// @version 1.0 Jan 1, 2025
///
public enum FCDotBYD0127DashP7D implements FourCornerDotColleZero33 {
public enum FCDotBYD0127DashP7G implements FourCornerDotColleZero33 {
BOX2_01('═'),
BOX2_02('║'),
BOX2_03('╒'),
BOX2_04('╓'),
BOX2_05('╔'),
BOX2_06('╕'),
BOX2_07('╖'),
BOX2_08('╗'),
BOX2_09('╘'),
BOX2_10('╙'),
BOX2_11('╚'),
BOX2_12('╛'),
BOX2_13('╜'),
BOX2_14('╝'),
BOX2_15('╞'),
BOX2_16('╟'),
BOX2_17('╠'),
BOX2_18('╡'),
BOX2_19('╢'),
BOX2_20('╣'),
BOX2_21('╤'),
BOX2_22('╥'),
BOX2_23('╦'),
BOX2_24('╧'),
BOX2_25('╨'),
BOX2_26('╩'),
BLK3_27('▀'),
BLK1_01('▁'),
BLK1_02('▂'),
BLK1_03('▃'),
BLK1_04('▄'),
BLK1_05('▅'),
BLK1_06('▆'),
BLK1_07('▇'),
BLK1_08('█'),
BLK1_09('▉'),
BLK1_10('▊'),
BLK1_11('▋'),
BLK1_12('▌'),
BLK1_13('▍'),
BLK1_14('▎'),
BLK1_15('▏'),
BLK2_16('▔'),
BLK2_17('╏'),
BLK1_18('▕'),
BLK1_19('▐'),
BOX3_20('╭'),
BOX3_21('╮'),
BOX3_22('╰'),
BOX3_23('╯'),
BLK2_24('▛'),
BLK2_25('▜'),
BLK2_26('▙'),
BLK2_27('▟'),
;
static final private FCDotBYD0127DashP7D[] VALUES = values(); // values() is slow method
static final private FCDotBYD0127DashP7G[] VALUES = values(); // values() is slow method
private final int codePoint;
private FCDotBYD0127DashP7D(int codePoint) {
private FCDotBYD0127DashP7G(int codePoint) {
this.codePoint = codePoint;
}
@Override
public List<Integer> baklavaPointSequence() {
return FCDotINC0801DashP8.INC_BYD0127_P7D.baklavaPointsE16(ordinal());
return FCDotINC0801DashP8.INC_BYD0127_P7G.baklavaPointsE16(ordinal());
}
@Override
public int cakePointDotIndex() {
return FourCornerDotCake.FC_BYD0127_P7D.getStart() + ordinal();
return FourCornerDotCake.FC_BYD0127_P7G.getStart() + ordinal();
}
@Override
@ -90,7 +93,7 @@ public enum FCDotBYD0127DashP7D implements FourCornerDotColleZero33 {
return VALUES.length;
}
static public FCDotBYD0127DashP7D valueOf(int idx) {
static public FCDotBYD0127DashP7G valueOf(int idx) {
return VALUES[idx];
}
}

View file

@ -73,7 +73,7 @@ public enum FCDotLUA0127DashP7C implements FourCornerDotColleZero33 {
@Override
public List<Integer> baklavaPointSequence() {
return FCDotINC0801DashP8.INC_LUA0127_P7A.baklavaPointsE16(ordinal());
return FCDotINC0801DashP8.INC_LUA0127_P7C.baklavaPointsE16(ordinal());
}
@Override

View file

@ -0,0 +1,96 @@
/*
* Copyright (c) 2004-2014, Willem Cazander
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
* following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
* the following disclaimer in the documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.x4o.fc18.cake2.zero33;
import java.util.List;
import org.x4o.fc18.cake2.FourCornerDotCake;
import org.x4o.fc18.cake2.FourCornerDotColleZero33;
import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8;
/// "FC.LUA0127-P7D" Four Corner Local Union Alphabet symbols cake slice of cake points.
///
/// @author Willem Cazander
/// @version 1.0 Sep 1, 2025
///
public enum FCDotLUA0127DashP7D implements FourCornerDotColleZero33 {
NXX_01(' '),
NXX_02(' '),
NXX_03(' '),
NXX_04(' '),
NXX_05(' '),
NXX_06(' '),
NXX_07(' '),
NXX_08(' '),
NXX_09(' '),
NXX_10(' '),
NXX_11(' '),
NXX_12(' '),
NXX_13(' '),
NXX_14(' '),
NXX_15(' '),
NXX_16(' '),
NXX_17(' '),
NXX_18(' '),
NXX_19(' '),
NXX_20(' '),
NXX_21(' '),
NXX_22(' '),
NXX_23(' '),
NXX_24(' '),
NXX_25(' '),
NXX_26(' '),
NXX_27(' '),
;
static final private FCDotLUA0127DashP7D[] VALUES = values(); // values() is slow method
private final int codePoint;
private FCDotLUA0127DashP7D(int codePoint) {
this.codePoint = codePoint;
}
@Override
public List<Integer> baklavaPointSequence() {
return FCDotINC0801DashP8.INC_LUA0127_P7D.baklavaPointsE16(ordinal());
}
@Override
public int cakePointDotIndex() {
return FourCornerDotCake.FC_LUA0127_P7D.getStart() + ordinal();
}
@Override
public int codePointDotIndex() {
return codePoint;
}
static public int valuesLength() {
return VALUES.length;
}
static public FCDotLUA0127DashP7D valueOf(int idx) {
return VALUES[idx];
}
}

View file

@ -54,8 +54,8 @@ public enum FCDotINC0801DashP8 implements FourCornerX06BaklavaPointSequence, Fou
INC_LUA0127_P7C(FourCornerDotCake.FC_LUA0127_P7C),
/// ¡¿¿
/// Select BYD page 7D mode.
INC_BYD0127_P7D(FourCornerDotCake.FC_BYD0127_P7D),
/// Select LUA page 7D mode.
INC_LUA0127_P7D(FourCornerDotCake.FC_LUA0127_P7D),
/// ¿¡¿
/// Select BYD page 7E mode.
@ -66,8 +66,10 @@ public enum FCDotINC0801DashP8 implements FourCornerX06BaklavaPointSequence, Fou
INC_BYD0127_P7F(FourCornerDotCake.FC_BYD0127_P7F),
/// ¿¡¡
/// Select italic mode.
INC_PIE9D_27(FourCornerDotCake.FC_PIE9D_27),
/// Select BYD page 7G mode.
INC_BYD0127_P7G(FourCornerDotCake.FC_BYD0127_P7G),
// Select italic mode.
//INC_PIE9D_27(FourCornerDotCake.FC_PIE9D_27),
/// ¿¿¿
// Select lower case mode.
@ -86,7 +88,10 @@ public enum FCDotINC0801DashP8 implements FourCornerX06BaklavaPointSequence, Fou
@Override
public List<Integer> baklavaPointSequence() {
return FCDotCDC1604DashP6.pepper3SequenceWritePoints(ordinal());
List<Integer> result = new ArrayList<>();
result.addAll(FCDotDEC2701DashPX0.ESC68_INC0801_P8.baklavaPointSequence());
result.addAll(FCDotCDC1604DashP6.pepper3SequenceWritePoints(ordinal()));
return result;
}
@Override
@ -101,7 +106,7 @@ public enum FCDotINC0801DashP8 implements FourCornerX06BaklavaPointSequence, Fou
public List<Integer> baklavaPointsE16(int offset) {
List<Integer> result = new ArrayList<>();
result.addAll(FCDotDEC2701DashPX0.ESC68_INC0801_P8.baklavaPointSequence());
//result.addAll(FCDotDEC2701DashPX0.ESC68_INC0801_P8.baklavaPointSequence());
result.addAll(baklavaPointSequence());
result.add(FCDotCDC1604DashP6.NX01_A.ordinal() + offset);
//result.add(FCDotCDC1604DashP6.SEQ_SALAH__EXCLAMATION.cakePointDotIndex()); // TODO: add api layer snake for head

View file

@ -809,6 +809,9 @@ public class FourCornerZionStenoLexer {
lexer.decModeReset();
return true; // end E10 mode, so no print
}
if (lexer.cdcDECModeInc == null) {
lexer.cdcDECModeInc = FCDotINC0801DashP8.valueOf(0);
}
FourCornerDotCake displayCake = lexer.cdcDECModeInc.displayCake();
if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal() || cdcPoint > displayCake.getLength() - 1 + FCDotCDC1604DashP6.NX01_A.ordinal()) {
lexer.decModeReset();

View file

@ -179,12 +179,12 @@ public class FourCornerUnicodeDisplayTest {
@Test
public void testDecIncText() throws Exception {
List<FourCornerX06BaklavaPointSequence> cdc = new ArrayList<>();
cdc.add(FCDotDEC2701DashPX0.ESC68_INC0801_P8);
cdc.add(FCDotINC0801DashP8.INC_PIE9D_27);
cdc.add(FCDotCDC1604DashP6.NX08_H);
cdc.add(FCDotCDC1604DashP6.NX15_O);
cdc.add(FCDotCDC1604DashP6.NX09_I);
cdc.add(FCDotINC0801DashP8.INC_BYD0127_P7D);
//cdc.add(FCDotDEC2701DashPX0.ESC68_INC0801_P8);
//cdc.add(FCDotINC0801DashP8.INC_PIE9D_27);
//cdc.add(FCDotCDC1604DashP6.NX08_H);
//cdc.add(FCDotCDC1604DashP6.NX15_O);
//cdc.add(FCDotCDC1604DashP6.NX09_I);
cdc.add(FCDotINC0801DashP8.INC_BYD0127_P7E);
cdc.add(FCDotCDC1604DashP6.NX08_H);
cdc.add(FCDotCDC1604DashP6.NX15_O);
cdc.add(FCDotCDC1604DashP6.NX09_I);
@ -194,7 +194,8 @@ public class FourCornerUnicodeDisplayTest {
cdc.add(FCDotCDC1604DashP6.NX09_I);
cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION);
Assertions.assertEquals("𝘩𝘰𝘪╗╞╘hoi", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
// Assertions.assertEquals("𝘩𝘰𝘪╗╞╘hoi", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
Assertions.assertEquals("╗╞╘hoi", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
}
@Test

View file

@ -42,16 +42,16 @@ public class FCDotBYDTest {
@Test
public void testValuesLength() throws Exception {
Assertions.assertEquals(27, FCDotBYD0127DashP7D.valuesLength());
Assertions.assertEquals(27, FCDotBYD0127DashP7E.valuesLength());
Assertions.assertEquals(27, FCDotBYD0127DashP7F.valuesLength());
Assertions.assertEquals(27, FCDotBYD0127DashP7G.valuesLength());
}
@Test
public void testValues() throws Exception {
boolean duplicate = false;
Map<Integer,FCDotBYD0127DashP7D> global = new HashMap<>();
for (FCDotBYD0127DashP7D v : FCDotBYD0127DashP7D.values()) {
Map<Integer,FCDotBYD0127DashP7E> global = new HashMap<>();
for (FCDotBYD0127DashP7E v : FCDotBYD0127DashP7E.values()) {
Assertions.assertNotNull(v);
if (global.containsKey(v.codePointDotIndex())) {
duplicate = true;
@ -66,14 +66,14 @@ public class FCDotBYDTest {
@Test
public void testDisplay() throws Exception {
List<FourCornerX06BaklavaPointSequence> cdc = new ArrayList<>();
cdc.add(FCDotBYD0127DashP7D.BOX2_01);
cdc.add(FCDotBYD0127DashP7D.BOX2_02);
cdc.add(FCDotBYD0127DashP7D.BOX2_02);
cdc.add(FCDotBYD0127DashP7D.BOX2_01);
cdc.add(FCDotBYD0127DashP7E.BOX1_01);
cdc.add(FCDotBYD0127DashP7E.BOX1_03);
cdc.add(FCDotBYD0127DashP7E.BOX1_03);
cdc.add(FCDotBYD0127DashP7E.BOX1_07);
cdc.add(FCDotBYD0127DashP7E.BOX2_01);
cdc.add(FCDotBYD0127DashP7E.BOX2_02);
cdc.add(FCDotBYD0127DashP7E.BOX2_02);
cdc.add(FCDotBYD0127DashP7E.BOX2_01);
cdc.add(FCDotBYD0127DashP7F.BOX1_01);
cdc.add(FCDotBYD0127DashP7F.BOX1_03);
cdc.add(FCDotBYD0127DashP7F.BOX1_03);
cdc.add(FCDotBYD0127DashP7F.BOX1_07);
Assertions.assertEquals("═║║═─┄┄┌", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
}