Compare commits

...

4 commits

6 changed files with 43 additions and 26 deletions

View file

@ -33,6 +33,7 @@ import java.util.function.Consumer;
import java.util.function.Function;
import java.util.stream.Collectors;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒢObjectTBone;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.T002ᖟ;
import ᒢᐩᐩ.ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆ.ArrayLadderᴿᵂ;
import ᒢᐩᐩ.ᒼᐤᒻᒻᓫᒼᐪᑊᐤᣕᔆ.Ladderᴿᵈ;
@ -45,7 +46,7 @@ import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAu
/// @author للَّٰهِilLצسُو
/// @version ©Δ 仙上主天
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public interface PrimordialZerdinalSpaceMaterializer<T extends PrimordialZerdinalSpaceMaterializer<T>> extends PrimordialZerdinalSpaceBoundary {
public interface PrimordialZerdinalSpaceMaterializer<T extends PrimordialZerdinalSpaceMaterializer<T>> extends PrimordialZerdinalSpaceBoundary, ᒢObjectTBone<T> {
/// Materialize an number from the bounded zerdinal number space.
T zerdinalMaterializeSpace(int zerdinal);
@ -53,6 +54,7 @@ public interface PrimordialZerdinalSpaceMaterializer<T extends PrimordialZerdina
default RopeOfAzraelᴿᵈ<T> zerdinalSpaceRope() {
return new RopeOfAzraelᴿᵈ<T>() {
int zerdinalSpaceWalker = 0;
@Override
public T002ᖟ hasNextᴿᵈ() {
return T002ᖟ.valueOf(zerdinalSpaceWalker < zerdinalSpaceBoundary());

View file

@ -47,20 +47,20 @@ public interface ZerdinalAḃåčȕs̈Rȧñk<T extends ZerdinalAḃåčȕs̈Rȧ
}
default T abacusRȧñkGotoFirst() {
return abacusOperation(ZerdinalAḃåčȕs̈RȧñkWaterWorks.GOTO_FIRST, zerdinal()).materializeOutput(zerdinalMaterializeSpace(zerdinal()));
return abacusOperation(ZerdinalAḃåčȕs̈RȧñkWaterWorks.GOTO_FIRST, zerdinal()).materializeOutput(thisᵀᴮᵒⁿᵉ());
}
default T abacusRȧñkGotoLast() {
return abacusOperation(ZerdinalAḃåčȕs̈RȧñkWaterWorks.GOTO_LAST, zerdinal()).materializeOutput(zerdinalMaterializeSpace(zerdinal()));
return abacusOperation(ZerdinalAḃåčȕs̈RȧñkWaterWorks.GOTO_LAST, zerdinal()).materializeOutput(thisᵀᴮᵒⁿᵉ());
}
@Deprecated
default T abacusRȧñkGotoUp(boolean loop) {
return abacusOperation(ZerdinalAḃåčȕs̈RȧñkWaterWorks.PLUS, 1, loop).materializeOutput(zerdinalMaterializeSpace(zerdinal()));
return abacusOperation(ZerdinalAḃåčȕs̈RȧñkWaterWorks.PLUS, 1, loop).materializeOutput(thisᵀᴮᵒⁿᵉ());
}
@Deprecated
default T abacusRȧñkGotoDown(boolean loop) {
return abacusOperation(ZerdinalAḃåčȕs̈RȧñkWaterWorks.MINUS, 1, loop).materializeOutput(zerdinalMaterializeSpace(zerdinal()));
return abacusOperation(ZerdinalAḃåčȕs̈RȧñkWaterWorks.MINUS, 1, loop).materializeOutput(thisᵀᴮᵒⁿᵉ());
}
}

View file

@ -64,6 +64,10 @@ abstract public class BassFaultAnchor extends BassFaultAnchorSignalStore {
super(error, signal, tracer);
}
public final BassFaultAnchor withSignalTrace(Class<?> signal, String key, Number value) {
return withSignalTrace(signal, key, value.toString());
}
public final BassFaultAnchor withSignalTrace(Class<?> signal, String key, String value) {
fetchTraceSignalMap(signal).put(key, value);
return this;

View file

@ -43,51 +43,60 @@ public class FaultSignalTraceTest {
}
}
static class SpaceB {
static void traceRootAccess() {
static void traceRootAccess(int productColor) {
try {
SpaceA.traceRoot();
} catch (FaultBeanInstantiation e) {
throw e.withSignalTrace(SpaceB.class, "Name", "FoodSection").withSignalTrace(SpaceB.class, "From", "FoodEmail");
// test auto-esc of email header protection from java manifest v1 output
// and add stuff on the general whiteboard to play games
// and normal fault context signal tracing
throw e.withSignalTrace(SpaceB.class, "Name", "FoodSection")
.withSignalTrace(SpaceB.class, "From", "FoodEmail")
.withSignalTrace(SpaceB.class, "product-color", productColor)
.appendOnWhitePaper("Paper-SpaceB", "sissors");
}
}
}
static class SpaceC {
static void traceRootCatchBass() {
static void traceRootCatchBass(String bearbar) {
try {
SpaceB.traceRootAccess();
SpaceB.traceRootAccess((int) bearbar.charAt(0));
} catch (BassFaultAnchor e) {
throw e.withSignalTrace(SpaceC.class, v -> {
v.put("bearbar", bearbar);
v.put("Junit-Foo", "Bar");
v.put("Junit-仙上主天", "仙上主天");
v.put("Junit-仙上主天", "仙上主天"); // only works with manifest v2++
}).appendOnWhitePaper("Paper-SpaceC", "rock");
}
}
}
static class SpaceD {
static void traceWrapClassic() {
static void traceWrapClassic(String foobar) {
try {
SpaceC.traceRootCatchBass();
SpaceC.traceRootCatchBass(foobar);
} catch (Exception e) {
throw new IllegalArgumentException("Classic argument missing wrapper", e);
// classic java error wrapping to add meta info like call arguments for context in stack trace
throw new IllegalArgumentException("Classic argument missing wrapper with foobar " + foobar, e);
}
}
}
static class SpaceE {
static void traceWrap() {
static void traceWrap(int eSpaceMine) {
try {
SpaceD.traceWrapClassic();
SpaceD.traceWrapClassic("" + eSpaceMine * 1234);
} catch (Exception e) {
throw new FaultBeanState(e, SpaceD.class).appendOnWhitePaper("Paper-SpaceE", "sissors");
throw new FaultStreamDelegate(e, SpaceD.class)
.withSignalTrace(SpaceE.class, "eSpaceMine", eSpaceMine);
}
}
}
@Test
public void testFaultString() {
FaultBeanState error = null;
BassFaultAnchor error = null;
try {
SpaceE.traceWrap();
} catch (FaultBeanState e) {
SpaceE.traceWrap(123);
} catch (BassFaultAnchor e) {
error = e;
}
Assertions.assertNotNull(error);
@ -97,14 +106,14 @@ public class FaultSignalTraceTest {
//System.out.println(errorText.length()); // 3185, 3433
Assertions.assertNotNull(errorText);
Assertions.assertTrue(errorText.contains(error.getMessage()));
Assertions.assertTrue(errorText.contains("FaultBeanState"));
Assertions.assertTrue(errorText.contains("FaultStreamDelegate"));
}
@Test
public void testFaultStringSitra() {
BassFaultAnchor error = null;
try {
SpaceE.traceWrap();
SpaceE.traceWrap(123);
} catch (BassFaultAnchor e) {
error = e;
}
@ -119,5 +128,7 @@ public class FaultSignalTraceTest {
Assertions.assertTrue(sitraText.contains("FoodSection"));
Assertions.assertTrue(sitraText.contains("SpaceC"));
Assertions.assertTrue(sitraText.contains("Junit-Foo: Bar"));
Assertions.assertTrue(sitraText.contains("eSpaceMine: 123"));
Assertions.assertTrue(sitraText.contains("product-color: 49"));
}
}

View file

@ -209,7 +209,7 @@ public class FourCornerUnicodeImport {
} else if ('\u205F' == ctx.codePoint) {
space = 76; // medium math space 4/18 em = like u2008
} else if ('\u3000' == ctx.codePoint) {
space = 222; // CJK space fullwidth (??? or use 100% here ?)
space = 100; // CJK space fullwidth (china space is equal to real space of virtual user defined unicode4D space drawing)
} else if ('\u180E' == ctx.codePoint) {
space = 2; // mongolian vowel separator
} else if ('\u200B' == ctx.codePoint) {

View file

@ -383,7 +383,7 @@ public class FourCornerZionStenoLexer {
public StenoScannerWordCakeSlice(FCFlameWordDish course) {
super(course.cakePointMin(), course.cakePointMax());
this.course = Objects.requireNonNull(course);
this.course = course;
}
@Override