package com.compomics.util.test.experiment.sequences.matching;
import com.compomics.util.experiment.biology.AminoAcidPattern;
import com.compomics.util.preferences.SequenceMatchingPreferences;
import java.util.ArrayList;
import junit.framework.Assert;
import junit.framework.TestCase;
/**
* This class tests the application of amino acid patterns on an amino acid
* sequence.
*
* @author Marc Vaudel
*/
public class AminoAcidPatternTest extends TestCase {
public void testIndexes() {
String input = "KTESTRTESTKPTESTK";
AminoAcidPattern trypsinExample = AminoAcidPattern.getTrypsinExample();
ArrayList<Integer> indexes = trypsinExample.getIndexes(input, SequenceMatchingPreferences.defaultStringMatching);
Assert.assertTrue(indexes.size() == 2);
Assert.assertTrue(indexes.get(0) == 1);
Assert.assertTrue(indexes.get(1) == 6);
input = "KTESTRTESTKPTESTKT";
trypsinExample = AminoAcidPattern.getTrypsinExample();
indexes = trypsinExample.getIndexes(input, SequenceMatchingPreferences.defaultStringMatching);
Assert.assertTrue(indexes.size() == 3);
Assert.assertTrue(indexes.get(0) == 1);
Assert.assertTrue(indexes.get(1) == 6);
Assert.assertTrue(indexes.get(2) == 17);
input = "RRR";
trypsinExample = AminoAcidPattern.getTrypsinExample();
indexes = trypsinExample.getIndexes(input, SequenceMatchingPreferences.defaultStringMatching);
Assert.assertTrue(indexes.size() == 2);
Assert.assertTrue(indexes.get(0) == 1);
Assert.assertTrue(indexes.get(1) == 2);
input = "IJX";
SequenceMatchingPreferences sequenceMatchingPreferences = new SequenceMatchingPreferences();
sequenceMatchingPreferences.setSequenceMatchingType(SequenceMatchingPreferences.MatchingType.indistiguishableAminoAcids);
AminoAcidPattern pattern = AminoAcidPattern.getAminoAcidPatternFromString("IJX");
Assert.assertTrue(pattern.matches(input, sequenceMatchingPreferences));
pattern = AminoAcidPattern.getAminoAcidPatternFromString("IIX");
Assert.assertTrue(pattern.matches(input, sequenceMatchingPreferences));
pattern = AminoAcidPattern.getAminoAcidPatternFromString("JJX");
Assert.assertTrue(pattern.matches(input, sequenceMatchingPreferences));
pattern = AminoAcidPattern.getAminoAcidPatternFromString("JJJ");
Assert.assertTrue(pattern.matches(input, sequenceMatchingPreferences));
pattern = AminoAcidPattern.getAminoAcidPatternFromString("XXX");
Assert.assertTrue(pattern.matches(input, sequenceMatchingPreferences));
}
}