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 }