package org.nextprot.api.tasks.solr.indexer.entry.diff;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import org.junit.Assert;
import org.junit.Test;
import org.nextprot.api.core.domain.Entry;
import org.nextprot.api.solr.index.EntryIndex.Fields;
import org.nextprot.api.tasks.solr.indexer.entry.SolrDiffTest;
import org.nextprot.api.tasks.solr.indexer.entry.impl.PeptideFieldBuilder;
public class PeptideFieldBuilderDiffTest extends SolrDiffTest {
@Test
public void testPeptides() {
String[] test_list = {"NX_Q8IWA4", "NX_O00115","NX_Q7Z6P3","NX_E5RQL4","NX_Q12809","NX_Q7Z6P3",
"NX_Q7Z713", "NX_P22102", "NX_Q8IYV9", "NX_O00116", "NX_Q7Z713", "NX_O15056"};
for(int i=0; i < test_list.length; i++){ testPeptides(getEntry(test_list[i])); }
//for(int i=0; i < 80; i++){ testPeptides(getEntry(i)); } // 'random' entries
//Entry entry = getEntry("NX_P43686");
//testPeptides(entry);
}
public void testPeptides(Entry entry) {
String entryName = entry.getUniqueName();
System.out.println("Testing " + entryName);
PeptideFieldBuilder pfb = new PeptideFieldBuilder();
pfb.initializeBuilder(entry);
List<String> peptideList = (List) getValueForFieldInCurrentSolrImplementation(entryName, Fields.PEPTIDE);
if(peptideList == null) return; // No peptides in this entry
Set<String> peptideSet = new TreeSet<String>(peptideList);
Set<String> expectedPeptideSet = new TreeSet<String>((List) getValueForFieldInCurrentSolrImplementation(entryName, Fields.PEPTIDE));
if (expectedPeptideSet.size() > peptideSet.size()) {
expectedPeptideSet.removeAll(peptideSet);
String msg = "Expected peptides contains more data: " + expectedPeptideSet;
System.err.println(msg);
Assert.fail(msg);
}
if (peptideSet.size() > expectedPeptideSet.size()) {
peptideSet.removeAll(expectedPeptideSet);
String msg = "Peptides contains more data: " + peptideSet;
System.err.println(msg);
Assert.fail(msg);
}
Assert.assertEquals(peptideSet.size(), expectedPeptideSet.size());
Assert.assertEquals(peptideSet, expectedPeptideSet);
}
}