# No args
# One arg and no matching flags
argv help
# Five args with two matching a flag
_flag_h '--help'  '-h'
_flag_help '--help'  '-h'
argv 'help'  'me'  'a lot more'
# Required, optional, and multiple flags
_flag_a ABC
_flag_abc ABC
_flag_d
_flag_def
_flag_g 'g1'  'g2'  'g3'
_flag_ghk 'g1'  'g2'  'g3'
_flag_h --help
_flag_help --help
argv 'help'  'me'
# --stop-nonopt works
_flag_a A2
_flag_abc A2
_flag_h -h
_flag_help -h
argv 'non-opt'  'second non-opt'  '--help'
# Implicit int flags work
_flag_val 123
argv 'abc'  'def'
_flag_t woohoo
_flag_token woohoo
_flag_v '-v'  '--verbose'
_flag_val -234
_flag_verbose '-v'  '--verbose'
argv 'a1'  'a2'
# Should be set to 987
_flag_m 987
_flag_max 987
argv 'argle'  'bargle'
# Should be set to 765
_flag_m 765
_flag_max 765
argv 'argle'  'bargle'
# Bool short flag only
_flag_C -C
_flag_v '-v'  '-v'
argv 'arg1'  'arg2'
# Value taking short flag only
_flag_v '--verbose'  '-v'
_flag_verbose '--verbose'  '-v'
_flag_x arg2
argv arg1
# Implicit int short flag only
_flag_v '-v'  '-v'  '-v'
_flag_verbose '-v'  '-v'  '-v'
_flag_x 321
argv 'argle'  'bargle'
# Implicit int short flag only with custom validation passes
_flag_v '-v'  '-v'  '-v'
_flag_verbose '-v'  '-v'  '-v'
_flag_x 499
argv
# Check the exit status from argparse validation
_flag_name max
_flag_value 83
expected argparse return status 57
