package com.compomics.util.test.io;
import com.compomics.util.experiment.biology.PTMFactory;
import com.compomics.util.experiment.identification.identification_parameters.PtmSettings;
import com.compomics.util.experiment.identification.identification_parameters.SearchParameters;
import com.compomics.util.experiment.massspectrometry.Charge;
import com.compomics.util.io.json.marshallers.IdentificationParametersMarshaller;
import com.compomics.util.preferences.DigestionPreferences;
import java.io.File;
import org.junit.After;
import org.junit.AfterClass;
import static org.junit.Assert.assertTrue;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* Test for the SearchParameterMarshaller.
*
* @author Kenneth Verheggen
* @author Marc Vaudel
*/
public class TestSearchParameterMarshaller {
@BeforeClass
public static void setUpClass() {
}
@AfterClass
public static void tearDownClass() {
}
@Before
public void setUp() {
}
@After
public void tearDown() {
}
/**
* Test of the JSON (un)marshalling methods for SearchParameters (also
* applies for other marshallers)
*/
@Test
public void testMarshallSearchParametersToJson() {
Class objectType = SearchParameters.class;
SearchParameters parameters = createMockUpParameters();
IdentificationParametersMarshaller instance = new IdentificationParametersMarshaller();
//1. Marshall to JSON
String parametersAsJson = instance.toJson(parameters);
//System.out.println(parametersAsJson);
//2. Unmarshall back to a parameters object
SearchParameters jsonAsParameters = (SearchParameters) instance.fromJson(objectType, parametersAsJson);
//System.out.println(jsonAsParameters);
//3. Compare both
assertTrue(parameters.equals(jsonAsParameters));
}
/**
* @return mock up SearchParameters
*/
private SearchParameters createMockUpParameters() {
SearchParameters parameters = new SearchParameters();
parameters.setFragmentIonAccuracy(0.02);
parameters.setFragmentAccuracyType(SearchParameters.MassAccuracyType.DA);
parameters.setPrecursorAccuracy(0.5);
parameters.setPrecursorAccuracyType(SearchParameters.MassAccuracyType.DA);
parameters.setDigestionPreferences(DigestionPreferences.getDefaultPreferences());
parameters.setMaxChargeSearched(new Charge(1, 5));
parameters.setMinChargeSearched(new Charge(1, 1));
parameters.setPtmSettings(createMockUpPTMSettings());
parameters.setFastaFile(new File("T:/HIS/IS/A/FAKE/FASTA.FASTA"));
return parameters;
}
/**
* @return mock up PtmSettings
*/
private PtmSettings createMockUpPTMSettings() {
PtmSettings settings = new PtmSettings();
PTMFactory instance = PTMFactory.getInstance();
settings.addFixedModification(instance.getPTM("Carboxymethylation of C"));
settings.addVariableModification(instance.getPTM("Oxidation of M"));
return settings;
}
}