use super :: *;
use super ::the_module ::string ::parse_request as parse;
use std ::collections ::HashMap;
tests_impls! {
fn op_type_from_into()
{
let got = parse ::OpType ::from( 1 );
let exp = parse ::OpType ::Primitive( 1 );
a_id!( got, exp );
let got: parse ::OpType< i32 > = parse ::OpType ::from( vec![ 1, 2 ] );
let exp = parse ::OpType ::Vector( vec![ 1, 2 ] );
a_id!( got, exp );
let op = parse ::OpType ::from( vec![ 1, 2 ] );
let got: Vec< isize > = op.into();
a_id!( got, vec![ 1, 2 ] );
let op = parse ::OpType ::from( 1 );
let got = op.primitive();
a_id!( got.unwrap(), 1 );
let op = parse ::OpType ::from( vec![ 1, 2 ] );
let got: Vec< isize > = op.vector().unwrap();
a_id!( got, vec![ 1, 2 ] );
let op = parse ::OpType ::from( 1 );
let got = op.vector();
a_id!( got, None );
let op: parse ::OpType< usize > = parse ::OpType ::from( vec![ 1, 2 ] );
let got = op.primitive();
a_id!( got, None );
}
fn basic()
{
let src = "";
let mut options = the_module ::string ::request_parse();
options.src = the_module ::string ::parse_request ::private ::ParseSrc( src );
let req = options.parse();
let mut exp = parse ::Request ::default();
exp.key_val_delimeter = ": ";
exp.commands_delimeter = ";";
a_id!( req, exp );
let src = " ";
let mut options = the_module ::string ::request_parse();
options.src = the_module ::string ::parse_request ::private ::ParseSrc( src );
let req = options.parse();
let mut exp = parse ::Request ::default();
exp.original = " ";
exp.key_val_delimeter = ": ";
exp.commands_delimeter = ";";
a_id!( req, exp );
let src = " \t ";
let mut options = the_module ::string ::request_parse();
options.src = the_module ::string ::parse_request ::private ::ParseSrc( src );
let req = options.parse();
let mut exp = parse ::Request ::default();
exp.original = " \t ";
exp.key_val_delimeter = ": ";
exp.commands_delimeter = ";";
a_id!( req, exp );
}
fn with_subject_and_map()
{
let src = "subj";
let mut options = the_module ::string ::request_parse();
options.src = the_module ::string ::parse_request ::private ::ParseSrc( src );
let req = options.parse();
let mut exp = parse ::Request ::default();
exp.original = "subj";
exp.subject = "subj".to_string();
exp.subjects = vec![ "subj".to_string() ];
exp.maps = vec![ HashMap ::new() ];
exp.key_val_delimeter = ": ";
exp.commands_delimeter = ";";
a_id!( req, exp );
let src = "subj with space";
let mut options = the_module ::string ::request_parse();
options.src = the_module ::string ::parse_request ::private ::ParseSrc( src );
let req = options.parse();
let mut exp = parse ::Request ::default();
exp.original = "subj with space";
exp.subject = "subj with space".to_string();
exp.subjects = vec![ "subj with space".to_string() ];
exp.maps = vec![ HashMap ::new() ];
exp.key_val_delimeter = ": ";
exp.commands_delimeter = ";";
a_id!( req, exp );
let src = "subj v: 1";
let mut options = the_module ::string ::request_parse();
options.src = the_module ::string ::parse_request ::private ::ParseSrc( src );
let req = options.parse();
let mut options_map = HashMap ::new();
options_map.insert( String ::from( "v" ), parse ::OpType ::Primitive( String ::from( "1" ) ) );
let mut exp = parse ::Request ::default();
exp.original = "subj v: 1";
exp.subject = "subj".to_string();
exp.subjects = vec![ "subj".to_string() ];
exp.map = options_map.clone();
exp.maps = vec![ options_map.clone() ];
exp.key_val_delimeter = ": ";
exp.commands_delimeter = ";";
a_id!( req, exp );
let src = "subj v: 1 r: some";
let mut options = the_module ::string ::request_parse();
options.src = the_module ::string ::parse_request ::private ::ParseSrc( src );
let req = options.parse();
let mut options_map = HashMap ::new();
options_map.insert( String ::from( "v" ), parse ::OpType ::Primitive( String ::from( "1" ) ) );
options_map.insert( String ::from( "r" ), parse ::OpType ::Primitive( String ::from( "some" ) ) );
let mut exp = parse ::Request ::default();
exp.original = "subj v: 1 r: some";
exp.subject = "subj".to_string();
exp.subjects = vec![ "subj".to_string() ];
exp.map = options_map.clone();
exp.maps = vec![ options_map.clone() ];
exp.key_val_delimeter = ": ";
exp.commands_delimeter = ";";
a_id!( req, exp );
let src = "subj1 ; subj2";
let mut options = the_module ::string ::request_parse();
options.src = the_module ::string ::parse_request ::private ::ParseSrc( src );
let req = options.parse();
let mut exp = parse ::Request ::default();
exp.original = "subj1 ; subj2";
exp.subject = "subj1".to_string();
exp.subjects = vec![ "subj1".to_string(), "subj2".to_string() ];
exp.maps = vec![ HashMap ::new(), HashMap ::new() ];
exp.key_val_delimeter = ": ";
exp.commands_delimeter = ";";
a_id!( req, exp );
let src = "subj1 v: 1 ; subj2";
let mut options = the_module ::string ::request_parse();
options.src = the_module ::string ::parse_request ::private ::ParseSrc( src );
let req = options.parse();
let mut options_map = HashMap ::new();
options_map.insert( String ::from( "v" ), parse ::OpType ::Primitive( String ::from( "1" ) ) );
let mut exp = parse ::Request ::default();
exp.original = "subj1 v: 1 ; subj2";
exp.subject = "subj1".to_string();
exp.subjects = vec![ "subj1".to_string(), "subj2".to_string() ];
exp.map = options_map.clone();
exp.maps = vec![ options_map.clone(), HashMap ::new() ];
exp.key_val_delimeter = ": ";
exp.commands_delimeter = ";";
a_id!( req, exp );
let src = "subj1 v: 1 ; subj2 v: 2";
let mut options = the_module ::string ::request_parse();
options.src = the_module ::string ::parse_request ::private ::ParseSrc( src );
let req = options.parse();
let mut options1 = HashMap ::new();
options1.insert( String ::from( "v" ), parse ::OpType ::Primitive( String ::from( "1" ) ) );
let mut options2 = HashMap ::new();
options2.insert( String ::from( "v" ), parse ::OpType ::Primitive( String ::from( "2" ) ) );
let mut exp = parse ::Request ::default();
exp.original = "subj1 v: 1 ; subj2 v: 2";
exp.subject = "subj1".to_string();
exp.subjects = vec![ "subj1".to_string(), "subj2".to_string() ];
exp.map = options1.clone();
exp.maps = vec![ options1.clone(), options2.clone() ];
exp.key_val_delimeter = ": ";
exp.commands_delimeter = ";";
a_id!( req, exp );
let src = "subj1 v: 1 ne: -2 ; subj2 v: 2 r: some";
let mut options = the_module ::string ::request_parse();
options.src = the_module ::string ::parse_request ::private ::ParseSrc( src );
let req = options.parse();
let mut options1 = HashMap ::new();
options1.insert( String ::from( "v" ), parse ::OpType ::Primitive( String ::from( "1" ) ) );
options1.insert( String ::from( "ne" ), parse ::OpType ::Primitive( String ::from( "-2" ) ) );
let mut options2 = HashMap ::new();
options2.insert( String ::from( "v" ), parse ::OpType ::Primitive( String ::from( "2" ) ) );
options2.insert( String ::from( "r" ), parse ::OpType ::Primitive( String ::from( "some" ) ) );
let mut exp = parse ::Request ::default();
exp.original = "subj1 v: 1 ne: -2 ; subj2 v: 2 r: some";
exp.subject = "subj1".to_string();
exp.subjects = vec![ "subj1".to_string(), "subj2".to_string() ];
exp.map = options1.clone();
exp.maps = vec![ options1.clone(), options2.clone() ];
exp.key_val_delimeter = ": ";
exp.commands_delimeter = ";";
a_id!( req, exp );
}
fn with_several_values()
{
let src = "subj v: 1 v: 2";
let mut options = the_module ::string ::request_parse();
options.src = the_module ::string ::parse_request ::private ::ParseSrc( src );
options.several_values = the_module ::string ::parse_request ::private ::ParseSeveralValues( false );
let req = options.parse();
let mut options_map = HashMap ::new();
options_map.insert( String ::from( "v" ), parse ::OpType ::Primitive( "2".to_string() ) );
let mut exp = parse ::Request ::default();
exp.original = "subj v: 1 v: 2";
exp.subject = "subj".to_string();
exp.subjects = vec![ "subj".to_string() ];
exp.map = options_map.clone();
exp.maps = vec![ options_map.clone() ];
exp.key_val_delimeter = ": ";
exp.commands_delimeter = ";";
a_id!( req, exp );
let src = "subj v: 1 v: 2";
let mut options = the_module ::string ::request_parse();
options.src = the_module ::string ::parse_request ::private ::ParseSrc( src );
options.several_values = the_module ::string ::parse_request ::private ::ParseSeveralValues( true );
let req = options.parse();
let mut options_map = HashMap ::new();
options_map.insert( String ::from( "v" ), parse ::OpType ::Vector( vec![ "1".to_string(), "2".to_string() ] ) );
let mut exp = parse ::Request ::default();
exp.original = "subj v: 1 v: 2";
exp.subject = "subj".to_string();
exp.subjects = vec![ "subj".to_string() ];
exp.map = options_map.clone();
exp.maps = vec![ options_map.clone() ];
exp.key_val_delimeter = ": ";
exp.commands_delimeter = ";";
a_id!( req, exp );
}
fn with_parsing_arrays()
{
let src = "subj v: [1,2]";
let mut options = the_module ::string ::request_parse();
options.src = the_module ::string ::parse_request ::private ::ParseSrc( src );
options.parsing_arrays = the_module ::string ::parse_request ::private ::ParseParsingArrays( false );
let req = options.parse();
let mut options_map = HashMap ::new();
options_map.insert( String ::from( "v" ), parse ::OpType ::Primitive( "[1,2]".to_string() ) );
let mut exp = parse ::Request ::default();
exp.original = "subj v: [1,2]";
exp.subject = "subj".to_string();
exp.subjects = vec![ "subj".to_string() ];
exp.map = options_map.clone();
exp.maps = vec![ options_map.clone() ];
exp.key_val_delimeter = ": ";
exp.commands_delimeter = ";";
a_id!( req, exp );
let src = "subj v: [1,2]";
let mut options = the_module ::string ::request_parse();
options.src = the_module ::string ::parse_request ::private ::ParseSrc( src );
options.parsing_arrays = the_module ::string ::parse_request ::private ::ParseParsingArrays( true );
let req = options.parse();
let mut options_map = HashMap ::new();
options_map.insert( String ::from( "v" ), parse ::OpType ::Vector( vec![ "1".to_string(), "2".to_string() ] ) );
let mut exp = parse ::Request ::default();
exp.original = "subj v: [1,2]";
exp.subject = "subj".to_string();
exp.subjects = vec![ "subj".to_string() ];
exp.map = options_map.clone();
exp.maps = vec![ options_map.clone() ];
exp.key_val_delimeter = ": ";
exp.commands_delimeter = ";";
a_id!( req, exp );
let src = "subj v: [1,2] v: 3";
let mut options = the_module ::string ::request_parse();
options.src = the_module ::string ::parse_request ::private ::ParseSrc( src );
options.parsing_arrays = the_module ::string ::parse_request ::private ::ParseParsingArrays( true );
options.several_values = the_module ::string ::parse_request ::private ::ParseSeveralValues( true );
let req = options.parse();
let mut options_map = HashMap ::new();
options_map.insert( String ::from( "v" ), parse ::OpType ::Vector( vec![ "1".to_string(), "2".to_string(), "3".to_string() ] ) );
let mut exp = parse ::Request ::default();
exp.original = "subj v: [1,2] v: 3";
exp.subject = "subj".to_string();
exp.subjects = vec![ "subj".to_string() ];
exp.map = options_map.clone();
exp.maps = vec![ options_map.clone() ];
exp.key_val_delimeter = ": ";
exp.commands_delimeter = ";";
a_id!( req, exp );
let src = "subj v: 3 v: [1,2]";
let mut options = the_module ::string ::request_parse();
options.src = the_module ::string ::parse_request ::private ::ParseSrc( src );
options.parsing_arrays = the_module ::string ::parse_request ::private ::ParseParsingArrays( true );
options.several_values = the_module ::string ::parse_request ::private ::ParseSeveralValues( true );
let req = options.parse();
let mut options_map = HashMap ::new();
options_map.insert( String ::from( "v" ), parse ::OpType ::Vector( vec![ "3".to_string(), "1".to_string(), "2".to_string() ] ) );
let mut exp = parse ::Request ::default();
exp.original = "subj v: 3 v: [1,2]";
exp.subject = "subj".to_string();
exp.subjects = vec![ "subj".to_string() ];
exp.map = options_map.clone();
exp.maps = vec![ options_map.clone() ];
exp.key_val_delimeter = ": ";
exp.commands_delimeter = ";";
a_id!( req, exp );
let src = "subj v: [1,2] v: [3,4]";
let mut options = the_module ::string ::request_parse();
options.src = the_module ::string ::parse_request ::private ::ParseSrc( src );
options.parsing_arrays = the_module ::string ::parse_request ::private ::ParseParsingArrays( true );
options.several_values = the_module ::string ::parse_request ::private ::ParseSeveralValues( true );
let req = options.parse();
let mut options_map = HashMap ::new();
options_map.insert( String ::from( "v" ), parse ::OpType ::Vector( vec![ "1".to_string(), "2".to_string(), "3".to_string(), "4".to_string() ] ) );
let mut exp = parse ::Request ::default();
exp.original = "subj v: [1,2] v: [3,4]";
exp.subject = "subj".to_string();
exp.subjects = vec![ "subj".to_string() ];
exp.map = options_map.clone();
exp.maps = vec![ options_map.clone() ];
exp.key_val_delimeter = ": ";
exp.commands_delimeter = ";";
a_id!( req, exp );
}
}
tests_index! {
op_type_from_into,
basic,
with_subject_and_map,
with_several_values,
with_parsing_arrays,
}