def test_translate_incorrect_sequences(seq_input, expected): """Tests the behaviour of the translate function with different sequence inputs""" assert str(rfm.translate(seq_input)[0]) == expected or str(rfm.translate(seq_input)) == 'amb' or str(rfm.translate(seq_input)) == 'untrans'
def test_remove_repeated_valid_input(): assert rfm.remove_repeated(proteins_repeated, repeated_list) == {1:"MVERSSKSEYPGYQLTEDIACSC", 3:"MFKGERTKAYCAQRNAHFAAGVY"} def test_dremove_repeated_no_repeat_list_input(): assert rfm.remove_repeated(proteins_repeated2,[]) == proteins_repeated2 ############################################################################################ #### TEST determine_contained ####################################################### contained_dna_seq = "ATGTACTACGCATGCGGGCAGATTATGCAGGTCGAGAGATGCGGGAGAAGTTCTCGACCTTCCCGTGGGACGTGTACCTATCCCCTTATCGAGCATTCCGTTTAA" contained_protein_seq = rfm.translate(contained_dna_seq) start_protein_seq = "MYYACGQIM" end_protein_seq= "TYPLIEHSV" mid_protein_seq = "MQVERCGRSSRPSRGTCT" mid2 = "CGQIMQVERCGRSSR" mid3 = "IMQVERCGRSSRPSR" mid4 = "RPSRGTCTY" equal = contained_protein_seq[0] proteins = {1:contained_protein_seq[0], 2:start_protein_seq, 3:end_protein_seq, 4:mid_protein_seq,
def test_translate_invalid_inputs(test_input, expectation): """Tests the behaviour of the translate function with unexpected inputs""" with expectation: rfm.translate(test_input)
def test_translate_stop_mid(): with pytest.raises(TranslationError): rfm.translate("ATGGGTTAACAATAA")
def test_translate_N(): rfm.translate("ATGGTNCAATATAACAATAATTATCCACAAGACAATAAGGAAGAAGCTATGACGGAAAACGAACAACTATTTTGGAATAGAGTACTAGAGCTATCTCGTTCTCAAATAGCACCAGCAGCTTATGAATTTTTTGTTCTAGAGGCTAGACTCCTCAAAATTGAACATCAAACTGCAGTTATTACTTTAGATAACATTGAAATGAAAAAGCTATTCTGGGAACAAAATTTGGGGCCTGTTATCCTAACAGCTGGTTTTGAAATTTTCAATGCTGAAATTACAGCTAACTATGTCTCAAACGATTTACATTTACAAGAAACTAGTTTTTCTAACTACCAGCAATCTAGCAATGAAGTAAATACTTTACCAATTAGAAAAATCGACTCTAACCTTAAAGAGAAATATACTTTTGCTAATTTTGTTCAAGGAGATGAAAATAGATGGGCTGTTTCAGCATCAATTGCTGTAGCTGATAGTCCTGGCACGACTTATAATCCTCTATTTATCTGGGGGGGACCTGGTCTAGGAAAGACGCATCTACTAAATGCTATTGGAAATCAAGTCTTAAGAGATAATCCAAACGCGAGGGTTTTATACATCACTGCTGAGAATTTTATTAATGAATTTGTCAGTCATATTCGTTTAGATTCGATGGAAGAATTAAAAGAAAAGTTTCGCAACTTAGACTTACTCCTGATTGATGATATTCAGTCGCTTGCTAAGAAAACCTTAGGGGGGACCCAAGAGGAGTTCTTCAATACTTTCAATGCTTTACATACAAACGATAAACAAATCGTATTGACCAGTGACCGAAATCCAAATCAATTAAATGATCTAGAAGAACGTCTAGTCACGCGCTTTAGTTGGGGACTCCCAGTAAATATCACACCACCTGATTTTGAAACACGAGTTGCTATTTTAACCAATAAAATTCAAGAATATCCTTATGATTTTCCTCAAGATACCATTGAATACTTAGCAGGAGAATTTGATTCCAACGTACGTGAATTAGAAGGAGCCTTGAAAAATATTAGTCTAGTTGCTGACTTTAAGCATGCTAAAACTATTACAGTAGATATAGCTGCAGAAGCTATCAGAGCACGTAAAAATGATGGTCCTATTGTTACTGTCATTCCTATAGAAGAAATTCAAATACAAGTTGGTAAATTCTATGGCGTAACTGTAAAAGAGATAAAAGCAACTAAAAGAACACAAGATATTGTCCTTGCAAGACAGGTAGCCATGTACTTAGCTCGTGAGATGACAGATAACAGTCTCCCAAAAATAGGTAAAGAATTTGGGGGACGAGATCACTCAACTGTTCTCCACGCTTATAATAAAATAAAAAATATGGTTGCTCAAGATGACAACTTACGAATTGAGATAGAAACTATCAAAAATAAAATCAGATAG")
def test_translate_reverse_antisense_strand(): assert str(rfm.translate("TACCCAGTTATT")[0]) == "MGQ"
def test_translate_atg_mid(): assert str(rfm.translate("ATGGGTCAATTCATGAAGTAA")[0]) == "MGQFMK"
def test_translate_antisense_strand(): assert str(rfm.translate("TTATTGACCCAT")[0]) == "MGQ"
def test_translate_reverse_sense_strand(): assert str(rfm.translate("AATAACTGGGTA")[0]) == "MGQ"
def test_translate_sense_strand(): assert str(rfm.translate("ATGGGTCAATAA")[0]) == "MGQ"
def test_lower_case(): assert str(rfm.translate("atgggtcaataa")[0]) == "MGQ"
def test_empty_list(): with pytest.raises(AttributeError): rfm.translate([])
def test_seq_length(): with pytest.raises(TranslationError): rfm.translate("ATGAAACCCCTTTTGGCTTATCGTAA")
def test_translate_string(): assert rfm.translate("Aello World") == "amb"