示例#1
0
 protected void assertIndex(int expected, String s) {
   // System.out.println("Adding " + s + ", expecting " + expected);
   int index = indexer.getOrCreateIndex(s);
   // System.out.println(csi);
   assertEquals(expected, index);
   mappings.put(expected, s);
 }
示例#2
0
 private void assertConcurrentUpdates(Function<Integer, String> keyGenerator) throws Exception {
   final AtomicInteger safeIndex = new AtomicInteger(-1);
   List<String> keys = Lists.newArrayListWithCapacity(ATTEMPTS);
   ThreadPoolExecutor executor =
       new ThreadPoolExecutor(
           3, 3, 5, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(ATTEMPTS));
   synchronized (indexer) {
     for (int i = 0; i < ATTEMPTS; i++) {
       final String key = keyGenerator.apply(i);
       keys.add(key);
       executor.execute(
           new Runnable() {
             @Override
             public void run() {
               int index = indexer.getOrCreateIndex(key);
               if (safeIndex.get() < index) {
                 safeIndex.set(index);
               }
               indexer.addString(key);
             }
           });
     }
   }
   try {
     while (!executor.getQueue().isEmpty()) {
       // Validate that we can execute concurrent queries too.
       if (safeIndex.get() >= 0) {
         int index = safeIndex.get();
         // Retrieve string using random existing index and validate reverse mapping.
         String key = indexer.getStringForIndex(index);
         assertNotNull(key);
         assertEquals(index, indexer.getIndex(key));
       }
     }
   } finally {
     executor.shutdown();
     executor.awaitTermination(TestUtils.WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
   }
   for (String key : keys) {
     // Validate mapping between keys and indices.
     assertEquals(key, indexer.getStringForIndex(indexer.getIndex(key)));
   }
 }
示例#3
0
 protected void assertContent() {
   for (int i = 0; i < indexer.size(); i++) {
     assertNotNull(mappings.get(i));
     assertThat(mappings).containsEntry(i, indexer.getStringForIndex(i));
   }
 }
示例#4
0
 protected void assertNoIndex(String s) {
   int size = indexer.size();
   assertEquals(-1, indexer.getIndex(s));
   assertEquals(size, indexer.size());
 }
示例#5
0
 protected void assertSize(int expected) {
   assertEquals(expected, indexer.size());
 }