mirror of
https://github.com/mitb-archive/filebot
synced 2024-08-13 17:03:45 -04:00
73 lines
2.4 KiB
Java
73 lines
2.4 KiB
Java
package net.filebot.similarity;
|
|
|
|
import static org.junit.Assert.*;
|
|
import net.filebot.similarity.SeriesNameMatcher.SeriesNameCollection;
|
|
|
|
import org.junit.Test;
|
|
|
|
public class SeriesNameMatcherTest {
|
|
|
|
SeriesNameMatcher matcher = new SeriesNameMatcher(true);
|
|
|
|
@Test
|
|
public void whitelist() {
|
|
// ignore recurring word sequences when matching episode patterns
|
|
String[] names = new String[] { "Test 101 - 01", "Test 101 - 02" };
|
|
|
|
assertArrayEquals(new String[] { "Test 101" }, matcher.matchAll(names).toArray());
|
|
}
|
|
|
|
@Test
|
|
public void threshold() {
|
|
// ignore recurring word sequences when matching episode patterns
|
|
String[] names = new String[] { "Test 1 of 101", "Test 2 of 101", "Test 3 of 101" };
|
|
|
|
assertArrayEquals(new String[] { "Test" }, matcher.matchAll(names).toArray());
|
|
}
|
|
|
|
@Test
|
|
public void matchBeforeSeasonEpisodePattern() {
|
|
assertEquals("The Test", matcher.matchByEpisodeIdentifier("The Test - 1x01"));
|
|
|
|
// real world test
|
|
assertEquals("Mushishi", matcher.matchByEpisodeIdentifier("[niizk]_Mushishi_-_1x01_-_The_Green_Gathering"));
|
|
}
|
|
|
|
@Test
|
|
public void normalize() {
|
|
// non-letter and non-digit characters
|
|
assertEquals("The Test", matcher.normalize("_The_Test_-_ ..."));
|
|
|
|
// brackets
|
|
assertEquals("Luffy", matcher.normalize("[strawhat] Luffy (D.) [#Monkey]"));
|
|
|
|
// invalid brackets
|
|
assertEquals("strawhat Luffy", matcher.normalize("(strawhat [Luffy (#Monkey)"));
|
|
}
|
|
|
|
@Test
|
|
public void firstCommonSequence() {
|
|
String[] seq1 = "Common Name 1 Any Title".split("\\s");
|
|
String[] seq2 = "abc xyz Common Name 2 Any Title".split("\\s");
|
|
|
|
// check if common sequence can be determined
|
|
assertArrayEquals(new String[] { "Common", "Name" }, matcher.firstCommonSequence(seq1, seq2, 2, String.CASE_INSENSITIVE_ORDER));
|
|
|
|
// check if max start index is working
|
|
assertArrayEquals(null, matcher.firstCommonSequence(seq1, seq2, 0, String.CASE_INSENSITIVE_ORDER));
|
|
assertArrayEquals(null, matcher.firstCommonSequence(seq2, seq1, 1, String.CASE_INSENSITIVE_ORDER));
|
|
}
|
|
|
|
@Test
|
|
public void firstCharacterCaseBalance() {
|
|
SeriesNameCollection n = new SeriesNameCollection();
|
|
|
|
assertTrue(n.firstCharacterCaseBalance("My Name is Earl") > n.firstCharacterCaseBalance("My Name Is Earl"));
|
|
assertTrue(n.firstCharacterCaseBalance("My Name is Earl") > n.firstCharacterCaseBalance("my name is earl"));
|
|
|
|
// boost upper case ration
|
|
assertTrue(n.firstCharacterCaseBalance("Roswell") > n.firstCharacterCaseBalance("roswell"));
|
|
|
|
}
|
|
}
|