Project Report: fawkez

Packagesummary org.jcoderz.commons.util

org.jcoderz.commons.util.NumberUtilTest

LineHitsNoteSource
1  /*
2   * $Id: NumberUtilTest.java 1149 2008-09-09 19:16:09Z amandel $
3   *
4   * Copyright 2006, The jCoderZ.org Project. All rights reserved.
5   *
6   * Redistribution and use in source and binary forms, with or without
7   * modification, are permitted provided that the following conditions are
8   * met:
9   *
10   *    * Redistributions of source code must retain the above copyright
11   *      notice, this list of conditions and the following disclaimer.
12   *    * Redistributions in binary form must reproduce the above
13   *      copyright notice, this list of conditions and the following
14   *      disclaimer in the documentation and/or other materials
15   *      provided with the distribution.
16   *    * Neither the name of the jCoderZ.org Project nor the names of
17   *      its contributors may be used to endorse or promote products
18   *      derived from this software without specific prior written
19   *      permission.
20   *
21   * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND
22   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24   * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS
25   * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
28   * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29   * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30   * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
31   * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32   */
33  package org.jcoderz.commons.util;
34  
35  import junit.framework.TestCase;
36  
37100(1)public class NumberUtilTest
38      extends TestCase
39  {
40 (2)    public void testCountDigits ()
41      {
42100(3)        checkNumberOfDigits(12345);
43100     }
44  
45 (4)    public void testCountDigitsNegative ()
46      {
47100(5)        checkNumberOfDigits(-12345);
48100     }
49  
50 (6)    public void testCountDigitsZero ()
51      {
52100         assertEquals("Wrong number-of digits for '" + 0 + "'.",
53              1, NumberUtil.countDigits(1));
54100     }
55  
56 (7)    public void testCountDigitsHigh ()
57      {
58100(8)        checkNumberOfDigits(123452434);
59100     }
60  
61 (9)    public void testToStringLongInt ()
62      {
63100(10)       checkToString(1000, 1, "100.0");
64100     }
65  
66 (11)    public void testToStringLongIntZeroScale ()
67      {
68100(12)       checkToString(1000, 0, "1000");
69100     }
70  
71 (13)    public void testToStringLongIntScale2 ()
72      {
73100(14)(15)       checkToString(10, 2, "0.10");
74100     }
75  
76 (16)    public void testToStringLongIntScale3 ()
77      {
78100(17)(18)       checkToString(10, 3, "0.010");
79100     }
80  
81 (19)    public void testToStringLongIntHighScale ()
82      {
83100(20)(21)       checkToString(10, 5, "0.00010");
84100     }
85  
86 (22)    public void testToStringLongIntHighScaleAndValue ()
87      {
88100(23)(24)       checkToString(987654321, 5, "9876.54321");
89100     }
90  
91 (25)    public void testToStringLongIntErrorPattern ()
92      {
93100(26)(27)       checkToString(58000, 5, "0.58000");
94100     }
95  
96 (28)    public void testToStringLongIntNegative ()
97      {
98100(29)(30)       checkToString(-58000, 5, "-0.58000");
99100     }
100  
101 (31)    public void testToStringLongIntErrorPatternZero ()
102      {
103100(32)       checkToString(0, 5, "0.00000");
104100     }
105  
106      private void checkNumberOfDigits (long test)
107      {
108100         final int result = 1 + (int) Math.log10(Math.abs(test));
109100         assertEquals("Wrong number-of digits for '" + test + "'.",
110              result, NumberUtil.countDigits(test));
111100     }
112  
113      private void checkToString (int test, int scale, String string)
114      {
115100(33)        assertEquals("Wrong string digits for " + test + " with" +
116                  "scale " + scale + " .",
117              string, NumberUtil.toString(test, scale));
118100     }
119  }

Findings in this File

c (1) 37 : 0 Missing a Javadoc comment.
c (2) 40 : 5 Missing a Javadoc comment.
c (3) 42 : 29 '12345' is a magic number.
c (4) 45 : 5 Missing a Javadoc comment.
c (5) 47 : 29 '-12345' is a magic number.
c (6) 50 : 5 Missing a Javadoc comment.
c (7) 56 : 5 Missing a Javadoc comment.
c (8) 58 : 29 '123452434' is a magic number.
c (9) 61 : 5 Missing a Javadoc comment.
c (10) 63 : 22 '1000' is a magic number.
c (11) 66 : 5 Missing a Javadoc comment.
c (12) 68 : 22 '1000' is a magic number.
c (13) 71 : 5 Missing a Javadoc comment.
c (14) 73 : 22 '10' is a magic number.
c (15) 73 : 26 '2' is a magic number.
c (16) 76 : 5 Missing a Javadoc comment.
c (17) 78 : 22 '10' is a magic number.
c (18) 78 : 26 '3' is a magic number.
c (19) 81 : 5 Missing a Javadoc comment.
c (20) 83 : 22 '10' is a magic number.
c (21) 83 : 26 '5' is a magic number.
c (22) 86 : 5 Missing a Javadoc comment.
c (23) 88 : 22 '987654321' is a magic number.
c (24) 88 : 33 '5' is a magic number.
c (25) 91 : 5 Missing a Javadoc comment.
c (26) 93 : 22 '58000' is a magic number.
c (27) 93 : 29 '5' is a magic number.
c (28) 96 : 5 Missing a Javadoc comment.
c (29) 98 : 22 '-58000' is a magic number.
c (30) 98 : 30 '5' is a magic number.
c (31) 101 : 5 Missing a Javadoc comment.
c (32) 103 : 25 '5' is a magic number.
c (33) 115 : 66 '+' should be on a new line.