/* * Carrot2 project. * * Copyright (C) 2002-2016, Dawid Weiss, Stanisław Osiński. * All rights reserved. * * Refer to the full license file "carrot2.LICENSE" * in the root folder of the repository checkout or at: * http://www.carrot2.org/carrot2.LICENSE */ package org.carrot2.text.linguistic; import org.carrot2.core.LanguageCode; import org.carrot2.util.tests.CarrotTestCase; import org.junit.Test; import static org.junit.Assert.*; /** * */ public class LanguageModelTest extends CarrotTestCase { /** * {@link LanguageModel} should return {@link LanguageModel}s that return the * same stemmer and tokenizer instance for reuse within the same thread (we assume no * two streams are tokenized at the same time using the same factory). */ @Test public void testLanguageModelReturnsCachedStemmer() { final DefaultStemmerFactory stemmerFactory = new DefaultStemmerFactory(); final DefaultTokenizerFactory tokenizerFactory = new DefaultTokenizerFactory(); final DefaultLexicalDataFactory lexicalDataFactory = new DefaultLexicalDataFactory(); final LanguageModel model1 = LanguageModel.create(LanguageCode.ENGLISH, stemmerFactory, tokenizerFactory, lexicalDataFactory); assertSame(model1.getStemmer(), model1.getStemmer()); final LanguageModel model2 = LanguageModel.create(LanguageCode.ENGLISH, stemmerFactory, tokenizerFactory, lexicalDataFactory); assertSame(model2.getStemmer(), model2.getStemmer()); assertNotSame(model1.getStemmer(), model2.getStemmer()); } /** * {@link LanguageModel} should return {@link LanguageModel}s that return the * same stemmer and tokenizer instance for reuse within the same thread (we assume no * two streams are tokenized at the same time using the same factory). */ @Test public void testLanguageModelReturnsCachedTokenizer() { final DefaultStemmerFactory stemmerFactory = new DefaultStemmerFactory(); final DefaultTokenizerFactory tokenizerFactory = new DefaultTokenizerFactory(); final DefaultLexicalDataFactory lexicalDataFactory = new DefaultLexicalDataFactory(); final LanguageModel model1 = LanguageModel.create(LanguageCode.ENGLISH, stemmerFactory, tokenizerFactory, lexicalDataFactory); assertSame(model1.getTokenizer(), model1.getTokenizer()); final LanguageModel model2 = LanguageModel.create(LanguageCode.ENGLISH, stemmerFactory, tokenizerFactory, lexicalDataFactory); assertSame(model2.getStemmer(), model2.getStemmer()); assertNotSame(model1.getTokenizer(), model2.getTokenizer()); } }