assertthat
Version:
assertthat provides fluent TDD.
72 lines (71 loc) • 3.78 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.compare = void 0;
const compareArrays_1 = require("../forArrays/compareArrays");
const compareBooleans_1 = require("../forBooleans/compareBooleans");
const compareErrors_1 = require("../forErrors/compareErrors");
const compareFunctions_1 = require("../forFunctions/compareFunctions");
const compareMaps_1 = require("../forMaps/compareMaps");
const compareNumbers_1 = require("../forNumbers/compareNumbers");
const compareObjects_1 = require("../forObjects/compareObjects");
const compareRecursions_1 = require("../forRecursions/compareRecursions");
const compareResults_1 = require("../forResults/compareResults");
const compareSets_1 = require("../forSets/compareSets");
const compareStrings_1 = require("../forStrings/compareStrings");
const compareSymbols_1 = require("../forSymbols/compareSymbols");
const EqualDiff_1 = require("../../diffs/EqualDiff");
const IncompatibleTypeDiff_1 = require("../../diffs/IncompatibleTypeDiff");
const costs_1 = require("../../constants/costs");
const Recursion_1 = require("../../types/Recursion");
const defekt_1 = require("defekt");
const typedescriptor_1 = require("typedescriptor");
const compare = function (actual, expected) {
if ((0, typedescriptor_1.isUndefined)(actual) && (0, typedescriptor_1.isUndefined)(expected)) {
return (0, EqualDiff_1.equalDiff)({ value: actual });
}
if ((0, typedescriptor_1.isNull)(actual) && (0, typedescriptor_1.isNull)(expected)) {
return (0, EqualDiff_1.equalDiff)({ value: actual });
}
if ((0, Recursion_1.isRecursion)(actual) && (0, Recursion_1.isRecursion)(expected)) {
return (0, compareRecursions_1.compareRecursions)(actual, expected);
}
if ((0, typedescriptor_1.isError)(actual) && (0, typedescriptor_1.isError)(expected)) {
return (0, compareErrors_1.compareErrors)(actual, expected);
}
if ((0, typedescriptor_1.isSet)(actual) && (0, typedescriptor_1.isSet)(expected)) {
return (0, compareSets_1.compareSets)(actual, expected);
}
if ((0, typedescriptor_1.isMap)(actual) && (0, typedescriptor_1.isMap)(expected)) {
return (0, compareMaps_1.compareMaps)(actual, expected);
}
if ((0, typedescriptor_1.isArray)(actual) && (0, typedescriptor_1.isArray)(expected)) {
return (0, compareArrays_1.compareArrays)(actual, expected);
}
if ((0, defekt_1.isResult)(actual) && (0, defekt_1.isResult)(expected)) {
return (0, compareResults_1.compareResults)(actual, expected);
}
if ((0, typedescriptor_1.isNumber)(actual) && (0, typedescriptor_1.isNumber)(expected)) {
return (0, compareNumbers_1.compareNumbers)(actual, expected);
}
if ((0, typedescriptor_1.isString)(actual) && (0, typedescriptor_1.isString)(expected)) {
return (0, compareStrings_1.compareStrings)(actual, expected);
}
if ((0, typedescriptor_1.isBoolean)(actual) && (0, typedescriptor_1.isBoolean)(expected)) {
return (0, compareBooleans_1.compareBooleans)(actual, expected);
}
if ((0, typedescriptor_1.isSymbol)(actual) && (0, typedescriptor_1.isSymbol)(expected)) {
return (0, compareSymbols_1.compareSymbols)(actual, expected);
}
if ((0, typedescriptor_1.isFunction)(actual) && (0, typedescriptor_1.isFunction)(expected)) {
return (0, compareFunctions_1.compareFunctions)(actual, expected);
}
if ((0, typedescriptor_1.isObject)(actual) && (0, typedescriptor_1.isObject)(expected)) {
return (0, compareObjects_1.compareObjects)(actual, expected);
}
return (0, IncompatibleTypeDiff_1.incompatibleTypeDiff)({
actual,
expected,
cost: costs_1.incompatibleTypesCost
});
};
exports.compare = compare;