package org.molgenis.data.mapper.algorithmgenerator.categorymapper;
import com.google.common.collect.Lists;
import org.molgenis.data.mapper.algorithmgenerator.bean.Category;
import org.molgenis.data.mapper.algorithmgenerator.rules.impl.NegativeCategoryRule;
import org.molgenis.data.mapper.algorithmgenerator.rules.impl.PositiveCategoryRule;
import org.testng.Assert;
import org.testng.annotations.Test;
import java.util.Arrays;
import java.util.List;
public class LexicalCategoryMapperTest
{
LexicalCategoryMapper lexicalCategoryMapper = new LexicalCategoryMapper(
Arrays.asList(new PositiveCategoryRule(), new NegativeCategoryRule()));
@Test
public void findBestCategoryMatch()
{
Category maleCategory = Category.create("0", "MALE");
Category femaleCategory = Category.create("1", "FEMALE");
List<Category> targetCategories1 = Lists.newArrayList(maleCategory, femaleCategory);
Assert.assertEquals(
lexicalCategoryMapper.findBestCategoryMatch(Category.create("1", "male"), targetCategories1),
maleCategory);
Assert.assertEquals(
lexicalCategoryMapper.findBestCategoryMatch(Category.create("2", "female"), targetCategories1),
femaleCategory);
Category neverStrokeCategory = Category.create("0", "Never had stroke");
Category hasStrokeCategory = Category.create("1", "Has has stroke");
List<Category> targetCategories2 = Lists.newArrayList(neverStrokeCategory, hasStrokeCategory);
Assert.assertEquals(lexicalCategoryMapper.findBestCategoryMatch(Category.create("1", "no"), targetCategories2),
neverStrokeCategory);
Assert.assertEquals(lexicalCategoryMapper.findBestCategoryMatch(Category.create("1", "yes"), targetCategories2),
hasStrokeCategory);
}
}