@rohitbakoliya/test-gen
Version:
Quickly generate test cases for stress testing using interactive CLI.
137 lines (136 loc) • 4.11 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateRange = exports.validateRegex = exports.validateFileName = exports.validateFraction = exports.validatePosFraction = exports.validateNaturalBigNumber = exports.validateNaturalNumber = exports.validateBigNumber = exports.validateNumber = exports.validateWholeBigNumber = exports.validateWholeNumber = void 0;
const fs_1 = require("fs");
const chalk_1 = __importDefault(require("chalk"));
const error = chalk_1.default.red;
/**
* to validate whole positive number in range [0, 999999]
*/
const validateWholeNumber = value => {
const pass = value.match(/^(0|[1-9]\d{0,6})$/);
if (pass) {
return true;
}
return error('Please enter a valid Number');
};
exports.validateWholeNumber = validateWholeNumber;
/**
* to validate whole big positive number
*/
const validateWholeBigNumber = value => {
const pass = value.match(/^(0|[1-9]\d*)$/);
if (pass) {
return true;
}
return error('Please enter a valid Number');
};
exports.validateWholeBigNumber = validateWholeBigNumber;
/**
* to validate number in range [-999999, 999999]
*/
const validateNumber = value => {
const pass = value.match(/^-?(0|[1-9]\d{0,6})(?<!-0)$/);
if (pass) {
return true;
}
return error('Please enter a valid Number');
};
exports.validateNumber = validateNumber;
/**
* to validate both positive and nagetive numbers
*/
const validateBigNumber = value => {
const pass = value.match(/^-?(0|[1-9]\d*)(?<!-0)$/);
if (pass) {
return true;
}
return error('Please enter a valid Number');
};
exports.validateBigNumber = validateBigNumber;
/**
* to validate natural numbers
*/
const validateNaturalNumber = value => {
const pass = value.match(/[1-9]\d*/);
if (pass) {
return true;
}
return error('Please enter a valid Natural Number');
};
exports.validateNaturalNumber = validateNaturalNumber;
/**
* to validate big natural numbers
*/
const validateNaturalBigNumber = value => {
const pass = value.match(/[1-9]\d*/);
if (pass) {
return true;
}
return error('Please enter a valid Natural Number');
};
exports.validateNaturalBigNumber = validateNaturalBigNumber;
/**
* to validate positive fractional number
*/
const validatePosFraction = value => {
const pass = value.match(/^(0|[1-9]\d*)?(\.\d+)?$/);
if (pass) {
return true;
}
return error('Please enter a valid positive Number');
};
exports.validatePosFraction = validatePosFraction;
/**
* to validate both positive and negetive fractional numbers
*/
const validateFraction = value => {
const pass = value.match(/^(?!-0?(\.0+)?$)-?(\d+)?(?:\.\d+)?$/);
if (pass) {
return true;
}
return error('Please enter a valid Number');
};
exports.validateFraction = validateFraction;
/**
* to validate filename
*/
const validateFileName = value => {
const pass = value.match(/[\w\s-.]+/);
if (pass) {
if (!fs_1.existsSync(value + '.txt')) {
return true;
}
return error(`File ${value}.txt already exists!`);
}
return error('Please enter a valid file name');
};
exports.validateFileName = validateFileName;
/**
* to validate regular expression
*/
const validateRegex = value => {
let isValid = value.length !== 0;
try {
RegExp(value);
}
catch (e) {
isValid = false;
}
if (isValid) {
return true;
}
return error('Please enter valid regular expression');
};
exports.validateRegex = validateRegex;
const validateRange = value => {
const pass = value.match(/^([1-9]\d{0,6})\s*,{1}\s*([1-9]\d{0,6})$/);
if (pass) {
return true;
}
return error('Please enter correct Range');
};
exports.validateRange = validateRange;