List of usage examples for com.google.common.collect Range upperEndpoint
public C upperEndpoint()
From source file:eu.itesla_project.modules.histo.tools.HistoDbPrintVoltageRangeTool.java
@Override public void run(CommandLine line) throws Exception { Interval interval = Interval.parse(line.getOptionValue("interval")); Path caseFile = Paths.get(line.getOptionValue("case-file")); Map<String, VoltageStats> ranges = new HashMap<>(); Network network = Importers.loadNetwork(caseFile); if (network == null) { throw new RuntimeException("Case '" + caseFile + "' not found"); }/*from w w w . j a v a 2s . c om*/ network.getStateManager().allowStateMultiThreadAccess(true); OfflineConfig config = OfflineConfig.load(); try (HistoDbClient histoDbClient = config.getHistoDbClientFactoryClass().newInstance().create()) { Set<HistoDbAttributeId> attrIds = new LinkedHashSet<>(); for (VoltageLevel vl : network.getVoltageLevels()) { attrIds.add(new HistoDbNetworkAttributeId(vl.getId(), HistoDbAttr.V)); } HistoDbStats stats = histoDbClient.queryStats(attrIds, interval, HistoDbHorizon.SN, false); for (VoltageLevel vl : network.getVoltageLevels()) { HistoDbNetworkAttributeId attrId = new HistoDbNetworkAttributeId(vl.getId(), HistoDbAttr.V); float min = stats.getValue(HistoDbStatsType.MIN, attrId, Float.NaN) / vl.getNominalV(); float max = stats.getValue(HistoDbStatsType.MAX, attrId, Float.NaN) / vl.getNominalV(); int count = (int) stats.getValue(HistoDbStatsType.COUNT, attrId, 0); VoltageStats vstats = new VoltageStats(Range.closed(min, max), count, vl.getNominalV()); for (Generator g : vl.getGenerators()) { vstats.pmax += g.getMaxP(); } ranges.put(vl.getId(), vstats); } } Table table = new Table(7, BorderStyle.CLASSIC_WIDE); table.addCell("ID"); table.addCell("vnom"); table.addCell("range"); table.addCell("min"); table.addCell("max"); table.addCell("count"); table.addCell("pmax"); ranges.entrySet().stream().sorted((e1, e2) -> { VoltageStats stats1 = e1.getValue(); VoltageStats stats2 = e2.getValue(); Range<Float> r1 = stats1.range; Range<Float> r2 = stats2.range; float s1 = r1.upperEndpoint() - r1.lowerEndpoint(); float s2 = r2.upperEndpoint() - r2.lowerEndpoint(); return Float.compare(s1, s2); }).forEach(e -> { String vlId = e.getKey(); VoltageStats stats = e.getValue(); Range<Float> r = stats.range; float s = r.upperEndpoint() - r.lowerEndpoint(); table.addCell(vlId); table.addCell(Float.toString(stats.vnom)); table.addCell(Float.toString(s)); table.addCell(Float.toString(r.lowerEndpoint())); table.addCell(Float.toString(r.upperEndpoint())); table.addCell(Integer.toString(stats.count)); table.addCell(Float.toString(stats.pmax)); }); System.out.println(table.render()); }
From source file:org.openmhealth.shimmer.common.transformer.FixedTimeZoneDateTimeRangeTransformer.java
@Override public Range<OffsetDateTime> transformRange(Range<OffsetDateTime> inputRange) { if (inputRange.hasLowerBound() && inputRange.hasUpperBound()) { return Range.closedOpen(toFixedTimeZone(inputRange.lowerEndpoint()), toFixedTimeZone(inputRange.upperEndpoint())); }//from w w w .j a v a2 s . c om if (inputRange.hasLowerBound()) { return Range.atLeast(toFixedTimeZone(inputRange.lowerEndpoint())); } if (inputRange.hasUpperBound()) { return Range.lessThan(toFixedTimeZone(inputRange.upperEndpoint())); } return Range.all(); }
From source file:coolmapplugin.actions.MapSelectedToCytoscapeWithAggregatedValue.java
private HashMap<String, Double> getSelectedColumnAndRowNamesAndAggregatedValues( AggregationType aggregationType) { try {/* w ww . ja v a2 s . c o m*/ CoolMapObject obj = CoolMapMaster.getActiveCoolMapObject(); CoolMapView coolMapView = obj.getCoolMapView(); List<Range<Integer>> columnList = coolMapView.getSelectedColumns(); List<Range<Integer>> rowList = coolMapView.getSelectedRows(); HashMap<String, Double> nameValueHashMap = new HashMap<>(); for (Range<Integer> rangeColumn : columnList) { for (int i = rangeColumn.lowerEndpoint(); i < rangeColumn.upperEndpoint(); ++i) { String columnName = obj.getViewNodeColumn(i).getName(); LinkedList<Double> values = new LinkedList<>(); for (Range<Integer> rangeRow : rowList) { for (int j = rangeRow.lowerEndpoint(); j < rangeRow.upperEndpoint(); ++j) { Double value = (Double) obj.getViewValue(j, i); if (value == null) { continue; } values.add(value); } } Double aggregatedValue = getAggregatedValue(values, aggregationType); nameValueHashMap.put(columnName, aggregatedValue); } } for (Range<Integer> rangeRow : rowList) { for (int i = rangeRow.lowerEndpoint(); i < rangeRow.upperEndpoint(); ++i) { String rowName = obj.getViewNodeRow(i).getName(); LinkedList<Double> values = new LinkedList<>(); for (Range<Integer> rangeColumn : columnList) { for (int j = rangeColumn.lowerEndpoint(); j < rangeColumn.upperEndpoint(); ++j) { Double value = (Double) obj.getViewValue(i, j); if (value == null) { continue; } values.add(value); } } Double aggregatedValue = getAggregatedValue(values, aggregationType); nameValueHashMap.put(rowName, aggregatedValue); } } return nameValueHashMap; } catch (Exception e) { CMConsole.logError("Failed to get selected columns and rows. Internal Error : " + e.getMessage()); } return null; }
From source file:net.sf.mzmine.modules.peaklistmethods.identification.onlinedbsearch.databases.KEGGGateway.java
public String[] findCompounds(double mass, MZTolerance mzTolerance, int numOfResults, ParameterSet parameters) throws IOException { Range<Double> toleranceRange = mzTolerance.getToleranceRange(mass); String queryAddress = keggFindAddress1 + toleranceRange.lowerEndpoint() + "-" + toleranceRange.upperEndpoint() + keggFindAddress2; URL queryURL = new URL(queryAddress); String queryResult = InetUtils.retrieveData(queryURL); ArrayList<String> results = new ArrayList<String>(); Pattern pat = Pattern.compile("cpd:(C[0-9]+)"); Matcher matcher = pat.matcher(queryResult); while (matcher.find()) { String keggID = matcher.group(1); results.add(keggID);/* ww w. j av a2 s. c o m*/ } return results.toArray(new String[0]); }
From source file:org.robotframework.red.nattable.TableCellStringData.java
public int getCharacterIndexFrom(final int x, final int y) { if (coordinate.x <= x && x <= coordinate.x + extent.x && coordinate.y <= y && y < coordinate.y + extent.y) { // the (x,y) position is over the string final Range<Integer> startingRegion = getStartingRegion(extent.y, y - coordinate.y); int begin = startingRegion.lowerEndpoint(); int end = startingRegion.upperEndpoint(); int beginX = coordinate.x; int endX = beginX + extent.x; while (beginX < (endX - 1)) { final int midX = (beginX + endX) / 2; if (x >= midX) { beginX = midX;/*from w w w . ja v a 2 s.c o m*/ begin = (begin + end) / 2; } else { endX = midX; end = (begin + end) / 2; } } return begin; } return -1; }
From source file:com.github.parboiled1.grappa.backport.buffers.CharSequenceInputBuffer.java
@Override public String extractLine(final int lineNumber) { Preconditions.checkArgument(lineNumber > 0, "line number is negative"); final LineCounter counter = Futures.getUnchecked(lineCounter); final Range<Integer> range = counter.getLineRange(lineNumber); final int start = range.lowerEndpoint(); int end = range.upperEndpoint(); if (charAt(end - 1) == '\n') end--;/*from w ww . j a va 2 s . com*/ if (charAt(end - 1) == '\r') end--; return extract(start, end); }
From source file:org.pascani.dsl.dbmapper.databases.Influxdb.java
private Point makeRequestString(ChangeEvent e, Serializable value, Map<String, String> tags) { Builder point = Point.measurement(e.variable()).tag(tags).time(e.timestamp(), TimeUnit.MILLISECONDS); if (value instanceof Range<?>) { Range<?> range = (Range<?>) value; Number start = (Number) range.lowerEndpoint(); Number end = (Number) range.upperEndpoint(); point.addField("start", start + ""); point.addField("end", end + ""); point.addField("value", (end.doubleValue() - start.doubleValue()) + ""); } else if (value instanceof Number) { point.addField("value", (Number) value); } else if (value instanceof Boolean) { point.addField("value", (Boolean) value); } else if (value instanceof String) { point.addField("value", (String) value); }/* w w w . j a va 2 s . com*/ return point.build(); }
From source file:net.joala.data.random.AbstractRandomNumberProvider.java
/** * Provide a random number in the given range. * @param range (closed) range in which to choose a number from * @return random value//ww w.j ava 2 s . co m * @throws IllegalStateException if range is empty */ private T nextRandom(final Range<T> range) { checkState(!range.isEmpty(), "Range must not be empty."); final T lowerEndpoint = range.lowerEndpoint(); final T upperEndpoint = range.upperEndpoint(); final double random = nextRandomRatio(); return numberType.sum(numberType.percentOf(random, upperEndpoint), numberType.percentOf((1d - random), lowerEndpoint)); }
From source file:org.amelia.dsl.lib.util.PairMatcher.java
public List<Range<Integer>> redundantRegions() { if (this.regions == null) calculateRegions();//from w ww. j ava 2s . co m Collections.sort(this.regions, ascendent); List<Range<Integer>> redundantRegions = new ArrayList<Range<Integer>>(); for (int i = 0; i < this.regions.size(); i++) { Range<Integer> r1 = this.regions.get(i); for (Range<Integer> r2 : this.regions.subList(i + 1, this.regions.size())) { if (r1.lowerEndpoint() <= r2.lowerEndpoint() && r1.upperEndpoint() >= r2.upperEndpoint()) { redundantRegions.add(r2); } } } Collections.sort(this.regions, descendent); return redundantRegions; }
From source file:com.github.parboiled1.grappa.backport.buffers.CharSequenceInputBuffer.java
@SuppressWarnings("AutoUnboxing") @Override/* ww w . j a v a 2 s . c o m*/ public IndexRange getLineRange(final int lineNumber) { final Range<Integer> range = Futures.getUnchecked(lineCounter).getLineRange(lineNumber); return new IndexRange(range.lowerEndpoint(), range.upperEndpoint()); }