EMMA Coverage Report (generated Mon Nov 29 14:43:38 PST 2010)
[all classes][com.jeantessier.metrics]

COVERAGE SUMMARY FOR SOURCE FILE [TestCounterMeasurement.java]

nameclass, %method, %block, %line, %
TestCounterMeasurement.java100% (1/1)77%  (23/30)98%  (880/895)96%  (192.8/200)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class TestCounterMeasurement100% (1/1)77%  (23/30)98%  (880/895)96%  (192.8/200)
visitContextAccumulatorMeasurement (ContextAccumulatorMeasurement): void 0%   (0/1)0%   (0/1)0%   (0/1)
visitNameListMeasurement (NameListMeasurement): void 0%   (0/1)0%   (0/1)0%   (0/1)
visitNbSubMetricsMeasurement (NbSubMetricsMeasurement): void 0%   (0/1)0%   (0/1)0%   (0/1)
visitRatioMeasurement (RatioMeasurement): void 0%   (0/1)0%   (0/1)0%   (0/1)
visitStatisticalMeasurement (StatisticalMeasurement): void 0%   (0/1)0%   (0/1)0%   (0/1)
visitSubMetricsAccumulatorMeasurement (SubMetricsAccumulatorMeasurement): void 0%   (0/1)0%   (0/1)0%   (0/1)
visitSumMeasurement (SumMeasurement): void 0%   (0/1)0%   (0/1)0%   (0/1)
testInStringBoundRange (): void 100% (1/1)96%  (53/55)99%  (12.9/13)
testInBoundRange (): void 100% (1/1)97%  (59/61)99%  (12.9/13)
testInStringLowerBoundRange (): void 100% (1/1)98%  (47/48)100% (12/12)
testInStringUpperBoundRange (): void 100% (1/1)98%  (47/48)100% (12/12)
testInLowerBoundRange (): void 100% (1/1)98%  (50/51)100% (12/12)
testInUpperBoundRange (): void 100% (1/1)98%  (50/51)100% (12/12)
TestCounterMeasurement (): void 100% (1/1)100% (3/3)100% (1/1)
setUp (): void 100% (1/1)100% (9/9)100% (2/2)
testAccept (): void 100% (1/1)100% (13/13)100% (4/4)
testAddFloat (): void 100% (1/1)100% (49/49)100% (9/9)
testAddInt (): void 100% (1/1)100% (49/49)100% (9/9)
testAddNumber (): void 100% (1/1)100% (47/47)100% (8/8)
testAddObject (): void 100% (1/1)100% (45/45)100% (8/8)
testCreateDefault (): void 100% (1/1)100% (8/8)100% (2/2)
testCreateFromMeasurementDescriptor (): void 100% (1/1)100% (47/47)100% (12/12)
testCreateInvalid (): void 100% (1/1)100% (31/31)100% (5/5)
testCreateNumber (): void 100% (1/1)100% (61/61)100% (9/9)
testEmpty (): void 100% (1/1)100% (44/44)100% (11/11)
testInOpenRange (): void 100% (1/1)100% (41/41)100% (11/11)
testInUndefinedRange (): void 100% (1/1)100% (23/23)100% (6/6)
testMeasurementDescriptor (): void 100% (1/1)100% (39/39)100% (10/10)
testSubstract (): void 100% (1/1)100% (61/61)100% (10/10)
visitCounterMeasurement (CounterMeasurement): void 100% (1/1)100% (4/4)100% (2/2)

