zxhfighter
8/19/2014 - 7:33 AM

generate random test data

generate random test data

var Generator = (function(){
    var alphas = "qwertyuiopasdfghjklzxcvbnm";
    var numbers = "0123456789";
    var chars = "qwertyuiopasdfghjklzxcvbnm0123456789零一二三四五六七八九十";
    
    function genArr(num, min, max) {
        var arr = [];
        for (var i=0; i<num; i++) {
            arr.push(genStr(min, max));
        }
        return arr;
    }
    
    function genStr(min, max) {
        var str = '';
        var len = min + Math.floor((max - min) * Math.random());
        
        for (var i=0; i<len; i++) {
            str += chars[Math.floor(Math.random()*chars.length)];
        }
        
        return str;
    }
    
    function genInt(min, max) {
        return min + Math.floor((max - min) * Math.random());
    }
    
    function getFloat(min, max) {
        return min + (max - min) * Math.random();
    }
    
    function genOneObj(configArr) {
        var obj = {};
        var item;
        
        for (var i=0; i<configArr.length; i++) {
            item = configArr[i];
            
            if (item.type === 'str') {
                obj[item.name] = genStr(item.min, item.max);
            }
            else if (item.type === 'int') {
                obj[item.name] = genInt(item.min, item.max);
            }
            else if (item.type === 'float') {
                obj[item.name] = genFloat(item.min, item.max);
            }
        } 
        return obj;
    }
    
    function genObjArr(len, configArr) {
        var objArr = [];
        
        for (var i=0; i<len; i++) {
            objArr.push(genOneObj(configArr));
        }
        
        return objArr;
    }
        
    return {
        genArr: genArr,
        genStr: genStr,
        genOneObj: genOneObj,
        genObjArr: genObjArr
    };
}());

// Generator.genArr(100, 1, 6)
var arr = Generator.genObjArr(10, [
    {
        name: 'keyword',
        type: 'str',
        min: 1,
        max: 2000
    },
    {
        name: 'pattern',
        type: 'str',
        min: 3,
        max: 7
    },
    {
        name: 'uv',
        type: 'int',
        min: -1,
        max: 50000
    },
    {
        name: 'pv',
        type: 'int',
        min: -1,
        max: 50000
    },
    {
        name: 'weight',
        type: 'int',
        min: 1,
        max: 100
    }
]);

JSON.stringify(arr)