001    /*
002     * Copyright 2002-2007 the original author or authors.
003     * 
004     * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005     * use this file except in compliance with the License. You may obtain a copy of
006     * the License at
007     * 
008     * http://www.apache.org/licenses/LICENSE-2.0
009     * 
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
012     * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013     * License for the specific language governing permissions and limitations under
014     * the License.
015     */
016    package org.springframework.rules.support;
017    
018    import junit.framework.TestCase;
019    
020    /**
021     * Testcase for NumberComparator
022     * 
023     * @author Peter De Bruycker
024     */
025    public class NumberComparatorTests extends TestCase {
026    
027            public void testCompareIntegers() {
028                    NumberComparator comparator = NumberComparator.INSTANCE;
029    
030                    assertEquals(0, comparator.compare(Integer.valueOf(1), Integer.valueOf(1)));
031                    assertEquals(1, comparator.compare(Integer.valueOf(10), Integer.valueOf(1)));
032                    assertEquals(-1, comparator.compare(Integer.valueOf(1), Integer.valueOf(10)));
033            }
034    
035            public void testCompareLongs() {
036                    NumberComparator comparator = NumberComparator.INSTANCE;
037    
038                    assertEquals(0, comparator.compare(Long.valueOf(1l), Long.valueOf(1l)));
039                    assertEquals(1, comparator.compare(Long.valueOf(10l), Long.valueOf(1l)));
040                    assertEquals(-1, comparator.compare(Long.valueOf(1l), Long.valueOf(10l)));
041            }
042    
043            public void testCompareFloats() {
044                    NumberComparator comparator = NumberComparator.INSTANCE;
045    
046                    assertEquals(0, comparator.compare(Float.valueOf(1.5f), Float.valueOf(1.5f)));
047                    assertEquals(1, comparator.compare(Float.valueOf(10.22f), Float.valueOf(1.5f)));
048                    assertEquals(-1, comparator.compare(Float.valueOf(1.5f), Float.valueOf(10.22f)));
049            }
050    
051            public void testCompareDoubles() {
052                    NumberComparator comparator = NumberComparator.INSTANCE;
053    
054                    assertEquals(0, comparator.compare(Double.valueOf(1.5), Double.valueOf(1.5)));
055                    assertEquals(1, comparator.compare(Double.valueOf(10.22), Double.valueOf(1.5)));
056                    assertEquals(-1, comparator.compare(Double.valueOf(1.5), Double.valueOf(10.22)));
057            }
058    
059            public void testCompareDifferentTypesEqual() {
060                    NumberComparator comparator = NumberComparator.INSTANCE;
061    
062                    assertEquals(0, comparator.compare(Double.valueOf(1.0), Integer.valueOf(1)));
063                    assertEquals(0, comparator.compare(Double.valueOf(1.0), Long.valueOf(1l)));
064                    assertEquals(0, comparator.compare(Double.valueOf(1.0), Float.valueOf(1.0f)));
065    
066                    assertEquals(0, comparator.compare(Integer.valueOf(1), Long.valueOf(1l)));
067                    assertEquals(0, comparator.compare(Integer.valueOf(1), Float.valueOf(1.0f)));
068                    assertEquals(0, comparator.compare(Integer.valueOf(1), Double.valueOf(1.0)));
069    
070                    assertEquals(0, comparator.compare(Long.valueOf(1l), Integer.valueOf(1)));
071                    assertEquals(0, comparator.compare(Long.valueOf(1l), Float.valueOf(1.0f)));
072                    assertEquals(0, comparator.compare(Long.valueOf(1l), Double.valueOf(1.0)));
073    
074                    assertEquals(0, comparator.compare(Float.valueOf(1.0f), Integer.valueOf(1)));
075                    assertEquals(0, comparator.compare(Float.valueOf(1.0f), Long.valueOf(1l)));
076                    assertEquals(0, comparator.compare(Float.valueOf(1.0f), Double.valueOf(1.0)));
077            }
078    
079            public void testCompareDifferentTypesSmaller() {
080                    NumberComparator comparator = NumberComparator.INSTANCE;
081    
082                    assertEquals(-1, comparator.compare(Double.valueOf(1.0), Integer.valueOf(10)));
083                    assertEquals(-1, comparator.compare(Double.valueOf(1.0), Long.valueOf(10l)));
084                    assertEquals(-1, comparator.compare(Double.valueOf(1.0), Float.valueOf(10.0f)));
085    
086                    assertEquals(-1, comparator.compare(Integer.valueOf(1), Long.valueOf(10l)));
087                    assertEquals(-1, comparator.compare(Integer.valueOf(1), Float.valueOf(10.0f)));
088                    assertEquals(-1, comparator.compare(Integer.valueOf(1), Double.valueOf(10.0)));
089    
090                    assertEquals(-1, comparator.compare(Long.valueOf(1l), Integer.valueOf(10)));
091                    assertEquals(-1, comparator.compare(Long.valueOf(1l), Float.valueOf(10.0f)));
092                    assertEquals(-1, comparator.compare(Long.valueOf(1l), Double.valueOf(10.0)));
093    
094                    assertEquals(-1, comparator.compare(Float.valueOf(1.0f), Integer.valueOf(10)));
095                    assertEquals(-1, comparator.compare(Float.valueOf(1.0f), Long.valueOf(10l)));
096                    assertEquals(-1, comparator.compare(Float.valueOf(1.0f), Double.valueOf(10.0)));
097            }
098    
099            public void testCompareDifferentTypesLarger() {
100                    NumberComparator comparator = NumberComparator.INSTANCE;
101    
102                    assertEquals(1, comparator.compare(Double.valueOf(10.0), Integer.valueOf(1)));
103                    assertEquals(1, comparator.compare(Double.valueOf(10.0), Long.valueOf(1l)));
104                    assertEquals(1, comparator.compare(Double.valueOf(10.0), Float.valueOf(1.0f)));
105    
106                    assertEquals(1, comparator.compare(Integer.valueOf(10), Long.valueOf(1l)));
107                    assertEquals(1, comparator.compare(Integer.valueOf(10), Float.valueOf(1.0f)));
108                    assertEquals(1, comparator.compare(Integer.valueOf(10), Double.valueOf(1.0)));
109    
110                    assertEquals(1, comparator.compare(Long.valueOf(10l), Integer.valueOf(1)));
111                    assertEquals(1, comparator.compare(Long.valueOf(10l), Float.valueOf(1.0f)));
112                    assertEquals(1, comparator.compare(Long.valueOf(10l), Double.valueOf(1.0)));
113    
114                    assertEquals(1, comparator.compare(Float.valueOf(10.0f), Integer.valueOf(1)));
115                    assertEquals(1, comparator.compare(Float.valueOf(10.0f), Long.valueOf(1l)));
116                    assertEquals(1, comparator.compare(Float.valueOf(10.0f), Double.valueOf(1.0)));
117            }
118    
119    }