@@ -624,6 +624,36 @@ public void testCombinedLexicographicalAndNumericSortingCriteria() {
624624 parser .parse ("1" ));
625625 }
626626
627+ @ Test
628+ public void testUnicodeVersion () {
629+ // source: https://lists.w3.org/Archives/Public/public-ixml/2023Oct/0014.html
630+ Parser parser = generate (
631+ "{ Input must be #11F04 #10F70 #18B00 #10FE0 (with newlines since the characters are rtl)\n "
632+ + "\ud807 \udf04 \n "
633+ + "\ud803 \udf70 \n "
634+ + "\ud822 \udf00 \n "
635+ + "\ud803 \udfe0 \n "
636+ + "}\n "
637+ + "\n "
638+ + "Unicode: version.\n "
639+ + "\n "
640+ + "@version: v15; v14; v13; v12; pre-v12.\n "
641+ + "\n "
642+ + "-v15: -[Lo], -#a, -[Lo], -#a, -[Lo], -#a, -[Lo], -#a, +\" 15\" .\n "
643+ + "-v14: -[Cn], -#a, -[Lo], -#a, -[Lo], -#a, -[Lo], -#a, +\" 14\" .\n "
644+ + "-v13: -[Cn], -#a, -[Cn], -#a, -[Lo], -#a, -[Lo], -#a, +\" 13\" .\n "
645+ + "-v12: -[Cn], -#a, -[Cn], -#a, -[Cn], -#a, -[Lo], -#a, +\" 12\" .\n "
646+ + "-pre-v12: -[Cn], -#a, -[Cn], -#a, -[Cn], -#a, -[Cn], -#a, +\" pre 12\" ." );
647+ String result = parser .parse (
648+ "\ud807 \udf04 \n "
649+ + "\ud803 \udf70 \n "
650+ + "\ud822 \udf00 \n "
651+ + "\ud803 \udfe0 \n " );
652+ assertEquals (
653+ "<Unicode version=\" 15\" />" ,
654+ result );
655+ }
656+
627657// @Test
628658// public void test() {
629659// Parser parser = generate(
0 commit comments