Browse Source

Solution

master
Julio Biason 4 years ago
parent
commit
8877025bc7
  1. 7
      rust/etl/src/lib.rs
  2. 3
      rust/etl/tests/etl.rs

7
rust/etl/src/lib.rs

@ -1,5 +1,10 @@
use std::collections::BTreeMap;
pub fn transform(h: &BTreeMap<i32, Vec<char>>) -> BTreeMap<char, i32> {
unimplemented!("How will you transform the tree {:?}?", h)
h.into_iter()
.flat_map(|(value, letters)| letters.iter().map(move |l| (l.to_lowercase(), value)))
.fold(BTreeMap::new(), |mut acc, (letter, value)| {
acc.insert(letter.to_string().chars().nth(0).unwrap(), *value);
acc
})
}

3
rust/etl/tests/etl.rs

@ -12,7 +12,6 @@ fn test_transform_one_value() {
}
#[test]
#[ignore]
fn test_transform_more_values() {
let input = input_from(&[(1, vec!['A', 'E', 'I', 'O', 'U'])]);
@ -22,7 +21,6 @@ fn test_transform_more_values() {
}
#[test]
#[ignore]
fn test_more_keys() {
let input = input_from(&[(1, vec!['A', 'E']), (2, vec!['D', 'G'])]);
@ -32,7 +30,6 @@ fn test_more_keys() {
}
#[test]
#[ignore]
fn test_full_dataset() {
let input = input_from(&[
(1, vec!['A', 'E', 'I', 'O', 'U', 'L', 'N', 'R', 'S', 'T']),

Loading…
Cancel
Save