Esempio n. 1
0
  @SuppressWarnings("deprecation")
  public void testThousandsOfSymbolsWithOldBytes() throws IOException {
    final int SEED = 33333;

    BytesToNameCanonicalizer symbolsBRoot = BytesToNameCanonicalizer.createRoot(SEED);
    final Charset utf8 = Charset.forName("UTF-8");
    int exp = 0;

    for (int doc = 0; doc < 100; ++doc) {
      BytesToNameCanonicalizer symbolsB =
          symbolsBRoot.makeChild(JsonFactory.Feature.collectDefaults());
      for (int i = 0; i < 250; ++i) {
        String name = "f_" + doc + "_" + i;

        int[] quads = BytesToNameCanonicalizer.calcQuads(name.getBytes(utf8));
        symbolsB.addName(name, quads, quads.length);
        Name n = symbolsB.findName(quads, quads.length);
        assertEquals(name, n.getName());
      }
      symbolsB.release();
      exp += 250;
      if (exp > BytesToNameCanonicalizer.MAX_ENTRIES_FOR_REUSE) {
        exp = 0;
      }
      assertEquals(exp, symbolsBRoot.size());
    }
  }