// Copyright 2013 Thomas Müller
// This file is part of MarMoT, which is licensed under GPLv3.
package marmot.test.morph;
import static org.junit.Assert.*;
import java.util.Arrays;
import marmot.morph.MorphDictionaryOptions;
import marmot.morph.MorphDictionaryOptions.DictionaryType;
import marmot.util.StringUtils.Mode;
import org.junit.Test;
public class MorphDictionaryOptionsTest {
@Test
public void simpleFilenameTest() {
String option_string;
MorphDictionaryOptions options;
option_string = "/bla/bla";
options = MorphDictionaryOptions.parse(option_string);
assertEquals(options.getFilename(), option_string);
}
@Test
public void indexTest() {
String option_string;
MorphDictionaryOptions options;
int[] indexes = {1,2,3};
option_string = "/bla/bla,indexes=[1,2,3]";
options = MorphDictionaryOptions.parse(option_string);
assertEquals(options.getFilename(), "/bla/bla");
assertTrue(Arrays.equals(options.getIndexes(), indexes));
option_string = "indexes=[3,1,2],/bla/bla";
options = MorphDictionaryOptions.parse(option_string);
assertEquals(options.getFilename(), "/bla/bla");
assertTrue(Arrays.equals(options.getIndexes(), indexes));
}
@Test
public void suffixTest() {
String option_string;
MorphDictionaryOptions options;
int[] indexes = {1,2,3};
option_string = "type=suffix,indexes=[3,1,2],/bla/bla";
options = MorphDictionaryOptions.parse(option_string);
assertEquals(options.getFilename(), "/bla/bla");
assertTrue(Arrays.equals(options.getIndexes(), indexes));
assertEquals(options.getDictType(), DictionaryType.suffix);
option_string = "type=suffix,/bla/bla,indexes=[3,1,2]";
options = MorphDictionaryOptions.parse(option_string);
assertEquals(options.getFilename(), "/bla/bla");
assertTrue(Arrays.equals(options.getIndexes(), indexes));
assertEquals(options.getDictType(), DictionaryType.suffix);
option_string = "/bla/bla,indexes=[3,1,2],type=suffix";
options = MorphDictionaryOptions.parse(option_string);
assertEquals(options.getFilename(), "/bla/bla");
assertTrue(Arrays.equals(options.getIndexes(), indexes));
assertEquals(options.getDictType(), DictionaryType.suffix);
}
@Test
public void normalizeTest() {
String option_string;
MorphDictionaryOptions options;
int[] indexes = {1,2,3};
option_string = "norm=none,type=suffix,indexes=[3,1,2],/bla/bla";
options = MorphDictionaryOptions.parse(option_string);
assertEquals(options.getFilename(), "/bla/bla");
assertTrue(Arrays.equals(options.getIndexes(), indexes));
assertEquals(options.getNormalize(), Mode.none);
assertEquals(options.getDictType(), DictionaryType.suffix);
option_string = "type=suffix,norm=lower,/bla/bla,indexes=[3,1,2]";
options = MorphDictionaryOptions.parse(option_string);
assertEquals(options.getFilename(), "/bla/bla");
assertTrue(Arrays.equals(options.getIndexes(), indexes));
assertEquals(options.getNormalize(), Mode.lower);
assertEquals(options.getDictType(), DictionaryType.suffix);
option_string = "/bla/bla,indexes=[3,1,2],norm=umlaut,type=suffix";
options = MorphDictionaryOptions.parse(option_string);
assertEquals(options.getFilename(), "/bla/bla");
assertTrue(Arrays.equals(options.getIndexes(), indexes));
assertEquals(options.getNormalize(), Mode.umlaut);
assertEquals(options.getDictType(), DictionaryType.suffix);
}
}