Example #1
0
 private void checkIterator(BytesTrieEnumerator iter, StringAndValue[] data, int dataLength)
 {
     for (int i = 0; i < dataLength; ++i)
     {
         if (!iter.MoveNext())
         {
             Errln("trie iterator MoveNext()=false for item " + i + ": " + data[i].s);
             break;
         }
         BytesTrieEntry entry       = iter.Current;
         StringBuilder  bytesString = new StringBuilder();
         for (int j = 0; j < entry.BytesLength; ++j)
         {
             bytesString.Append((char)(entry[j] & 0xff));
         }
         if (!data[i].s.ContentEquals(bytesString))
         {
             Errln(String.Format("trie iterator next().getString()={0} but expected {1} for item {2:d}",
                                 bytesString, data[i].s, i));
         }
         if (entry.value != data[i].value)
         {
             Errln(String.Format("trie iterator next().GetValue()={0:d}=0x{1:x} but expected {2:d}=0x{3:x} for item {4:d}: {5}",
                                 entry.value, entry.value,
                                 data[i].value, data[i].value,
                                 i, data[i].s));
         }
     }
     if (iter.MoveNext())
     {
         Errln("trie iterator MoveNext()=true after all items");
     }
     // ICU4N specific - this test doesn't apply in .NET
     //try
     //{
     //    iter.Next();
     //    Errln("trie iterator next() did not throw NoSuchElementException after all items");
     //}
     //catch (NoSuchElementException e)
     //{
     //    // good
     //}
 }