TEST_EQUAL(out[6].toString(),"VPQVSTPTLVEVSRSLGK") TEST_EQUAL(out[7].toString(),"VGTRCCTK") TEST_EQUAL(out[8].toString(),"PESERMPCTEDYLSLILNRLCVLHEKTPVSEKVTKCCTESLVNRR") TEST_EQUAL(out[9].toString(),"PCFSALTPDETYVPKAFDEKLFTFHADICTLPDTEKQIKKQTALVELLKHK") TEST_EQUAL(out[10].toString(),"PKATEEQLKTVMENFVAFDKCCAADDKEACFAVEGPKLVVSTQTALA") END_SECTION START_SECTION(( bool isValidProduct(const AASequence& protein, Size pep_pos, Size pep_length) )) EnzymaticDigestion ed; ed.setEnzyme(EnzymaticDigestion::ENZYME_TRYPSIN); ed.setSpecificity(EnzymaticDigestion::SPEC_FULL); // require both sides AASequence prot = AASequence("ABCDEFGKABCRAAAKAARPBBBB"); TEST_EQUAL(ed.isValidProduct(prot, 100, 3), false); // invalid position TEST_EQUAL(ed.isValidProduct(prot, 10, 300), false); // invalid length TEST_EQUAL(ed.isValidProduct(prot, 10, 0), false); // invalid size TEST_EQUAL(ed.isValidProduct(AASequence(""), 10, 0), false); // invalid size TEST_EQUAL(ed.isValidProduct(prot, 0, 3), false); // invalid N-term TEST_EQUAL(ed.isValidProduct(prot, 0, 8), true); // valid N-term TEST_EQUAL(ed.isValidProduct(prot, 8, 4), true); // valid fully-tryptic TEST_EQUAL(ed.isValidProduct(prot, 8, 8), true); // valid fully-tryptic TEST_EQUAL(ed.isValidProduct(prot, 0, 19), false); // invalid C-term - followed by proline TEST_EQUAL(ed.isValidProduct(prot, 8, 3), false); // invalid C-term TEST_EQUAL(ed.isValidProduct(prot, 3, 6), false); // invalid C+N-term TEST_EQUAL(ed.isValidProduct(prot, 1, 7), false); // invalid N-term TEST_EQUAL(ed.isValidProduct(prot, 0, prot.size()), true); // the whole thing prot = AASequence("MBCDEFGKABCRAAAKAA"); // starts with Met - we assume the cleaved form without Met occurs in vivo