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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
24
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: 
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
#include <stdio.h>
hgs
parents:
diff changeset
    18
#include <wchar.h>
hgs
parents:
diff changeset
    19
#include <algorithm>
hgs
parents:
diff changeset
    20
#include <functional>
hgs
parents:
diff changeset
    21
#include <memory>
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#include "itk.h"
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
#include <iostream>
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
#include "thaianalysis.h"
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
using namespace Itk;
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
#define THAISTATEMACHINE_FILE "c:\\data\\analysisunittestcorpus\\thai\\thaidict.sm"
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
Itk::TesterBase * CreateThaiAnalysisUnitTest();
hgs
parents:
diff changeset
    34
Itk::TesterBase * CreateEvaluationTest(); 
hgs
parents:
diff changeset
    35
Itk::TesterBase * CreateCjkAnalyzerUnitTest(); 
hgs
parents:
diff changeset
    36
Itk::TesterBase * CreateTinyAnalysisUnitTest(); 
hgs
parents:
diff changeset
    37
Itk::TesterBase * CreateNgramAnalyzerUnitTest();
hgs
parents:
diff changeset
    38
Itk::TesterBase * CreateKoreanAnalyzerUnitTest(); 
hgs
parents:
diff changeset
    39
Itk::TesterBase * CreatePrefixAnalyzerUnitTest();
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
Itk::TesterBase * CreateTestHierarchy()
hgs
parents:
diff changeset
    42
{
hgs
parents:
diff changeset
    43
    using namespace Itk;
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
    SuiteTester
hgs
parents:
diff changeset
    46
        * all = new SuiteTester("all");
hgs
parents:
diff changeset
    47
hgs
parents:
diff changeset
    48
    all->add(CreateThaiAnalysisUnitTest());
hgs
parents:
diff changeset
    49
    all->add(CreateEvaluationTest()); 
hgs
parents:
diff changeset
    50
    all->add(CreateCjkAnalyzerUnitTest());  
hgs
parents:
diff changeset
    51
    all->add(CreateTinyAnalysisUnitTest());  
hgs
parents:
diff changeset
    52
    all->add(CreateNgramAnalyzerUnitTest());  
hgs
parents:
diff changeset
    53
    all->add(CreateKoreanAnalyzerUnitTest());
hgs
parents:
diff changeset
    54
	all->add(CreatePrefixAnalyzerUnitTest());  
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
    return all;
hgs
parents:
diff changeset
    57
}
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
int main(int          argc,
hgs
parents:
diff changeset
    60
         const char * argv[])
hgs
parents:
diff changeset
    61
{
hgs
parents:
diff changeset
    62
    using namespace std;
hgs
parents:
diff changeset
    63
    
hgs
parents:
diff changeset
    64
    analysis::InitThaiAnalysis(THAISTATEMACHINE_FILE);
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
    int
hgs
parents:
diff changeset
    67
        rv = 0;
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
    auto_ptr<TesterBase>
hgs
parents:
diff changeset
    70
        testCase(CreateTestHierarchy());
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
    bool
hgs
parents:
diff changeset
    73
        help = false; 
hgs
parents:
diff changeset
    74
    const char
hgs
parents:
diff changeset
    75
        * focus = NULL;
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
    if (argc == 2)
hgs
parents:
diff changeset
    78
        { if (strcmp(argv[1], "h") == 0)
hgs
parents:
diff changeset
    79
                {
hgs
parents:
diff changeset
    80
                    help = true;
hgs
parents:
diff changeset
    81
                }
hgs
parents:
diff changeset
    82
            else
hgs
parents:
diff changeset
    83
                {
hgs
parents:
diff changeset
    84
                    focus = argv[1];
hgs
parents:
diff changeset
    85
                }
hgs
parents:
diff changeset
    86
        }
hgs
parents:
diff changeset
    87
    
hgs
parents:
diff changeset
    88
    if (help)
hgs
parents:
diff changeset
    89
        {
hgs
parents:
diff changeset
    90
            cout << "Test hierarchy:" << endl;
hgs
parents:
diff changeset
    91
            testCase->printHierarchy(cout);
hgs
parents:
diff changeset
    92
        }
hgs
parents:
diff changeset
    93
    else
hgs
parents:
diff changeset
    94
        {
hgs
parents:
diff changeset
    95
            TestRunConsole
hgs
parents:
diff changeset
    96
                ui(std::cout);
hgs
parents:
diff changeset
    97
    
hgs
parents:
diff changeset
    98
            TestMgr
hgs
parents:
diff changeset
    99
                testMgr(&ui,
hgs
parents:
diff changeset
   100
                        "c:\\data\\analysisunittest\\");
hgs
parents:
diff changeset
   101
     
hgs
parents:
diff changeset
   102
            rv = testMgr.run(testCase.get(),
hgs
parents:
diff changeset
   103
                            focus);
hgs
parents:
diff changeset
   104
            
hgs
parents:
diff changeset
   105
            testMgr.generateSummary(std::cout);
hgs
parents:
diff changeset
   106
            
hgs
parents:
diff changeset
   107
			ofstream
hgs
parents:
diff changeset
   108
					ofs("c:\\data\\analysisunittest\\report.txt");
hgs
parents:
diff changeset
   109
			if (ofs)
hgs
parents:
diff changeset
   110
				{
hgs
parents:
diff changeset
   111
					testMgr.generateSummary(ofs);
hgs
parents:
diff changeset
   112
				}
hgs
parents:
diff changeset
   113
        }
hgs
parents:
diff changeset
   114
    
hgs
parents:
diff changeset
   115
hgs
parents:
diff changeset
   116
    int
hgs
parents:
diff changeset
   117
    	c = getchar();
hgs
parents:
diff changeset
   118
    
hgs
parents:
diff changeset
   119
    analysis::ShutdownThaiAnalysis();
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
    return rv;
hgs
parents:
diff changeset
   122
}