const expect = require('expect');
const without = require('./without.js');

test('without is a Function', () => {
  expect(without).toBeInstanceOf(Function);
});
test('without([2, 1, 2, 3], 1, 2) returns [3]', () => {
  expect(without([2, 1, 2, 3], 1, 2)).toEqual([3]);
});
test('without([]) returns []', () => {
  expect(without([])).toEqual([]);
});
test("without([3, 1, true, '3', true], '3', true) returns [3, 1]", () => {
  expect(without([3, 1, true, '3', true], '3', true)).toEqual([3, 1]);
});
test("without('string'.split(''), 's', 't', 'g') returns ['r', 'i', 'n']", () => {
  expect(without('string'.split(''), 's', 't', 'g')).toEqual(['r', 'i', 'n']);
});
test('without() throws an error', () => {
  expect(() => {
    without();
  }).toThrow();
});
test('without(null) throws an error', () => {
  expect(() => {
    without(null);
  }).toThrow();
});
test('without(undefined) throws an error', () => {
  expect(() => {
    without(undefined);
  }).toThrow();
});
test('without(123) throws an error', () => {
  expect(() => {
    without(123);
  }).toThrow();
});
test('without({}) throws an error', () => {
  expect(() => {
    without({});
  }).toThrow();
});
