package com.gmail.dpierron.calibre; import com.gmail.dpierron.calibre.datamodel.DataModel; import com.gmail.dpierron.calibre.datamodel.NoiseWord; import java.util.Locale; import org.junit.Test; import static org.junit.Assert.assertTrue; public class TestNoiseWords { @Test public void testRemoveLeadingNoiseWords() { NoiseWord noiseWord; String withoutNoise; // Test ENGLSH noiseWord = DataModel.getNoiseword("en"); // Using 2-character ISO code withoutNoise = noiseWord.removeLeadingNoiseWords("the cat who liked girls"); assertTrue("cat who liked girls".equals(withoutNoise)); withoutNoise = noiseWord.removeLeadingNoiseWords("the a an cat who liked girls"); assertTrue("cat who liked girls".equals(withoutNoise)); withoutNoise = noiseWord.removeLeadingNoiseWords("the un cat who liked girls"); assertTrue("un cat who liked girls".equals(withoutNoise)); noiseWord.setRemovewords(false); // Test now with moving to end withoutNoise = noiseWord.removeLeadingNoiseWords("the un cat who liked girls"); assertTrue("un cat who liked girls, the".equals(withoutNoise)); withoutNoise = noiseWord.removeLeadingNoiseWords("the a an cat who liked girls"); assertTrue("cat who liked girls, the a an" .equals(withoutNoise)); // Test FRENCH noiseWord = DataModel.getNoiseword(Locale.FRENCH); // Using specific Locale withoutNoise = noiseWord.removeLeadingNoiseWords("le chien d'anglais qui aimait les frites"); assertTrue("chien d'anglais qui aimait les frites".equals(withoutNoise)); withoutNoise = noiseWord.removeLeadingNoiseWords("la le un anglais qui aimait les frites"); assertTrue("anglais qui aimait les frites".equals(withoutNoise)); withoutNoise = noiseWord.removeLeadingNoiseWords("l'anglais qui aimait les frites"); assertTrue("anglais qui aimait les frites" .equals(withoutNoise)); // Test GERMAN noiseWord = DataModel.getNoiseword("deu"); // Using 3-character ISO code withoutNoise = noiseWord.removeLeadingNoiseWords("ein voegel"); assertTrue("voegel".equals(withoutNoise)); withoutNoise = noiseWord.removeLeadingNoiseWords("ein der die das voegel"); assertTrue("voegel".equals(withoutNoise)); withoutNoise = noiseWord.removeLeadingNoiseWords("ein un voegel"); assertTrue("un voegel" .equals(withoutNoise)); // TODO: Add other languages when approprate localizstions provided } }