searchengine/oss/loc/analysisunittest/src/ngramtest.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 "itk.h"

#include "thaianalysis.h"

#include "CLucene.h"

#include <iostream>

#include "testutils.h"

#include "evaluationtool.h"
#include "analysisunittest.h"
#include "cjkanalyzer.h"
#include "ngram.h"

using namespace analysis; 
using namespace evaluationtool; 
using namespace lucene::util;

using namespace lucene::analysis; 

template<int N>
void KoreanNgramAnalyzerTest(Itk::TestMgr* /*testMgr*/) {
	CjkNGramAnalyzer analyzer(N);
	
	Corpus corpus(KOREAN_TEXTCORPUS); 
	
	for (int i = 0; i < corpus.size(); i++) {
		printTokens(analyzer, corpus[i]);
	}
}

template<int N>
void JamuNgramAnalyzerTest(Itk::TestMgr* /*testMgr*/) {
    JamuNGramAnalyzer analyzer(N);
    
    Corpus corpus(KOREAN_TEXTCORPUS); 
    
    for (int i = 0; i < corpus.size(); i++) {
        printTokens(analyzer, corpus[i]);
    }
}

template<int N>
void ChinesePrcNgramAnalyzerTest(Itk::TestMgr* /*testMgr*/) {
	CjkNGramAnalyzer analyzer(N);
	
	Corpus corpus(CHINESE_PRC_TEXTCORPUS); 
	
	for (int i = 0; i < corpus.size(); i++) {
		printTokens(analyzer, corpus[i]);
	}
}

Itk::TesterBase * CreateNgramAnalyzerUnitTest() 
{
	using namespace Itk;
	SuiteTester
		* testSuite = 
			new SuiteTester( "ngram" );
	
	testSuite->add( "korean_1gram", KoreanNgramAnalyzerTest<1>, "korean_1gram" );
    testSuite->add( "korean_2gram", KoreanNgramAnalyzerTest<2>, "korean_2gram" );
	testSuite->add( "chinese_prc_1gram", ChinesePrcNgramAnalyzerTest<1>, "chinese_prc_1gram" );
    testSuite->add( "chinese_prc_2gram", ChinesePrcNgramAnalyzerTest<2>, "chinese_prc_2gram" );
    testSuite->add( "jamu_1gram", JamuNgramAnalyzerTest<1>, "jamu_1gram" );
    testSuite->add( "jamu_2gram", JamuNgramAnalyzerTest<2>, "jamu_2gram" );
    
	return testSuite;
}