{result:numberBody(req.body.captcha_options_num_distorts_max,0,10),expected:true,error:'Captcha options max distorts must be a number from 0-10'},
{result:numberBody(req.body.captcha_options_num_distorts_max,0,10),expected:true,error:'Captcha options max distorts must be a number from 0-10'},
{result:minmaxBody(req.body.captcha_options_num_distorts_min,req.body.captcha_options_num_distorts_max),expected:true,error:'Captcha options distorts min must be less than max'},
{result:minmaxBody(req.body.captcha_options_num_distorts_min,req.body.captcha_options_num_distorts_max),expected:true,error:'Captcha options distorts min must be less than max'},
{result:numberBody(req.body.captcha_options_distortion,0,50),expected:true,error:'Captcha options distortion must be a number from 0-50'},
{result:numberBody(req.body.captcha_options_distortion,0,50),expected:true,error:'Captcha options distortion must be a number from 0-50'},
{result:inArrayBody(req.body.captcha_options_text_font,fontPaths),expected:true,error:'Invalid captcha options text font'},
{result:numberBody(req.body.captcha_options_text_wave,0,10),expected:true,error:'Captcha options text wave effect strength must be a number form 0-10'},
{result:numberBody(req.body.captcha_options_text_wave,0,10),expected:true,error:'Captcha options text wave effect strength must be a number form 0-10'},
{result:numberBody(req.body.captcha_options_text_paint,0,10),expected:true,error:'Captcha options text paint effect strength must be a number from 0-10'},
{result:numberBody(req.body.captcha_options_text_paint,0,10),expected:true,error:'Captcha options text paint effect strength must be a number from 0-10'},
{result:numberBody(req.body.captcha_options_text_noise,0,10),expected:true,error:'Captcha options text noise effect strength must be a number from 0-10'},
{result:numberBody(req.body.captcha_options_text_noise,0,10),expected:true,error:'Captcha options text noise effect strength must be a number from 0-10'},
{name:'4n grid captcha with distortion',grid:{falses,trues,question:'whatever',size:4,imageSize:120,iconYOffset:0,edge:0,noise:0},numDistorts:{min:1,max:10},distortion:10},
{name:'4n grid captcha with distortion',font:'default',grid:{falses,trues,question:'whatever',size:4,imageSize:120,iconYOffset:0,edge:0,noise:0},numDistorts:{min:1,max:10},distortion:10},
{name:'4n grid captcha with edge',grid:{falses,trues,question:'whatever',size:4,imageSize:120,iconYOffset:0,edge:10,noise:0},numDistorts:{min:0,max:1},distortion:0},
{name:'4n grid captcha with edge',font:'default',grid:{falses,trues,question:'whatever',size:4,imageSize:120,iconYOffset:0,edge:10,noise:0},numDistorts:{min:0,max:1},distortion:0},
{name:'4n grid captcha with noise',grid:{falses,trues,question:'whatever',size:4,imageSize:120,iconYOffset:0,edge:0,noise:10},numDistorts:{min:0,max:1},distortion:0},
{name:'4n grid captcha with noise',font:'default',grid:{falses,trues,question:'whatever',size:4,imageSize:120,iconYOffset:0,edge:0,noise:10},numDistorts:{min:0,max:1},distortion:0},
{name:'4n grid captcha with y offset',grid:{falses,trues,question:'whatever',size:4,imageSize:120,iconYOffset:15,edge:0,noise:0},numDistorts:{min:0,max:1},distortion:0},
{name:'4n grid captcha with y offset',font:'default',grid:{falses,trues,question:'whatever',size:4,imageSize:120,iconYOffset:15,edge:0,noise:0},numDistorts:{min:0,max:1},distortion:0},
{name:'4n grid captcha with all effects',grid:{falses,trues,question:'whatever',size:4,imageSize:120,iconYOffset:0,edge:0,noise:0},numDistorts:{min:0,max:1},distortion:0},
{name:'4n grid captcha with all effects',font:'default',grid:{falses,trues,question:'whatever',size:4,imageSize:120,iconYOffset:0,edge:0,noise:0},numDistorts:{min:0,max:1},distortion:0},
{name:'4n grid captcha with all effects and distortion',grid:{falses,trues,question:'whatever',size:4,imageSize:120,iconYOffset:150,edge:10,noise:10},numDistorts:{min:1,max:10},distortion:10},
{name:'4n grid captcha with all effects and distortion',font:'default',grid:{falses,trues,question:'whatever',size:4,imageSize:120,iconYOffset:150,edge:10,noise:10},numDistorts:{min:1,max:10},distortion:10},
{name:'250px 6n grid captcha with all effects and distortion',grid:{falses,trues,question:'whatever',size:6,imageSize:250,iconYOffset:150,edge:10,noise:10},numDistorts:{min:1,max:10},distortion:10},
{name:'250px 6n grid captcha with all effects and distortion',font:'default',grid:{falses,trues,question:'whatever',size:6,imageSize:250,iconYOffset:150,edge:10,noise:10},numDistorts:{min:1,max:10},distortion:10},
{name:'123px 4n grid captcha with all effects and distortion',grid:{falses,trues,question:'whatever',size:4,imageSize:123,iconYOffset:150,edge:10,noise:10},numDistorts:{min:1,max:10},distortion:10},
{name:'123px 4n grid captcha with all effects and distortion',font:'default',grid:{falses,trues,question:'whatever',size:4,imageSize:123,iconYOffset:150,edge:10,noise:10},numDistorts:{min:1,max:10},distortion:10},
{name:'90px 3n grid captcha with all effects and distortion',grid:{falses,trues,question:'whatever',size:3,imageSize:90,iconYOffset:150,edge:10,noise:10},numDistorts:{min:1,max:10},distortion:10},
{name:'90px 3n grid captcha with all effects and distortion',font:'default',grid:{falses,trues,question:'whatever',size:3,imageSize:90,iconYOffset:150,edge:10,noise:10},numDistorts:{min:1,max:10},distortion:10},
{name:'text captcha with distortion',text:{font:'default',wave:0,line:false,paint:0,noise:0},numDistorts:{min:1,max:10},distortion:10},
{name:'text captcha with distortion',font:'default',text:{wave:0,line:false,paint:0,noise:0},numDistorts:{min:1,max:10},distortion:10},
{name:'text captcha with wave',text:{font:'default',wave:5,line:false,paint:0,noise:0},numDistorts:{min:0,max:1},distortion:0},
{name:'text captcha with wave',font:'default',text:{wave:5,line:false,paint:0,noise:0},numDistorts:{min:0,max:1},distortion:0},
{name:'text captcha with line',text:{font:'default',wave:0,line:true,paint:0,noise:0},numDistorts:{min:0,max:1},distortion:0},
{name:'text captcha with line',font:'default',text:{wave:0,line:true,paint:0,noise:0},numDistorts:{min:0,max:1},distortion:0},
{name:'text captcha with paint',text:{font:'default',wave:0,line:false,paint:5,noise:0},numDistorts:{min:0,max:1},distortion:0},
{name:'text captcha with paint',font:'default',text:{wave:0,line:false,paint:5,noise:0},numDistorts:{min:0,max:1},distortion:0},
{name:'text captcha with noise',text:{font:'default',wave:0,line:false,paint:0,noise:5},numDistorts:{min:0,max:1},distortion:0},
{name:'text captcha with noise',font:'default',text:{wave:0,line:false,paint:0,noise:5},numDistorts:{min:0,max:1},distortion:0},
{name:'text captcha with with all effects and distortion',text:{font:'default',wave:5,line:true,paint:5,noise:5},numDistorts:{min:1,max:10},distortion:10},
{name:'text captcha with with all effects and distortion',font:'default',text:{wave:5,line:true,paint:5,noise:5},numDistorts:{min:1,max:10},distortion:10},
{name:'text captcha with non-default font',text:{font:'/usr/share/fonts/type1/gsfonts/p052003l.pfb',wave:0,line:false,paint:0,noise:0},numDistorts:{min:0,max:1},distortion:0},
{name:'text captcha with non-default font',font:'/usr/share/fonts/type1/gsfonts/p052003l.pfb',text:{wave:0,line:false,paint:0,noise:0},numDistorts:{min:0,max:1},distortion:0},
{name:'text captcha with all the above',text:{font:'/usr/share/fonts/type1/gsfonts/p052003l.pfb',wave:5,line:true,paint:5,noise:5},numDistorts:{min:1,max:10},distortion:10},
{name:'text captcha with all the above',font:'/usr/share/fonts/type1/gsfonts/p052003l.pfb',text:{wave:5,line:true,paint:5,noise:5},numDistorts:{min:1,max:10},distortion:10},