Skip to content

Commit

Permalink
exercism#1310 rust rna-transcription now matches README
Browse files Browse the repository at this point in the history
  • Loading branch information
etrepum committed Jan 18, 2014
1 parent 21c59bd commit bd19d87
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 12 deletions.
13 changes: 11 additions & 2 deletions assignments/rust/rna-transcription/example.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,23 @@ pub struct DeoxyribonucleicAcid {
nucleotides: ~str
}

fn transcribe_dna_rna(c: char) -> char {
match c {
'C' => 'G',
'G' => 'C',
'A' => 'U',
'T' => 'A',
_ => c
}
}

impl DeoxyribonucleicAcid {
pub fn new(nucleotides: ~str) -> DeoxyribonucleicAcid {
DeoxyribonucleicAcid { nucleotides: nucleotides }
}

pub fn to_rna(&self) -> RibonucleicAcid {
let rna_nucleotides = self.nucleotides.replace("T", "U");

let rna_nucleotides = self.nucleotides.chars().map(transcribe_dna_rna).collect();
RibonucleicAcid { nucleotides: rna_nucleotides }
}
}
Expand Down
20 changes: 10 additions & 10 deletions assignments/rust/rna-transcription/rna-transcription_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,32 +14,32 @@ fn test_acid_equals_acid() {

#[test]
#[ignore]
fn test_transcribes_cytidine_unchanged() {
assert_eq!(dna::RibonucleicAcid::new(~"C"), dna::DeoxyribonucleicAcid::new(~"C").to_rna());
fn test_transcribes_cytidine_guanosine() {
assert_eq!(dna::RibonucleicAcid::new(~"G"), dna::DeoxyribonucleicAcid::new(~"C").to_rna());
}

#[test]
#[ignore]
fn test_transcribes_guanosine_unchanged() {
assert_eq!(dna::RibonucleicAcid::new(~"G"), dna::DeoxyribonucleicAcid::new(~"G").to_rna());
fn test_transcribes_guanosine_cytidine() {
assert_eq!(dna::RibonucleicAcid::new(~"C"), dna::DeoxyribonucleicAcid::new(~"G").to_rna());
}

#[test]
#[ignore]
fn test_transcribes_adenosine_unchanged() {
assert_eq!(dna::RibonucleicAcid::new(~"A"), dna::DeoxyribonucleicAcid::new(~"A").to_rna());
fn test_transcribes_adenosine_uracil() {
assert_eq!(dna::RibonucleicAcid::new(~"U"), dna::DeoxyribonucleicAcid::new(~"A").to_rna());
}

#[test]
#[ignore]
fn test_transcribes_thymidine_to_uracil() {
assert_eq!(dna::RibonucleicAcid::new(~"U"), dna::DeoxyribonucleicAcid::new(~"T").to_rna());
fn test_transcribes_thymidine_to_adenosine() {
assert_eq!(dna::RibonucleicAcid::new(~"A"), dna::DeoxyribonucleicAcid::new(~"T").to_rna());
}

#[test]
#[ignore]
fn test_transcribes_all_occurrences_of_thymidine_to_uracil() {
assert_eq!(dna::RibonucleicAcid::new(~"ACGUGGUCUUAA"), dna::DeoxyribonucleicAcid::new(~"ACGTGGTCTTAA").to_rna())
fn test_transcribes_all_dna_to_rna() {
assert_eq!(dna::RibonucleicAcid::new(~"UGCACCAGAAUU"), dna::DeoxyribonucleicAcid::new(~"ACGTGGTCTTAA").to_rna())
}

#[test]
Expand Down

0 comments on commit bd19d87

Please sign in to comment.