00001 #include <iostream>
00002 #include <iomanip>
00003 #include <cmath>
00004 #include <cstdlib>
00005 #include <string>
00006 #include <sstream>
00007 #include "Math/VavilovAccurate.h"
00008 #include "Math/VavilovFast.h"
00009 #include "VavilovTest.cxx"
00010 #include "TFile.h"
00011 #include "TH2F.h"
00012
00013 int testVavilov() {
00014
00015 ROOT::Math::Vavilov *v;
00016
00017 int result = 0;
00018 int result_pdf[2], result_cdf[2], result_quant[2];
00019
00020 for (int i = 0; i < 2; ++i) {
00021
00022 if (i) {
00023 v = new ROOT::Math::VavilovFast (1, 1);
00024 }
00025 else {
00026 v = new ROOT::Math::VavilovAccurate (1, 1);
00027 }
00028 result += (result_pdf[i] = ROOT::Math::VavilovTest::PdfTest (*v, std::cout));
00029 result += (result_cdf[i] = ROOT::Math::VavilovTest::CdfTest (*v, std::cout));
00030 result += (result_quant[i] = ROOT::Math::VavilovTest::QuantileTest (*v, std::cout));
00031 }
00032
00033 for (int i = 0; i < 2; ++i) {
00034 if (i) {
00035 std::cout << "\nResults for VavilovFast:\n";
00036 }
00037 else {
00038 std::cout << "\nResults for VavilovAccurate:\n";
00039 }
00040 std::cout << "PdfTest: ";
00041 if (result_pdf[i] == 0)
00042 std::cout << "PASS\n";
00043 else
00044 std::cout << "FAIL: " << result_pdf[i] << " / 10\n";
00045 std::cout << "CdfTest: ";
00046 if (result_cdf[i] == 0)
00047 std::cout << "PASS\n";
00048 else
00049 std::cout << "FAIL: " << result_cdf[i] << " / 10\n";
00050 std::cout << "QuantileTest: ";
00051 if (result_quant[i] == 0)
00052 std::cout << "PASS\n";
00053 else
00054 std::cout << "FAIL: " << result_quant[i] << " / 20\n";
00055 }
00056 std::cout << "\n\nOverall: ";
00057 if (result == 0)
00058 std::cout << "PASS\n";
00059 else
00060 std::cout << "FAIL: " << result << " / 80\n";
00061
00062 return result;
00063 }
00064
00065 int main() {
00066 return testVavilov();
00067 }