use pretty_assertions::assert_eq;
use rstest::rstest;
use rstest::fixture;
#[cfg(test)]
mod binary_search_trait {
use assert_cmd::prelude::OutputOkExt;
use core_dev::algorithms::traits::BinarySearch;
use super::assert_eq;
#[test]
fn against_i8() {
let mut some_vec = vec![123, 123, 22, 1, 2, 3i8];
assert_eq!(some_vec.binary_search(3).unwrap(), 5);
}
#[quickcheck]
fn binary_search_doesnt_panic(input: Vec<i64>, target: i64) {
println!("{:?} - {}", input, target);
let result = input.binary_search(target);
println!("{:?}", result)
}
}
#[fixture]
pub fn fixture() -> u32 { 42 }
#[rstest]
fn should_success(fixture: u32) {
assert_eq!(fixture, 42);
}
#[rstest]
fn should_be_invalid(
#[values(None, Some(""), Some(" "))]
value: Option<&str>
) {
}
#[rstest]
#[case(vec![123, 123, 123, 123, 2, 8], 10, vec![4, 5])]
#[case(vec![123, 123, 123, 123, 2, 8, 10, 100], 110, vec![6, 7])]
#[case(vec![123, 123, 123, 123, 10, 100], 10, vec![])]
#[case(vec![], 10, vec![])]
#[case(vec![10, 10, 10, 10, 10], 20, vec![0, 1])]
fn test_two_sum(
#[case] nums_vector: Vec<i32>,
#[case] target_sum: i32,
#[case] expected_result: Vec<i32>
) {
let result = core_dev::algorithms::two_sum(nums_vector, target_sum);
assert_eq!(result, expected_result);
}
use rstest_reuse::{self, *};
use std::net::SocketAddr;
#[rstest]
#[case("1.2.3.4:8080", 8080)]
#[case("127.0.0.1:9000", 9000)]
fn check_port(#[case] addr: SocketAddr, #[case] expected: u16) {
assert_eq!(expected, addr.port());
}