Moved tests inside the designated tests module for every problem

This commit is contained in:
Egor 2024-05-05 18:31:04 +03:00
parent e4dbd39192
commit 0819e90e80
26 changed files with 431 additions and 275 deletions

View file

@ -24,3 +24,4 @@ pub mod p21_merge_two_sorted_lists;
pub mod p22_generate_parentheses; pub mod p22_generate_parentheses;
pub mod p23_merge_k_sorted_lists; pub mod p23_merge_k_sorted_lists;
pub mod p24_swap_nodes_in_pairs; pub mod p24_swap_nodes_in_pairs;
pub mod p25_reverse_nodes_in_k_group;

View file

@ -18,17 +18,22 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use super::Solution;
#[test]
fn test1() {
assert_eq!(Solution::is_match("aa".to_string(), "a".to_string()), false); assert_eq!(Solution::is_match("aa".to_string(), "a".to_string()), false);
} }
#[test] #[test]
fn test2() { fn test2() {
assert_eq!(Solution::is_match("aa".to_string(), "a*".to_string()), true); assert_eq!(Solution::is_match("aa".to_string(), "a*".to_string()), true);
} }
#[test] #[test]
fn test3() { fn test3() {
assert_eq!(Solution::is_match("ab".to_string(), ".*".to_string()), true); assert_eq!(Solution::is_match("ab".to_string(), ".*".to_string()), true);
}
} }

View file

@ -18,12 +18,17 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
assert_eq!(Solution::max_area(vec![1,8,6,2,5,4,8,3,7]), 49); use super::Solution;
}
#[test] #[test]
fn test2() { fn test1() {
assert_eq!(Solution::max_area(vec![1,8,6,2,5,4,8,3,7]), 49);
}
#[test]
fn test2() {
assert_eq!(Solution::max_area(vec![1,1]), 1); assert_eq!(Solution::max_area(vec![1,1]), 1);
}
} }

View file

@ -33,17 +33,22 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use super::Solution;
#[test]
fn test1() {
assert_eq!(Solution::int_to_roman(3), "III"); assert_eq!(Solution::int_to_roman(3), "III");
} }
#[test] #[test]
fn test2() { fn test2() {
assert_eq!(Solution::int_to_roman(58), "LVIII"); assert_eq!(Solution::int_to_roman(58), "LVIII");
} }
#[test] #[test]
fn test3() { fn test3() {
assert_eq!(Solution::int_to_roman(1994), "MCMXCIV"); assert_eq!(Solution::int_to_roman(1994), "MCMXCIV");
}
} }

View file

@ -11,17 +11,22 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use super::Solution;
#[test]
fn test1() {
assert_eq!(Solution::roman_to_int("III".to_string()), 3); assert_eq!(Solution::roman_to_int("III".to_string()), 3);
} }
#[test] #[test]
fn test2() { fn test2() {
assert_eq!(Solution::roman_to_int("LVIII".to_string()), 58); assert_eq!(Solution::roman_to_int("LVIII".to_string()), 58);
} }
#[test] #[test]
fn test3() { fn test3() {
assert_eq!(Solution::roman_to_int("MCMXCIV".to_string()), 1994); assert_eq!(Solution::roman_to_int("MCMXCIV".to_string()), 1994);
}
} }

View file

@ -17,14 +17,19 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use super::Solution;
#[test]
fn test1() {
let strs = vec!["flower".to_string(),"flow".to_string(),"flight".to_string()]; let strs = vec!["flower".to_string(),"flow".to_string(),"flight".to_string()];
assert_eq!(Solution::longest_common_prefix(strs), "fl"); assert_eq!(Solution::longest_common_prefix(strs), "fl");
} }
#[test] #[test]
fn test2() { fn test2() {
let strs = vec!["dog".to_string(),"racecar".to_string(),"car".to_string()]; let strs = vec!["dog".to_string(),"racecar".to_string(),"car".to_string()];
assert_eq!(Solution::longest_common_prefix(strs), ""); assert_eq!(Solution::longest_common_prefix(strs), "");
}
} }

View file

