searchengine/oss/loc/analysisunittest/src/analysisunittest.cpp
author hgs
Fri, 15 Oct 2010 12:09:28 +0530
changeset 24 65456528cac2
permissions -rw-r--r--
201041

/*
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: 
*
*/
#include <stdio.h>
#include <wchar.h>
#include <algorithm>
#include <functional>
#include <memory>

#include "itk.h"

#include <iostream>

#include "thaianalysis.h"

using namespace Itk;

#define THAISTATEMACHINE_FILE "c:\\data\\analysisunittestcorpus\\thai\\thaidict.sm"

Itk::TesterBase * CreateThaiAnalysisUnitTest();
Itk::TesterBase * CreateEvaluationTest(); 
Itk::TesterBase * CreateCjkAnalyzerUnitTest(); 
Itk::TesterBase * CreateTinyAnalysisUnitTest(); 
Itk::TesterBase * CreateNgramAnalyzerUnitTest();
Itk::TesterBase * CreateKoreanAnalyzerUnitTest(); 
Itk::TesterBase * CreatePrefixAnalyzerUnitTest();

Itk::TesterBase * CreateTestHierarchy()
{
    using namespace Itk;

    SuiteTester
        * all = new SuiteTester("all");

    all->add(CreateThaiAnalysisUnitTest());
    all->add(CreateEvaluationTest()); 
    all->add(CreateCjkAnalyzerUnitTest());  
    all->add(CreateTinyAnalysisUnitTest());  
    all->add(CreateNgramAnalyzerUnitTest());  
    all->add(CreateKoreanAnalyzerUnitTest());
	all->add(CreatePrefixAnalyzerUnitTest());  

    return all;
}

int main(int          argc,
         const char * argv[])
{
    using namespace std;
    
    analysis::InitThaiAnalysis(THAISTATEMACHINE_FILE);

    int
        rv = 0;

    auto_ptr<TesterBase>
        testCase(CreateTestHierarchy());

    bool
        help = false; 
    const char
        * focus = NULL;

    if (argc == 2)
        { if (strcmp(argv[1], "h") == 0)
                {
                    help = true;
                }
            else
                {
                    focus = argv[1];
                }
        }
    
    if (help)
        {
            cout << "Test hierarchy:" << endl;
            testCase->printHierarchy(cout);
        }
    else
        {
            TestRunConsole
                ui(std::cout);
    
            TestMgr
                testMgr(&ui,
                        "c:\\data\\analysisunittest\\");
     
            rv = testMgr.run(testCase.get(),
                            focus);
            
            testMgr.generateSummary(std::cout);
            
			ofstream
					ofs("c:\\data\\analysisunittest\\report.txt");
			if (ofs)
				{
					testMgr.generateSummary(ofs);
				}
        }
    

    int
    	c = getchar();
    
    analysis::ShutdownThaiAnalysis();

    return rv;
}