EMMA Coverage Report (generated Wed Jun 28 19:54:35 CEST 2006)
[all classes][smallsql.database]

COVERAGE SUMMARY FOR SOURCE FILE [ExpressionFunctionRound.java]

nameclass, %method, %block, %line, %
ExpressionFunctionRound.java100% (1/1)100% (4/4)95%  (81/85)97%  (18,4/19)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ExpressionFunctionRound100% (1/1)100% (4/4)95%  (81/85)97%  (18,4/19)
isNull (): boolean 100% (1/1)83%  (10/12)83%  (0,8/1)
getDouble (): double 100% (1/1)97%  (66/68)98%  (15,6/16)
ExpressionFunctionRound (): void 100% (1/1)100% (3/3)100% (1/1)
getFunction (): int 100% (1/1)100% (2/2)100% (1/1)

1/* =============================================================
2 * SmallSQL : a free Java DBMS library for the Java(tm) platform
3 * =============================================================
4 *
5 * (C) Copyright 2004-2006, by Volker Berlin.
6 *
7 * Project Info:  http://www.smallsql.de/
8 *
9 * This library is free software; you can redistribute it and/or modify it 
10 * under the terms of the GNU Lesser General Public License as published by 
11 * the Free Software Foundation; either version 2.1 of the License, or 
12 * (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful, but 
15 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
16 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 
17 * License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
22 * USA.  
23 *
24 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 
25 * in the United States and other countries.]
26 *
27 * ---------------
28 * ExpressionFunctionRound.java
29 * ---------------
30 * Author: Volker Berlin
31 * 
32 */
33package smallsql.database;
34 
35 
36final class ExpressionFunctionRound extends ExpressionFunctionReturnP1Number {
37 
38    final int getFunction(){ return SQLTokenizer.ROUND; }
39 
40    boolean isNull() throws Exception{
41        return param1.isNull() || param2.isNull();
42    }
43        
44 
45    final double getDouble() throws Exception{
46                if(isNull()) return 0;
47                final int places = param2.getInt();
48                double value = param1.getDouble();
49                long factor = 1;
50                if(places > 0){
51                        for(int i=0; i<places; i++){
52                                factor *= 10;
53                        }
54                        value *= factor;
55                }else{
56                        for(int i=0; i>places; i--){
57                                factor *= 10;
58                        }
59                        value /= factor;
60                }
61                value = Math.rint( value );
62                if(places > 0){
63                        value /= factor;
64                }else{
65                        value *= factor;
66                }
67                return value;
68    }
69        
70 
71}

[all classes][smallsql.database]
EMMA 2.1.5320 (stable) (C) Vladimir Roubtsov