(String[] args)
| 45 | } |
| 46 | |
| 47 | public static void main(String[] args) { |
| 48 | if (args.length < 5) { |
| 49 | System.out.println("BitSetTest <bitSetSize> <numSets> <numBitsSet> <testName> <iter> <impl>"); |
| 50 | System.out.println(" impl => open for FixedBitSet"); |
| 51 | } |
| 52 | int bitSetSize = Integer.parseInt(args[0]); |
| 53 | int numSets = Integer.parseInt(args[1]); |
| 54 | int numBitsSet = Integer.parseInt(args[2]); |
| 55 | String test = args[3]; |
| 56 | int iter = Integer.parseInt(args[4]); |
| 57 | String impl = args.length > 5 ? args[5].intern() : "bit"; |
| 58 | |
| 59 | BitSet[] sets = new BitSet[numSets]; |
| 60 | FixedBitSet[] osets = new FixedBitSet[numSets]; |
| 61 | |
| 62 | for (int i = 0; i < numSets; i++) { |
| 63 | sets[i] = new BitSet(bitSetSize); |
| 64 | osets[i] = new FixedBitSet(bitSetSize); |
| 65 | randomSets(bitSetSize, numBitsSet, sets[i], osets[i]); |
| 66 | } |
| 67 | |
| 68 | BitSet bs = new BitSet(bitSetSize); |
| 69 | FixedBitSet obs = new FixedBitSet(bitSetSize); |
| 70 | randomSets(bitSetSize, numBitsSet, bs, obs); |
| 71 | |
| 72 | long ret = 0; |
| 73 | |
| 74 | final RTimer timer = new RTimer(); |
| 75 | |
| 76 | if ("union".equals(test)) { |
| 77 | for (int it = 0; it < iter; it++) { |
| 78 | for (int i = 0; i < numSets; i++) { |
| 79 | if (impl.equals("open")) { |
| 80 | FixedBitSet other = osets[i]; |
| 81 | obs.or(other); |
| 82 | } else { |
| 83 | BitSet other = sets[i]; |
| 84 | bs.or(other); |
| 85 | } |
| 86 | } |
| 87 | } |
| 88 | } |
| 89 | |
| 90 | if ("cardinality".equals(test)) { |
| 91 | for (int it = 0; it < iter; it++) { |
| 92 | for (int i = 0; i < numSets; i++) { |
| 93 | if (impl.equals("open")) { |
| 94 | ret += osets[i].cardinality(); |
| 95 | } else { |
| 96 | ret += sets[i].cardinality(); |
| 97 | } |
| 98 | } |
| 99 | } |
| 100 | } |
| 101 | |
| 102 | if ("get".equals(test)) { |
| 103 | for (int it = 0; it < iter; it++) { |
| 104 | for (int i = 0; i < numSets; i++) { |
nothing calls this directly
no test coverage detected