1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, 13 * software distributed under the License is distributed on an 14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 * KIND, either express or implied. See the License for the 16 * specific language governing permissions and limitations 17 * under the License. 18 */ 19 package org.apache.commons.lang.math; 20 21 /** 22 * Test cases for the {@link DoubleRange} class. 23 * 24 * @author Apache Software Foundation 25 * @version $Id: DoubleRangeTest.java 905636 2010-02-02 14:03:32Z niallp $ 26 */ 27 public final class DoubleRangeTest extends AbstractRangeTest { 28 DoubleRangeTest(String name)29 public DoubleRangeTest(String name) { 30 super(name); 31 } 32 setUp()33 public void setUp() { 34 super.setUp(); 35 tenToTwenty = new DoubleRange(double10, double20); 36 otherRange = new NumberRange(ten, twenty); 37 } 38 createRange(Integer integer1, Integer integer2)39 protected Range createRange(Integer integer1, Integer integer2) { 40 return new DoubleRange(integer1, integer2); 41 } createRange(Integer integer)42 protected Range createRange(Integer integer) { 43 return new NumberRange(integer); 44 } 45 46 //-------------------------------------------------------------------------- 47 testConstructor1a()48 public void testConstructor1a() { 49 DoubleRange nr = new DoubleRange(8d); 50 assertEquals(double8, nr.getMinimumNumber()); 51 assertEquals(double8, nr.getMaximumNumber()); 52 53 try { 54 new DoubleRange(Double.NaN); 55 fail(); 56 } catch (IllegalArgumentException ex) {} 57 } 58 testConstructor1b()59 public void testConstructor1b() { 60 DoubleRange nr = new DoubleRange(double8); 61 assertSame(double8, nr.getMinimumNumber()); 62 assertSame(double8, nr.getMaximumNumber()); 63 64 Range r = new DoubleRange(nonComparableNumber); 65 66 try { 67 new DoubleRange(null); 68 fail(); 69 } catch (IllegalArgumentException ex) {} 70 try { 71 new DoubleRange(new Double(Double.NaN)); 72 fail(); 73 } catch (IllegalArgumentException ex) {} 74 } 75 testConstructor2a()76 public void testConstructor2a() { 77 DoubleRange nr = new DoubleRange(8d, 10d); 78 assertEquals(double8, nr.getMinimumNumber()); 79 assertEquals(double10, nr.getMaximumNumber()); 80 81 nr = new DoubleRange(10d, 8d); 82 assertEquals(double8, nr.getMinimumNumber()); 83 assertEquals(double10, nr.getMaximumNumber()); 84 85 try { 86 new DoubleRange(Double.NaN, 8d); 87 fail(); 88 } catch (IllegalArgumentException ex) {} 89 } 90 testConstructor2b()91 public void testConstructor2b() { 92 DoubleRange nr = new DoubleRange(double8, double10); 93 assertSame(double8, nr.getMinimumNumber()); 94 assertSame(double10, nr.getMaximumNumber()); 95 96 nr = new DoubleRange(double10, double8); 97 assertSame(double8, nr.getMinimumNumber()); 98 assertSame(double10, nr.getMaximumNumber()); 99 100 nr = new DoubleRange(double8, double10); 101 assertSame(double8, nr.getMinimumNumber()); 102 assertEquals(double10, nr.getMaximumNumber()); 103 104 // not null 105 try { 106 new DoubleRange(double8, null); 107 fail(); 108 } catch (IllegalArgumentException ex) {} 109 try { 110 new DoubleRange(null, double8); 111 fail(); 112 } catch (IllegalArgumentException ex) {} 113 try { 114 new DoubleRange(null, null); 115 fail(); 116 } catch (IllegalArgumentException ex) {} 117 118 try { 119 new DoubleRange(new Double(Double.NaN), double10); 120 fail(); 121 } catch (IllegalArgumentException ex) {} 122 } 123 124 //-------------------------------------------------------------------------- 125 testContainsNumber()126 public void testContainsNumber() { 127 assertEquals(false, tenToTwenty.containsNumber(null)); 128 assertEquals(true, tenToTwenty.containsNumber(nonComparableNumber)); 129 130 assertEquals(false, tenToTwenty.containsNumber(five)); 131 assertEquals(true, tenToTwenty.containsNumber(ten)); 132 assertEquals(true, tenToTwenty.containsNumber(fifteen)); 133 assertEquals(true, tenToTwenty.containsNumber(twenty)); 134 assertEquals(false, tenToTwenty.containsNumber(twentyFive)); 135 136 assertEquals(false, tenToTwenty.containsNumber(long8)); 137 assertEquals(true, tenToTwenty.containsNumber(long10)); 138 assertEquals(true, tenToTwenty.containsNumber(long12)); 139 assertEquals(true, tenToTwenty.containsNumber(long20)); 140 assertEquals(false, tenToTwenty.containsNumber(long21)); 141 142 assertEquals(false, tenToTwenty.containsNumber(double8)); 143 assertEquals(true, tenToTwenty.containsNumber(double10)); 144 assertEquals(true, tenToTwenty.containsNumber(double12)); 145 assertEquals(true, tenToTwenty.containsNumber(double20)); 146 assertEquals(false, tenToTwenty.containsNumber(double21)); 147 148 assertEquals(false, tenToTwenty.containsNumber(float8)); 149 assertEquals(true, tenToTwenty.containsNumber(float10)); 150 assertEquals(true, tenToTwenty.containsNumber(float12)); 151 assertEquals(true, tenToTwenty.containsNumber(float20)); 152 assertEquals(false, tenToTwenty.containsNumber(float21)); 153 } 154 testToString()155 public void testToString() { 156 String str = tenToTwenty.toString(); 157 assertEquals("Range[10.0,20.0]", str); 158 assertSame(str, tenToTwenty.toString()); 159 assertEquals("Range[-20.0,-10.0]", createRange(new Integer(-20), new Integer(-10)).toString()); 160 } 161 162 //-------------------------------------------------------------------------- 163 164 } 165