List of usage examples for org.apache.commons.lang.math NumberRange containsNumber
public boolean containsNumber(Number number)
Tests whether the specified number occurs within this range.
null is handled and returns false.
From source file:io.seldon.recommendation.VariationTestingClientStrategyTest.java
@Test public void rangeTest() { BigDecimal ratioTotal = new BigDecimal(1.0); BigDecimal currentMax = new BigDecimal(0.0); BigDecimal r1 = new BigDecimal(0.9); BigDecimal r2 = new BigDecimal(0.1); NumberRange range1 = new NumberRange(currentMax, currentMax.add(r1.divide(ratioTotal, 5, BigDecimal.ROUND_UP))); currentMax = currentMax.add(r1);// ww w . j a v a2s. c om NumberRange range2 = new NumberRange(currentMax.add(new BigDecimal(0.0001)), currentMax.add(r2.divide(ratioTotal, 5, BigDecimal.ROUND_UP))); BigDecimal t = new BigDecimal(0.900001); Assert.assertTrue(range1.containsNumber(t)); Assert.assertFalse(range2.containsNumber(t)); BigDecimal t2 = new BigDecimal(0.901); Assert.assertFalse(range1.containsNumber(t2)); Assert.assertTrue(range2.containsNumber(t2)); }
From source file:org.cbioportal.genome_nexus.annotation.util.Numerical.java
/** * Checks if the given input value overlaps the start and end values. * Input value can be a range value too. *//from w w w . j a va 2s. c o m * This function assumes that start value is smaller than the end value. * * @param input input string (a single value or a range value) * @param start start value * @param end end value * @return true if there is an overlap between values */ public static boolean overlaps(String input, String start, String end) { Integer startValue = null; Integer endValue = null; Integer minPos = null; Integer maxPos = null; boolean overlap = false; List<Integer> positions = extractPositiveIntegers(input); if (positions.size() > 0) { minPos = Collections.min(positions); maxPos = Collections.max(positions); } if (end != null && end.matches("\\d+")) { endValue = Integer.parseInt(end); } if (start != null && start.matches("\\d+")) { startValue = Integer.parseInt(start); } NumberRange range; if (startValue != null) { // if end value is not valid use start value as the end value if (endValue == null || endValue < startValue) { endValue = startValue; } range = new NumberRange(startValue, endValue); // check for an overlap if (range.containsNumber(minPos) || range.containsNumber(maxPos)) { overlap = true; } } // input can be a range value too! if (minPos != null && maxPos != null) { range = new NumberRange(minPos, maxPos); if (range.containsNumber(startValue) || range.containsNumber(endValue)) { overlap = true; } } return overlap; }