import { curry2, equals } from '167' import { createAssertionError } from 'assertion-error-diff' /** * Checks if two values are not equal in terms of value equality * * @name notEqual(expected: A, actual: A): A * @example * import { notEqual } from '@typed/assertions' * * notEqual({ a: 1 }, { a: 2 }) // => { a: 2 } * * notEqual({ a: 1 }, { a: 1 }) // throws AssertionError */ export const notEqual: NotEqual = curry2(function(expected: A, actual: A): A { if (equals(expected, actual)) throw createAssertionError(`Expected value is equal to actual value`, expected, actual) return actual }) export interface NotEqual { (expected: A, actual: A): A (expected: A): (actual: A) => A }