test('[validate] incorrect, argument object, UI property right type, array right type, arrow wrong type', function (t) {
	t.plan(3);
	
	//SETUP
	var ui = SETUP();
	var array_UI = require('lib/UI/array_UI');
	var array = array_UI({length:1});
	
	//TEST
	var result = validate({UI:ui, array:array, arrow:"some bad type"});
	t.ok(result.msg.match(/Required argument: arrow/), "tells you what's wrong");
	t.ok(result.msg.match(/should be type array_arrow_UI/), "how to fix it");
	t.notOk(result.valid);
	
	TEARDOWN();
});
test('[validate] correct', function (t) {
	//SETUP
	var ui = SETUP();
	
	var array_UI = require('lib/UI/array_UI');
	var array = array_UI({length:1});
	var arrow = array._.arrow;
	
	var result = validate({UI:ui, array:array, arrow:arrow});
	
	//TEST
	t.ok(result.valid, "arguments are correct");
	t.ok(check.undefined(result.msg));
	
	TEARDOWN();
	t.end();
});