static void Main() {
bool failed = false;
for (int i = 0; i < values.Length; i++) {
for (int j = 0; j < values.Length; j++) {
double expected = results[i,j];
double actual = Math.Pow(values[i], values[j]);
if (expected == actual)
continue;
if (Double.IsNaN(expected) && Double.IsNaN(actual))
continue;
double diff = Math.Abs((expected - actual) / (expected + actual));
if (0.0 < diff && diff < 0.001)
continue;
Console.WriteLine("pow("+values[i]+","+values[j]+")" + " Expected:"+expected + " Actual:"+actual);
failed = true;
}
}
if (failed) { Console.WriteLine("FAILED"); Environment.Exit(1); }
Console.WriteLine("PASSED");
}
};