DoublePropertyTest xref

View Javadoc
1 package net.sourceforge.pmd.properties;
2 
3 import net.sourceforge.pmd.PropertyDescriptor;
4 import net.sourceforge.pmd.lang.rule.properties.DoubleMultiProperty;
5 import net.sourceforge.pmd.lang.rule.properties.DoubleProperty;
6 
7 /**
8  * Evaluates the functionality of the DoubleProperty descriptor by testing its ability to catch creation
9  * errors (illegal args), flag out-of-range test values, and serialize/deserialize groups of double values
10  * onto/from a string buffer.
11  * 
12  * @author Brian Remedios
13  */
14 public class DoublePropertyTest extends AbstractPropertyDescriptorTester {
15 
16 	private static final double MIN = -10.0;
17 	private static final double MAX = 100.0;
18 	private static final double SHIFT = 5.0;
19 	
20 	public DoublePropertyTest() {
21 		super();
22 	}
23 
24 	/**
25 	 * Creates and returns (count) number of legal Double values
26 	 * 
27 	 * @param count int
28 	 * @return Object
29 	 */
30 	protected Object createValue(int count) {
31 		
32 		if (count == 1) return Double.valueOf(randomDouble(MIN, MAX));
33 		
34 		Double[] values = new Double[count];
35 		for (int i=0; i<values.length; i++) values[i] = (Double)createValue(1);
36 		return values;
37 	}
38 
39 	/**
40 	 * Creates and returns (count) number of out-of-range values
41 	 * 
42 	 * @param count int
43 	 * @return Object
44 	 */
45 	protected Object createBadValue(int count) {
46 		
47 		if (count == 1) return Double.valueOf(
48 				randomBool() ?
49 						randomDouble(MIN - SHIFT, MIN - 0.01) :
50 						randomDouble(MAX + 0.01, MAX + SHIFT)
51 						);
52 		
53 		Double[] values = new Double[count];
54 		for (int i=0; i<values.length; i++) values[i] = (Double)createBadValue(1);
55 		return values;
56 	}
57 	
58 	/**
59 	 * Creates and returns a property with a (maxCount) value cardinality.
60 	 * 
61 	 * @param multiValue boolean
62 	 * @return PropertyDescriptor
63 	 */
64 	protected PropertyDescriptor createProperty(boolean multiValue) {
65 		
66 		return multiValue ?
67 			new DoubleMultiProperty("testDouble", "Test double property", MIN, MAX, new Double[] {-1d,0d,1d,2d}, 1.0f) :
68 			new DoubleProperty("testDouble", "Test double property", MIN, MAX, 9.0, 1.0f);	
69 	}
70 
71 	/**
72 	 * Attempts to create a property with invalid constructor arguments.
73 	 * 
74 	 * @param multiValue boolean
75 	 * @return PropertyDescriptor
76 	 */
77 	protected PropertyDescriptor createBadProperty(boolean multiValue) {
78 		
79 		return multiValue ?
80 			new DoubleMultiProperty("testDouble", "Test double property", MIN, MAX, new Double[] {MIN-SHIFT,MIN,MIN+SHIFT,MAX+SHIFT}, 1.0f) :
81 			new DoubleProperty("testDouble", "Test double property", MAX, MIN, 9.0, 1.0f) ;				
82 		}
83 	
84 public static junit.framework.Test suite() {
85 return new junit.framework.JUnit4TestAdapter(DoublePropertyTest.class);
86 }
87 }

AltStyle によって変換されたページ (->オリジナル) /