/*
* 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.util;
import java.util.Arrays;
import org.carrot2.util.tests.CarrotTestCase;
import org.junit.Assert;
import org.junit.Test;
/**
* Test cases for {@link CharArrayComparators}.
*/
public class CharArrayComparatorsTest extends CarrotTestCase
{
@Test
public void testNormalizingComparatorPL()
{
char [][] testWords = new char [] []
{
"\u0142an".toCharArray(),
"demo".toCharArray(),
"demos".toCharArray(),
"DEMO".toCharArray(),
"\u0141AN".toCharArray(),
"Demos".toCharArray(),
"demo".toCharArray(),
"\u0141an".toCharArray(),
"DEMOS".toCharArray()
};
char [][] expectedOrderedWords = new char [] []
{
"\u0142an".toCharArray(),
"\u0141an".toCharArray(),
"\u0141AN".toCharArray(),
"demo".toCharArray(),
"demo".toCharArray(),
"DEMO".toCharArray(),
"demos".toCharArray(),
"Demos".toCharArray(),
"DEMOS".toCharArray()
};
check(testWords, expectedOrderedWords);
}
@Test
public void testNormalizingComparator()
{
char [][] testWords = new char [] []
{
"use".toCharArray(),
"UAE".toCharArray(),
"Use".toCharArray()
};
char [][] expectedOrderedWords = new char [] []
{
"UAE".toCharArray(),
"use".toCharArray(),
"Use".toCharArray()
};
check(testWords, expectedOrderedWords);
}
@Test
public void testNullsAreEqual()
{
Assert.assertTrue(0 == CharArrayComparators.CASE_INSENSITIVE_CHAR_ARRAY_COMPARATOR.compare(null, null));
Assert.assertTrue(0 == CharArrayComparators.FAST_CHAR_ARRAY_COMPARATOR.compare(null, null));
Assert.assertTrue(0 == CharArrayComparators.NORMALIZING_CHAR_ARRAY_COMPARATOR.compare(null, null));
}
private void check(char [][] testWords, char [][] expectedOrderedWords)
{
Arrays.sort(testWords,
CharArrayComparators.NORMALIZING_CHAR_ARRAY_COMPARATOR);
assertThat(testWords).isEqualTo(expectedOrderedWords);
}
}