/** * Tests integer and floating point values in a wide range of values. Some on those values are * cached (e.g. 0, 90, 360) because frequently used. It should be transparent to the user. Test * also unit conversions (degrees to radians in this case). */ @Test public void testSequence() { for (int i = -1000; i <= 1000; i++) { assertEquals("new (Integer, ...)", i, Parameter.create("Integer", i).intValue()); assertEquals( "new (Double, ...)", i, Parameter.create("Double", i, null).doubleValue(), 0.0); assertEquals( "new (Double, ...)", i, Parameter.create("Double", i, AbstractUnit.ONE).doubleValue(), 0.0); assertEquals( "new (Double, ...)", Math.toRadians(i), Parameter.create("Double", i, NonSI.DEGREE_ANGLE).doubleValue(SI.RADIAN), 1E-6); } }
Set<?> validValues; parameter = Parameter.create("Test", 14); descriptor = parameter.getDescriptor(); assertNull("unit", parameter.getUnit()); parameter = Parameter.create("Test", 3, SI.METRE); descriptor = (ParameterDescriptor) parameter.getDescriptor(); assertEquals("intValue", 3, parameter.intValue()); parameter = Parameter.create("Test", AxisDirection.class, AxisDirection.NORTH); descriptor = (ParameterDescriptor) parameter.getDescriptor(); validValues = descriptor.getValidValues();