HEX
Server: nginx/1.24.0
System: Linux nowruzgan 6.8.0-57-generic #59-Ubuntu SMP PREEMPT_DYNAMIC Sat Mar 15 17:40:59 UTC 2025 x86_64
User: babak (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: //usr/share/opensearch-dashboards/node_modules/is-integer/test.js
// jshint node:true
"use strict";

// Tests taken directly from es6-shim number tests
// https://github.com/paulmillr/es6-shim/blob/master/test/number.js

var test = require("tape");
var isInteger = require("./");

// Values that are integers
var INTEGERS = [
  5295,
  -5295,
  -9007199254740991,
  9007199254740991,
  0,
  -0,
  4,
  4.0,
  1801439850948,
  // Big numbers
  Math.pow(2, 53),
  1000000000000000000000,
  1000000000000000000000000000000000000,
];

// Values that are not integers
var NON_INTEGERS = [
  4.2,
  Infinity,
  -Infinity,
  NaN,
  true,
  false,
  "",
  "str",
  null,
  undefined,
  function () {},
  /a/g,
  {},
  {
    valueOf: function() { return 3; }
  },
  {
    valueOf: function() { return 0/0; }
  },
  {
    valueOf: function() { throw 17; }
  },
  {
    toString: function() { throw 17; }
  },
  {
    valueOf: function() { throw 17; },
    toString: function() { throw 42; }
  },
];

test("integers should pass isInteger()", function(t) {
  INTEGERS.forEach(function(val) {
    t.ok(isInteger(val), JSON.stringify(val));
  });
  t.end();
});

test("non-integers should fail isInteger()", function(t) {
  NON_INTEGERS.forEach(function(val) {
    t.notOk(isInteger(val), JSON.stringify(val));
  });
  t.end();
});