blob: d04c79c8f6e952f40f84a4aefbb36097fb610e61 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
/**
* @file TestFactory creates test cases based on names and options
* @author Wenli Zhang
*/
define(function (require) {
var TestCase = require('./testCase');
var TestFactory = {};
/**
* create test case, return instance of TestCase
*
* @param {string} name name of test case
* @param {number} amount data amount
* @return {TestCase} test case instance
*/
TestFactory.create = function (name, amount) {
var option = null;
switch (name) {
case 'line':
case 'line sampling':
case 'bar':
case 'scatter':
option = {
series: {
data: data2D(amount),
type: name
},
xAxis: {
type: 'value'
},
yAxis: {
type: 'value'
}
};
break;
case 'pie':
option = {
series: {
data: data1D(amount),
type: 'pie'
}
};
break;
default:
console.error('Test name ' + name + ' not found!');
return null;
}
if (name === 'line sampling') {
option.series.sampling = 'max';
option.series.type = 'line';
}
option.animation = false;
return new TestCase(name, option);
};
/**
* generate random 1d data
*
* @param {number} amount data amount
* @return {number[]} generated random data
*/
function data1D(amount) {
var result = [];
for (var i = 0; i < amount; ++i) {
result.push(Math.random());
}
return result;
}
/**
* generate random 2d data
*
* @param {number} amount data amount
* @return {number[]} generated random data
*/
function data2D(amount) {
var result = [];
for (var i = 0; i < amount; ++i) {
result.push([Math.random(), Math.random()]);
}
return result;
}
return TestFactory;
});