FC18: Changed recipe output to be integer only
This commit is contained in:
parent
a122f4e181
commit
6c0ee56272
3 changed files with 38 additions and 25 deletions
|
|
@ -404,26 +404,23 @@ final public class FourCornerRecipe {
|
|||
return out;
|
||||
}
|
||||
|
||||
// todo: remove X06 output here ??
|
||||
|
||||
static public List<FourCornerX06BaklavaPointSequence> toDecimalsX06(int value) {
|
||||
return toDecimalsX00(new ArrayList<>(), value);
|
||||
static public List<Integer> toDecimalsX06(int value) {
|
||||
return toDecimalsX00(new ArrayList<>(), value, true);
|
||||
}
|
||||
|
||||
static public List<FourCornerX18CakePointSequence> toDecimalsX18(int value) {
|
||||
return toDecimalsX00(new ArrayList<>(), value);
|
||||
static public List<Integer> toDecimalsX18(int value) {
|
||||
return toDecimalsX00(new ArrayList<>(), value, false);
|
||||
}
|
||||
|
||||
static public void toDecimalsX06(List<FourCornerX06BaklavaPointSequence> out, int value) {
|
||||
toDecimalsX00(out, value);
|
||||
static public void toDecimalsX06(List<Integer> out, int value) {
|
||||
toDecimalsX00(out, value, true);
|
||||
}
|
||||
|
||||
static public void toDecimalsX18(List<FourCornerX06BaklavaPointSequence> out, int value) {
|
||||
toDecimalsX00(out, value);
|
||||
static public void toDecimalsX18(List<Integer> out, int value) {
|
||||
toDecimalsX00(out, value, false);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
static private <T extends FourCornerX00PetitVide> List<T> toDecimalsX00(List<T> out, int value) {
|
||||
static private List<Integer> toDecimalsX00(List<Integer> out, int value, boolean isSixBit) {
|
||||
String valueStr = Integer.toString(value);
|
||||
PrimitiveIterator.OfInt i = valueStr.codePoints().iterator();
|
||||
boolean first = true;
|
||||
|
|
@ -431,12 +428,23 @@ final public class FourCornerRecipe {
|
|||
int chr = i.nextInt();
|
||||
int num = chr - '0';
|
||||
if (first) {
|
||||
first = false; // Add escaping only once
|
||||
out.add((T) FCDotPIE9CDash10.valueOf(num));
|
||||
first = false; // Add escaping only once for six bit mode
|
||||
if (isSixBit) {
|
||||
out.addAll(FCDotPIE9CDash10.valueOf(num).baklavaPointSequence());
|
||||
} else {
|
||||
out.add(FCDotPIE9CDash10.valueOf(num).cakePointDotIndex());
|
||||
}
|
||||
} else {
|
||||
out.add((T) FCDotCDC1604DashP6.valueOf(FCDotCDC1604DashP6.NX01_A.ordinal() + num));
|
||||
if (isSixBit) {
|
||||
out.add(FCDotCDC1604DashP6.NX01_A.ordinal() + num);
|
||||
} else {
|
||||
out.add(FCDotPIE9CDash10.valueOf(num).cakePointDotIndex());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isSixBit) {
|
||||
out.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION.cakePointDotIndex()); // fixme improve: see FourCornerDotCollePie9.baklavaPointsPIE9C
|
||||
}
|
||||
return out;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -89,30 +89,36 @@ public class FourCornerUnicodeDisplay {
|
|||
return buf.toString();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public String renderFromX06(List<FourCornerX06BaklavaPointSequence> chars) {
|
||||
return buildString(v -> renderFromX06(chars, v));
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void renderFromX06(List<FourCornerX06BaklavaPointSequence> chars, StringBuilder buf) {
|
||||
List<Integer> charPoints = new ArrayList<>(chars.size());
|
||||
chars.forEach(v -> charPoints.addAll(v.baklavaPointSequence()));
|
||||
renderFromInt18(charPoints, buf);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public String renderFromX08(List<FourCornerX08MuffinPointSequence> chars) {
|
||||
return buildString(v -> renderFromX08(chars, v));
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void renderFromX08(List<FourCornerX08MuffinPointSequence> chars, StringBuilder buf) {
|
||||
List<Integer> charPoints = new ArrayList<>(chars.size());
|
||||
chars.forEach(v -> charPoints.addAll(v.muffinPointSequence()));
|
||||
renderFromInt18(charPoints, buf);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public String renderFromX18(List<FourCornerX18CakePointSequence> chars) {
|
||||
return buildString(v -> renderFromX18(chars, v));
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void renderFromX18(List<FourCornerX18CakePointSequence> chars, StringBuilder buf) {
|
||||
List<Integer> charPoints = new ArrayList<>(chars.size());
|
||||
chars.forEach(v -> charPoints.addAll(v.cakePointSequence()));
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ import org.junit.jupiter.api.Assertions;
|
|||
import org.junit.jupiter.api.Test;
|
||||
import org.x4o.fc18.FourCornerUnicodeDisplay;
|
||||
import org.x4o.fc18.FourCornerRecipe;
|
||||
import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence;
|
||||
import org.x4o.fc18.cake2.zero33.vt06.VTDash06DotZeroACursor;
|
||||
import org.x4o.fc18.cake2.zero33.vt06.VTDash06DotZeroCClear;
|
||||
|
||||
|
|
@ -43,25 +42,25 @@ public class FCDotVT06Test {
|
|||
|
||||
@Test
|
||||
public void testCusorGoto() throws Exception {
|
||||
List<FourCornerX06BaklavaPointSequence> cdc = new ArrayList<>();
|
||||
cdc.add(VTDash06DotZeroACursor.VT_CURSOR_GOTO);
|
||||
List<Integer> cdc = new ArrayList<>();
|
||||
cdc.addAll(VTDash06DotZeroACursor.VT_CURSOR_GOTO.baklavaPointSequence());
|
||||
cdc.addAll(FourCornerRecipe.toDecimalsX06(123)); // TODO: fix these are the wrong, we need to use the txt grams version
|
||||
cdc.add(FCDotCDC1604DashP6._RAKA_QUESTION);
|
||||
cdc.add(FCDotCDC1604DashP6._RAKA_QUESTION.baklavaPointDotIndex());
|
||||
cdc.addAll(FourCornerRecipe.toDecimalsX06(456));
|
||||
cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION);
|
||||
cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION.baklavaPointDotIndex());
|
||||
|
||||
Assertions.assertEquals("␘␘␇AG␇␇␇^BCD?␇␇␇^EFG!", FourCornerUnicodeDisplay.raw().renderFromX06(cdc));
|
||||
Assertions.assertEquals("␘␘␇AG␇␇␇^BCD?␇␇␇^EFG!", FourCornerUnicodeDisplay.raw().renderFromInt18(cdc));
|
||||
// TODO: Fix lexer embedded escapes, and display external with single unicode escape sign
|
||||
//Assertions.assertEquals("?AG?BCD?EFG!", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testClearTop5Lines() throws Exception {
|
||||
List<FourCornerX06BaklavaPointSequence> cdc = new ArrayList<>();
|
||||
cdc.add(VTDash06DotZeroCClear.VT_CLEAR_TOP);
|
||||
List<Integer> cdc = new ArrayList<>();
|
||||
cdc.addAll(VTDash06DotZeroCClear.VT_CLEAR_TOP.baklavaPointSequence());
|
||||
cdc.addAll(FourCornerRecipe.toDecimalsX06(5));
|
||||
cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION);
|
||||
cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION.baklavaPointDotIndex());
|
||||
|
||||
Assertions.assertEquals("␘␘␇CA␇␇␇^F!", FourCornerUnicodeDisplay.raw().renderFromX06(cdc));
|
||||
Assertions.assertEquals("␘␘␇CA␇␇␇^F!", FourCornerUnicodeDisplay.raw().renderFromInt18(cdc));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue