isInteger.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.createIsInteger = void 0;
  6. var _collection = require("../../utils/collection.js");
  7. var _number = require("../../utils/number.js");
  8. var _factory = require("../../utils/factory.js");
  9. var name = 'isInteger';
  10. var dependencies = ['typed'];
  11. var createIsInteger = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
  12. var typed = _ref.typed;
  13. /**
  14. * Test whether a value is an integer number.
  15. * The function supports `number`, `BigNumber`, and `Fraction`.
  16. *
  17. * The function is evaluated element-wise in case of Array or Matrix input.
  18. *
  19. * Syntax:
  20. *
  21. * math.isInteger(x)
  22. *
  23. * Examples:
  24. *
  25. * math.isInteger(2) // returns true
  26. * math.isInteger(0) // returns true
  27. * math.isInteger(0.5) // returns false
  28. * math.isInteger(math.bignumber(500)) // returns true
  29. * math.isInteger(math.fraction(4)) // returns true
  30. * math.isInteger('3') // returns true
  31. * math.isInteger([3, 0.5, -2]) // returns [true, false, true]
  32. * math.isInteger(math.complex('2-4i')) // throws an error
  33. *
  34. * See also:
  35. *
  36. * isNumeric, isPositive, isNegative, isZero
  37. *
  38. * @param {number | BigNumber | Fraction | Array | Matrix} x Value to be tested
  39. * @return {boolean} Returns true when `x` contains a numeric, integer value.
  40. * Throws an error in case of an unknown data type.
  41. */
  42. return typed(name, {
  43. number: _number.isInteger,
  44. // TODO: what to do with isInteger(add(0.1, 0.2)) ?
  45. BigNumber: function BigNumber(x) {
  46. return x.isInt();
  47. },
  48. Fraction: function Fraction(x) {
  49. return x.d === 1 && isFinite(x.n);
  50. },
  51. 'Array | Matrix': typed.referToSelf(function (self) {
  52. return function (x) {
  53. return (0, _collection.deepMap)(x, self);
  54. };
  55. })
  56. });
  57. });
  58. exports.createIsInteger = createIsInteger;