List of usage examples for org.apache.commons.lang.math IntRange IntRange
public IntRange(Number number)
Constructs a new IntRange using the specified number as both the minimum and maximum in this range.
From source file:edu.harvard.med.screensaver.util.CollectionUtilsTest.java
public void testSplitIntoSequentialRanges() { assertEquals(ImmutableList.of(new IntRange(1)), CollectionUtils.splitIntoSequentialRanges(ImmutableSortedSet.of(1))); assertEquals(ImmutableList.of(new IntRange(1, 3)), CollectionUtils.splitIntoSequentialRanges(ImmutableSortedSet.of(1, 2, 3))); assertEquals(ImmutableList.of(new IntRange(1, 1), new IntRange(3, 3)), CollectionUtils.splitIntoSequentialRanges(ImmutableSortedSet.of(1, 3))); assertEquals(ImmutableList.of(new IntRange(1, 2), new IntRange(4, 5)), CollectionUtils.splitIntoSequentialRanges(ImmutableSortedSet.of(1, 2, 4, 5))); assertEquals(ImmutableList.of(new IntRange(1, 2), new IntRange(4, 4)), CollectionUtils.splitIntoSequentialRanges(ImmutableSortedSet.of(1, 2, 4))); assertEquals(ImmutableList.of(new IntRange(1, 2), new IntRange(4, 4), new IntRange(6, 8)), CollectionUtils.splitIntoSequentialRanges(ImmutableSortedSet.of(1, 2, 4, 6, 7, 8))); }
From source file:com.linkedin.pinot.broker.pruner.SegmentZKMetadataPrunerTest.java
@Test public void testPruner() { SegmentZKMetadata metadata = new OfflineSegmentZKMetadata(); Map<String, ColumnPartitionMetadata> columnPartitionMap = new HashMap<>(); int expectedPartition = 3; columnPartitionMap.put(PARTITION_COLUMN, new ColumnPartitionMetadata(PARTITION_FUNCTION_NAME, NUM_PARTITION, Collections.singletonList(new IntRange(expectedPartition)))); SegmentZKMetadataPrunerService prunerService = new SegmentZKMetadataPrunerService( new String[] { PRUNER_NAME }); SegmentPartitionMetadata segmentPartitionMetadata = new SegmentPartitionMetadata(columnPartitionMap); metadata.setPartitionMetadata(segmentPartitionMetadata); Pql2Compiler compiler = new Pql2Compiler(); for (int actualPartition = 0; actualPartition < NUM_PARTITION; actualPartition++) { String query = "select count(*) from myTable where " + PARTITION_COLUMN + " = " + actualPartition; BrokerRequest brokerRequest = compiler.compileToBrokerRequest(query); SegmentPrunerContext prunerContext = new SegmentPrunerContext(brokerRequest); Assert.assertEquals(prunerService.prune(metadata, prunerContext), (actualPartition != expectedPartition)); }/*w w w . j a va 2 s. c o m*/ }
From source file:edu.harvard.med.screensaver.util.CollectionUtils.java
public static List<IntRange> splitIntoSequentialRanges(SortedSet<Integer> integers) { List<IntRange> ranges = Lists.newArrayList(); Iterator<Integer> iter = integers.iterator(); if (iter.hasNext()) { IntRange range = new IntRange(iter.next()); while (iter.hasNext()) { int next = iter.next(); if (next - 1 == range.getMaximumInteger()) { range = new IntRange(range.getMinimumInteger(), next); } else { ranges.add(range);/* www.j ava2 s . c o m*/ range = new IntRange(next); } } ranges.add(range); } return ranges; }
From source file:com.linkedin.pinot.controller.utils.SegmentMetadataMockUtils.java
public static SegmentMetadata mockSegmentMetadataWithPartitionInfo(String tableName, String segmentName, String columnName, int partitionNumber) { ColumnMetadata columnMetadata = mock(ColumnMetadata.class); List<IntRange> partitionRanges = new ArrayList<>(); partitionRanges.add(new IntRange(partitionNumber)); when(columnMetadata.getPartitionRanges()).thenReturn(partitionRanges); SegmentMetadataImpl segmentMetadata = mock(SegmentMetadataImpl.class); if (columnName != null) { when(segmentMetadata.getColumnMetadataFor(columnName)).thenReturn(columnMetadata); }// w ww .j a va2 s. c o m when(segmentMetadata.getTableName()).thenReturn(tableName); when(segmentMetadata.getName()).thenReturn(segmentName); when(segmentMetadata.getCrc()).thenReturn("0"); return segmentMetadata; }
From source file:au.org.ala.delta.rtf.RTFUtils.java
public static IntRange markKeyword(String text) { FirstRTFKeywordMarker handler = new FirstRTFKeywordMarker(); RTFReader reader = new RTFReader(text, handler); handler.setReader(reader);/*w w w. jav a2 s. co m*/ try { reader.parse(); } catch (Exception ex) { // Ignore, and return the original text return new IntRange(-1); } return handler.getFirstKeywordPosition(); }
From source file:com.linkedin.pinot.common.metadata.SegmentZKMetadataTest.java
@Test public void segmentPartitionMetadataTest() throws IOException { // Test for partition metadata serialization/de-serialization. String expectedMetadataString = "{\"columnPartitionMap\":{" + "\"column1\":{\"functionName\":\"func1\",\"numPartitions\":7,\"partitionRanges\":\"[5 5],[7 7]\"}," + "\"column2\":{\"functionName\":\"func2\",\"numPartitions\":11,\"partitionRanges\":\"[11 11],[13 13]\"}}}"; Assert.assertEquals(SegmentPartitionMetadata.fromJsonString(expectedMetadataString).toJsonString(), expectedMetadataString);/*from w ww . j a v a2s.co m*/ Map<String, ColumnPartitionMetadata> columnPartitionMetadataMap = new HashMap<>(); columnPartitionMetadataMap.put("column", new ColumnPartitionMetadata("foo", 7, Collections.singletonList(new IntRange(11)))); SegmentPartitionMetadata expectedPartitionMetadata = new SegmentPartitionMetadata( columnPartitionMetadataMap); // Test partition metadata in OfflineSegmentZkMetadata ZNRecord znRecord = getTestOfflineSegmentZNRecord(); znRecord.setSimpleField(CommonConstants.Segment.PARTITION_METADATA, expectedPartitionMetadata.toJsonString()); SegmentZKMetadata expectedSegmentMetadata = new OfflineSegmentZKMetadata(znRecord); SegmentPartitionMetadata actualPartitionMetadata = expectedSegmentMetadata.getPartitionMetadata(); Assert.assertEquals(actualPartitionMetadata, expectedPartitionMetadata); Assert.assertEquals(expectedSegmentMetadata, new OfflineSegmentZKMetadata(expectedSegmentMetadata.toZNRecord())); // Test partition metadata in RealtimeSegmentZkMetadata znRecord = getTestDoneRealtimeSegmentZNRecord(); znRecord.setSimpleField(CommonConstants.Segment.PARTITION_METADATA, expectedPartitionMetadata.toJsonString()); expectedSegmentMetadata = new RealtimeSegmentZKMetadata(znRecord); actualPartitionMetadata = expectedSegmentMetadata.getPartitionMetadata(); Assert.assertEquals(actualPartitionMetadata, expectedPartitionMetadata); Assert.assertEquals(expectedSegmentMetadata, new RealtimeSegmentZKMetadata(expectedSegmentMetadata.toZNRecord())); }
From source file:au.org.ala.delta.translation.intkey.IntkeyItemsFileWriter.java
public Pair<List<IntRange>, Set<Integer>> writeIntegerAttributes() { List<IntRange> intRanges = new ArrayList<IntRange>(); Iterator<IdentificationKeyCharacter> keyChars = _dataSet.identificationKeyCharacterIterator(); Set<Integer> convertToReal = new HashSet<Integer>(); while (keyChars.hasNext()) { IdentificationKeyCharacter keyChar = keyChars.next(); IntRange minMax = new IntRange(WriteOnceIntkeyItemsFile.CONFOR_INT_MAX); if (keyChar.getCharacterType() == CharacterType.IntegerNumeric) { Pair<IntRange, Boolean> result = writeIntegerAttributes(keyChar.getFilteredCharacterNumber(), keyChar.getCharacter()); minMax = result.getFirst();/*from w w w . java2s . c om*/ if (result.getSecond()) { convertToReal.add(keyChar.getCharacterNumber()); } } intRanges.add(minMax); } return new Pair<List<IntRange>, Set<Integer>>(intRanges, convertToReal); }
From source file:com.linkedin.pinot.broker.routing.builder.PartitionAwareOfflineRoutingTableBuilderTest.java
private SegmentZKMetadata buildOfflineSegmentZKMetadata(String segmentName, int partition) { OfflineSegmentZKMetadata metadata = new OfflineSegmentZKMetadata(); Map<String, ColumnPartitionMetadata> columnPartitionMap = new HashMap<>(); columnPartitionMap.put(PARTITION_COLUMN, new ColumnPartitionMetadata(PARTITION_FUNCTION_NAME, NUM_PARTITION, Collections.singletonList(new IntRange(partition)))); SegmentPartitionMetadata segmentPartitionMetadata = new SegmentPartitionMetadata(columnPartitionMap); metadata.setSegmentName(segmentName); metadata.setPartitionMetadata(segmentPartitionMetadata); return metadata; }
From source file:au.org.ala.delta.translation.intkey.IntkeyItemsFileWriter.java
private Pair<IntRange, Boolean> writeIntegerAttributes(int filteredCharacterNumber, Character character) { // Returning null here will trigger a change from integer to real // character type. if (_context.getTreatIntegerCharacterAsReal(character.getCharacterId())) { return new Pair<IntRange, Boolean>(new IntRange(0), true); }/*from ww w.j a v a2s. c o m*/ Pair<IntRange, Boolean> result = determineIntegerRange(character); IntRange characterRange = result.getFirst(); if (!result.getSecond()) { int unfilteredCharNumber = character.getCharacterId(); int numStates = characterRange.getMaximumInteger() - characterRange.getMinimumInteger(); List<BitSet> attributes = new ArrayList<BitSet>(); Iterator<FilteredItem> items = _dataSet.filteredItems(); while (items.hasNext()) { FilteredItem item = items.next(); // Turn into bitset. BitSet bits = new BitSet(); IntegerAttribute attribute = (IntegerAttribute) _dataSet .getAttribute(item.getItem().getItemNumber(), unfilteredCharNumber); if (isInapplicable(attribute)) { bits.set(numStates + 3); if (attribute.isInherited()) { attributes.add(bits); continue; } } if (attribute.isUnknown()) { attributes.add(bits); continue; } List<NumericRange> ranges = attribute.getNumericValue(); for (NumericRange range : ranges) { Range usedRange; if (_context.getUseNormalValues(unfilteredCharNumber)) { usedRange = range.getNormalRange(); } else { usedRange = range.getFullRange(); } for (int j = usedRange.getMinimumInteger(); j <= usedRange.getMaximumInteger(); j++) { if (j < characterRange.getMinimumInteger()) { bits.set(0); } else if (j <= characterRange.getMaximumInteger()) { bits.set(j - characterRange.getMinimumInteger() + 1); } else { bits.set(numStates + 2); } } } attributes.add(bits); } _itemsFile.writeAttributeBits(filteredCharacterNumber, attributes, numStates + 4); } return new Pair<IntRange, Boolean>(characterRange, result.getSecond()); }
From source file:au.org.ala.delta.translation.intkey.IntkeyItemsFileWriter.java
private Pair<IntRange, Boolean> determineIntegerRange(Character intChar) { List<Integer> values = new ArrayList<Integer>(); boolean hasMultiRangeAttribute = populateValues(intChar.getCharacterId(), values); if (values.size() == 0) { return new Pair<IntRange, Boolean>(new IntRange(0), false); }//from w w w. j a v a 2 s. co m boolean outOfRange = false; IntRange minMax = findMinMaxOfRange(values); int min = minMax.getMinimumInteger(); int max = minMax.getMaximumInteger(); int upperLimit = hasMultiRangeAttribute ? INTEGER_RANGE_MAX_THRESHOLD : INTEGER_RANGE_WARNING_THRESHOLD; int range = max - min + 1; int originalSize = values.size(); while (range > upperLimit && !outOfRange) { values = values.subList(0, values.size() - 1); minMax = findMinMaxOfRange(values); min = minMax.getMinimumInteger(); max = minMax.getMaximumInteger(); range = max - min + 1; if (values.size() < originalSize / 2d) { outOfRange = true; } } return new Pair<IntRange, Boolean>(new IntRange(min, max), outOfRange); }