synced to 1.2
[ginac.git] / check / exams.cpp
index 31b5cf7f145d36b9dfc849c4ecf9cb6ed3ba5ab4..5deed8f2324646f4df535a4fa3b71297c4704ba4 100644 (file)
@@ -3,7 +3,7 @@
  *  Main program that calls all individual exams. */
 
 /*
- *  GiNaC Copyright (C) 1999-2000 Johannes Gutenberg University Mainz, Germany
+ *  GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
  */
 
 #include <stdexcept>
-#include <iostream>
 
 #include "exams.h"
 
 int main()
 {
-    unsigned result = 0;
-    
-    try {
-        result += exam_paranoia();
-    } catch (const exception &e) {
-        cout << "Error: caught exception " << e.what() << endl;
-        ++result;
-    }
-    
-    try {
-        result += exam_numeric();
-    } catch (const exception &e) {
-        cout << "Error: caught exception " << e.what() << endl;
-        ++result;
-    }
-    
-    try {
-        result += exam_powerlaws();
-    } catch (const exception &e) {
-        cout << "Error: caught exception " << e.what() << endl;
-        ++result;
-    }
-    
-    try {
-        result += exam_differentiation();
-    } catch (const exception &e) {
-        cout << "Error: caught exception " << e.what() << endl;
-        ++result;
-    }
-    
-    try {
-        result += exam_polygcd();
-    } catch (const exception &e) {
-        cout << "Error: caught exception " << e.what() << endl;
-        ++result;
-    }
-    
-    try {
-        result += exam_normalization();
-    } catch (const exception &e) {
-        cout << "Error: caught exception " << e.what() << endl;
-        ++result;
-    }
-    
-    try {
-        result += exam_pseries();
-    } catch (const exception &e) {
-        cout << "Error: caught exception " << e.what() << endl;
-        ++result;
-    }
-    
-    try {
-        result += exam_matrices();
-    } catch (const exception &e) {
-        cout << "Error: caught exception " << e.what() << endl;
-        ++result;
-    }
-    
-    try {
-        result += exam_lsolve();
-    } catch (const exception &e) {
-        cout << "Error: caught exception " << e.what() << endl;
-        ++result;
-    }
-    
-    try {
-        result += exam_noncommut();
-    } catch (const exception &e) {
-        cout << "Error: caught exception " << e.what() << endl;
-        ++result;
-    }
-    
-    try {
-        result += exam_misc();
-    } catch (const exception &e) {
-        cout << "Error: caught exception " << e.what() << endl;
-        ++result;
-    }
-    
-    if (result) {
-        cout << "Error: something went wrong. ";
-        if (result == 1) {
-            cout << "(one failure)" << endl;
-        } else {
-            cout << "(" << result << " individual failures)" << endl;
-        }
-        cout << "please check exam.out against exam.ref for more details."
-             << endl << "happy debugging!" << endl;
-    }
-    
-    return result;
+       unsigned result = 0;
+
+#define EXAM(which) \
+try { \
+       result += exam_ ## which (); \
+} catch (const exception &e) { \
+       cout << "Error: caught exception " << e.what() << endl; \
+       ++result; \
+}
+       
+       EXAM(paranoia)
+       EXAM(numeric)
+       EXAM(powerlaws)
+       EXAM(inifcns)
+       EXAM(differentiation)
+       EXAM(polygcd)
+       EXAM(normalization)
+       EXAM(pseries)
+       EXAM(matrices)
+       EXAM(lsolve)
+       EXAM(indexed)
+       EXAM(color)
+       EXAM(clifford)
+       EXAM(archive)
+       EXAM(misc)
+       
+       if (result) {
+               cout << "Error: something went wrong. ";
+               if (result == 1) {
+                       cout << "(one failure)" << endl;
+               } else {
+                       cout << "(" << result << " individual failures)" << endl;
+               }
+               cout << "please check exams.out against exams.ref for more details."
+                    << endl << "happy debugging!" << endl;
+       }
+       
+       return result;
 }