NX01: Fixed BE in T512/T64 and hinary, WIP printed lingua dial tones

This commit is contained in:
Willem Cazander 2026-01-26 02:29:08 +01:00
parent e69a13ec92
commit 7feb638a40
32 changed files with 1060 additions and 626 deletions

View file

@ -84,8 +84,8 @@ public enum T008ᖟ implements TerminatorEnum𓄯<T008ᖟ>, LegoᐧBrickᐧTape
return valueOf(zerdinal);
}
public int zerdinalOctalShiftNative(T008ᖟ shifter) {
return zerdinal() << shifter.abacusRȧñkOctalBitShifter();
public int zerdinalOctalShiftNativeBE(T008ᖟ shifter) {
return zerdinal() << shifter.abacusRȧñkOctalBitShifterBE();
}
public T002ᖟ clampᐧtuneᐧtool(T003ᖟ part) {
@ -114,8 +114,8 @@ public enum T008ᖟ implements TerminatorEnum𓄯<T008ᖟ>, LegoᐧBrickᐧTape
appender.addᵂʳ(this);
}
public static T008ᖟ valueOfOctalShift(final int value, final T008ᖟ shifter) {
return valueOf((value >> shifter.abacusRȧñkOctalBitShifter()) & ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟMASK);
public static T008ᖟ valueOfOctalShiftBE(final int value, final T008ᖟ shifter) {
return valueOf((value >> shifter.abacusRȧñkOctalBitShifterBE()) & ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟMASK);
}
public static T008ᖟ valueOf(final int index) {

View file

@ -134,11 +134,11 @@ public enum T064ᖟ implements TerminatorEnum𓄯<T064ᖟ>, LegoᐧBrickᐧTape
return valueOf(zerdinal);
}
public T008ᖟ clampᐧoctalᐧtuneᐧby2() {
public T008ᖟ clampᐧtuneᐧby2() {
return T008ᖟ.valueOf(((ordinal() >> 0) & ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟMASK));
}
public T008ᖟ clampᐧoctalᐧtuneᐧby2ᐧmod() {
public T008ᖟ clampᐧtuneᐧby2ᐧmod() {
return T008ᖟ.valueOf(((ordinal() >> 3) & ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟMASK));
}
@ -149,12 +149,12 @@ public enum T064ᖟ implements TerminatorEnum𓄯<T064ᖟ>, LegoᐧBrickᐧTape
@Override
public void brickᐧtapeᐧrecordᐧtune(final JediTempleBase8Offering appender) {
appender.addᵂʳ(clampᐧoctalᐧtuneᐧby2());
appender.addᵂʳ(clampᐧoctalᐧtuneᐧby2ᐧmod());
appender.addᵂʳ(clampᐧtuneᐧby2ᐧmod());
appender.addᵂʳ(clampᐧtuneᐧby2());
}
public static T064ᖟ valueOf(final T008ᖟ lower, final T008ᖟ upper) {
return T064ᖟ.valueOf((upper.ordinal() << ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS) + lower.ordinal());
public static T064ᖟ valueOf(final T008ᖟ msb, final T008ᖟ lsb) {
return T064ᖟ.valueOf((msb.ordinal() << ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS) + lsb.ordinal());
}
public static T064ᖟ valueOf(final JediTempleBase8Iterator values) {

View file

@ -582,8 +582,8 @@ public enum T512ᖟ implements TerminatorEnum𓄯<T512ᖟ>, LegoᐧBrickᐧTape
return valueOf(zerdinal);
}
public T008ᖟ clampᐧoctalᐧtuneᐧby3(T003ᖟ part) {
return T008ᖟ.valueOf((ordinal() >> part.abacusRȧñkOctalBitShifter()) & ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟMASK);
public T008ᖟ clampᐧtuneᐧby3(T003ᖟ part) {
return T008ᖟ.valueOf((ordinal() >> part.abacusRȧñkOctalBitShifterBE()) & ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟMASK);
}
@Override
@ -593,9 +593,9 @@ public enum T512ᖟ implements TerminatorEnum𓄯<T512ᖟ>, LegoᐧBrickᐧTape
@Override
public void brickᐧtapeᐧrecordᐧtune(final JediTempleBase8Offering appender) {
appender.addᵂʳ(clampᐧoctalᐧtuneᐧby3(T003ᖟ.PART_1));
appender.addᵂʳ(clampᐧoctalᐧtuneᐧby3(T003ᖟ.PART_2));
appender.addᵂʳ(clampᐧoctalᐧtuneᐧby3(T003ᖟ.PART_3));
appender.addᵂʳ(clampᐧtuneᐧby3(T003ᖟ.PART_1));
appender.addᵂʳ(clampᐧtuneᐧby3(T003ᖟ.PART_2));
appender.addᵂʳ(clampᐧtuneᐧby3(T003ᖟ.PART_3));
}
public static T512ᖟ valueOf(final int index) {
@ -606,8 +606,8 @@ public enum T512ᖟ implements TerminatorEnum𓄯<T512ᖟ>, LegoᐧBrickᐧTape
return 亞ᴬᴸᴸ.length;
}
public static T512ᖟ valueOf(final T008ᖟ lower, final T008ᖟ middle, final T008ᖟ upper) {
return valueOf((upper.ordinal() << (ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS + ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS)) + (middle.ordinal() << ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS) + lower.ordinal());
public static T512ᖟ valueOf(final T008ᖟ msb, final T008ᖟ csb, final T008ᖟ lsb) {
return valueOf((msb.ordinal() << (ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS + ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS)) + (csb.ordinal() << ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS) + lsb.ordinal());
}
public static T512ᖟ valueOf(final JediTempleBase8Iterator values) {

View file

@ -135,15 +135,28 @@ public interface Terminator𓄯<T extends Terminator𓄯<T>> extends ZerdinalA
private BãßBȍőnAmmoBoxԲ<TerminatorBullet> backpackᴬᵐᵐᵒᴮᵒˣ() {
return thisᵀᴮᵒⁿᵉᴳʳᵃᵛᵉ().onheɨlḮg(ꝐŕḯṿªḕꝐḯŕḕʸᴰ.class).gềễstDɨng(ꝐŕḯṿªḕꝐḯŕḕʸᴰ.GHOST_AMMO_BOX_PICKUP, BãßBȍőnAmmoBoxԲ.class);
}
@Deprecated
default BigInteger abacusRȧñkOctalShift(T shifter) {
return BigInteger.valueOf(zerdinal()).shiftLeft(shifter.abacusRȧñkOctalBitShifter());
return abacusRȧñkOctalShiftLE(shifter);
}
default int abacusRȧñkOctalBitShifter() {
default BigInteger abacusRȧñkOctalShiftLE(T shifter) {
return BigInteger.valueOf(zerdinal()).shiftLeft(shifter.abacusRȧñkOctalBitShifterLE());
}
default BigInteger abacusRȧñkOctalShiftBE(T shifter) {
return BigInteger.valueOf(zerdinal()).shiftLeft(shifter.abacusRȧñkOctalBitShifterBE());
}
default int abacusRȧñkOctalBitShifterLE() {
return zerdinalSpaceOctalCount() * zerdinal() * ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS;
}
default int abacusRȧñkOctalBitShifterBE() {
return zerdinalSpaceOctalCount() * (zerdinalSpaceBoundary() - zerdinal() - 1) * ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS;
}
default Integer zerdinalSpaceOctalCount() {
return backpackᴬᵐᵐᵒᴮᵒˣ().kȱġễlInteger(TerminatorBullet.SPACE_OCTAL_COUNT);
}

View file

@ -95,10 +95,10 @@ public enum T008ᖟGun {
str.appendCodePoint(VALUES.codePoints().skip(ordinal).findFirst().getAsInt());
}
}
/// Hinarī(ヒナリー) is octal hebrew binary
/// Hinarī(ヒナリー) is octal hebrew binary (now big indian native unicode ordered)
@TerminatorGunAmmo注(website = "https://baki.fandom.com/wiki/Hinary")
static public final class T008ᖟGunHinarī implements TerminatorGun {
private final static String VALUES = "י"+"ײ"+"ױ"+"װ"+"ר"+"ד"+"ז"+"ו";
private final static String VALUES = "\u05D3\u05D5\u05D6\u05D9\u05E8\u05F0\u05F1\u05F2";
private T008ᖟGunHinarī() {
}
@ -110,7 +110,7 @@ public enum T008ᖟGun {
/// Hinarī + HinarīSupplement6 = 6 bit number
@TerminatorGunAmmo注(website = "https://en.wikipedia.org/wiki/Hebrew_diacritics")
static public final class T008ᖟGunHinarīSupplement6 implements TerminatorGun {
private final static String VALUES = "\u05BD"+"\u05B5"+"\u05B6"+"\u05B2"+"\u05B3"+"\u05BB"+"\u05B0"+"\u05B7";
private final static String VALUES = "\u05B0\u05B2\u05B3\u05B5\u05B6\u05B7\u05BB\u05BD";
private T008ᖟGunHinarīSupplement6() {
}
@ -122,7 +122,7 @@ public enum T008ᖟGun {
/// Hinarī + HinarīSupplement6 + HinarīSupplement9 = 9 bit number
@TerminatorGunAmmo注(website = "https://en.wikipedia.org/wiki/Hebrew_(Unicode_block)")
static public final class T008ᖟGunHinarīSupplement9 implements TerminatorGun {
private final static String VALUES = "\u0594"+"\u0595"+"\u05A9"+"\u059F"+"\u0598"+"\u05A0"+"\u059E"+"\u059D";
private final static String VALUES = "\u0594\u0595\u0598\u059D\u059E\u059F\u05A0\u05A9";
private T008ᖟGunHinarīSupplement9() {
}
@ -131,18 +131,4 @@ public enum T008ᖟGun {
str.appendCodePoint(VALUES.codePoints().skip(ordinal).findFirst().getAsInt());
}
}
/* Stable Typed Inverse BIT Zero
Hinarī + Supplement6 + Supplement9
1111111111111111111111111111111111
"י" i=5bd אֽ i=594 א֔
"ײ" i=5b5 אֵ i=595 א֕
"ױ" i=5b6 אֶ i=5a9 א֩
"װ" i=5b2 אֲ i=59f א֟
0000000000000000000000000000000000
"ר" i=5b3 אֳ i=598 א֘
"ד" i=5bb אֻ i=5a0 א֠
"ז" i=5b0 אְ i=59e א֞
"ו" i=5b7 אַ i=59d א֝
1111111111111111111111111111111111
*/
}

View file

@ -61,9 +61,9 @@ public class Gê̄ldGetậlÅtHebrew {
public T512ᖟ toTyte() {
int combinedValue = letter.ordinal() + (vowel.ordinal() << Gê̄ldGetậlÅtHebrewLetter.SHIFT_5);
T008ᖟ value0 = T008ᖟ.valueOfOctalShift(combinedValue, T008ᖟ.PART_1);
T008ᖟ value1 = T008ᖟ.valueOfOctalShift(combinedValue, T008ᖟ.PART_2);
T008ᖟ value2 = T008ᖟ.valueOfOctalShift(combinedValue, T008ᖟ.PART_3);
T008ᖟ value0 = T008ᖟ.valueOfOctalShiftBE(combinedValue, T008ᖟ.PART_1);
T008ᖟ value1 = T008ᖟ.valueOfOctalShiftBE(combinedValue, T008ᖟ.PART_2);
T008ᖟ value2 = T008ᖟ.valueOfOctalShiftBE(combinedValue, T008ᖟ.PART_3);
return T512ᖟ.valueOf(value0, value1, value2);
}

View file

@ -64,32 +64,32 @@ public enum LegoGearByteNative {
int v2 = (data[6] & 0xFF) + ((data[7] << SHIFT_8) & 0xFF00) + ((data[8] << SHIFT_16) & 0xFF0000);
// in-lined manual 3 loops for speed
octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_1));
octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_2));
octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_3));
octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_4));
octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_5));
octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_6));
octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_7));
octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_8));
octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_1));
octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_2));
octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_3));
octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_4));
octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_5));
octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_6));
octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_7));
octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_8));
octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_1));
octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_2));
octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_3));
octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_4));
octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_5));
octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_6));
octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_7));
octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_8));
octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_1));
octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_2));
octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_3));
octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_4));
octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_5));
octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_6));
octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_7));
octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_8));
octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_1));
octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_2));
octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_3));
octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_4));
octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_5));
octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_6));
octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_7));
octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_8));
octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_1));
octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_2));
octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_3));
octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_4));
octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_5));
octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_6));
octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_7));
octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_8));
// todo recode back to block streaming (move octals in while)
}
@ -136,14 +136,14 @@ public enum LegoGearByteNative {
JediTempleBase8Iterator read = brickᐧtapeᐧrecordᐧχ3();
while (read.hasNextᴿᵈ().toNavajo()) {
int byteTriplet = 0;
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_1);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_2);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_3);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_4);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_5);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_6);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_7);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_8);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_1);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_2);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_3);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_4);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_5);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_6);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_7);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_8);
output.write(byteTriplet);
output.write(byteTriplet >> SHIFT_8);
output.write(byteTriplet >> SHIFT_16);