@ -28,17 +28,22 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use super::Solution;
#[test]
fn test1() {
assert_eq!(Solution::three_sum(vec![-1,0,1,2,-1,-4]), vec![vec![-1,-1,2], vec![-1,0,1]]); assert_eq!(Solution::three_sum(vec![-1,0,1,2,-1,-4]), vec![vec![-1,-1,2], vec![-1,0,1]]);
} }
#[test] #[test]
fn test2() { fn test2() {
assert_eq!(Solution::three_sum(vec![0,1,1]), Vec::<Vec<i32>>::new()); assert_eq!(Solution::three_sum(vec![0,1,1]), Vec::<Vec<i32>>::new());
} }
#[test] #[test]
fn test3() { fn test3() {
assert_eq!(Solution::three_sum(vec![0,0,0]), vec![vec![0,0,0]]); assert_eq!(Solution::three_sum(vec![0,0,0]), vec![vec![0,0,0]]);
}
} }

View file

@ -22,12 +22,17 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
assert_eq!(Solution::three_sum_closest(vec![-1,2,1,-4], 1), 2); use super::Solution;
}
#[test] #[test]
fn test2() { fn test1() {
assert_eq!(Solution::three_sum_closest(vec![-1,2,1,-4], 1), 2);
}
#[test]
fn test2() {
assert_eq!(Solution::three_sum_closest(vec![0,0,0], 1), 0); assert_eq!(Solution::three_sum_closest(vec![0,0,0], 1), 0);
}
} }

View file

@ -23,19 +23,24 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use super::Solution;
#[test]
fn test1() {
let mut actual = Solution::letter_combinations("23".to_string()); let mut actual = Solution::letter_combinations("23".to_string());
actual.sort(); actual.sort();
assert_eq!(actual, vec!["ad","ae","af","bd","be","bf","cd","ce","cf"]); assert_eq!(actual, vec!["ad","ae","af","bd","be","bf","cd","ce","cf"]);
} }
#[test] #[test]
fn test2() { fn test2() {
assert_eq!(Solution::letter_combinations(String::new()), Vec::<String>::new()); assert_eq!(Solution::letter_combinations(String::new()), Vec::<String>::new());
} }
#[test] #[test]
fn test3() { fn test3() {
assert_eq!(Solution::letter_combinations("2".to_string()), vec!["a","b","c"]); assert_eq!(Solution::letter_combinations("2".to_string()), vec!["a","b","c"]);
}
} }

View file

@ -35,21 +35,26 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use super::Solution;
#[test]
fn test1() {
let mut actual = Solution::four_sum(vec![1,0,-1,0,-2,2], 0); let mut actual = Solution::four_sum(vec![1,0,-1,0,-2,2], 0);
actual.iter_mut().for_each(|v| v.sort()); actual.iter_mut().for_each(|v| v.sort());
assert_eq!(actual, vec![ assert_eq!(actual, vec![
vec![-2,-1,1,2], vec![-2,0,0,2], vec![-1,0,0,1] vec![-2,-1,1,2], vec![-2,0,0,2], vec![-1,0,0,1]
]); ]);
} }
#[test] #[test]
fn test2() { fn test2() {
assert_eq!(Solution::four_sum(vec![2,2,2,2,2], 8), vec![vec![2,2,2,2]]); assert_eq!(Solution::four_sum(vec![2,2,2,2,2], 8), vec![vec![2,2,2,2]]);
} }
#[test] #[test]
fn test3() { fn test3() {
assert_eq!(Solution::four_sum(vec![1000000000,1000000000,1000000000,1000000000], -294967296), Vec::<Vec<i32>>::new()); assert_eq!(Solution::four_sum(vec![1000000000,1000000000,1000000000,1000000000], -294967296), Vec::<Vec<i32>>::new());
}
} }

View file

