/** * Returns the {@linkplain #getMaxValue() maximum value} as a {@code double}. * If this range is unbounded, then {@link Double#POSITIVE_INFINITY} is returned. * * @return the maximum value. */ @SuppressWarnings("unchecked") public double getMaxDouble() { final Number value = getMaxValue(); return (value != null) ? value.doubleValue() : Double.POSITIVE_INFINITY; }
/** * Returns the {@linkplain #getMaxValue() maximum value} as a {@code double}. * If this range is unbounded, then {@link Double#POSITIVE_INFINITY} is returned. * * @return the maximum value. */ @SuppressWarnings("unchecked") public double getMaxDouble() { final Number value = getMaxValue(); return (value != null) ? value.doubleValue() : Double.POSITIVE_INFINITY; }
final NumberRange<?> range = ranges[i]; final Number minimum = range.getMinValue(); final Number maximum = range.getMaxValue(); if (range.isMinIncluded()) noDataValues.add(Numbers.cast(minimum, widestClass)); if (range.isMaxIncluded()) noDataValues.add(Numbers.cast(maximum, widestClass));
/** * Creates a range initialized to the given value. */ private MultiplicityRange(final NumberRange<Integer> range) { if (range != null) { lower = range.getMinValue(); if (lower == null) { lower = NilReason.UNKNOWN.createNilObject(Integer.class); } else if (!range.isMinIncluded()) { lower = Math.incrementExact(lower); } upper = new UnlimitedInteger(range.getMaxValue(), range.isMaxIncluded()); } else { lower = 0; upper = new UnlimitedInteger(); // Initialized to missing value. } }
if (range != null && !range.isEmpty()) { final Number min = range.getMinValue(); final Number max = range.getMaxValue(); final boolean isInteger = (min.doubleValue() >= Long.MIN_VALUE && max.doubleValue() <= Long.MAX_VALUE &&
if (range != null && !range.isEmpty()) { final Number min = range.getMinValue(); final Number max = range.getMaxValue(); final boolean isInteger = (min.doubleValue() >= Long.MIN_VALUE && max.doubleValue() <= Long.MAX_VALUE &&
/** * Tests the sample values range and converged values range after construction of a list of categories. */ @Test public void testRanges() { final CategoryList list = new CategoryList(categories(), null); assertSorted(list); assertTrue ("isMinIncluded", list.range.isMinIncluded()); assertFalse ("isMaxIncluded", list.range.isMaxIncluded()); assertFalse ("converse.isMinIncluded", list.converse.range.isMinIncluded()); // Because computed from maxValue before conversion. assertFalse ("converse.isMaxIncluded", list.converse.range.isMaxIncluded()); assertEquals("minValue", 0, ((Number) list.range .getMinValue()).doubleValue(), STRICT); assertEquals("maxValue", 120, ((Number) list.range .getMaxValue()).doubleValue(), STRICT); assertEquals("converse.minValue", -117, ((Number) list.converse.range.getMinValue()).doubleValue(), STRICT); assertEquals("converse.maxValue", 15, ((Number) list.converse.range.getMaxValue()).doubleValue(), STRICT); assertEquals("converse.minValue", -117, list.converse.range.getMinDouble(false), STRICT); assertEquals("converse.maxValue", 15, list.converse.range.getMaxDouble(false), STRICT); assertEquals("converse.minValue", -116, list.converse.range.getMinDouble(true), CategoryTest.EPS); assertEquals("converse.maxValue", 14.9, list.converse.range.getMaxDouble(true), CategoryTest.EPS); }
/** * Creates a category for data that are already real values. */ @Test public void testConvertedCategory() { final Random random = TestUtilities.createRandomNumberGenerator(); for (int pass=0; pass<3; pass++) { final double lower = random.nextDouble() * 5; final double upper = random.nextDouble() * 10 + lower; final Category category = new Category("Random", NumberRange.create(lower, true, upper, true), (MathTransform1D) MathTransforms.identity(1), null, null); assertSame ("converse", category, category.converse); assertEquals ("name", "Random", String.valueOf(category.name)); assertEquals ("name", "Random", String.valueOf(category.getName())); assertEquals ("minimum", lower, category.minimum, STRICT); assertEquals ("maximum", upper, category.maximum, STRICT); assertBoundEquals("range.minValue", lower, category.range.getMinValue()); assertBoundEquals("range.maxValue", upper, category.range.getMaxValue()); assertSame ("sampleRange", category.range, category.getSampleRange()); assertSame ("measurementRange", category.range, category.getMeasurementRange().get()); assertSame ("transferFunction", category.toConverse, category.getTransferFunction().get()); assertTrue ("toConverse.isIdentity", category.toConverse.isIdentity()); assertTrue ("isQuantitative", category.isQuantitative()); } }
assertEquals("maximum", 30f, range.getMaxValue());
/** * Tests a category with a NaN value. */ @Test public void testCategoryNaN() { final Category category = new Category("NaN", new NumberRange<>(Float.class, Float.NaN, true, Float.NaN, true), null, null, null); final NumberRange<?> range = category.getSampleRange(); assertSame ("converse", category, category.converse); assertEquals("name", "NaN", String.valueOf(category.name)); assertEquals("name", "NaN", String.valueOf(category.getName())); assertEquals("minimum", Double.NaN, category.minimum, STRICT); assertEquals("maximum", Double.NaN, category.maximum, STRICT); assertNull ("sampleRange", category.range); assertEquals("range.minValue", Float.NaN, range.getMinValue()); assertEquals("range.maxValue", Float.NaN, range.getMaxValue()); assertFalse ("measurementRange", category.getMeasurementRange().isPresent()); assertFalse ("transferFunction", category.getTransferFunction().isPresent()); assertTrue ("toConverse.isIdentity", category.toConverse.isIdentity()); assertFalse ("isQuantitative", category.isQuantitative()); } }
assertEquals ("maximum", upper*scale+offset, converse.maximum, EPS); assertBoundEquals("range.minValue", lower, category.range.getMinValue()); assertBoundEquals("range.maxValue", upper, category.range.getMaxValue()); assertBoundEquals("range.minValue", converse.minimum, converse.range.getMinValue()); assertBoundEquals("range.maxValue", converse.maximum, converse.range.getMaxValue()); assertSame ("sampleRange", category.range, category.getSampleRange()); assertSame ("sampleRange", converse.range, converse.getSampleRange());
assertEquals ("maximum", sample, category.maximum, STRICT); assertBoundEquals("range.minValue", sample, category.range.getMinValue()); assertBoundEquals("range.maxValue", sample, category.range.getMaxValue()); assertSame ("sampleRange", category.range, category.getSampleRange()); assertFalse ("measurementRange", category.getMeasurementRange().isPresent());