diff --git a/src/lm/preprocessing.rs b/src/lm/preprocessing.rs index 7f5c114..4a370dc 100644 --- a/src/lm/preprocessing.rs +++ b/src/lm/preprocessing.rs @@ -18,24 +18,19 @@ mod tests{ #[test] fn test(){ let sentence = vec!["a","b", "c"]; - let bigrams = padded_everygrams(sentence.iter(),2); - for b in bigrams.into_iter(){ - for o in b{ - print!("{}, ",o); - } - println!(); - } - // let bigram1 = vec![""]; - // let bigram2 = vec!["", "a"]; - // let bigram3 = vec!["a"]; - // let bigram4 = vec!["a", "b"]; - // let bigram5 = vec!["b"]; - // let bigram6 = vec!["b", "c"]; - // let bigram7 = vec!["c"]; - // let bigram8 = vec!["c", ""]; - // let bigram9 = vec![""]; - // let expected = vec![bigram1.iter(), bigram2.iter(), bigram3.iter(), bigram4.iter(), bigram5.iter(), bigram6.iter(),bigram7.iter(),bigram8.iter(),bigram9.iter()]; - // - // crate::test::should_be_equal_list_of_lists(&mut bigrams, expected) + let mut bigrams = padded_everygrams(sentence.iter(),2); + + let bigram1 = vec![""]; + let bigram2 = vec!["", "a"]; + let bigram3 = vec!["a"]; + let bigram4 = vec!["a", "b"]; + let bigram5 = vec!["b"]; + let bigram6 = vec!["b", "c"]; + let bigram7 = vec!["c"]; + let bigram8 = vec!["c", ""]; + let bigram9 = vec![""]; + let expected = vec![bigram1.iter(), bigram2.iter(), bigram3.iter(), bigram4.iter(), bigram5.iter(), bigram6.iter(),bigram7.iter(),bigram8.iter(),bigram9.iter()]; + + crate::test::should_be_equal_list_of_lists(&mut bigrams, expected) } } \ No newline at end of file diff --git a/src/test.rs b/src/test.rs index 6641280..3a672b3 100644 --- a/src/test.rs +++ b/src/test.rs @@ -7,9 +7,11 @@ pub fn should_be_equal_lists<'a>(left: impl Iterator, right: V } pub fn should_be_equal_list_of_lists<'a>(actual: &mut impl Iterator>, expected: Vec>) { - for (actual_outer, expected_outer) in actual.zip(expected.into_iter()) { + let mut actual_vec=Vec::new(); + actual_vec.extend(actual); + assert_eq!(actual_vec.len(), expected.len()); + for (actual_outer, expected_outer) in actual_vec.into_iter().zip(expected.into_iter()) { for (actual_inner, expected_inner) in actual_outer.zip(expected_outer) { - // println!("{} {}", actual_inner, expected_inner); assert_eq!(actual_inner, expected_inner); } }