/* eslint no-magic-numbers: 0 */

const Mock = require('mockjs');


const testData = () => {
  return Mock.mock({
    'dataList|39-40': [{
      'id': '@guid',
      'name': '@name',
      'displayName': '@cname'
    }]
  });
};


const functionsData = [
  {
    functionNameWithParameters: 'if(Condition if, Attribute_value then, Attribute_value else)', returnType: '!', groupName: 'Logical',numberOfArguments: 3,
    description: 'Delivers the result of the second argument if the first one is evaluated to true and the resultof the third argument otherwise'
  },{
    functionNameWithParameters: '!', returnType: 's', groupName: 'Logical',numberOfArguments: -1,
    description: 'Delivers the result of the second argument if the first one is evaluated to true and the resultof the third argument otherwise'
  },{
    functionNameWithParameters: '&&', returnType: 's', groupName: 'Logical',numberOfArguments: -1,
    description: 'Delivers the result of the second argument if the first one is evaluated to true and the resultof the third argument otherwise'
  },{
    functionNameWithParameters: '||', returnType: 's', groupName: 'Logical',numberOfArguments: -1,
    description: 'Delivers the result of the second argument if the first one is evaluated to true and the resultof the third argument otherwise'
  },{
    functionNameWithParameters: 'missing(Attribute value argument)', returnType: 's', groupName: 'Comparison',numberOfArguments: -1,
    description: 'Delivers the result of the second argument if the first one is evaluated to true and the resultof the third argument otherwise'
  },{
    functionNameWithParameters: 'Isfinite (numeric argumen', returnType: 's', groupName: 'Comparison',numberOfArguments: -1,
    description: 'Delivers the result of the second argument if the first one is evaluated to true and the resultof the third argument otherwise'
  },{
    functionNameWithParameters: '==', returnType: 's', groupName: 'Comparison',numberOfArguments: -1,
    description: 'Delivers the result of the second argument if the first one is evaluated to true and the resultof the third argument otherwise'
  },{
    functionNameWithParameters: '!=', returnType: 's', groupName: 'Comparison',numberOfArguments: -1,
    description: 'Delivers the result of the second argument if the first one is evaluated to true and the resultof the third argument otherwise'
  },{
    functionNameWithParameters: '<', returnType: 's', groupName: 'Comparison',numberOfArguments: -1,
    description: 'Delivers the result of the second argument if the first one is evaluated to true and the resultof the third argument otherwise'
  },{
    functionNameWithParameters: '>', returnType: 's', groupName: 'Comparison',numberOfArguments: -1,
    description: 'Delivers the result of the second argument if the first one is evaluated to true and the resultof the third argument otherwise'
  },{
    functionNameWithParameters: '<=', returnType: 's', groupName: 'Comparison',numberOfArguments: -1,
    description: 'Delivers the result of the second argument if the first one is evaluated to true and the resultof the third argument otherwise'
  },{
    functionNameWithParameters: '>=', returnType: 's', groupName: 'Comparison',numberOfArguments: -1,
    description: 'Delivers the result of the second argument if the first one is evaluated to true and the resultof the third argument otherwise'
  },{
    functionNameWithParameters: 'length (lominal argument)', returnType: '#', groupName: 'Text information',numberOfArguments: -1,
    description: 'Delivers the result of the second argument if the first one is evaluated to true and the resultof the third argument otherwise'
  },{
    functionNameWithParameters: 'index(lominal text, lominal search)', returnType: '#', groupName: 'Text information',numberOfArguments: -1,
    description: 'Delivers the result of the second argument if the first one is evaluated to true and the resultof the third argument otherwise'
  },{
    functionNameWithParameters: 'compare (lominal argument, lominal argument)', returnType: '#', groupName: 'Text information',numberOfArguments: -1,
    description: 'Delivers the result of the second argument if the first one is evaluated to true and the resultof the third argument otherwise'
  }
];

const inputsData = [
  { name: 'TRUE', type: '!', categoryName: 'Basic Constants' },
  { name: 'FALSE', type: 's', categoryName: 'Basic Constants' },
  { name: 'PI', type: 's', categoryName: 'Basic Constants' },
  { name: 'NOMINAL', type: 's', categoryName: 'Basic Constants', additionalInformation: 'used in eval' },
  { name: 'REAL', type: 's', categoryName: 'Basic Constants', additionalInformation: 'used in eval' }
];

module.exports = {
  testData,
  functionsData,
  inputsData
};
