Example usage for org.apache.commons.lang.math NumberRange containsNumber

List of usage examples for org.apache.commons.lang.math NumberRange containsNumber

Introduction

In this page you can find the example usage for org.apache.commons.lang.math NumberRange containsNumber.

Prototype

public boolean containsNumber(Number number) 

Source Link

Document

Tests whether the specified number occurs within this range.

null is handled and returns false.

Usage

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;
}