private static bool evaluateObject(ref TimeOfDay obj, evaluateObjectDelegate testFunction, ref string errorMessage, string onError, ref int errorCount) { if (!testFunction(obj)) { errorCount++; errorMessage += onError + "\r"; return(false); } return(true); }
public static string _blackBoxTest() { TimeOfDay a, b, c; int i; string message = "timeOfDay test\r"; Random r = new Random(0xffffff); int errCount = 0; int testLength = 10000; int maxErrors = 10; evaluateObjectDelegate objectValidTest = new evaluateObjectDelegate(testValid); message += "general testing\r"; for (i = 0; (i < testLength) && (errCount < maxErrors); i++) { a = new TimeOfDay(r.Next(-124, 124), r.Next(-160, 160), r.Next(-160, 160)); b = new TimeOfDay(r.Next(0, 24), r.Next(0, 60), r.Next(0, 60)); c = new TimeOfDay(r.Next(0, 24), r.Next(0, 60), r.Next(0, 60)); evaluateObject(ref a, objectValidTest, ref message, "invalid object", ref errCount); evaluateObject(ref b, objectValidTest, ref message, "invalid object", ref errCount); evaluateObject(ref c, objectValidTest, ref message, "invalid object", ref errCount); //test comarisons if (!comparisonTest(a, b) && comparisonTest(a, c) && comparisonTest(b, c)) { message += " could not make valid < > == comparisions\r"; errCount++; } //test overflow TimeSpan ts = new TimeSpan(0, 24, 0, 0); TimeOfDay t = a; t += ts; if ((!t.overflow) || (!testValid(t))) { message += "time failed to overflow\r"; errCount++; } } if (errCount >= maxErrors) { message += String.Format("testing halted because of to many errors (max errors = {0})\r", maxErrors); } message += String.Format("{0} errors in {1} tests\r", errCount, i); errCount = 0; return(message); }