'use strict';
// Required args: consts
function test_consts(args){
let results = '
'
+ '' + label
+ ' | ' + value
+ ' | ' + result;
}
return results;
}
// Required args: args, expect, function
function test_function(args){
let test = false;
let result = globalThis[args['function']](args['args']);
const type = core_type(args['expect']);
if(type === 'function'){
test = args['expect'](result);
}else if(type === 'array'
|| type === 'object'){
test = true;
for(const item in result){
if(args['expect'][item] === void 0
|| result[item] !== args['expect'][item]){
test = false;
break;
}
}
}else{
test = result === args['expect'];
}
return {
'result': result,
'test': test,
};
}
// Required args: link, tests
function test_run(args){
let results = ' |
'
+ '' + args['tests'][test]['function'] + '()'
+ ' | ' + args_json
+ ' | ' + expect
+ ' | ' + result_json
+ ' | ' + result['test'];
}
return results;
}
// Required args: function
function test_time(args){
args = core_args({
'args': args,
'defaults': {
'function-args': void 0,
'runs': 100,
},
});
let runs_done = 0;
let time_max = 0;
let time_min = 0;
let time_total = 0;
while(runs_done < args['runs']){
const time_before = new Date();
args['function'](args['function-args']);
const time_after = new Date();
const diff = time_after - time_before;
if(diff < time_min
|| time_min === 0){
time_min = diff;
}
if(diff > time_max){
time_max = diff;
}
time_total += diff;
runs_done += 1;
}
return {
'average': time_total / args['runs'],
'max': time_max,
'min': time_min,
'runs': args['runs'],
'total': time_total,
};
}
function test_trim(string){
const split = string.split('\n');
let trimmed = split[0];
for(let i = 1; i < split.length; i++){
trimmed += '\n' + split[i].slice(10);
}
return trimmed;
}
|