1 5 package org.h2.test.bench; 6 7 import java.math.BigDecimal ; 8 import java.math.BigInteger ; 9 import java.util.Random ; 10 11 public class BenchCRandom { 12 13 private Random random = new Random (10); 14 15 int getNonUniform(int a, int min, int max) { 16 int c = 0; 17 return (((getInt(0, a) | getInt(min, max)) + c) % (max - min + 1)) 18 + min; 19 } 20 21 int getInt(int min, int max) { 22 return max <= min ? min : (random.nextInt(max - min) + min); 23 } 24 25 boolean[] getBoolean(int length, int trueCount) { 26 boolean[] data = new boolean[length]; 27 for (int i = 0, pos; i < trueCount; i++) { 28 do { 29 pos = getInt(0, length); 30 } while (data[pos]); 31 data[pos] = true; 32 } 33 return data; 34 } 35 36 String replace(String text, String replacement) { 37 int pos = getInt(0, text.length() - replacement.length()); 38 StringBuffer buffer = new StringBuffer (text); 39 buffer.replace(pos, pos + 7, replacement); 40 return buffer.toString(); 41 } 42 43 String getNumberString(int min, int max) { 44 int len = getInt(min, max); 45 char[] buff = new char[len]; 46 for (int i = 0; i < len; i++) { 47 buff[i] = (char) getInt('0', '9'); 48 } 49 return new String (buff); 50 } 51 52 String [] getAddress() { 53 String str1 = getString(10, 20); 54 String str2 = getString(10, 20); 55 String city = getString(10, 20); 56 String state = getString(2); 57 String zip = getNumberString(9, 9); 58 return new String [] { str1, str2, city, state, zip }; 59 } 60 61 String getString(int min, int max) { 62 return getString(getInt(min, max)); 63 } 64 65 String getString(int len) { 66 char[] buff = new char[len]; 67 for (int i = 0; i < len; i++) { 68 buff[i] = (char) getInt('A', 'Z'); 69 } 70 return new String (buff); 71 } 72 73 int[] getPermutation(int length) { 74 int[] data = new int[length]; 75 for (int i = 0; i < length; i++) { 76 data[i] = i; 77 } 78 for (int i = 0; i < length; i++) { 79 int j = getInt(0, length); 80 int temp = data[i]; 81 data[i] = data[j]; 82 data[j] = temp; 83 } 84 return data; 85 } 86 87 88 BigDecimal getBigDecimal(int value, int scale) { 89 return new BigDecimal (new BigInteger (String.valueOf(value)), scale); 90 } 91 92 String getLastname(int i) { 93 String [] n = { "BAR", "OUGHT", "ABLE", "PRI", "PRES", "ESE", "ANTI", 94 "CALLY", "ATION", "EING" }; 95 StringBuffer buff = new StringBuffer (); 96 buff.append(n[i / 100]); 97 buff.append(n[(i / 10) % 10]); 98 buff.append(n[i % 10]); 99 return buff.toString(); 100 } 101 102 } 103 | Popular Tags |