Skip to content

Commit a653b2a

Browse files
authored
Fixed Setting, testing UnicodeSet parsing (#33)
1 parent 4b6f378 commit a653b2a

File tree

4 files changed

+949
-4
lines changed

4 files changed

+949
-4
lines changed

unicodetools/org/unicode/text/utility/Settings.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,21 @@
66
public class Settings {
77

88
public static final boolean BUILD_FOR_COMPARE = org.unicode.cldr.util.CldrUtility.getProperty("BUILD_FOR_COMPARE", "false").startsWith("t");
9-
9+
10+
public static final String SVN_DIRECTORY = CldrUtility.getPath(CldrUtility.getProperty("SVN_DIR", CLDRPaths.BASE_DIRECTORY + "/../"), null);
11+
12+
public static final String AUX_DIRECTORY = CldrUtility.getPath(CldrUtility.getProperty("CLDR_TMP_DIR",
13+
CldrUtility.getPath(SVN_DIRECTORY, "cldr-aux/")), null);
14+
15+
public static final String UCD_DATA_DIRECTORY = CldrUtility.getPath(SVN_DIRECTORY + "unicodetools/unicodetools/data/", null);
16+
1017
public static final String SVN_WORKSPACE_DIRECTORY = Utility.fixFileName(
11-
CldrUtility.getProperty("SVN_WORKSPACE", CLDRPaths.SVN_DIRECTORY)) + "/";
18+
CldrUtility.getProperty("SVN_WORKSPACE", SVN_DIRECTORY)) + "/";
1219
public static final String OTHER_WORKSPACE_DIRECTORY = Utility.fixFileName(
1320
CldrUtility.getProperty("OTHER_WORKSPACE", CLDRPaths.LOCAL_DIRECTORY)) + "/";
1421

1522
public static final String BASE_DIRECTORY = Utility.fixFileName(
16-
CldrUtility.getProperty("BASE_DIRECTORY", CLDRPaths.SVN_DIRECTORY + "../")) + "/";
23+
CldrUtility.getProperty("BASE_DIRECTORY", SVN_DIRECTORY + "../")) + "/";
1724

1825
/**
1926
* Used for the default version.
@@ -25,7 +32,7 @@ public class Settings {
2532

2633
public static final String UNICODETOOLS_DIRECTORY =
2734
CldrUtility.getProperty("UNICODETOOLS_DIR",
28-
CLDRPaths.SVN_DIRECTORY + "unicodetools/unicodetools") + '/';
35+
SVN_DIRECTORY + "unicodetools/unicodetools") + '/';
2936
public static final String UNICODEJSPS_DIRECTORY = SVN_WORKSPACE_DIRECTORY + "unicodetools/UnicodeJsps/";
3037
public static final String UNICODE_DRAFT_DIRECTORY =
3138
CldrUtility.getProperty("UNICODE_DRAFT_DIR",

unicodetools/org/unicode/utilities/PolaritySet.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ public static Operation fromDisplay(String op) {
3535
private boolean isPositive;
3636
private Set<T> source;
3737

38+
public static <T> PolaritySet<T> of() {
39+
return new PolaritySet<T>(Collections.emptySet(), true);
40+
}
41+
3842
public static <T> PolaritySet<T> of(PolaritySet<T> left) {
3943
return new PolaritySet<T>(left.source, left.isPositive);
4044
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package org.unicode.utilities;
2+
3+
import java.util.regex.Matcher;
4+
import java.util.regex.Pattern;
5+
6+
import org.unicode.cldr.util.RegexUtilities;
7+
8+
import com.ibm.icu.dev.test.TestFmwk;
9+
import com.ibm.icu.impl.UnicodeRegex;
10+
import com.ibm.icu.text.UnicodeSet;
11+
12+
public class TestUnicodeSetParser extends TestFmwk {
13+
public static void main(String[] args) {
14+
new TestUnicodeSetParser().run(args);
15+
}
16+
17+
public void TestSimple() {
18+
UnicodeSetParser parser = new UnicodeSetParser();
19+
20+
String[] tests = {
21+
"[a-b]",
22+
"\\p{sc=Runic}",
23+
"[\\p{script=runic}&\\p{gc=Nl}]",
24+
"[\\p{script=runic}-\\p{gc=Nl}]",
25+
"[[a-b]&[^[^[c-d]]]]",
26+
};
27+
for (String test : tests) {
28+
UnicodeSet expected = new UnicodeSet(test);
29+
UnicodeSet actual = parser.applyPattern(new UnicodeSet(), test);
30+
assertEquals(test, expected, actual);
31+
}
32+
33+
}
34+
35+
public void TestRegex() {
36+
String[][] tests = {
37+
{"[a-c&&b[d]&&b]", "[[a-c]&[bd]&[ab]]"}
38+
};
39+
for (String[] row : tests) {
40+
Matcher matcher = Pattern.compile(row[0]).matcher("");
41+
UnicodeSet actual = new UnicodeSet();
42+
StringBuilder buf = new StringBuilder("a");
43+
for (char cp = 'a'; cp <= 'z'; ++cp) {
44+
buf.setCharAt(0, cp);
45+
if (matcher.reset(buf).matches()) {
46+
actual.add(cp);
47+
}
48+
}
49+
UnicodeSet expected = new UnicodeSet(row[1]);
50+
assertEquals(row[0], expected, actual);
51+
}
52+
}
53+
}

0 commit comments

Comments
 (0)