/* * 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 hindiPrinterErr = v -> { return Character.toString(hindiNumber.charAt(v-'0')); // if used with real unicode like brahmi this fails. }; static IntFunction 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)) }