@ -22,22 +22,28 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use crate::linked_list::ListNode;
use super::Solution;
#[test]
fn test1() {
assert_eq!(Solution::remove_nth_from_end(list![1,2,3,4,5], 2), list![1,2,3,5]); assert_eq!(Solution::remove_nth_from_end(list![1,2,3,4,5], 2), list![1,2,3,5]);
} }
#[test] #[test]
fn test2() { fn test2() {
assert_eq!(Solution::remove_nth_from_end(list![1], 1), list![]); assert_eq!(Solution::remove_nth_from_end(list![1], 1), list![]);
} }
#[test] #[test]
fn test3() { fn test3() {
assert_eq!(Solution::remove_nth_from_end(list![1,2], 1), list![1]); assert_eq!(Solution::remove_nth_from_end(list![1,2], 1), list![1]);
} }
#[test] #[test]
fn test4() { fn test4() {
assert_eq!(Solution::remove_nth_from_end(list![1,2], 2), list![2]); assert_eq!(Solution::remove_nth_from_end(list![1,2], 2), list![2]);
}
} }

View file

@ -15,21 +15,25 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use super::Solution;
#[test]
fn test1() {
let actual = Solution::two_sum(vec![2,7,11,15], 9); let actual = Solution::two_sum(vec![2,7,11,15], 9);
assert!(actual == vec![1,0] || actual == vec![0,1]); assert!(actual == vec![1,0] || actual == vec![0,1]);
} }
#[test] #[test]
fn test2() { fn test2() {
let actual = Solution::two_sum(vec![3,2,4], 6); let actual = Solution::two_sum(vec![3,2,4], 6);
assert!(actual == vec![1,2] || actual == vec![2,1]); assert!(actual == vec![1,2] || actual == vec![2,1]);
} }
#[test] #[test]
fn test3() { fn test3() {
let actual = Solution::two_sum(vec![3,3], 6); let actual = Solution::two_sum(vec![3,3], 6);
assert!(actual == vec![1,0] || actual == vec![0,1]); assert!(actual == vec![1,0] || actual == vec![0,1]);
}
} }

View file

@ -20,17 +20,22 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use super::Solution;
#[test]
fn test1() {
assert_eq!(Solution::is_valid("()".to_string()), true); assert_eq!(Solution::is_valid("()".to_string()), true);
} }
#[test] #[test]
fn test2() { fn test2() {
assert_eq!(Solution::is_valid("()[]{}".to_string()), true); assert_eq!(Solution::is_valid("()[]{}".to_string()), true);
} }
#[test] #[test]
fn test3() { fn test3() {
assert_eq!(Solution::is_valid("(]".to_string()), false); assert_eq!(Solution::is_valid("(]".to_string()), false);
}
} }

View file

@ -27,17 +27,23 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use crate::linked_list::ListNode;
use super::Solution;
#[test]
fn test1() {
assert_eq!(Solution::merge_two_lists(list![1,2,4], list![1,3,4]), list![1,1,2,3,4,4]); assert_eq!(Solution::merge_two_lists(list![1,2,4], list![1,3,4]), list![1,1,2,3,4,4]);
} }
#[test] #[test]
fn test2() { fn test2() {
assert_eq!(Solution::merge_two_lists(list![], list![]), list![]); assert_eq!(Solution::merge_two_lists(list![], list![]), list![]);
} }
#[test] #[test]
fn test3() { fn test3() {
assert_eq!(Solution::merge_two_lists(list![], list![0]), list![0]); assert_eq!(Solution::merge_two_lists(list![], list![0]), list![0]);
}
} }

View file

@ -15,14 +15,19 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use super::Solution;
#[test]
fn test1() {
let mut actual = Solution::generate_parenthesis(3); let mut actual = Solution::generate_parenthesis(3);
actual.sort(); actual.sort();
assert_eq!(actual, vec!["((()))","(()())","(())()","()(())","()()()"]); assert_eq!(actual, vec!["((()))","(()())","(())()","()(())","()()()"]);
} }
#[test] #[test]
fn test2() { fn test2() {
assert_eq!(Solution::generate_parenthesis(1), vec!["()"]); assert_eq!(Solution::generate_parenthesis(1), vec!["()"]);
}
} }

View file

