private static void TestLongRangeParam() { string paramName = "LongRangeParam"; log.Info("Testing a RangeParamDesc<long>"); Camera.IRangeParamDesc <long> desc = (Camera.IRangeParamDesc <long>)cam.GetParameter(paramName); long min = desc.Min; long max = desc.Max; long oobLow = (long)min - 1L; long oobHigh = (long)max + 1L; // Test integer types SetParameterToValid(paramName, (byte)min); SetParameterToValid(paramName, (byte)max); SetParameterToValid(paramName, (short)min); SetParameterToValid(paramName, (short)max); SetParameterToValid(paramName, (int)min); SetParameterToValid(paramName, (int)max); SetParameterToValid(paramName, (long)min); SetParameterToValid(paramName, (long)max); // Test non-integer types SetParameterToValid(paramName, (float)min); SetParameterToValid(paramName, (float)max); SetParameterToValid(paramName, (double)min); SetParameterToValid(paramName, (double)max); //SetParameterToValid(paramName, (float)min); // disabled due to float rounding issues //SetParameterToValid(paramName, (float)max); // disabled due to float rounding issues //SetParameterToValid(paramName, (double)min); // disabled due to double rounding issues //SetParameterToValid(paramName, (double)max); // disabled due to double rounding issues //SetParameterToInvalid(paramName, (float)((float)min + 0.5f)); //SetParameterToInvalid(paramName, (float)((float)max - 0.5f)); //SetParameterToInvalid(paramName, (double)min + 0.5); //SetParameterToInvalid(paramName, (double)max - 0.5); // Test out-of-bounds SetParameterToInvalid(paramName, oobLow); SetParameterToInvalid(paramName, oobHigh); // Strings may be ok, but not if they contain a decimal separator SetParameterToValid(paramName, min.ToString()); SetParameterToInvalid(paramName, min.ToString("D") + "."); SetParameterToInvalid(paramName, min.ToString("F1")); SetParameterToInvalid(paramName, min.ToString("F2")); SetParameterToValid(paramName, max.ToString()); SetParameterToInvalid(paramName, max.ToString("D") + "."); SetParameterToInvalid(paramName, max.ToString("F1")); SetParameterToInvalid(paramName, max.ToString("F2")); // out-of-bounds SetParameterToInvalid(paramName, oobLow.ToString()); SetParameterToInvalid(paramName, oobLow.ToString("D") + "."); SetParameterToInvalid(paramName, oobLow.ToString("F1")); SetParameterToInvalid(paramName, oobLow.ToString("F2")); SetParameterToInvalid(paramName, oobHigh.ToString()); SetParameterToInvalid(paramName, oobHigh.ToString("D") + "."); SetParameterToInvalid(paramName, oobHigh.ToString("F1")); SetParameterToInvalid(paramName, oobHigh.ToString("F2")); // invalid values TestNonNumericValues(paramName); }
private static void TestDoubleRangeParam() { string paramName = "DoubleRangeParam"; log.Info("Testing a RangeParamDesc<double>"); Camera.IRangeParamDesc <double> desc = (Camera.IRangeParamDesc <double>)cam.GetParameter(paramName); double min = desc.Min; double max = desc.Max; double oobLow = min - 0.1; double oobHigh = max + 0.1; // Test integer types SetParameterToValid(paramName, (byte)min); SetParameterToValid(paramName, (byte)max); SetParameterToValid(paramName, (short)min); SetParameterToValid(paramName, (short)max); SetParameterToValid(paramName, (int)min); SetParameterToValid(paramName, (int)max); SetParameterToValid(paramName, (long)min); SetParameterToValid(paramName, (long)max); // Test non-integer types SetParameterToValid(paramName, (float)min); SetParameterToValid(paramName, (float)max); SetParameterToValid(paramName, (double)min); SetParameterToValid(paramName, (double)max); SetParameterToValid(paramName, (double)min + 0.5); SetParameterToValid(paramName, (double)max - 0.5); // Test out-of-bounds SetParameterToInvalid(paramName, oobLow); SetParameterToInvalid(paramName, oobHigh); // Strings may be ok, but not if they contain a decimal separator // Extreme double values do not convert well with format specifier F or without a format specifier SetParameterToValid(paramName, min.ToString()); SetParameterToValid(paramName, min.ToString("R")); SetParameterToValid(paramName, min.ToString("R") + "."); SetParameterToValid(paramName, min.ToString("F")); SetParameterToInvalid(paramName, min.ToString("F") + "."); SetParameterToValid(paramName, min.ToString("F1")); SetParameterToValid(paramName, min.ToString("F2")); SetParameterToValid(paramName, max.ToString()); SetParameterToValid(paramName, max.ToString("R")); SetParameterToValid(paramName, max.ToString("R") + "."); SetParameterToValid(paramName, max.ToString("F")); SetParameterToInvalid(paramName, max.ToString("F") + "."); SetParameterToValid(paramName, max.ToString("F1")); SetParameterToValid(paramName, max.ToString("F2")); // out-of-bounds SetParameterToInvalid(paramName, oobLow.ToString()); SetParameterToInvalid(paramName, oobLow.ToString("R")); SetParameterToInvalid(paramName, oobLow.ToString("R") + "."); SetParameterToInvalid(paramName, oobLow.ToString("F")); SetParameterToInvalid(paramName, oobLow.ToString("F") + "."); SetParameterToInvalid(paramName, oobLow.ToString("F1")); SetParameterToInvalid(paramName, oobLow.ToString("F2")); SetParameterToInvalid(paramName, oobHigh.ToString()); SetParameterToInvalid(paramName, oobHigh.ToString("R")); SetParameterToInvalid(paramName, oobHigh.ToString("R") + "."); SetParameterToInvalid(paramName, oobHigh.ToString("F")); SetParameterToInvalid(paramName, oobHigh.ToString("F") + "."); SetParameterToInvalid(paramName, oobHigh.ToString("F1")); SetParameterToInvalid(paramName, oobHigh.ToString("F2")); // invalid values TestNonNumericValues(paramName); }
private static void TestFloatRangeParam() { string paramName = "FloatRangeParam"; log.Info("Testing a RangeParamDesc<float>"); Camera.IRangeParamDesc <float> desc = (Camera.IRangeParamDesc <float>)cam.GetParameter(paramName); float min = desc.Min; float max = desc.Max; float oobLow = min - 0.1f; float oobHigh = max + 0.1f; // Test integer types SetParameterToValid(paramName, (byte)min); SetParameterToValid(paramName, (byte)max); SetParameterToValid(paramName, (short)min); SetParameterToValid(paramName, (short)max); SetParameterToValid(paramName, (int)min); SetParameterToValid(paramName, (int)max); SetParameterToValid(paramName, (long)min); SetParameterToValid(paramName, (long)max); // Test non-integer types SetParameterToValid(paramName, (float)min); SetParameterToValid(paramName, (float)max); SetParameterToValid(paramName, (double)min); SetParameterToValid(paramName, (double)max); SetParameterToValid(paramName, (float)(min + 0.5f)); SetParameterToValid(paramName, (float)(max - 0.5f)); SetParameterToValid(paramName, (double)min + 0.5); SetParameterToValid(paramName, (double)max - 0.5); // Test out-of-bounds SetParameterToInvalid(paramName, oobLow); SetParameterToInvalid(paramName, oobHigh); // Strings may be ok, but not if they contain a decimal separator SetParameterToValid(paramName, min.ToString()); SetParameterToValid(paramName, min.ToString("R")); SetParameterToValid(paramName, min.ToString("R") + "."); SetParameterToValid(paramName, min.ToString("F")); SetParameterToInvalid(paramName, min.ToString("F") + "."); SetParameterToValid(paramName, min.ToString("F1")); SetParameterToValid(paramName, min.ToString("F2")); SetParameterToValid(paramName, max.ToString()); SetParameterToValid(paramName, max.ToString("R")); SetParameterToValid(paramName, max.ToString("R") + "."); SetParameterToValid(paramName, max.ToString("F")); SetParameterToInvalid(paramName, max.ToString("F") + "."); SetParameterToValid(paramName, max.ToString("F1")); SetParameterToValid(paramName, max.ToString("F2")); // out-of-bounds SetParameterToInvalid(paramName, oobLow.ToString()); SetParameterToInvalid(paramName, oobLow.ToString("R")); SetParameterToInvalid(paramName, oobLow.ToString("R") + "."); SetParameterToInvalid(paramName, oobLow.ToString("F")); SetParameterToInvalid(paramName, oobLow.ToString("F") + "."); SetParameterToInvalid(paramName, oobLow.ToString("F1")); SetParameterToInvalid(paramName, oobLow.ToString("F2")); SetParameterToInvalid(paramName, oobHigh.ToString()); SetParameterToInvalid(paramName, oobHigh.ToString("R")); SetParameterToInvalid(paramName, oobHigh.ToString("R") + "."); SetParameterToInvalid(paramName, oobHigh.ToString("F")); SetParameterToInvalid(paramName, oobHigh.ToString("F") + "."); SetParameterToInvalid(paramName, oobHigh.ToString("F1")); SetParameterToInvalid(paramName, oobHigh.ToString("F2")); // invalid values TestNonNumericValues(paramName); }