Easter cleaning
This commit is contained in:
commit
9e36078b2e
1862 changed files with 270281 additions and 0 deletions
246
nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒃᣔᔆᔆᒃᐤᐤᣕ/EclipseTest.java
Normal file
246
nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒃᣔᔆᔆᒃᐤᐤᣕ/EclipseTest.java
Normal file
|
|
@ -0,0 +1,246 @@
|
|||
/*
|
||||
* 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.text.NumberFormat;
|
||||
import java.text.ParseException;
|
||||
import java.util.Locale;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.function.IntFunction;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.BãßBȍőnCoffinGhostCharm;
|
||||
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.ᐧᣞᣛ.低音ᣟ骨ᣟ棺材ᣟ鬼;
|
||||
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.ᐧᣞᣛ.低音ᣟ骨ᣟ棺材ᣟ鬼ᣟ魅力ᣟ鎖;
|
||||
import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;
|
||||
|
||||
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public class EclipseTest {
|
||||
|
||||
// =======================================================
|
||||
// Case X: Add @Deprecated on String::codePointAt(int idx)
|
||||
|
||||
@Test
|
||||
public void testStringLoopFailStrange() {
|
||||
String test = "𑀳𑁂𑀮𑀺𑀉𑁄𑀤𑁄𑀭𑁂𑀡 𑀪𑀸𑀕";
|
||||
StringBuilder buf = new StringBuilder();
|
||||
for (int i=0;i<test.codePoints().count();i++) {
|
||||
int v = test.codePointAt(i); // java docs are lying
|
||||
buf.appendCodePoint(v);
|
||||
}
|
||||
Assertions.assertNotEquals(test, buf.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStringLoopFailJavaDoc() {
|
||||
String test = "𑀳𑁂𑀮𑀺𑀉𑁄𑀤𑁄𑀭𑁂𑀡 𑀪𑀸𑀕";
|
||||
StringBuilder buf = new StringBuilder();
|
||||
for (int i=0;i<test.length();i++) { // java docs are lying
|
||||
int v = test.codePointAt(i);
|
||||
buf.appendCodePoint(v);
|
||||
}
|
||||
Assertions.assertNotEquals(test, buf.toString());
|
||||
}
|
||||
|
||||
// =======================================================
|
||||
// Case X: Add @Deprecated on String::chatAt(int idx)
|
||||
// Case X: Add @Deprecated on Character.class
|
||||
// Case X: Add @Deprecated on NumberFormat object because it
|
||||
// can parse hindi but the formatter can not format hindi...
|
||||
// What kind of idiots are coding the JVM ?
|
||||
// mmmm Integer vs int, Yes java is made by a type goats who
|
||||
// didn't have the eclipse refactoring tools to rename the
|
||||
// java.lang.Integer to java.lang.Int to be correct.
|
||||
|
||||
static String name = "𑀳𑁂𑀮𑀺𑀉𑁄𑀤𑁄𑀭𑁂𑀡 𑀪𑀸𑀕";// note: only use String.codePoints().xyz (all other methods are broken)
|
||||
static int age = 42;
|
||||
static String sal = "४२";
|
||||
static NumberFormat hindiFormat = NumberFormat.getInstance(new Locale("hi"));//format does not work
|
||||
static String hindiNumber = "०१२३४५६७८९";
|
||||
static String brahmiNumber = "𑁦𑁧𑁨𑁩𑁪𑁫𑁬𑁭𑁮𑁯";
|
||||
static IntFunction<CharSequence> hindiPrinterErr = v -> {
|
||||
return Character.toString(hindiNumber.charAt(v-'0')); // if used with real unicode like brahmi this fails.
|
||||
};
|
||||
static IntFunction<CharSequence> brahmiPrinter = v -> {
|
||||
return new StringBuilder().appendCodePoint(brahmiNumber.codePoints().skip(v-'0').findFirst().getAsInt());
|
||||
};
|
||||
|
||||
@Test
|
||||
public void testHindiSalary() throws ParseException {
|
||||
int salary = age * hindiFormat.parse(sal).intValue() * hindiFormat.parse(sal).intValue();
|
||||
String buggySalary = Integer.toString(salary).codePoints().mapToObj(hindiPrinterErr).collect(Collectors.joining());
|
||||
String realSalary = Integer.toString(salary).codePoints().mapToObj(brahmiPrinter).collect(Collectors.joining());
|
||||
Assertions.assertNotNull(buggySalary);
|
||||
Assertions.assertNotNull(realSalary);
|
||||
String str = String.format("Name=%s;Age=%d;Salary=%s;toThePowerOf=%s", name, age, buggySalary, realSalary);
|
||||
System.out.println("Let's talk about Ram:" + str);
|
||||
}
|
||||
|
||||
// ===========================================================
|
||||
// Case X: SAX error on legal unicode attribute name; publicStringObjectFieldUnicodeᒡᒢᑊᒻᒻᓫᔿ="x4o-𑀳𑁂𑀮𑀺𑀉𑁄𑀤𑁄𑀭𑁂𑀡 𑀪𑀸𑀕"
|
||||
//Attribute name "publicStringObjectFieldUnicode" associated with an element type "testBean" must be followed by the ' = ' character.
|
||||
//at org.x4o.xml.io.sax.X4OErrorHandler.fatalError(X4OErrorHandler.java:121)
|
||||
//at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:181)
|
||||
//at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
|
||||
//at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
|
||||
//at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
|
||||
//at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanAttribute(XMLNSDocumentScannerImpl.java:413)
|
||||
//
|
||||
// The bug is trigger a few line above 413 in;
|
||||
// fEntityScanner.scanQName(fAttributeQName, NameType.ATTRIBUTENAME);
|
||||
//
|
||||
// The source of the bug is in XMLEntityScanner.java:823
|
||||
// char c = fCurrentEntity.ch[fCurrentEntity.position];
|
||||
|
||||
// ===========================================================
|
||||
// Case X: Jvm namespace is unlimited by spec which is bad.
|
||||
// Older specs limited to 16 bit value which java does not have.
|
||||
// What is the eclipse compiler limit ?
|
||||
// And we enlarge it a bit i needed 3 extra glyps to add the
|
||||
// Abba father postfix but the eclipse did not write a class file.
|
||||
|
||||
// Add one char any where to break eclipse compiler
|
||||
enum FooBar {
|
||||
;
|
||||
enum Ιͣ̾ͪ͆̿ͨ͡B̿͆̉̽̎̔ͤͤ̎͗ͫͧͮ̚e̅̂͌̉̎̌ͥ͋͌̑ͥ͋ͬ̅́a͆͗̈ͥͥ̊͋̅̆͑ͩ̓̍̅͊m͒ͨ̿̒̍ͨ̀͊̀ͤ̑̇ͤ̄͝ᴰᴺᴬ {
|
||||
;
|
||||
interface CLASSLENGᐧ𒊹𒈔𒂝𒅒𒅄𒀰𒀱𒋲𒍟ᐧ𒂔𒈾ᐧ𒀊𒁀抽ᒢᐩᐩ {}
|
||||
}
|
||||
}
|
||||
interface CLASS_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_LENGTH12ᐧ𒊹𒈔𒂝𒅒𒅄𒀰𒀱𒁃ᐧ𒂔𒈾ᐧ𒀊𒁀抽ᒢᐩᐩ {}
|
||||
|
||||
// ===========================================================
|
||||
// Case X: no optional brackets brackets brackets and brackets
|
||||
|
||||
@Test
|
||||
public void testElseBlockWithoutBrackets() {
|
||||
int a = 123;
|
||||
int b = 456;
|
||||
Assertions.assertNotEquals(a, b);
|
||||
if (a != b) {
|
||||
Assertions.assertFalse(a == b, "JVM Error");
|
||||
} else
|
||||
Assertions.fail("Bracket missalign");
|
||||
a = b;
|
||||
Assertions.assertEquals(a, b);
|
||||
}
|
||||
|
||||
// ===========================================================
|
||||
// Case X: Static reference works fine in eclipse compiler;
|
||||
//[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:testCompile (default-testCompile) on project bassboon-jppre: Compilation failure: Compilation failure:
|
||||
//[ERROR] EclipseTest.java: illegal reference to static field from initializer
|
||||
|
||||
// remove two comments in runnable and all works fine in eclipse but not on javac
|
||||
enum 漢語ʸᴰ {
|
||||
// اللهᐧأكبر, // note: needed some hebrew to force rendering any (java) code in arabic
|
||||
أَكْبَرײꣻײالله;
|
||||
public AtomicInteger boonCntInit = new AtomicInteger();
|
||||
private Runnable Г̄Ѫӏ = () -> {
|
||||
//漢語ʸᴰ.أَكْبَرײꣻײالله.fun(漢語ʸᴰ.أَكْبَرײꣻײالله).init(漢語ʸᴰ.أَكْبَرײꣻײالله);
|
||||
//漢語ʸᴰ.أَكْبَرײꣻײالله.Г̄Ѫӏ = () -> boonCntInit.incrementAndGet();
|
||||
};
|
||||
private 漢語ʸᴰ() {
|
||||
init(this);
|
||||
}
|
||||
public 漢語ʸᴰ fun(Object x) {
|
||||
return this;
|
||||
}
|
||||
public void init(Object y) {
|
||||
Г̄Ѫӏ.run();
|
||||
}
|
||||
}
|
||||
|
||||
// ===========================================================
|
||||
// Case X: Vai unicode is flagged as illigal immigrant
|
||||
|
||||
void ꕙꔤ() {} // Vai syllabary
|
||||
void ꔀꔁꔂꔃꔄꔅꔆꔇꔈꔉꔊꔋꔌꔍꔎꔏ() {}
|
||||
void ꔐꔑꔒꔓꔔꔕꔖꔗꔘꔙꔚꔛꔜꔝꔞꔟ() {}
|
||||
void ꔠꔡꔢꔣꔤꔥꔦꔧꔨꔩꔪꔫꔬꔭꔮꔯ() {}
|
||||
void ꔰꔱꔲꔳꔴꔵꔶꔷꔸꔹꔺꔻꔼꔽꔾꔿ() {}
|
||||
void ꕀꕁꕂꕃꕄꕅꕆꕇꕈꕉꕊꕋꕌꕍꕎꕏ() {}
|
||||
void ꕐꕑꕒꕓꕔꕕꕖꕗꕘꕙꕚꕛꕜꕝꕞꕟ() {}
|
||||
void ꕠꕡꕢꕣꕤꕥꕦꕧꕨꕩꕪꕫꕬꕭꕮ() {}
|
||||
void ꕰꕱꕲꕳꕴꕵꕶꕷꕸꕹꕺꕻꕼꕽꕾꕿ() {}
|
||||
void ꖀꖁꖂꖃꖄꖅꖆꖇꖈꖉꖊꖋꖌꖍꖎꖏ() {}
|
||||
void ꖐꖑꖒꖓꖔꖕꖖꖗꖘꖙꖚꖛꖜꖝꖞꖟ() {}
|
||||
void ꖠꖡꖢꖣꖤꖥꖦꖧꖨꖩꖪꖫꖬꖭꖮꖯ() {}
|
||||
void ꖰꖱꖲꖳꖴꖵꖶꖷꖸꖹꖺꖻꖼꖽꖾꖿ() {}
|
||||
void ꗀꗁꗂꗃꗄꗅꗆꗇꗈꗉꗊꗋꗌꗍꗎꗏ() {}
|
||||
void ꗐꗑꗒꗓꗔꗕꗖꗗꗘꗙꗚꗛꗜꗝꗞꗟ() {}
|
||||
void ꗠꗡꗢꗣꗤꗥꗦꗧꗨꗩꗪꗫꗬꗭꗮꗯ() {}
|
||||
void ꗰꗱꗲꗳꗴꗵꗶꗷꗸꗹꗺꗻꗼꗽꗾꗿ() {}
|
||||
void ꘀꘁꘂꘃꘄꘅꘆꘇꘈꘉꘊꘋꘌ() {}
|
||||
//void ꘍꘎꘏() {} // why-java-disallowed ?
|
||||
void ꘐꘑꘒꘓꘔꘕꘖꘗꘘꘙꘚꘛꘜꘝꘞꘟ() {}
|
||||
//void ꘠꘡꘢꘣꘤꘥꘦꘧꘨꘩() {} // why-java-disallowed ?
|
||||
void ꘪꘫ() {}
|
||||
Class<?> 𓂺() { return ClassLoader.class; } // egyptian seed function is allowed
|
||||
|
||||
// ===========================================================
|
||||
// Case X: Run javadoc via: mvn javadoc:javadoc
|
||||
// Generates 824M of HTML
|
||||
|
||||
// Error in javadoc in valueOf static method on enums, for example see;
|
||||
//static T512ᖟ valueOf(int index) Returns the enum constant of this type with the specified name. <=== FAIL
|
||||
//static T512ᖟ valueOf(String name) Returns the enum constant of this type with the specified name. <=== CORRECT
|
||||
//static T512ᖟ valueOf(T008ᖟ lower, T008ᖟ middle, T008ᖟ upper)
|
||||
//static T512ᖟ valueOf(BaseIteratorX3 values) Returns the enum constant of this type with the specified name. <=== FAIL
|
||||
|
||||
// Error in letter hair, method name rendering selects font-family: 'DejaVu Sans Mono', monospace;
|
||||
// for example on Interface BãßꝐḯŕ₳₮ḕBőatRaiseSail
|
||||
// default void rͤͯ̇̿ͮͫa̵̸i̷̡͒͂ͬ́ͦ̓͛̄ͧ͂͊sͥͫͬ͢͡eͧ̓͐̌ͯͯ͆T̨̡̂̒̊͂ͣ̔ͧ̃̚͠he̔Ş̀a̢ͧͫ̑̋ͣ͐̍̉̄ͭ̋ͯ͛͞ī̷ͮ̾̉ͩ̽l̵̏̈́ͨ̾ͯ͡ś̶(BãßBȍőnBőatWindKnots storm, BãßBȍőnBőatWind wind)
|
||||
// When the method name is rendered as monospace in javadoc the letter hair breaks.
|
||||
|
||||
// Because of one line listing of the interfaces large interface trees are unreadable;
|
||||
// see LegoBrickStairWay and read the LegoBrickStairWay.LegoᐧTerminatorᐧCurveᐧTaxi, the browser
|
||||
// windows needs to be made small to force line wrapping of the following items;
|
||||
// - H2 Interface title
|
||||
// - All Superinterfaces:
|
||||
// - All Known Subinterfaces:
|
||||
// - All @Documented annotations + newline after method annotation before method doc
|
||||
|
||||
// Error if the babel enum (used in annotation) like for example in T002ᖟ is private
|
||||
// javadoc fails (also on show private), thus keeping all babel enums protected.
|
||||
// privatize T002ᖟ.ₜₓₜName and/or T002ᖟ.ₜₓₜChina and no java doc build possible;
|
||||
// [ERROR] Exit code: 1
|
||||
// [ERROR] ....T002ᖟ.java:40: error: ₜₓₜName has private access in T002ᖟ
|
||||
// [ERROR] @Terminator注(slices = 2, duytsName = T002ᖟ.ₜₓₜName.class, duytsChina = T002ᖟ.ₜₓₜChina.class)
|
||||
|
||||
// javadoc "CODE access level" filtering options should never have been added to javadoc,
|
||||
// but anyway the default must the lowest or "private", as its currently called.
|
||||
// (And add access level also to the class H2 title for correctness)
|
||||
|
||||
// Error unicode is escaped in annotations and rendered like this;
|
||||
// @DuytsDocAuthor注(name="\u0644\u0644\u064e\u0651\u0670\u0647\u0650ilL\u05e6\u0633\u064f\u0648", copyright="\u00a9\u0394\u221e \u4ed9\u4e0a\u4e3b\u5929")
|
||||
// And repeatable annotation don't line wrap and thus are unreadable see; BãßBȍőnSelfKeenCoinMachine
|
||||
// @TasteCakeGutterGlitter注(eat=@FoodGlitter注(postfix="\u1da6\u1da6\u1da6"),taste=@FoodSelect注(burn=CLASS_FINAL,sparklerDeclaringEquals=true,sparklerDeclaring=BãßBȍőn𓄯.class)) @TasteCakeGutterGlitter注(eat=@FoodGlitter注(postfix="\u1da6\u1da6\u1da6\u1da6"),taste=@FoodSelect注(burn=CLASS_FINAL,sparklerDeclaringEquals=true,sparklerDeclaring=BãßBȍőn𓄯.class,sparklerDeclaringNot=true)) @TasteCakeGutterGlitter注(eat=@FoodGlitter注(prefix="\u14a2B\u020d\u0151nD\u024d\u01da\ua7ff"),taste=@FoodSelect注(burn=CLASS_FINAL))
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue