UNPKG

mathball

Version:

A JavaScript library for Competitive Programming

69 lines (67 loc) 2.68 kB
'use strict'; /* * Argument and Length validation */ var Complex = require('../complex'); module.exports = function () { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } if (args[0][0].constructor === Number) { for (var i = 0; i < args[0].length; i++) { if (typeof args[0][i] !== 'number') { throw new TypeError('Invalid argument received: ' + JSON.stringify(args) + '\n, \'function\' only accepts parameters of similar types!\n'); } } } else if (args[0][0].constructor === String) { for (var _i = 0; _i < args[0].length; _i++) { if (typeof args[0][_i] !== 'string') { throw new TypeError('Invalid argument received: ' + JSON.stringify(args) + '\n \'function\' only accepts parameters of similar types!\n'); } } } else if (args[0][0].constructor === Array) { var arr = args[0]; if (arr[0][0].constructor === Array) { var len = arr[0][0].length; for (var _i2 = 0; _i2 < arr.length; _i2++) { for (var j = 0; j < arr[0].length; j++) { if (arr[_i2][j].length !== len) { throw new TypeError('Invalid argument received: ' + JSON.stringify(args) + '\n \'function\' only accepts parameters of similar length!\n'); } } } for (var _i3 = 0; _i3 < arr.length; _i3++) { for (var _j = 0; _j < arr[0].length; _j++) { for (var k = 0; k < arr[0][0].length; k++) { if (typeof arr[_i3][_j][k] !== 'number') { throw new TypeError('Invalid argument received: ' + JSON.stringify(args) + '\n \'function\' only accepts parameters of similar types!\n'); } } } } } else { for (var _i4 = 0; _i4 < arr.length; _i4++) { for (var _j2 = 0; _j2 < arr.length; _j2++) { if (arr[_i4].length !== arr[_j2].length) { throw new TypeError('Invalid argument received: ' + JSON.stringify(args) + '\n \'function\' only accepts parameters of similar length!\n'); } } } for (var _i5 = 0; _i5 < arr.length; _i5++) { for (var _j3 = 0; _j3 < arr[0].length; _j3++) { if (typeof arr[_i5][_j3] !== 'number') { throw new TypeError('Invalid argument received: ' + JSON.stringify(args) + '\n \'function\' only accepts parameters of similar types!\n'); } } } } } else if (args[0][0].constructor === Complex) { for (var _i6 = 0; _i6 < args[0].length; _i6++) { if (args[0][_i6].constructor !== Complex) { throw new TypeError('Invalid argument received: ' + JSON.stringify(args) + '\n \'function\' only accepts parameters of similar types!\n'); } } } else { throw new TypeError('Invalid argument received: ' + JSON.stringify(args) + '\n'); } }; //End of module exports