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 }