use super::new;
fn toStringVec<'a>(iter: impl IntoIterator<Item = &'a str>) -> Vec<String> {
iter.into_iter().map(|s| s.to_string()).collect()
}
#[test]
fn index_access_to_arguments() {
let g = new(toStringVec( ["one", "-r", "optval", "two"]), "r:");
assert!(g.is_ok());
let g = g.unwrap();
assert_eq!( g[0], "one" );
assert_eq!( g[1], "two" );
assert_eq!( g.len(), 2 );
}
#[test]
fn manual_index_access_to_arguments() {
let g = new(toStringVec( ["one", "-r", "optval", "two"]), "r:");
assert!(g.is_ok());
let g = g.unwrap();
let g0_I: &str = &g[0];
let g0_II: &str = &g[0];
assert! ( g0_I.eq(g0_II) );
let g1_I: String = g[1].clone();
let g1_II: String = g[1].clone();
assert! ( g1_I.eq(&g1_II) );
}
#[test]
#[should_panic]
fn invalid_access_to_arguments() {
let g = new(toStringVec( ["one", "-r", "optval", "two"]), "r:");
assert!(g.is_ok());
let g = g.unwrap();
assert_eq!( g[0], "one" );
assert_eq!( g[1], "two" );
assert_eq!( g.len(), 2 );
let _ = g[2].clone();
}