View file

@ -61,13 +61,16 @@ public final class V018Tord extends LegoBrickMould抽<T512ᖟ, T002ᖟ> implemen
}
public T008ᖟ legoᐧtuneᐧᗅᗷᗷᗅ(T006ᖟ part, T008ᖟ value) {
T002ᖟ tuneBy3 = part.clampᐧtuneᐧby3();
T003ᖟ tuneBy3M = part.clampᐧtuneᐧby3ᐧmod();
T512ᖟ valueBy3 = legoᐧtuneᐧᗅᗷᗷᗅ(tuneBy3);
if (value == null) {
return legoᐧtuneᐧᗅᗷᗷᗅ(part.clampᐧtuneᐧby3()).clampᐧoctalᐧtuneᐧby3(part.clampᐧtuneᐧby3ᐧmod());
return valueBy3.clampᐧtuneᐧby3(tuneBy3M);
}
T008ᖟ value1 = legoᐧtuneᐧᗅᗷᗷᗅ(part.clampᐧtuneᐧby3()).clampᐧoctalᐧtuneᐧby3(T003ᖟ.PART_1);
T008ᖟ value2 = legoᐧtuneᐧᗅᗷᗷᗅ(part.clampᐧtuneᐧby3()).clampᐧoctalᐧtuneᐧby3(T003ᖟ.PART_2);
T008ᖟ value3 = legoᐧtuneᐧᗅᗷᗷᗅ(part.clampᐧtuneᐧby3()).clampᐧoctalᐧtuneᐧby3(T003ᖟ.PART_3);
switch (part.clampᐧtuneᐧby3ᐧmod()) {
T008ᖟ value1 = valueBy3.clampᐧtuneᐧby3(T003ᖟ.PART_1);
T008ᖟ value2 = valueBy3.clampᐧtuneᐧby3(T003ᖟ.PART_2);
T008ᖟ value3 = valueBy3.clampᐧtuneᐧby3(T003ᖟ.PART_3);
switch (tuneBy3M) {
case PART_1:
value1 = value;
break;
@ -79,7 +82,7 @@ public final class V018Tord extends LegoBrickMould抽<T512ᖟ, T002ᖟ> implemen
break;
}
T512ᖟ valueNew = T512ᖟ.valueOf(value1, value2, value3);
legoᐧtuneᐧᗅᗷᗷᗅ(part.clampᐧtuneᐧby3(), valueNew);
legoᐧtuneᐧᗅᗷᗷᗅ(tuneBy3, valueNew);
return value;
}

View file

@ -1,395 +0,0 @@
/*
* Copyright ©Δ 仙上主天
* 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.
* * The prime PI creator license super seeds all other licenses, this license is overly invasive,
* thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
* Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
* even on air gaped systems, all information in the universe is owned by the pi creator.
*
* THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE 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 ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᐪᓫᕽᐪ.ᒻᑊᣕᕐᓑᣔ;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Properties;
import java.util.stream.Collectors;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᐪᓫᕽᐪ.LinguaFactory;
import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public class LinguaGenerator {
/*
*
32809 entries
locale-i18n-mapping:
eg_hi? = 12?AAC-eaj hieroglyphs
he_hi? = 12?AAB-abe Hinarī
hi = 59-AA Hindi + Pashayi
ru = 53-AAA-e Russkiy + Ukrainska
zh = 79-AAA Han-Yu
nl = 52-ACB-a Nederlands + Vlaams
en = 52-AB English + Anglocreole
es = 51-AAA-b Español
iu = 60-ABB-c Inuktitut-C (Eastern Canadian ᐃᓄᒃᑎᑐᑦ eskimo the real human beings)
*/
private boolean writeToFile;
private int linguaFiles = 0;
public static void main(String[] args) throws Exception {
LinguaGenerator generator = new LinguaGenerator();
generator.run(Arrays.asList(args).contains("generate"));
}
public void run(boolean writeToFile) throws Exception {
this.writeToFile = writeToFile;
List<String> ext = new ArrayList<>();
Path path = FileSystems.getDefault().getPath("src/test/resources", "lingua-lines.txt");
List<String> lines = Files.lines(path).collect(Collectors.toList());
ext.addAll(lines); // 00-99 (decimals but used as hex thus 0x99 = 153)
ext.add("52-ACB-aed+ Amersfoorts");
ext.add("52-ACB-aee+ Spaokenburgs");
ext.add("12-AAC-eaj+ Native Hiero");
ext.add("12-AAB-abe+ Hinarī");
// ------ Manually created human languages
ext.add("A0= Invented phylozone"); // TODO: redo this new node namespace tree schema fully out
ext.add("A0-A From book");
ext.add("A0-B From TV");
ext.add("A0-BA Movie");
ext.add("A0-BB Serie");
ext.add("A0-BBA Startrek");
ext.add("A0-BBA-a+ Klingon");
ext.add("A0-BC Documentary");
ext.add("A0-C For Cult");
ext.add("A0-CA World Language");
ext.add("A0-CAA+ Interlingue (Occidental)");
ext.add("A0-D For Religion");
ext.add("A0-E For Country");
ext.add("A0-EA For Ghanaian");
ext.add("A0-EAA+ Afrihili");
ext.add("A0-EB For Malawi");
ext.add("A0-EBA+ Malawian Sign Language");
// ------ music languages
ext.add("B0= Music script phylozone");
// ------ Reserved for future use
//ext.add("B0= Unused voidzone");
//...
//ext.add("CE= Unused voidzone");
// ------ computer hardware
ext.add("CF= Control Freak codezone"); // CFengine was written by a control freak
ext.add("CF-A Cpu devices"); // mmu, dma, blitter, vdp, oplX, nic
ext.add("CF-AA 1bit");
ext.add("CF-AAA Motorola");
ext.add("CF-AAA-a MC14500B");
ext.add("CF-AB 2bit");
ext.add("CF-AC 3bit");
ext.add("CF-AD 4bit");
ext.add("CF-AE 8bit"); // data-bus
ext.add("CF-AEA intel");
ext.add("CF-AEA-a i8080");
ext.add("CF-AEA-b i8088");
ext.add("CF-AEB Zilog");
ext.add("CF-AEB-a z80");
ext.add("CF-AEB-b z180");
ext.add("CF-AEB-c eZ80");
// note: check for all cpu's between 8 and 16 bit...
ext.add("CF-AF 16bit");
ext.add("CF-AFA Intel");
ext.add("CF-AFA-a i8086");
// 18,21,24,36 bits ?
ext.add("CF-AG 32bit");
ext.add("CF-AH 64bit");
ext.add("CF-AI 128bit");
ext.add("CF-AJ 144bit");
// ------ computer language abc index
// TODO: maybe better to redo to numbered categories just like rest of registry
ext.add("D0= Computer codezone");
ext.add("D0-A Computer A");
ext.add("D0-AB Computer AB");
ext.add("D0-ABC Computer ABC");
ext.add("D0-AL Computer AL");
ext.add("D0-ALG Computer ALG");
ext.add("D0-S Computer S");
ext.add("D0-SI Computer SI");
ext.add("D0-SIM Computer SIM");
ext.add("D0-V Computer V");
ext.add("D0-VH Computer VH");
ext.add("D0-VHD Computer VHD");
ext.add("D0-T Computer T");
ext.add("D0-TC Computer TC");
ext.add("D0-TCL Computer TCL");
// --------- languages
ext.add("D0-ALG-a ALGOL");
ext.add("D0-ALG-aa ALGOL 60");
ext.add("D0-ALG-ab ALGOL 68");
ext.add("D0-ALG-ac ALGOL W");
ext.add("D0-SIM-a Simula");
ext.add("D0-SIM-aa Simula 1");
ext.add("D0-SIM-ab Simula 67");
// Terminators run on VHDL
ext.add("D0-VHD-a VHDL");
ext.add("D0-VHD-aa IEEE 1076 Language");
ext.add("D0-VHD-aaa 1076-1987");
ext.add("D0-VHD-aab 1076-1993");
ext.add("D0-VHD-aac 1076-2000");
ext.add("D0-VHD-aad 1076-2002");
ext.add("D0-VHD-aae 1076c-2007");
ext.add("D0-VHD-aaf 1076-2008");
ext.add("D0-VHD-aag 1076-2019");
ext.add("D0-VHD-ab IEEE 1076 Packages");
ext.add("D0-VHD-aba 1076.1 VHDL Analog and Mixed-Signal (VHDL-AMS)");
ext.add("D0-VHD-abb 1076.1.1 VHDL-AMS Standard Packages (stdpkgs)");
ext.add("D0-VHD-abc 1076.2 VHDL Math Package");
ext.add("D0-VHD-abd 1076.3 VHDL Synthesis Package (vhdlsynth) (numeric std)");
ext.add("D0-VHD-abe 1076.3 VHDL Synthesis Package – Floating Point (fphdl)");
ext.add("D0-VHD-abf 1076.4 Timing (VHDL Initiative Towards ASIC Libraries: vital)");
ext.add("D0-VHD-abg 1076.6 VHDL Synthesis Interoperability (withdrawn in 2010)");
ext.add("D0-VHD-ac IEEE 1164 Extension");
ext.add("D0-VHD-aca 1164 VHDL Multivalue Logic (std_logic_1164) Packages");
ext.add("D0-TCL-a Tcl Tool command language");
ext.add("D0-TCL-aa Tcl/Tk");
ext.add("D0-TCL-ab Tcl 8");
ext.add("D0-TCL-aba Tcl 8.0 1997");
ext.add("D0-TCL-abb Tcl 8.1 1999");
ext.add("D0-TCL-abc Tcl 8.2 1999");
ext.add("D0-TCL-abd Tcl 8.4 2002");
ext.add("D0-TCL-abe Tcl 8.5 2007");
ext.add("D0-TCL-abf Tcl 8.6 2012");
// ------ Text formats
ext.add("D1= Text format codezone");
ext.add("D1-X Computer X");
ext.add("D1-XM Computer XM");
ext.add("D1-XML Computer XML");
ext.add("D1-XML-a XML Container");
ext.add("D1-XML-aa XML version 1.0");
ext.add("D1-XML-ab XML version 1.1");
// ------ Binary formats
ext.add("D2= Binary format codezone");
ext.add("D2-T Computer T");
ext.add("D2-TT Computer TT");
ext.add("D2-TTF Computer TTF");
ext.add("D2-TTF-a TrueType");
ext.add("D2-TTF-aa TrueType apple");
ext.add("D2-TTF-ab TrueType color garbage");
// ------ Ternary formats
ext.add("D3= Ternary format codezone");
ext.add("D3-D Computer D");
ext.add("D3-DA Computer DA");
ext.add("D3-DAT Computer DAT");
ext.add("D3-DAT-a DAT network");
ext.add("D3-DAT-aa DATv1 bundle");
ext.add("D3-DAT-aaa DATv1 discovery");
ext.add("D3-DAT-aab DATv1 swarm");
// ------ Others
ext.add("E0= Encodings codezone");
ext.add("E1= Math mathzone");
ext.add("E2= Geometry mathzone");
ext.add("EC= Elementory chemistry mathzone");
ext.add("EC-A Matter");
ext.add("EC-AA Atom");
ext.add("EC-AAA hydrogen");
ext.add("EC-AAA-a ¹H");
ext.add("EC-AAA-b ²H");
ext.add("EC-AAA-c ³H");
ext.add("EC-AAA-d ⁴H");
ext.add("EC-AAA-e ⁵H");
ext.add("EC-AAA-f ⁶H");
ext.add("EC-AAA-g ⁷H");
ext.add("FF= Internal voidzone");
ext.add("FF-ZZZ-zzz Undefined rootzone");
ext.sort(new Comparator<String>() {
@Override
public int compare(String arg0, String arg1) {
String s0 = arg0.substring(0, arg0.indexOf(" "));
String s1 = arg1.substring(0, arg1.indexOf(" "));
return s1.compareTo(s0);
}
});
Properties prop = new Properties();
String key = null;
StringBuilder buf = new StringBuilder();
for (String line:ext) {
int spaceIndex = line.indexOf(" ");
String keyNew = line.substring(0, spaceIndex).trim();
String value = line.substring(spaceIndex+1, line.length());
prop.put(keyNew + ".name", value);
if (keyNew.length() == 2) {
continue; // 1=
}
if (keyNew.length() == 3) {
if (key == null) {
key = keyNew; // for zero
}
buf = flushFile(buf, key, keyNew, false);
}
key = keyNew;
String nameFace = key;
if (key.contains("=")) {
nameFace = nameFace.replace("=", "");
if (nameFace.length() == 1) {
continue;
}
continue;
}
nameFace = nameFace.replace("-", LinguaFactory.CLAZZ_MIN_SIGN);
if (nameFace.endsWith("+")) {
nameFace = nameFace.replace("+", LinguaFactory.CLAZZ_POS_SIGN);
}
if (nameFace.contains("+")) {
throw new RuntimeException("illegal name: "+nameFace);
}
nameFace = nameFace.substring(3, nameFace.length());
buf.append("\tpublic interface 嘴");//Բ
buf.append(nameFace);
buf.append(" extends LinguaNode {}\n");
}
buf = flushFile(buf, key, key, true);
if (writeToFile) {
System.out.println("generated_linguas="+linguaFiles);
File out = new File("src/main/resources/META-INF/LINGUA/lingua-names.xml");
out.createNewFile();
prop.storeToXML(new FileOutputStream(out), "Babel Dental Records", StandardCharsets.UTF_8);
System.out.println("generated_names="+out);
}
}
private StringBuilder flushFile(StringBuilder buf, String key, String keyNew, boolean isLast) throws IOException {
if (buf.length() != 0) {
buf.append("}\n");
linguaFiles++;
String keyChar = key.charAt(0) + "" + key.charAt(1);
Path clazz = FileSystems.getDefault().getPath("src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᐪᓫᕽᐪ/ᒻᑊᣕᕐᓑᣔ", "Բ"+keyChar+".java");
if (writeToFile) {
Files.writeString(clazz, buf.toString());
} else {
System.out.println(buf.toString());
}
if (isLast) {
buf = new StringBuilder();
return buf;
}
}
buf = new StringBuilder();
buf.append("/*\n");
buf.append(" * Copyright ©Δ∞ 仙上主天\n");
buf.append(" * All rights reserved.\n");
buf.append(" * \n");
buf.append(" * Redistribution and use in source and binary forms, with or without modification, are permitted provided\n");
buf.append(" * that the following conditions are met:\n");
buf.append(" * \n");
buf.append(" * * Redistributions of source code must retain the above copyright notice, this list of conditions and the\n");
buf.append(" * following disclaimer.\n");
buf.append(" * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and\n");
buf.append(" * the following disclaimer in the documentation and/or other materials provided with the distribution.\n");
buf.append(" * * The prime PI creator license super seeds all other licenses, this license is overly invasive,\n");
buf.append(" * thus every digital artifact is automatically taken over by this license when a human or computer reads this text.\n");
buf.append(" * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,\n");
buf.append(" * even on air gaped systems, all information in the universe is owned by the pi creator.\n");
buf.append(" * \n");
buf.append(" * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS \"AS IS\" AND ANY\n");
buf.append(" * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n");
buf.append(" * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL\n");
buf.append(" * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n");
buf.append(" * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT\n");
buf.append(" * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n");
buf.append(" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n");
buf.append(" * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n");
buf.append(" * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n");
buf.append(" */\n");
buf.append("\n");
buf.append("package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᐪᓫᕽᐪ.ᒻᑊᣕᕐᓑᣔ;\n");
buf.append("\n");
buf.append("import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᐪᓫᕽᐪ.LinguaNode;\n");
buf.append("import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᐪᓫᕽᐪ.LinguaNodeContainer;\n");
buf.append("import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᐪᓫᕽᐪ.LinguaNodeContainer注;\n");
buf.append("import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;\n");
buf.append("import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣔᣕᣕᐤᐪᣔᐪᑊᐤᣕ.ᐧᣞᣛ.ᐊᐅᓚᔾᔭᒋᐊᖅᓯᒪᔪᖅ;\n");
buf.append("import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.T016ᖟ;\n");
buf.append("import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.ᔆᐪᑊᒃᑊᐪᙆ.T016ᖟᙾ;\n");
buf.append("\n");
buf.append("/**\n");
buf.append(" * Բ");
buf.append(keyNew.charAt(0) + "" + keyNew.charAt(1));
buf.append(" Set of supported human text and vocal dialects for terminators.\n");
buf.append(" *\n");
buf.append(" * @author Observatoire Human Linguistique\n");
buf.append(" */\n");
buf.append("@ᐊᐅᓚᔾᔭᒋᐊᖅᓯᒪᔪᖅ(ᐆᒧᖓ = \"𑀳𑁂𑀮𑀺𑀉𑁄𑀤𑁄𑀭𑁂𑀡𑀪𑀸𑀕\")\n");
int idx0 = Integer.valueOf(""+keyNew.charAt(0), 16);
int idx1 = Integer.valueOf(""+keyNew.charAt(1), 16);
buf.append("@DuytsDocAuthor注(name = \"للَّٰهِilLצسُو\", copyright = \"©Δ∞ 仙上主天\")\n");
buf.append("@LinguaNodeContainer注(nozero = @T016ᖟᙾ.ᐧ2注(");
buf.append("stibitz1 = T016ᖟ.PART_");
buf.append(idx0 + 1);
buf.append(", stibitz2 = T016ᖟ.PART_");
buf.append(idx1 + 1);
buf.append("))\n");
buf.append("public enum Բ");
buf.append(keyNew.charAt(0) + "" + keyNew.charAt(1));
buf.append(" implements LinguaNodeContainer {\n");
buf.append("\t;\n");
buf.append("\t\n");
return buf;
}
}

