import { isLikeNumber } from "..";

describe("isLikeNumber", () => {
  it("value is a number", () => {
    const value = 123;

    expect(isLikeNumber(value)).toBe(true);
  });

  it("value is a number", () => {
    const value = 123.45;

    expect(isLikeNumber(value)).toBe(true);
  });

  it("value is a string as number", () => {
    const value = "123";

    expect(isLikeNumber(value)).toBe(true);
  });

  it("value is a string as number", () => {
    const value = "123.45";

    expect(isLikeNumber(value)).toBe(true);
  });

  it("value is empty string", () => {
    const value = "";

    expect(isLikeNumber(value)).toBe(false);
  });

  it("value is undefined", () => {
    const value = undefined;

    expect(isLikeNumber(value)).toBe(false);
  });

  it("value is null", () => {
    const value = null;

    expect(isLikeNumber(value)).toBe(false);
  });

  it("value is empty object", () => {
    const value = {};

    expect(isLikeNumber(value)).toBe(false);
  });

  it("value is non empty object", () => {
    const value = { abc: 123 };

    expect(isLikeNumber(value)).toBe(false);
  });

  it("value is empty array", () => {
    const value = [];

    expect(isLikeNumber(value)).toBe(false);
  });

  it("value is non-empty array", () => {
    const value = [1, 2, 3];

    expect(isLikeNumber(value)).toBe(false);
  });

  it("NaN is not a number", () => {
    const value = NaN;

    expect(isLikeNumber(value)).toBe(false);
  });
});
