2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.yangtools.yang.model.util.type;
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertTrue;
14 import java.math.BigDecimal;
15 import java.math.BigInteger;
16 import java.util.function.Function;
17 import org.junit.Test;
19 public class NumberUtilTest {
22 public void testRangeCoveredForShort() {
23 final short min = 100;
24 final short superMin = 50;
25 final short max = 200;
26 final short superMax = 300;
28 assertTrue(NumberUtil.isRangeCovered(min, max, superMin, superMax));
32 public void testRangeCoveredForLong() {
33 final long min = 100L;
34 final long superMin = 50L;
35 final long max = 200L;
36 final long superMax = 300L;
38 assertTrue(NumberUtil.isRangeCovered(min, max, superMin, superMax));
42 public void testRangeCoveredForBigDecimal() {
43 final BigDecimal min = new BigDecimal(100.0);
44 final BigDecimal superMin = new BigDecimal(50.0);
45 final BigDecimal max = new BigDecimal(200.0);
46 final BigDecimal superMax = new BigDecimal(300.0);
48 assertTrue(NumberUtil.isRangeCovered(min, max, superMin, superMax));
52 public void testRangeCoveredForBigInteger() {
53 final BigInteger min = new BigInteger("100");
54 final BigInteger superMin = new BigInteger("50");
55 final BigInteger max = new BigInteger("200");
56 final BigInteger superMax = new BigInteger("300");
58 assertTrue(NumberUtil.isRangeCovered(min, max, superMin, superMax));
61 @Test(expected = IllegalArgumentException.class)
62 public void testRangeCoveredForUnsupportedNumberType() {
63 final double min = 100.0;
64 final double superMin = 50.0;
65 final double max = 200.0;
66 final double superMax = 300.0;
68 NumberUtil.isRangeCovered(min, max, superMin, superMax);
72 public void testConverterToShort() {
73 final Short shortNum = 20;
74 final Function<Number, Short> numberFunction = NumberUtil.converterTo(Short.class);
75 assertEquals(shortNum, numberFunction.apply(shortNum));
77 final byte byteNum = 20;
78 assertEquals(shortNum, numberFunction.apply(byteNum));
80 final int intNum = 20;
81 assertEquals(shortNum, numberFunction.apply(intNum));
85 public void testConverterToInteger() {
86 final Integer intNum = 20;
87 final byte byteNum = 20;
88 final Function<Number, Integer> numberFunction = NumberUtil.converterTo(Integer.class);
89 assertEquals(intNum, numberFunction.apply(byteNum));
93 public void testConverterToLong() {
94 final Long longNum = 20L;
95 final Function<Number, Long> numberFunction = NumberUtil.converterTo(Long.class);
96 assertEquals(longNum, numberFunction.apply(longNum));
98 final byte byteNum = 20;
99 assertEquals(longNum, numberFunction.apply(byteNum));
101 final BigInteger bigIntNum = new BigInteger("20");
102 assertEquals(longNum, numberFunction.apply(bigIntNum));
106 public void testConverterToBigDecimal() {
107 BigDecimal bigDecNum = new BigDecimal(20.0);
108 final Function<Number, BigDecimal> numberFunction = NumberUtil.converterTo(BigDecimal.class);
109 assertEquals(bigDecNum, numberFunction.apply(bigDecNum));
112 assertEquals(bigDecNum, numberFunction.apply(intNum));
114 double doubleNum = 20.0;
115 bigDecNum = new BigDecimal("20.0");
116 assertEquals(bigDecNum, numberFunction.apply(doubleNum));
119 @Test public void testConverterToBigInteger() {
120 final BigInteger bigIntNum = new BigInteger("20");
121 final Function<Number, BigInteger> numberFunction = NumberUtil.converterTo(BigInteger.class);
122 assertEquals(bigIntNum, numberFunction.apply(bigIntNum));
124 final int intNum = 20;
125 assertEquals(bigIntNum, numberFunction.apply(intNum));
127 final BigDecimal bigDecNum = new BigDecimal(20.0);
128 assertEquals(bigIntNum, numberFunction.apply(bigDecNum));