/*
* Copyright 2006, 2007 Odysseus Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package de.odysseus.el.misc;
import java.math.BigDecimal;
import java.math.BigInteger;
import junit.framework.TestCase;
public class NumberOperationsTest extends TestCase {
/*
* Test method for 'de.odysseus.el.lang.NumberOperations.add(Object, Object)'
*/
public void testAdd() {
assertEquals(new Long(0), NumberOperations.add(null, null));
BigDecimal bd1 = new BigDecimal(1);
Integer i1 = new Integer(1);
Long l1 = new Long(1);
Float f1 = new Float(1);
Double d1 = new Double(1);
String e1 = "1e0";
String s1 = "1";
BigInteger bi1 = new BigInteger("1");
Long l2 = new Long(2);
BigDecimal bd2 = new BigDecimal(2);
Double d2 = new Double(2);
BigInteger bi2 = new BigInteger("2");
assertEquals(bd2, NumberOperations.add(l1, bd1));
assertEquals(bd2, NumberOperations.add(bd1, l1));
assertEquals(bd2, NumberOperations.add(f1, bi1));
assertEquals(bd2, NumberOperations.add(bi1, f1));
assertEquals(d2, NumberOperations.add(f1, l1));
assertEquals(d2, NumberOperations.add(l1, f1));
assertEquals(bd2, NumberOperations.add(d1, bi1));
assertEquals(bd2, NumberOperations.add(bi1, d1));
assertEquals(d2, NumberOperations.add(d1, l1));
assertEquals(d2, NumberOperations.add(l1, d1));
assertEquals(bd2, NumberOperations.add(e1, bi1));
assertEquals(bd2, NumberOperations.add(bi1, e1));
assertEquals(d2, NumberOperations.add(e1, l1));
assertEquals(d2, NumberOperations.add(l1, e1));
assertEquals(bi2, NumberOperations.add(l1, bi1));
assertEquals(bi2, NumberOperations.add(bi1, l1));
assertEquals(l2, NumberOperations.add(i1, l1));
assertEquals(l2, NumberOperations.add(l1, i1));
assertEquals(l2, NumberOperations.add(i1, s1));
assertEquals(l2, NumberOperations.add(s1, i1));
}
/*
* Test method for 'de.odysseus.el.lang.NumberOperations.sub(Object, Object)'
*/
public void testSub() {
assertEquals(new Long(0), NumberOperations.sub(null, null));
BigDecimal bd1 = new BigDecimal(1);
Integer i1 = new Integer(1);
Long l1 = new Long(1);
Float f1 = new Float(1);
Double d1 = new Double(1);
String e1 = "1e0";
String s1 = "1";
BigInteger bi1 = new BigInteger("1");
Long l2 = new Long(0);
BigDecimal bd2 = new BigDecimal(0);
Double d2 = new Double(0);
BigInteger bi2 = new BigInteger("0");
assertEquals(bd2, NumberOperations.sub(l1, bd1));
assertEquals(bd2, NumberOperations.sub(bd1, l1));
assertEquals(bd2, NumberOperations.sub(f1, bi1));
assertEquals(bd2, NumberOperations.sub(bi1, f1));
assertEquals(d2, NumberOperations.sub(f1, l1));
assertEquals(d2, NumberOperations.sub(l1, f1));
assertEquals(bd2, NumberOperations.sub(d1, bi1));
assertEquals(bd2, NumberOperations.sub(bi1, d1));
assertEquals(d2, NumberOperations.sub(d1, l1));
assertEquals(d2, NumberOperations.sub(l1, d1));
assertEquals(bd2, NumberOperations.sub(e1, bi1));
assertEquals(bd2, NumberOperations.sub(bi1, e1));
assertEquals(d2, NumberOperations.sub(e1, l1));
assertEquals(d2, NumberOperations.sub(l1, e1));
assertEquals(bi2, NumberOperations.sub(l1, bi1));
assertEquals(bi2, NumberOperations.sub(bi1, l1));
assertEquals(l2, NumberOperations.sub(i1, l1));
assertEquals(l2, NumberOperations.sub(l1, i1));
assertEquals(l2, NumberOperations.sub(i1, s1));
assertEquals(l2, NumberOperations.sub(s1, i1));
}
/*
* Test method for 'de.odysseus.el.lang.NumberOperations.mul(Object, Object)'
*/
public void testMul() {
assertEquals(new Long(0), NumberOperations.mul(null, null));
BigDecimal bd1 = new BigDecimal(1);
Integer i1 = new Integer(1);
Long l1 = new Long(1);
Float f1 = new Float(1);
Double d1 = new Double(1);
String e1 = "1e0";
String s1 = "1";
BigInteger bi1 = new BigInteger("1");
Long l2 = new Long(1);
BigDecimal bd2 = new BigDecimal(1);
Double d2 = new Double(1);
BigInteger bi2 = new BigInteger("1");
assertEquals(bd2, NumberOperations.mul(l1, bd1));
assertEquals(bd2, NumberOperations.mul(bd1, l1));
assertEquals(bd2, NumberOperations.mul(f1, bi1));
assertEquals(bd2, NumberOperations.mul(bi1, f1));
assertEquals(d2, NumberOperations.mul(f1, l1));
assertEquals(d2, NumberOperations.mul(l1, f1));
assertEquals(bd2, NumberOperations.mul(d1, bi1));
assertEquals(bd2, NumberOperations.mul(bi1, d1));
assertEquals(d2, NumberOperations.mul(d1, l1));
assertEquals(d2, NumberOperations.mul(l1, d1));
assertEquals(bd2, NumberOperations.mul(e1, bi1));
assertEquals(bd2, NumberOperations.mul(bi1, e1));
assertEquals(d2, NumberOperations.mul(e1, l1));
assertEquals(d2, NumberOperations.mul(l1, e1));
assertEquals(bi2, NumberOperations.mul(l1, bi1));
assertEquals(bi2, NumberOperations.mul(bi1, l1));
assertEquals(l2, NumberOperations.mul(i1, l1));
assertEquals(l2, NumberOperations.mul(l1, i1));
assertEquals(l2, NumberOperations.mul(i1, s1));
assertEquals(l2, NumberOperations.mul(s1, i1));
}
/*
* Test method for 'de.odysseus.el.lang.NumberOperations.div(Object, Object)'
*/
public void testDiv() {
assertEquals(new Long(0), NumberOperations.div(null, null));
BigDecimal bd1 = new BigDecimal(1);
Integer i1 = new Integer(1);
Long l1 = new Long(1);
Float f1 = new Float(1);
Double d1 = new Double(1);
String e1 = "1e0";
String s1 = "1";
BigInteger bi1 = new BigInteger("1");
BigDecimal bd2 = new BigDecimal(1);
Double d2 = new Double(1);
assertEquals(bd2, NumberOperations.div(l1, bd1));
assertEquals(bd2, NumberOperations.div(bd1, l1));
assertEquals(bd2, NumberOperations.div(f1, bi1));
assertEquals(bd2, NumberOperations.div(bi1, f1));
assertEquals(d2, NumberOperations.div(f1, l1));
assertEquals(d2, NumberOperations.div(l1, f1));
assertEquals(d2, NumberOperations.div(d1, l1));
assertEquals(d2, NumberOperations.div(l1, d1));
assertEquals(d2, NumberOperations.div(e1, l1));
assertEquals(d2, NumberOperations.div(l1, e1));
assertEquals(d2, NumberOperations.div(i1, l1));
assertEquals(d2, NumberOperations.div(l1, i1));
assertEquals(d2, NumberOperations.div(i1, s1));
assertEquals(d2, NumberOperations.div(s1, i1));
}
/*
* Test method for 'de.odysseus.el.lang.NumberOperations.mod(Object, Object)'
*/
public void testMod() {
assertEquals(new Long(0), NumberOperations.mod(null, null));
BigDecimal bd1 = new BigDecimal(1);
Integer i1 = new Integer(1);
Long l1 = new Long(1);
Float f1 = new Float(1);
Double d1 = new Double(1);
String e1 = "1e0";
String s1 = "1";
BigInteger bi1 = new BigInteger("1");
Long l2 = new Long(0);
Double d2 = new Double(0);
BigInteger bi2 = new BigInteger("0");
assertEquals(d2, NumberOperations.mod(l1, bd1));
assertEquals(d2, NumberOperations.mod(bd1, l1));
assertEquals(d2, NumberOperations.mod(f1, bi1));
assertEquals(d2, NumberOperations.mod(bi1, f1));
assertEquals(d2, NumberOperations.mod(f1, l1));
assertEquals(d2, NumberOperations.mod(l1, f1));
assertEquals(d2, NumberOperations.mod(d1, l1));
assertEquals(d2, NumberOperations.mod(l1, d1));
assertEquals(d2, NumberOperations.mod(d1, bi1));
assertEquals(d2, NumberOperations.mod(bi1, d1));
assertEquals(d2, NumberOperations.mod(e1, bi1));
assertEquals(d2, NumberOperations.mod(bi1, e1));
assertEquals(d2, NumberOperations.mod(e1, l1));
assertEquals(d2, NumberOperations.mod(l1, e1));
assertEquals(bi2, NumberOperations.mod(l1, bi1));
assertEquals(bi2, NumberOperations.mod(bi1, l1));
assertEquals(l2, NumberOperations.mod(i1, l1));
assertEquals(l2, NumberOperations.mod(l1, i1));
assertEquals(l2, NumberOperations.mod(i1, s1));
assertEquals(l2, NumberOperations.mod(s1, i1));
}
/*
* Test method for 'de.odysseus.el.lang.NumberOperations.neg(Object)'
*/
public void testNeg() {
assertEquals(new Long(0), NumberOperations.neg(null));
BigDecimal bd1 = new BigDecimal(1);
Integer i1 = new Integer(1);
Long l1 = new Long(1);
Float f1 = new Float(1);
Double d1 = new Double(1);
String e1 = "1e0";
String s1 = "1";
BigInteger bi1 = new BigInteger("1");
BigDecimal bd2 = new BigDecimal(-1);
Integer i2 = new Integer(-1);
Long l2 = new Long(-1);
Float f2 = new Float(-1);
Double d2 = new Double(-1);
BigInteger bi2 = new BigInteger("-1");
assertEquals(bd2, NumberOperations.neg(bd1));
assertEquals(bi2, NumberOperations.neg(bi1));
assertEquals(d2, NumberOperations.neg(e1));
assertEquals(l2, NumberOperations.neg(s1));
assertEquals(i2, NumberOperations.neg(i1));
assertEquals(l2, NumberOperations.neg(l1));
assertEquals(d2, NumberOperations.neg(d1));
assertEquals(f2, NumberOperations.neg(f1));
}
}
|