-
Notifications
You must be signed in to change notification settings - Fork 1
/
test.js
52 lines (46 loc) · 5.13 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*
* @Author: Sushil Jain
* @Date: 2017-02-28 10:58:22
* @Last Modified by: sushiljainam
* @Last Modified time: 2017-02-28 13:00:30
*/
'use strict';
var api = require('./pc');
var testData = [
['rank','noorul', 82],
['rank','sushil', 295],
['count','sushil', 360],
['list','sushil', [ 'hilssu', 'hilsus', 'hiluss', 'hislsu', 'hislus', 'hisslu', 'hissul', 'hisuls', 'hisusl', 'hiulss', 'hiusls', 'hiussl', 'hlissu', 'hlisus', 'hliuss', 'hlsisu', 'hlsius', 'hlssiu', 'hlssui', 'hlsuis', 'hlsusi', 'hluiss', 'hlusis', 'hlussi', 'hsilsu', 'hsilus', 'hsislu', 'hsisul', 'hsiuls', 'hsiusl', 'hslisu', 'hslius', 'hslsiu', 'hslsui', 'hsluis', 'hslusi', 'hssilu', 'hssiul', 'hssliu', 'hsslui', 'hssuil', 'hssuli', 'hsuils', 'hsuisl', 'hsulis', 'hsulsi', 'hsusil', 'hsusli', 'huilss', 'huisls', 'huissl', 'huliss', 'hulsis', 'hulssi', 'husils', 'husisl', 'huslis', 'huslsi', 'hussil', 'hussli', 'ihlssu', 'ihlsus', 'ihluss', 'ihslsu', 'ihslus', 'ihsslu', 'ihssul', 'ihsuls', 'ihsusl', 'ihulss', 'ihusls', 'ihussl', 'ilhssu', 'ilhsus', 'ilhuss', 'ilshsu', 'ilshus', 'ilsshu', 'ilssuh', 'ilsuhs', 'ilsush', 'iluhss', 'ilushs', 'ilussh', 'ishlsu', 'ishlus', 'ishslu', 'ishsul', 'ishuls', 'ishusl', 'islhsu', 'islhus', 'islshu', 'islsuh', 'isluhs', 'islush', 'isshlu', 'isshul', 'isslhu', 'issluh', 'issuhl', 'issulh', 'isuhls', 'isuhsl', 'isulhs', 'isulsh', 'isushl', 'isuslh', 'iuhlss', 'iuhsls', 'iuhssl', 'iulhss', 'iulshs', 'iulssh', 'iushls', 'iushsl', 'iuslhs', 'iuslsh', 'iusshl', 'iusslh', 'lhissu', 'lhisus', 'lhiuss', 'lhsisu', 'lhsius', 'lhssiu', 'lhssui', 'lhsuis', 'lhsusi', 'lhuiss', 'lhusis', 'lhussi', 'lihssu', 'lihsus', 'lihuss', 'lishsu', 'lishus', 'lisshu', 'lissuh', 'lisuhs', 'lisush', 'liuhss', 'liushs', 'liussh', 'lshisu', 'lshius', 'lshsiu', 'lshsui', 'lshuis', 'lshusi', 'lsihsu', 'lsihus', 'lsishu', 'lsisuh', 'lsiuhs', 'lsiush', 'lsshiu', 'lsshui', 'lssihu', 'lssiuh', 'lssuhi', 'lssuih', 'lsuhis', 'lsuhsi', 'lsuihs', 'lsuish', 'lsushi', 'lsusih', 'luhiss', 'luhsis', 'luhssi', 'luihss', 'luishs', 'luissh', 'lushis', 'lushsi', 'lusihs', 'lusish', 'lusshi', 'lussih', 'shilsu', 'shilus', 'shislu', 'shisul', 'shiuls', 'shiusl', 'shlisu', 'shlius', 'shlsiu', 'shlsui', 'shluis', 'shlusi', 'shsilu', 'shsiul', 'shsliu', 'shslui', 'shsuil', 'shsuli', 'shuils', 'shuisl', 'shulis', 'shulsi', 'shusil', 'shusli', 'sihlsu', 'sihlus', 'sihslu', 'sihsul', 'sihuls', 'sihusl', 'silhsu', 'silhus', 'silshu', 'silsuh', 'siluhs', 'silush', 'sishlu', 'sishul', 'sislhu', 'sisluh', 'sisuhl', 'sisulh', 'siuhls', 'siuhsl', 'siulhs', 'siulsh', 'siushl', 'siuslh', 'slhisu', 'slhius', 'slhsiu', 'slhsui', 'slhuis', 'slhusi', 'slihsu', 'slihus', 'slishu', 'slisuh', 'sliuhs', 'sliush', 'slshiu', 'slshui', 'slsihu', 'slsiuh', 'slsuhi', 'slsuih', 'sluhis', 'sluhsi', 'sluihs', 'sluish', 'slushi', 'slusih', 'sshilu', 'sshiul', 'sshliu', 'sshlui', 'sshuil', 'sshuli', 'ssihlu', 'ssihul', 'ssilhu', 'ssiluh', 'ssiuhl', 'ssiulh', 'sslhiu', 'sslhui', 'sslihu', 'ssliuh', 'ssluhi', 'ssluih', 'ssuhil', 'ssuhli', 'ssuihl', 'ssuilh', 'ssulhi', 'ssulih', 'suhils', 'suhisl', 'suhlis', 'suhlsi', 'suhsil', 'suhsli', 'suihls', 'suihsl', 'suilhs', 'suilsh', 'suishl', 'suislh', 'sulhis', 'sulhsi', 'sulihs', 'sulish', 'sulshi', 'sulsih', 'sushil', 'sushli', 'susihl', 'susilh', 'suslhi', 'suslih', 'uhilss', 'uhisls', 'uhissl', 'uhliss', 'uhlsis', 'uhlssi', 'uhsils', 'uhsisl', 'uhslis', 'uhslsi', 'uhssil', 'uhssli', 'uihlss', 'uihsls', 'uihssl', 'uilhss', 'uilshs', 'uilssh', 'uishls', 'uishsl', 'uislhs', 'uislsh', 'uisshl', 'uisslh', 'ulhiss', 'ulhsis', 'ulhssi', 'ulihss', 'ulishs', 'ulissh', 'ulshis', 'ulshsi', 'ulsihs', 'ulsish', 'ulsshi', 'ulssih', 'ushils', 'ushisl', 'ushlis', 'ushlsi', 'ushsil', 'ushsli', 'usihls', 'usihsl', 'usilhs', 'usilsh', 'usishl', 'usislh', 'uslhis', 'uslhsi', 'uslihs', 'uslish', 'uslshi', 'uslsih', 'usshil', 'usshli', 'ussihl', 'ussilh', 'usslhi', 'usslih' ]],
];
var loops = process.argv[2] || 1;
for (var i = 0; i < loops; i++) {
var trueCount = 0;
var timeTotal = 0;
var result = testData.map(function(e){
var r = testOne.apply({opts:{silent:true, noConsole:true}},e);
r.data && trueCount++;
timeTotal += r.timeTaken;
});
console.log('total test cases are', testData.length );
console.log('result is ', 100*trueCount/testData.length, '%');
console.log('total time is ', timeTotal, 'milliseconds');
loops>1 && console.log('-------------------------------');
};
function testOne (method, input, expected, timer, msg1, msg2) {
var that = this;//console.log(that);
var t0 = Date.now();
// console.time('s');
var r = api(input)[method]();
var t1 = Date.now();
// console.log(t1-t0);
// var t = console.timeEnd('s');
var testCond = JSON.stringify(r) == JSON.stringify(expected);
if(!that.opts.noConsole){
if(testCond){
that.opts.silent ? console.log('\x1b[32m', method, 'of', input, ': test passed',"\x1b[0m") : console.log('\x1b[32m', method, 'of', input, JSON.stringify(expected), JSON.stringify(r), ': test passed',"\x1b[0m");
} else {
that.opts.silent ? console.log('\x1b[31m', method, 'of', input, ': test failed',"\x1b[0m") : console.log('\x1b[31m', method, 'of', input, JSON.stringify(expected), JSON.stringify(r), ': test failed',"\x1b[0m");
}
}
return {data:testCond, timeTaken:(t1-t0)};
}