From: <be...@us...> - 2010-03-28 10:55:15
|
Revision: 318 http://objectlabkit.svn.sourceforge.net/objectlabkit/?rev=318&view=rev Author: benoitx Date: 2010-03-28 10:55:09 +0000 (Sun, 28 Mar 2010) Log Message: ----------- Adding tests. Modified Paths: -------------- trunk/utils/pom.xml trunk/utils/src/main/java/net/objectlab/kit/util/BigDecimalUtil.java trunk/utils/src/test/java/net/objectlab/kit/util/BigDecimalUtilTest.java trunk/utils/src/test/java/net/objectlab/kit/util/CollectionUtilTest.java Modified: trunk/utils/pom.xml =================================================================== --- trunk/utils/pom.xml 2010-03-26 21:32:38 UTC (rev 317) +++ trunk/utils/pom.xml 2010-03-28 10:55:09 UTC (rev 318) @@ -3,8 +3,8 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> - <groupId>net.objectlab.kit.util</groupId> - <artifactId>utils</artifactId> + <groupId>net.objectlab.kit</groupId> + <artifactId>objectlab-utils</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> Modified: trunk/utils/src/main/java/net/objectlab/kit/util/BigDecimalUtil.java =================================================================== --- trunk/utils/src/main/java/net/objectlab/kit/util/BigDecimalUtil.java 2010-03-26 21:32:38 UTC (rev 317) +++ trunk/utils/src/main/java/net/objectlab/kit/util/BigDecimalUtil.java 2010-03-28 10:55:09 UTC (rev 318) @@ -119,7 +119,7 @@ /** * Add 2 BigDecimal safely (i.e. handles nulls) */ - public static BigDecimal add(final BigDecimal v1, final BigDecimal v2) { + private static BigDecimal doAdd(final BigDecimal v1, final BigDecimal v2) { BigDecimal total = v1; if (v1 != null && v2 != null) { total = v1.add(v2); @@ -133,21 +133,23 @@ * Add n BigDecimal safely (i.e. handles nulls) */ public static BigDecimal add(final BigDecimal start, final BigDecimal... values) { - BigDecimal total = start; - for (final BigDecimal v : values) { - total = add(total, v); + BigDecimal total = start != null ? start : BigDecimal.ZERO; + if (values != null) { + for (final BigDecimal v : values) { + total = doAdd(total, v); + } } return total; } /** - * Subtract n BigDecimal safely (i.e. handles nulls) + * Subtract n BigDecimal safely (i.e. handles nulls), returns 0 */ public static BigDecimal subtract(final BigDecimal start, final BigDecimal... values) { - BigDecimal total = start; + BigDecimal total = start != null ? start : BigDecimal.ZERO; if (values != null) { for (final BigDecimal v : values) { - total = subtract(total, v); + total = doSubtract(total, v); } } return total; @@ -156,7 +158,7 @@ /** * Subtract 2 BigDecimal safely (i.e. handles nulls) v1 - v2 */ - public static BigDecimal subtract(final BigDecimal v1, final BigDecimal v2) { + private static BigDecimal doSubtract(final BigDecimal v1, final BigDecimal v2) { BigDecimal diff = v1; if (v1 != null && v2 != null) { diff = v1.subtract(v2); @@ -295,7 +297,7 @@ * @return true if the ABS( ABS(v1) - ABS(v2) ) */ public static BigDecimal absDiff(final BigDecimal v1, final BigDecimal v2) { - return abs(subtract(abs(v1), abs(v2))); + return abs(doSubtract(abs(v1), abs(v2))); } /** @@ -422,7 +424,7 @@ */ public static BigDecimal addWeightedConstituent(final BigDecimal runningWeightedVal, final BigDecimal valueToAdd, final BigDecimal weightForValueToAdd, final BigDecimal totalWeight) { - return BigDecimalUtil.add(runningWeightedVal, BigDecimalUtil.divide(BigDecimalUtil.multiply(valueToAdd, BigDecimalUtil.abs(weightForValueToAdd)), + return BigDecimalUtil.doAdd(runningWeightedVal, BigDecimalUtil.divide(BigDecimalUtil.multiply(valueToAdd, BigDecimalUtil.abs(weightForValueToAdd)), BigDecimalUtil.abs(totalWeight), BigDecimal.ROUND_HALF_UP)); } @@ -475,7 +477,7 @@ public static boolean movedStrictlyOutsideThresholdPercentage(final BigDecimal startValue, final BigDecimal newValue, final BigDecimal thresholdPercent) { final BigDecimal s = BigDecimalUtil.setScale(startValue, 10); final BigDecimal n = BigDecimalUtil.setScale(newValue, 10); - final BigDecimal diff = BigDecimalUtil.divide(BigDecimalUtil.subtract(s, n), s, BigDecimal.ROUND_HALF_UP); + final BigDecimal diff = BigDecimalUtil.divide(BigDecimalUtil.doSubtract(s, n), s, BigDecimal.ROUND_HALF_UP); // diff = BigDecimalUtil.safeAbsDiff(diff, MagicNumbers.ONE); return BigDecimalUtil.absCompareTo(diff, thresholdPercent) > 0; Modified: trunk/utils/src/test/java/net/objectlab/kit/util/BigDecimalUtilTest.java =================================================================== --- trunk/utils/src/test/java/net/objectlab/kit/util/BigDecimalUtilTest.java 2010-03-26 21:32:38 UTC (rev 317) +++ trunk/utils/src/test/java/net/objectlab/kit/util/BigDecimalUtilTest.java 2010-03-28 10:55:09 UTC (rev 318) @@ -17,6 +17,34 @@ public class BigDecimalUtilTest { /** + * Test method for {@link net.objectlab.kit.util.BigDecimalUtil#divide(java.math.BigDecimal, java.math.BigDecimal, int, int)}. + */ + @Test + public void testDivideBigDecimalBigDecimalIntInt() { + assertEquals("3 null", null, BigDecimalUtil.divide(null, null, BigDecimal.ROUND_HALF_UP)); + assertEquals("2a null", null, BigDecimalUtil.divide(BigDecimal.ONE, null, BigDecimal.ROUND_HALF_UP)); + assertEquals("2c null", null, BigDecimalUtil.divide(null, BigDecimal.ONE, BigDecimal.ROUND_HALF_UP)); + assertEquals("2d null", null, BigDecimalUtil.divide(null, BigDecimal.ONE, BigDecimal.ROUND_HALF_UP)); + assertEquals("ONE 2", BigDecimal.ONE, BigDecimalUtil.divide(BigDecimal.ONE, BigDecimal.ONE, BigDecimal.ROUND_HALF_UP)); + assertEquals("ONE 3", BigDecimal.ONE, BigDecimalUtil.divide(BigDecimal.ONE, BigDecimal.ONE, BigDecimal.ROUND_HALF_UP)); + } + + /** + * Test method for {@link net.objectlab.kit.util.BigDecimalUtil#setScale(java.math.BigDecimal, int)}. + */ + @Test + public void testSetScaleBigDecimalInt() { + assertEquals("null", null, BigDecimalUtil.setScale(null, 3)); + assertEquals("1.000", new BigDecimal("1.000"), BigDecimalUtil.setScale(BigDecimal.ONE, 3)); + assertEquals("1.000 same", new BigDecimal("1.000"), BigDecimalUtil.setScale(new BigDecimal("1.000"), 3)); + assertEquals("1.00 to 3dp", new BigDecimal("1.000"), BigDecimalUtil.setScale(new BigDecimal("1.00"), 3)); + assertEquals("1.000 to -1dp", new BigDecimal("0E+1"), BigDecimalUtil.setScale(new BigDecimal("1.000"), -1)); + assertEquals("1.236 to 2", new BigDecimal("1.24"), BigDecimalUtil.setScale(new BigDecimal("1.236"), 2)); + assertEquals("1.235 to 2", new BigDecimal("1.24"), BigDecimalUtil.setScale(new BigDecimal("1.235"), 2)); + assertEquals("1.234 to 2", new BigDecimal("1.23"), BigDecimalUtil.setScale(new BigDecimal("1.23"), 2)); + } + + /** * Test method for {@link net.objectlab.kit.util.BigDecimalUtil#inverse(java.math.BigDecimal, int)}. */ @Test @@ -89,19 +117,19 @@ } /** - * Test method for {@link net.objectlab.kit.util.BigDecimalUtil#add(java.math.BigDecimal, java.math.BigDecimal)}. - */ - @Test - public void testAddBigDecimalBigDecimal() { - fail("Not yet implemented"); - } - - /** * Test method for {@link net.objectlab.kit.util.BigDecimalUtil#add(java.math.BigDecimal, java.math.BigDecimal[])}. */ @Test public void testAddBigDecimalBigDecimalArray() { - fail("Not yet implemented"); + assertEquals("null", BigDecimal.ZERO, BigDecimalUtil.add(null)); + assertEquals("null+null", BigDecimal.ZERO, BigDecimalUtil.add(null, null)); + assertEquals("null+null+0", BigDecimal.ZERO, BigDecimalUtil.add(null, null, BigDecimal.ZERO)); + assertEquals("null+1", BigDecimal.ONE, BigDecimalUtil.add(null, BigDecimal.ONE)); + assertEquals("1+null", BigDecimal.ONE, BigDecimalUtil.add(BigDecimal.ONE, null)); + assertEquals("1+null+0", BigDecimal.ONE, BigDecimalUtil.add(BigDecimal.ONE, null, BigDecimal.ZERO)); + assertEquals("1+null+1", new BigDecimal(2), BigDecimalUtil.add(BigDecimal.ONE, null, BigDecimal.ONE)); + assertEquals("1+0+1", new BigDecimal(2), BigDecimalUtil.add(BigDecimal.ONE, BigDecimal.ZERO, BigDecimal.ONE)); + assertEquals("1+1+1", new BigDecimal(3), BigDecimalUtil.add(BigDecimal.ONE, BigDecimal.ONE, BigDecimal.ONE)); } /** @@ -110,17 +138,17 @@ @Test public void testSubtractBigDecimalBigDecimalArray() { assertEquals("2 null", BigDecimal.ZERO, BigDecimalUtil.subtract(null, (BigDecimal[]) null)); + assertEquals("3 null", BigDecimal.ZERO, BigDecimalUtil.subtract(null, null, null)); + assertEquals("0 -null -null", BigDecimal.ZERO, BigDecimalUtil.subtract(BigDecimal.ZERO, null, null)); + assertEquals("null 0 -null", BigDecimal.ZERO, BigDecimalUtil.subtract(null, BigDecimal.ZERO, null)); + assertEquals("1 -null", BigDecimal.ONE, BigDecimalUtil.subtract(BigDecimal.ONE, null)); + assertEquals("1 -null -0", BigDecimal.ONE, BigDecimalUtil.subtract(BigDecimal.ONE, null, BigDecimal.ZERO)); + assertEquals("1 -0 -null", BigDecimal.ONE, BigDecimalUtil.subtract(BigDecimal.ONE, BigDecimal.ZERO, null)); + assertEquals("1 -0 -1", BigDecimal.ZERO, BigDecimalUtil.subtract(BigDecimal.ONE, BigDecimal.ZERO, BigDecimal.ONE)); + assertEquals("1 -null -1", BigDecimal.ZERO, BigDecimalUtil.subtract(BigDecimal.ONE, null, BigDecimal.ONE)); } /** - * Test method for {@link net.objectlab.kit.util.BigDecimalUtil#subtract(java.math.BigDecimal, java.math.BigDecimal)}. - */ - @Test - public void testSubtractBigDecimalBigDecimal() { - fail("Not yet implemented"); - } - - /** * Test method for {@link net.objectlab.kit.util.BigDecimalUtil#divide(java.math.BigDecimal, java.math.BigDecimal, int)}. */ @Test @@ -145,14 +173,6 @@ } /** - * Test method for {@link net.objectlab.kit.util.BigDecimalUtil#divide(java.math.BigDecimal, java.math.BigDecimal, int, int)}. - */ - @Test - public void testDivideBigDecimalBigDecimalIntInt() { - fail("Not yet implemented"); - } - - /** * Test method for {@link net.objectlab.kit.util.BigDecimalUtil#multiply(java.math.BigDecimal, java.math.BigDecimal)}. */ @Test @@ -257,14 +277,6 @@ } /** - * Test method for {@link net.objectlab.kit.util.BigDecimalUtil#setScale(java.math.BigDecimal, int)}. - */ - @Test - public void testSetScaleBigDecimalInt() { - fail("Not yet implemented"); - } - - /** * Test method for {@link net.objectlab.kit.util.BigDecimalUtil#setScale(java.math.BigDecimal, java.lang.Integer)}. */ @Test Modified: trunk/utils/src/test/java/net/objectlab/kit/util/CollectionUtilTest.java =================================================================== --- trunk/utils/src/test/java/net/objectlab/kit/util/CollectionUtilTest.java 2010-03-26 21:32:38 UTC (rev 317) +++ trunk/utils/src/test/java/net/objectlab/kit/util/CollectionUtilTest.java 2010-03-28 10:55:09 UTC (rev 318) @@ -1,14 +1,18 @@ package net.objectlab.kit.util; -import static org.junit.Assert.*; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import java.util.HashSet; + import org.junit.Test; public class CollectionUtilTest { @Test public void testIsEmpty() { - fail("Not yet implemented"); + assertTrue("null", CollectionUtil.isEmpty(null)); + assertTrue("empty set", CollectionUtil.isEmpty(new HashSet())); } @Test This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |