1717
1818import com .google .gson .GsonBuilder ;
1919import com .google .gson .reflect .TypeToken ;
20+ import org .junit .jupiter .api .Disabled ;
2021import org .junit .jupiter .api .Test ;
2122
2223import java .io .ByteArrayOutputStream ;
@@ -41,12 +42,11 @@ private static class EntityValues {
4142
4243 // this generates the supporting array for mapping a character to a unique id
4344 // for the double array trie
45+ // step 1
4446 @ Test
47+ @ Disabled
4548 void generateCharactersMappingArray () throws IOException {
46- Type type = (new TypeToken <Map <String , EntityValues >>() {
47- }).getType ();
48- String json = Files .readString (Paths .get ("src/test/resources/entities.json" ));
49- Map <String , EntityValues > m = new GsonBuilder ().create ().fromJson (json , type );
49+ Map <String , EntityValues > m = getEntitiesMap ();
5050
5151 var allUsedChars = new TreeSet <Integer >();
5252 for (String key : m .keySet ()) {
@@ -56,6 +56,7 @@ void generateCharactersMappingArray() throws IOException {
5656 var firstChar = allChars .get (0 );
5757 var lastChar = allChars .get (allChars .size () - 1 );
5858 // mapping function
59+ System .out .println ("private static final int MAX_CHAR_ID = " + allChars .size () + ";" );
5960 System .out .println ("public int charId(char c) {" );
6061 System .out .printf (" return c >= %d && c <= %d ? entitiesCharIdx[c - %d] : -1;\n " , firstChar , lastChar , firstChar );
6162 System .out .println ("}" );
@@ -70,14 +71,31 @@ void generateCharactersMappingArray() throws IOException {
7071 }
7172 System .out .println ("}" );
7273 //
73- System .out .println (allUsedChars .first () + " " + allUsedChars .last () + ";" );
7474 }
7575
76- public static void main ( String [] args ) throws IOException {
76+ private static Map < String , EntityValues > getEntitiesMap ( ) throws IOException {
7777 Type type = (new TypeToken <Map <String , EntityValues >>() {
7878 }).getType ();
7979 String json = Files .readString (Paths .get ("src/test/resources/entities.json" ));
8080 Map <String , EntityValues > m = new GsonBuilder ().create ().fromJson (json , type );
81+ return m ;
82+ }
83+
84+ // step 2
85+ @ Test
86+ @ Disabled
87+ void pregenerateSupportArray () throws IOException {
88+ var entities = getEntitiesMap ();
89+ var dat = new DoubleArrayTrie ();
90+ for (String key : entities .keySet ()) {
91+ dat .insert (key );
92+ }
93+ System .out .println (Arrays .toString (dat .base ));
94+ System .out .println (Arrays .toString (dat .check ));
95+ }
96+
97+ public static void main (String [] args ) throws IOException {
98+ Map <String , EntityValues > m = getEntitiesMap ();
8199
82100
83101 // we can iterate for making a and array for mapping char -> id!
0 commit comments