///|
test "named argument length exceeded" {
  let parser = Parser::new(args={
    "arg1": Arg::named(short='a', nargs=Fixed(2), help="Argument 1"),
  })
  let value = SimpleValue::new(parser.prog)
  let result = try? parser.parse(value, ["--arg1", "v1", "v2", "v3"])
  assert_eq(result.unwrap_err().to_string().contains("TooManyArgs"), true)
}

///|
test "flag argument duplicated" {
  let parser = Parser::new(args={
    "arg1": Arg::flag(short='a', help="Argument 1"),
  })
  let value = SimpleValue::new(parser.prog)
  let result = try? parser.parse(value, ["--arg1", "--arg1"])
  assert_eq(
    result
    .unwrap_err()
    .to_string()
    .contains("Invalid flag argument length: 2 > 1"),
    true,
  )
}