Package com.ibm.icu.dev.test.translit

Source Code of com.ibm.icu.dev.test.translit.UnicodeMapTest

//##header
//#if defined(FOUNDATION10) || defined(J2SE13)
//#else
/*
*******************************************************************************
* Copyright (C) 1996-2009, International Business Machines Corporation and    *
* others. All Rights Reserved.                                                *
*******************************************************************************
*/
package com.ibm.icu.dev.test.translit;

import com.ibm.icu.dev.test.*;
import com.ibm.icu.dev.test.util.UnicodeMap;
import com.ibm.icu.impl.Utility;
import java.util.*;

/**
* @test
* @summary General test of UnicodeSet
*/
public class UnicodeMapTest extends TestFmwk {
 
  static final int MODIFY_TEST_LIMIT = 32;
  static final int MODIFY_TEST_ITERATIONS = 100000;
 
  public static void main(String[] args) throws Exception {
    new UnicodeMapTest().run(args);
  }
 
  public void TestModify() {
    Random random = new Random(0);
    UnicodeMap unicodeMap = new UnicodeMap();
    HashMap hashMap = new HashMap();
    String[] values = {null, "the", "quick", "brown", "fox"};
    for (int count = 1; count <= MODIFY_TEST_ITERATIONS; ++count) {
      String value = values[random.nextInt(values.length)];
      int start = random.nextInt(MODIFY_TEST_LIMIT); // test limited range
      int end = random.nextInt(MODIFY_TEST_LIMIT);
      if (start > end) {
        int temp = start;
        start = end;
        end = temp;
      }
      int modCount = count & 0xFF;
      if (modCount == 0 && isVerbose()) {
        logln("***"+count);
        logln(unicodeMap.toString());
      }
      unicodeMap.putAll(start, end, value);
      if (modCount == 1 && isVerbose()) {
        logln(">>>\t" + Utility.hex(start) + ".." + Utility.hex(end) + "\t" + value);
        logln(unicodeMap.toString());
      }
      for (int i = start; i <= end; ++i) {
        hashMap.put(new Integer(i), value);
      }
      if (!hasSameValues(unicodeMap, hashMap)) {
        errln("Failed at " + count);
      }
    }
  }

  private boolean hasSameValues(UnicodeMap unicodeMap, HashMap hashMap) {
    for (int i = 0; i < MODIFY_TEST_LIMIT; ++i) {
      Object unicodeMapValue = unicodeMap.getValue(i);
      Object hashMapValue = hashMap.get(new Integer(i));
      if (unicodeMapValue != hashMapValue) {
        return false;
      }
    }
    return true;
  }
}
//#endif
TOP

Related Classes of com.ibm.icu.dev.test.translit.UnicodeMapTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.