1/*
2 *  Copyright (c) 2001-2009, Jean Tessier
3 *  All rights reserved.
4 *  
5 *  Redistribution and use in source and binary forms, with or without
6 *  modification, are permitted provided that the following conditions
7 *  are met:
8 *  
9 *      * Redistributions of source code must retain the above copyright
10 *        notice, this list of conditions and the following disclaimer.
11 *  
12 *      * Redistributions in binary form must reproduce the above copyright
13 *        notice, this list of conditions and the following disclaimer in the
14 *        documentation and/or other materials provided with the distribution.
15 *  
16 *      * Neither the name of Jean Tessier nor the names of his contributors
17 *        may be used to endorse or promote products derived from this software
18 *        without specific prior written permission.
19 *  
20 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 *  A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR
24 *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27 *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28 *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32 
33package com.jeantessier.metrics;
34 
35import junit.framework.*;
36 
37public class TestCounterMeasurement extends TestCase implements MeasurementVisitor {
38    private CounterMeasurement measurement;
39    private Measurement visited;
40    
41    protected void setUp() {
42        measurement = new CounterMeasurement(null, null, null);
43    }
44 
45    public void testMeasurementDescriptor() throws Exception {
46        MeasurementDescriptor descriptor = new MeasurementDescriptor();
47        descriptor.setShortName("foo");
48        descriptor.setLongName("bar");
49        descriptor.setClassFor(CounterMeasurement.class);
50 
51        measurement = (CounterMeasurement) descriptor.createMeasurement();
52        
53        assertNotNull(measurement.getDescriptor());
54        assertEquals(CounterMeasurement.class, measurement.getDescriptor().getClassFor());
55        assertEquals("foo", measurement.getShortName());
56        assertEquals("bar", measurement.getLongName());
57    }
58 
59    public void testCreateFromMeasurementDescriptor() throws Exception {
60        MeasurementDescriptor descriptor = new MeasurementDescriptor();
61        descriptor.setShortName("foo");
62        descriptor.setLongName("bar");
63        descriptor.setClassFor(CounterMeasurement.class);
64 
65        measurement = (CounterMeasurement) descriptor.createMeasurement();
66        
67        assertNotNull(measurement);
68        assertEquals(descriptor, measurement.getDescriptor());
69        assertSame(descriptor, measurement.getDescriptor());
70        assertEquals(CounterMeasurement.class, measurement.getClass());
71        assertEquals("foo", measurement.getShortName());
72        assertEquals("bar", measurement.getLongName());
73    }
74    
75    public void testCreateNumber() {
76        measurement = new CounterMeasurement(null, null, "2");
77        assertEquals(2.0, measurement.getValue().doubleValue(), 0.01);
78 
79        measurement = new CounterMeasurement(null, null, "2.0");
80        assertEquals(2.0, measurement.getValue().doubleValue(), 0.01);
81 
82        measurement = new CounterMeasurement(null, null, "-2.5");
83        assertEquals(-2.5, measurement.getValue().doubleValue(), 0.01);
84 
85        measurement = new CounterMeasurement(null, null, " 2.0 ");
86        assertEquals(2.0, measurement.getValue().doubleValue(), 0.01);
87    }
88    
89    public void testCreateInvalid() {
90        measurement = new CounterMeasurement(null, null, null);
91        assertEquals(0.0, measurement.getValue().doubleValue(), 0.01);
92 
93        measurement = new CounterMeasurement(null, null, "foobar");
94        assertEquals(0.0, measurement.getValue().doubleValue(), 0.01);
95    }
96 
97    public void testCreateDefault() {
98        assertEquals(0.0, measurement.getValue().doubleValue(), 0.01);
99    }
100    
101    public void testAddObject() {
102        measurement.add(new Object());
103 
104        assertEquals(1, measurement.getValue().intValue());
105        assertEquals(1, measurement.getValue().doubleValue(), 0.01);
106        assertEquals(1, measurement.getValue().intValue());
107 
108        measurement.add(new Object());
109 
110        assertEquals(2, measurement.getValue().intValue());
111        assertEquals(2, measurement.getValue().doubleValue(), 0.01);
112    }
113    
114    public void testAddNumber() {
115        measurement.add(new Integer(1));
116 
117        assertEquals(1, measurement.getValue().intValue());
118        assertEquals(1, measurement.getValue().doubleValue(), 0.01);
119        assertEquals(1, measurement.getValue().intValue());
120 
121        measurement.add(new Float(0.5));
122 
123        assertEquals(1, measurement.getValue().intValue());
124        assertEquals(1.5, measurement.getValue().doubleValue(), 0.01);
125    }
126    
127    public void testAddInt() {
128        measurement.add(1);
129 
130        assertEquals(1, measurement.getValue().intValue());
131        assertEquals(1, measurement.getValue().doubleValue(), 0.01);
132        assertEquals(1, measurement.getValue().intValue());
133 
134        measurement.add(2);
135 
136        assertEquals(3, measurement.getValue().intValue());
137        assertEquals(3, measurement.getValue().doubleValue(), 0.01);
138        assertEquals(3, measurement.getValue().intValue());
139    }
140    
141    public void testAddFloat() {
142        measurement.add(1.0);
143 
144        assertEquals(1, measurement.getValue().intValue());
145        assertEquals(1, measurement.getValue().doubleValue(), 0.01);
146        assertEquals(1, measurement.getValue().intValue());
147 
148        measurement.add(0.5);
149 
150        assertEquals(1, measurement.getValue().intValue());
151        assertEquals(1.5, measurement.getValue().doubleValue(), 0.01);
152        assertEquals(1, measurement.getValue().intValue());
153    }
154 
155    public void testSubstract() {
156        measurement.add(new Integer(-1));
157 
158        assertEquals(-1, measurement.getValue().intValue());
159        assertEquals(-1, measurement.getValue().doubleValue(), 0.01);
160 
161        measurement.add(new Float(0.4));
162 
163        assertEquals(0, measurement.getValue().intValue());
164        assertEquals(-0.6, measurement.getValue().doubleValue(), 0.01);
165 
166        measurement.add(new Float(0.1));
167 
168        assertEquals(0, measurement.getValue().intValue());
169        assertEquals(-0.5, measurement.getValue().doubleValue(), 0.01);
170    }
171 
172    public void testInUndefinedRange() {
173        assertTrue(measurement.isInRange());
174 
175        measurement.add(1);
176        
177        assertTrue(measurement.isInRange());
178 
179        measurement.add(2);
180        
181        assertTrue(measurement.isInRange());
182    }
183 
184    public void testInOpenRange() throws Exception {
185        MeasurementDescriptor descriptor = new MeasurementDescriptor();
186        descriptor.setShortName("foo");
187        descriptor.setLongName("bar");
188        descriptor.setClassFor(CounterMeasurement.class);
189 
190        measurement = (CounterMeasurement) descriptor.createMeasurement();
191        
192        assertTrue(measurement.isInRange());
193 
194        measurement.add(1);
195        
196        assertTrue(measurement.isInRange());
197 
198        measurement.add(2);
199        
200        assertTrue(measurement.isInRange());
201    }
202 
203    public void testInLowerBoundRange() throws Exception {
204        MeasurementDescriptor descriptor = new MeasurementDescriptor();
205        descriptor.setShortName("foo");
206        descriptor.setLongName("bar");
207        descriptor.setClassFor(CounterMeasurement.class);
208        descriptor.setLowerThreshold(new Integer(1));
209 
210        measurement = (CounterMeasurement) descriptor.createMeasurement();
211        
212        assertTrue(!measurement.isInRange());
213 
214        measurement.add(1);
215        
216        assertTrue(measurement.isInRange());
217 
218        measurement.add(2);
219        
220        assertTrue(measurement.isInRange());
221    }
222 
223    public void testInStringLowerBoundRange() throws Exception {
224        MeasurementDescriptor descriptor = new MeasurementDescriptor();
225        descriptor.setShortName("foo");
226        descriptor.setLongName("bar");
227        descriptor.setClassFor(CounterMeasurement.class);
228        descriptor.setLowerThreshold("1");
229 
230        measurement = (CounterMeasurement) descriptor.createMeasurement();
231        
232        assertTrue(!measurement.isInRange());
233 
234        measurement.add(1);
235        
236        assertTrue(measurement.isInRange());
237 
238        measurement.add(2);
239        
240        assertTrue(measurement.isInRange());
241    }
242 
243    public void testInUpperBoundRange() throws Exception {
244        MeasurementDescriptor descriptor = new MeasurementDescriptor();
245        descriptor.setShortName("foo");
246        descriptor.setLongName("bar");
247        descriptor.setClassFor(CounterMeasurement.class);
248        descriptor.setUpperThreshold(new Float(1.5));
249 
250        measurement = (CounterMeasurement) descriptor.createMeasurement();
251        
252        assertTrue(measurement.isInRange());
253 
254        measurement.add(1);
255        
256        assertTrue(measurement.isInRange());
257 
258        measurement.add(2);
259        
260        assertTrue(!measurement.isInRange());
261    }
262 
263    public void testInStringUpperBoundRange() throws Exception {
264        MeasurementDescriptor descriptor = new MeasurementDescriptor();
265        descriptor.setShortName("foo");
266        descriptor.setLongName("bar");
267        descriptor.setClassFor(CounterMeasurement.class);
268        descriptor.setUpperThreshold("1.5");
269 
270        measurement = (CounterMeasurement) descriptor.createMeasurement();
271        
272        assertTrue(measurement.isInRange());
273 
274        measurement.add(1);
275        
276        assertTrue(measurement.isInRange());
277 
278        measurement.add(2);
279        
280        assertTrue(!measurement.isInRange());
281    }
282 
283    public void testInBoundRange() throws Exception {
284        MeasurementDescriptor descriptor = new MeasurementDescriptor();
285        descriptor.setShortName("foo");
286        descriptor.setLongName("bar");
287        descriptor.setClassFor(CounterMeasurement.class);
288        descriptor.setLowerThreshold(new Integer(1));
289        descriptor.setUpperThreshold(new Float(1.5));
290 
291        measurement = (CounterMeasurement) descriptor.createMeasurement();
292        
293        assertTrue(!measurement.isInRange());
294 
295        measurement.add(1);
296        
297        assertTrue(measurement.isInRange());
298 
299        measurement.add(2);
300        
301        assertTrue(!measurement.isInRange());
302    }
303 
304    public void testInStringBoundRange() throws Exception {
305        MeasurementDescriptor descriptor = new MeasurementDescriptor();
306        descriptor.setShortName("foo");
307        descriptor.setLongName("bar");
308        descriptor.setClassFor(CounterMeasurement.class);
309        descriptor.setLowerThreshold("1");
310        descriptor.setUpperThreshold("1.5");
311 
312        measurement = (CounterMeasurement) descriptor.createMeasurement();
313        
314        assertTrue(!measurement.isInRange());
315 
316        measurement.add(1);
317        
318        assertTrue(measurement.isInRange());
319 
320        measurement.add(2);
321        
322        assertTrue(!measurement.isInRange());
323    }
324 
325    public void testAccept() {
326        visited = null;
327        measurement.accept(this);
328        assertSame(measurement, visited);
329    }
330 
331    public void testEmpty() throws Exception {
332        MeasurementDescriptor descriptor = new MeasurementDescriptor();
333        descriptor.setShortName("foo");
334        descriptor.setLongName("bar");
335        descriptor.setClassFor(CounterMeasurement.class);
336 
337        measurement = (CounterMeasurement) descriptor.createMeasurement();
338        
339        assertTrue("Before Add()", measurement.isEmpty());
340 
341        measurement.add(1);
342        
343        assertFalse("After Add(1)", measurement.isEmpty());
344 
345        measurement.add(-1);
346        
347        assertFalse("After Add(-1)", measurement.isEmpty());
348    }
349    
350    public void visitStatisticalMeasurement(StatisticalMeasurement measurement) {
351        // Do nothing
352    }
353    
354    public void visitRatioMeasurement(RatioMeasurement measurement) {
355        // Do nothing
356    }
357    
358    public void visitNbSubMetricsMeasurement(NbSubMetricsMeasurement measurement) {
359        // Do nothing
360    }
361    
362    public void visitCounterMeasurement(CounterMeasurement measurement) {
363        visited = measurement;
364    }
365    
366    public void visitContextAccumulatorMeasurement(ContextAccumulatorMeasurement measurement) {
367        // Do nothing
368    }
369    
370    public void visitNameListMeasurement(NameListMeasurement measurement) {
371        // Do nothing
372    }
373    
374    public void visitSubMetricsAccumulatorMeasurement(SubMetricsAccumulatorMeasurement measurement) {
375        // Do nothing
376    }
377    
378    public void visitSumMeasurement(SumMeasurement measurement) {
379        // Do nothing
380    }
381}

[all classes][com.jeantessier.metrics]
EMMA 2.0.5312 (C) Vladimir Roubtsov