@ -22,6 +22,11 @@ pub mod sorted_vec {
} }
} }
#[cfg(test)]
mod tests {
use crate::linked_list::ListNode;
use super::Solution;
#[test] #[test]
fn test1() { fn test1() {
assert_eq!(Solution::merge_k_lists(vec![ assert_eq!(Solution::merge_k_lists(vec![
@ -38,6 +43,7 @@ pub mod sorted_vec {
fn test3() { fn test3() {
assert_eq!(Solution::merge_k_lists(vec![list![]]), list![]); assert_eq!(Solution::merge_k_lists(vec![list![]]), list![]);
} }
}
} }
pub mod binary_heap { pub mod binary_heap {
@ -71,6 +77,11 @@ pub mod binary_heap {
fn cmp(&self, other: &Self) -> Ordering { self.val.cmp(&other.val) } fn cmp(&self, other: &Self) -> Ordering { self.val.cmp(&other.val) }
} }
#[cfg(test)]
mod tests {
use crate::linked_list::ListNode;
use super::Solution;
#[test] #[test]
fn test1() { fn test1() {
assert_eq!(Solution::merge_k_lists(vec![ assert_eq!(Solution::merge_k_lists(vec![
@ -87,4 +98,5 @@ pub mod binary_heap {
fn test3() { fn test3() {
assert_eq!(Solution::merge_k_lists(vec![list![]]), list![]); assert_eq!(Solution::merge_k_lists(vec![list![]]), list![]);
} }
}
} }

View file

@ -18,17 +18,23 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use crate::linked_list::ListNode;
use super::Solution;
#[test]
fn test1() {
assert_eq!(Solution::swap_pairs(list![1,2,3,4]), list![2,1,4,3]); assert_eq!(Solution::swap_pairs(list![1,2,3,4]), list![2,1,4,3]);
} }
#[test] #[test]
fn test2() { fn test2() {
assert_eq!(Solution::swap_pairs(list![]), list![]); assert_eq!(Solution::swap_pairs(list![]), list![]);
} }
#[test] #[test]
fn test3() { fn test3() {
assert_eq!(Solution::swap_pairs(list![1]), list![1]); assert_eq!(Solution::swap_pairs(list![1]), list![1]);
}
} }

View file

@ -0,0 +1,24 @@
use crate::linked_list::ListNode;
pub struct Solution;
impl Solution {
pub fn reverse_k_group(mut head: Option<Box<ListNode>>, k: i32) -> Option<Box<ListNode>> {
unimplemented!()
}
}
#[cfg(test)]
mod tests {
use crate::linked_list::ListNode;
use super::Solution;
#[test]
fn test1() {
assert_eq!(Solution::reverse_k_group(list![1,2,3,4,5], 2), list![2,1,4,3,5]);
}
#[test]
fn test2() {
assert_eq!(Solution::reverse_k_group(list![1,2,3,4,5], 3), list![3,2,1,4,5]);
}
}

View file

@ -29,17 +29,24 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use crate::linked_list::ListNode;
use super::Solution;
#[test]
fn test1() {
assert_eq!(Solution::add_two_numbers(list![2,4,3], list![5,6,4]), list![7,0,8]); assert_eq!(Solution::add_two_numbers(list![2,4,3], list![5,6,4]), list![7,0,8]);
} }
#[test] #[test]
fn test2() { fn test2() {
assert_eq!(Solution::add_two_numbers(list![0], list![0]), list![0]); assert_eq!(Solution::add_two_numbers(list![0], list![0]), list![0]);
}
#[test]
fn test3() {
assert_eq!(Solution::add_two_numbers(list![9,9,9,9,9,9,9], list![9,9,9,9]), list![8,9,9,9,0,0,0,1]);
}
} }
#[test]
fn test3() {
assert_eq!(Solution::add_two_numbers(list![9,9,9,9,9,9,9], list![9,9,9,9]), list![8,9,9,9,0,0,0,1]);
}

View file

@ -18,17 +18,22 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use super::Solution;
#[test]
fn test1() {
assert_eq!(Solution::length_of_longest_substring("abcabcbb".to_string()), 3); assert_eq!(Solution::length_of_longest_substring("abcabcbb".to_string()), 3);
} }
#[test] #[test]
fn test2() { fn test2() {
assert_eq!(Solution::length_of_longest_substring("bbbbb".to_string()), 1); assert_eq!(Solution::length_of_longest_substring("bbbbb".to_string()), 1);
} }
#[test] #[test]
fn test3() { fn test3() {
assert_eq!(Solution::length_of_longest_substring("pwwkew".to_string()), 3); assert_eq!(Solution::length_of_longest_substring("pwwkew".to_string()), 3);
}
} }

View file

@ -20,12 +20,17 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
assert_eq!(Solution::find_median_sorted_arrays(vec![1,3], vec![2]), 2.0); use super::Solution;
}
#[test] #[test]
fn test2() { fn test1() {
assert_eq!(Solution::find_median_sorted_arrays(vec![1,3], vec![2]), 2.0);
}
#[test]
fn test2() {
assert_eq!(Solution::find_median_sorted_arrays(vec![1,2], vec![3,4]), 2.5); assert_eq!(Solution::find_median_sorted_arrays(vec![1,2], vec![3,4]), 2.5);
}
} }

View file

@ -15,13 +15,18 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use super::Solution;
#[test]
fn test1() {
let actual = Solution::longest_palindrome("babad".to_string()); let actual = Solution::longest_palindrome("babad".to_string());
assert!(actual == "bab" || actual == "aba"); assert!(actual == "bab" || actual == "aba");
} }
#[test] #[test]
fn test2() { fn test2() {
assert_eq!(Solution::longest_palindrome("cbbd".to_string()), "bb"); assert_eq!(Solution::longest_palindrome("cbbd".to_string()), "bb");
}
} }

View file

@ -18,17 +18,22 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use super::Solution;
#[test]
fn test1() {
assert_eq!(Solution::convert("PAYPALISHIRING".to_string(), 3), "PAHNAPLSIIGYIR"); assert_eq!(Solution::convert("PAYPALISHIRING".to_string(), 3), "PAHNAPLSIIGYIR");
} }
#[test] #[test]
fn test2() { fn test2() {
assert_eq!(Solution::convert("PAYPALISHIRING".to_string(), 4), "PINALSIGYAHRPI"); assert_eq!(Solution::convert("PAYPALISHIRING".to_string(), 4), "PINALSIGYAHRPI");
} }
#[test] #[test]
fn test3() { fn test3() {
assert_eq!(Solution::convert("A".to_string(), 1), "A"); assert_eq!(Solution::convert("A".to_string(), 1), "A");
}
} }

View file

@ -17,17 +17,22 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use super::Solution;
#[test]
fn test1() {
assert_eq!(Solution::reverse(123), 321); assert_eq!(Solution::reverse(123), 321);
} }
#[test] #[test]
fn test2() { fn test2() {
assert_eq!(Solution::reverse(-123), -321); assert_eq!(Solution::reverse(-123), -321);
} }
#[test] #[test]
fn test3() { fn test3() {
assert_eq!(Solution::reverse(120), 21); assert_eq!(Solution::reverse(120), 21);
}
} }

View file

@ -19,17 +19,22 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use super::Solution;
#[test]
fn test1() {
assert_eq!(Solution::my_atoi("42".to_string()), 42); assert_eq!(Solution::my_atoi("42".to_string()), 42);
} }
#[test] #[test]
fn test2() { fn test2() {
assert_eq!(Solution::my_atoi(" -42".to_string()), -42); assert_eq!(Solution::my_atoi(" -42".to_string()), -42);
} }
#[test] #[test]
fn test3() { fn test3() {
assert_eq!(Solution::my_atoi("4193 with words".to_string()), 4193); assert_eq!(Solution::my_atoi("4193 with words".to_string()), 4193);
}
} }

View file

@ -12,17 +12,22 @@ impl Solution {
} }
} }
#[test] #[cfg(test)]
fn test1() { mod tests {
use super::Solution;
#[test]
fn test1() {
assert_eq!(Solution::is_palindrome(121), true); assert_eq!(Solution::is_palindrome(121), true);
} }
#[test] #[test]
fn test2() { fn test2() {
assert_eq!(Solution::is_palindrome(-121), false); assert_eq!(Solution::is_palindrome(-121), false);
} }
#[test] #[test]
fn test3() { fn test3() {
assert_eq!(Solution::is_palindrome(10), false); assert_eq!(Solution::is_palindrome(10), false);
}
} }