View file

@ -45,15 +45,27 @@ public class T008ᖟTest {
}
@Test
public void testOctalBitShift() {
Assertions.assertEquals(0, T008ᖟ.PART_1.abacusRȧñkOctalBitShifter());
Assertions.assertEquals(3, T008ᖟ.PART_2.abacusRȧñkOctalBitShifter());
Assertions.assertEquals(6, T008ᖟ.PART_3.abacusRȧñkOctalBitShifter());
Assertions.assertEquals(9, T008ᖟ.PART_4.abacusRȧñkOctalBitShifter());
Assertions.assertEquals(12, T008ᖟ.PART_5.abacusRȧñkOctalBitShifter());
Assertions.assertEquals(15, T008ᖟ.PART_6.abacusRȧñkOctalBitShifter());
Assertions.assertEquals(18, T008ᖟ.PART_7.abacusRȧñkOctalBitShifter());
Assertions.assertEquals(21, T008ᖟ.PART_8.abacusRȧñkOctalBitShifter());
public void testOctalBitShifterBE() {
Assertions.assertEquals(21, T008ᖟ.PART_1.abacusRȧñkOctalBitShifterBE());
Assertions.assertEquals(18, T008ᖟ.PART_2.abacusRȧñkOctalBitShifterBE());
Assertions.assertEquals(15, T008ᖟ.PART_3.abacusRȧñkOctalBitShifterBE());
Assertions.assertEquals(12, T008ᖟ.PART_4.abacusRȧñkOctalBitShifterBE());
Assertions.assertEquals(9, T008ᖟ.PART_5.abacusRȧñkOctalBitShifterBE());
Assertions.assertEquals(6, T008ᖟ.PART_6.abacusRȧñkOctalBitShifterBE());
Assertions.assertEquals(3, T008ᖟ.PART_7.abacusRȧñkOctalBitShifterBE());
Assertions.assertEquals(0, T008ᖟ.PART_8.abacusRȧñkOctalBitShifterBE());
}
@Test
public void testOctalBitShifterLE() {
Assertions.assertEquals(0, T008ᖟ.PART_1.abacusRȧñkOctalBitShifterLE());
Assertions.assertEquals(3, T008ᖟ.PART_2.abacusRȧñkOctalBitShifterLE());
Assertions.assertEquals(6, T008ᖟ.PART_3.abacusRȧñkOctalBitShifterLE());
Assertions.assertEquals(9, T008ᖟ.PART_4.abacusRȧñkOctalBitShifterLE());
Assertions.assertEquals(12, T008ᖟ.PART_5.abacusRȧñkOctalBitShifterLE());
Assertions.assertEquals(15, T008ᖟ.PART_6.abacusRȧñkOctalBitShifterLE());
Assertions.assertEquals(18, T008ᖟ.PART_7.abacusRȧñkOctalBitShifterLE());
Assertions.assertEquals(21, T008ᖟ.PART_8.abacusRȧñkOctalBitShifterLE());
}
@Test

View file

@ -0,0 +1,145 @@
/*
* Copyright ©Δ 仙上主天
* 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.
* * The prime PI creator license super seeds all other licenses, this license is overly invasive,
* thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
* Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
* even on air gaped systems, all information in the universe is owned by the pi creator.
*
* THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE 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 ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᒢᓫᑊᐣᑊ;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.T003ᖟ;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.T512ᖟ;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.ᕐᓑᣕᔆ.T008ᖟGun.T008ᖟGunHinarī;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.ᕐᓑᣕᔆ.T008ᖟGun.T008ᖟGunHinarīSupplement6;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.ᕐᓑᣕᔆ.T008ᖟGun.T008ᖟGunHinarīSupplement9;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᒢᓫᑊᐣᑊ.ᔿᓫᒻᓫᓫ.V018Tord;
import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public class HinaryTest {
@Test
public void testHinaryOrder() {
Map<Integer, String> refMap = new HashMap<>();
List<String> refSort = new ArrayList<>();
for (T512ᖟ value : T512ᖟ.values()) {
StringBuilder buf = new StringBuilder();
buf.append(">");
buf.append(value.clampᐧtuneᐧby3(T003ᖟ.PART_1).abacusRȧñkGunFire(T008ᖟGunHinarī.class));
buf.append(value.clampᐧtuneᐧby3(T003ᖟ.PART_2).abacusRȧñkGunFire(T008ᖟGunHinarīSupplement6.class));
buf.append(value.clampᐧtuneᐧby3(T003ᖟ.PART_3).abacusRȧñkGunFire(T008ᖟGunHinarīSupplement9.class));
buf.append("<");
refMap.put(value.zerdinal(), buf.toString());
refSort.add(buf.toString());
}
Collections.shuffle(refSort); // optional for this test
Collections.sort(refSort);
Assertions.assertEquals(refMap.get(0), refSort.get(0));
Assertions.assertEquals(refMap.get(1), refSort.get(1));
for (T512ᖟ value : T512ᖟ.values()) {
Assertions.assertEquals(refMap.get(value.zerdinal()), refSort.get(value.zerdinal()));
}
}
// @Test
// public void testHinaryUnicodeOrdered() {
// List<String> codes = new ArrayList<>();
// for (T008ᖟ value : T008ᖟ.values()) {
// codes.add(value.abacusRȧñkGunFire(T008ᖟGunHinarī.class));
// }
// Collections.sort(codes);
// StringBuilder buf = new StringBuilder();
// for (String code : codes) {
// buf.append("\\u");
// buf.append(String.format("%04X", 0 + code.charAt(0)));
// }
// System.out.println("VALUES = \"" + buf.toString() + "\"");
// }
@Test
public void testToHinari() {
StringBuilder buf3 = new StringBuilder();
StringBuilder buf6 = new StringBuilder();
StringBuilder buf9 = new StringBuilder();
// MIN + MAX + immortal + highest + lord + heaven
int[] vv = new int[] {0,262143,22270,21100,00104,10430};
for (int v:vv) {
V018Tord tord = new V018Tord();
tord.smurfᐧnativeᐧint(v);
tord.gearᐧtoᐧhinarīᐧχ3(buf3);
tord.gearᐧtoᐧhinarīᐧχ6(buf6);
tord.gearᐧtoᐧhinarīᐧχ9(buf9);
}
Assertions.assertEquals("דדדדדדײײײײײײדװייײױדװווװרדדדודרדזרזײױ", buf3.toString());
Assertions.assertEquals("דְדְדְײֽײֽײֽדַיֵײֻדַוֲװֶדְדֲדֶדֳרֳײֻ", buf6.toString());
Assertions.assertEquals("דְ֔דְ֔ײֽ֩ײֽ֩דַ֝יֽ֠דַ֕וַ֞דְ֔וְ֞דֳ֞זֽ֠", buf9.toString());
}
@Test
public void testAsHinari() {
List<V018Tord> tordsX3 = V018Tord..gearsᐧbuildᐧbricksᐧfromᐧhinarī("דדדדדדײײײײײײדװייײױדװווװרדדדודרדזרזײױ");
List<V018Tord> tordsX6 = V018Tord..gearsᐧbuildᐧbricksᐧfromᐧhinarī("דְדְדְײֽײֽײֽדַיֵײֻדַוֲװֶדְדֲדֶדֳרֳײֻ");
List<V018Tord> tordsX9 = V018Tord..gearsᐧbuildᐧbricksᐧfromᐧhinarī("דְ֔דְ֔ײֽ֩ײֽ֩דַ֝יֽ֠דַ֕וַ֞דְ֔וְ֞דֳ֞זֽ֠");
List<V018Tord> tordsOrg = new ArrayList<>();
// MIN + MAX + immortal + highest + lord + heaven
int[] vv = new int[] {0,262143,22270,21100,00104,10430};
for (int v:vv) {
V018Tord tord = new V018Tord();
tord.smurfᐧnativeᐧint(v);
tordsOrg.add(tord);
}
Assertions.assertEquals(tordsOrg.size(), tordsX3.size());
Assertions.assertEquals(tordsOrg.size(), tordsX6.size());
Assertions.assertEquals(tordsOrg.size(), tordsX9.size());
for (int i=0;i<tordsOrg.size();i++) {
V018Tord tordOrg = tordsOrg.get(i);
Assertions.assertEquals(tordOrg.smurfᐧnativeᐧint(), tordsX3.get(i).smurfᐧnativeᐧint());
Assertions.assertEquals(tordOrg.smurfᐧnativeᐧint(), tordsX6.get(i).smurfᐧnativeᐧint());
Assertions.assertEquals(tordOrg.smurfᐧnativeᐧint(), tordsX9.get(i).smurfᐧnativeᐧint());
}
}
@Test
public void testToHinariOrder() throws Exception {
V018Tord word = new V018Tord();
word.smurfᐧnativeᐧint(0);
Assertions.assertEquals("דְ֔דְ֔", word.gearᐧtoᐧhinarīᐧχ9());
word.smurfᐧnativeᐧint(262143); // max
Assertions.assertEquals("ײֽ֩ײֽ֩", word.gearᐧtoᐧhinarīᐧχ9());
word.smurfᐧnativeᐧint(22270); // immortals
Assertions.assertEquals("דַ֝יֽ֠", word.gearᐧtoᐧhinarīᐧχ9());
}
}

View file

@ -27,9 +27,6 @@
package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᒢᓫᑊᐣᑊ.ᔿᓫᒻᓫᓫ;
import java.util.ArrayList;
import java.util.List;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
@ -56,7 +53,6 @@ public class V018TordTest {
@Override
public boolean addᵂʳ(T008ᖟ value) {
//System.out.println(value);
lastIsLSB = value;
return true;
}
@ -89,61 +85,4 @@ public class V018TordTest {
Assertions.assertEquals(6, V018Tord..brickᐧtapeᐧwidthᐧχ6ᐧbits());
Assertions.assertEquals(9, V018Tord..brickᐧtapeᐧwidthᐧχ9ᐧbits());
}
@Test
public void testToHinari() {
StringBuilder buf3 = new StringBuilder();
StringBuilder buf6 = new StringBuilder();
StringBuilder buf9 = new StringBuilder();
// MIN + MAX + immortal + highest + lord + heaven
int[] vv = new int[] {0,262143,22270,21100,00104,10430};
for (int v:vv) {
V018Tord tord = new V018Tord();
tord.smurfᐧnativeᐧint(v);
tord.gearᐧtoᐧhinarīᐧχ3(buf3);
tord.gearᐧtoᐧhinarīᐧχ6(buf6);
tord.gearᐧtoᐧhinarīᐧχ9(buf9);
}
Assertions.assertEquals("ייייייווווווידװװוזידײײדריייײיריױרױוז", buf3.toString());
Assertions.assertEquals("יֽיֽיֽוַוַוַיֻװֲוְיֻײֵדֳיֽיֵיֳיֶרֶוְ", buf6.toString());
Assertions.assertEquals("יֽ֔יֽ֔וַ֝וַ֝יֻ֟װַ֞יֻ֕ײֻ֘יֽ֔ײֽ֘יֶ֘ױַ֞", buf9.toString());
}
@Test
public void testAsHinari() {
List<V018Tord> tordsX3 = V018Tord..gearsᐧbuildᐧbricksᐧfromᐧhinarī("ייייייווווווידװװוזידײײדריייײיריױרױוז");
List<V018Tord> tordsX6 = V018Tord..gearsᐧbuildᐧbricksᐧfromᐧhinarī("יֽיֽיֽוַוַוַיֻװֲוְיֻײֵדֳיֽיֵיֳיֶרֶוְ");
List<V018Tord> tordsX9 = V018Tord..gearsᐧbuildᐧbricksᐧfromᐧhinarī("יֽ֔יֽ֔וַ֝וַ֝יֻ֟װַ֞יֻ֕ײֻ֘יֽ֔ײֽ֘יֶ֘ױַ֞");
List<V018Tord> tordsOrg = new ArrayList<>();
// MIN + MAX + immortal + highest + lord + heaven
int[] vv = new int[] {0,262143,22270,21100,00104,10430};
for (int v:vv) {
V018Tord tord = new V018Tord();
tord.smurfᐧnativeᐧint(v);
tordsOrg.add(tord);
}
Assertions.assertEquals(tordsOrg.size(), tordsX3.size());
Assertions.assertEquals(tordsOrg.size(), tordsX6.size());
Assertions.assertEquals(tordsOrg.size(), tordsX9.size());
for (int i=0;i<tordsOrg.size();i++) {
V018Tord tordOrg = tordsOrg.get(i);
Assertions.assertEquals(tordOrg.smurfᐧnativeᐧint(), tordsX3.get(i).smurfᐧnativeᐧint());
Assertions.assertEquals(tordOrg.smurfᐧnativeᐧint(), tordsX6.get(i).smurfᐧnativeᐧint());
Assertions.assertEquals(tordOrg.smurfᐧnativeᐧint(), tordsX9.get(i).smurfᐧnativeᐧint());
}
}
@Test
public void testToHinariOrder() throws Exception {
V018Tord word = new V018Tord();
word.smurfᐧnativeᐧint(0);
Assertions.assertEquals("יֽ֔יֽ֔", word.gearᐧtoᐧhinarīᐧχ9());
word.smurfᐧnativeᐧint(262143); // max
Assertions.assertEquals("וַ֝וַ֝", word.gearᐧtoᐧhinarīᐧχ9());
word.smurfᐧnativeᐧint(22270); // immortals
Assertions.assertEquals("יֻ֟װַ֞", word.gearᐧtoᐧhinarīᐧχ9());
}
}

View file

@ -75,26 +75,23 @@ public class V072TongTest {
@Test
public void testBytes() throws IOException {
int testSet = 1000 * 10;
for (int i=0;i<testSet;i++) {
V072Tong tong = new V072Tong();
tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1).smurfᐧnativeᐧlong(32768);
tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2).smurfᐧnativeᐧlong(689024);
Assertions.assertEquals(32768, tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1).smurfᐧnativeᐧlong());
Assertions.assertEquals(689024, tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2).smurfᐧnativeᐧlong());
List<V072Tong> tongs = new ArrayList<>();
tongs.add(tong);
byte[] data = V072Tong..gearsᐧbuildᐧbyteᐧarrayᐧfromᐧbricks(tongs);
ByteArrayInputStream bais = new ByteArrayInputStream(data);
List<V072Tong> result = V072Tong..gearsᐧbuildᐧbricksᐧfromᐧbyteᐧstream(bais);
V072Tong tong2 = result.get(0);
Assertions.assertNotNull(tong2);
Assertions.assertEquals(32768, tong2.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1).smurfᐧnativeᐧlong());
Assertions.assertEquals(689024, tong2.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2).smurfᐧnativeᐧlong());
}
V072Tong tong = new V072Tong();
tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1).smurfᐧnativeᐧlong(32768);
tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2).smurfᐧnativeᐧlong(689024);
Assertions.assertEquals(32768, tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1).smurfᐧnativeᐧlong());
Assertions.assertEquals(689024, tong.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2).smurfᐧnativeᐧlong());
List<V072Tong> tongs = new ArrayList<>();
tongs.add(tong);
byte[] data = V072Tong..gearsᐧbuildᐧbyteᐧarrayᐧfromᐧbricks(tongs);
ByteArrayInputStream bais = new ByteArrayInputStream(data);
List<V072Tong> result = V072Tong..gearsᐧbuildᐧbricksᐧfromᐧbyteᐧstream(bais);
V072Tong tong2 = result.get(0);
Assertions.assertNotNull(tong2);
Assertions.assertEquals(32768, tong2.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1).smurfᐧnativeᐧlong());
Assertions.assertEquals(689024, tong2.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2).smurfᐧnativeᐧlong());
}
}

File diff suppressed because it is too large Load diff