diff --git a/spec/mock_jasmine.ts b/spec/mock_jasmine.ts index 670e76f69a38bc7390b1c8d8d1ffe9701df48618..134851d5b0d9379cf18827c8a3728af29e8315ab 100644 --- a/spec/mock_jasmine.ts +++ b/spec/mock_jasmine.ts @@ -31,56 +31,55 @@ export function it(sTxt: string, fFun: () => void) { } /** - * Mock expect et toBeCloseTo de Jasmine. - * Ne fonctionne pas à cause de this = undefined dans le contexte "use strict" + * Classe contenant les méthodes de comparaison de Jasmine. */ -export function expect(obj: object) { - this.testResult = obj; +class Expect { - this.toBeCloseTo = function(expected: number, precision: number) { + /** + * Mock la function expect de Jasmine + * @param actual Objet à tester + */ + public constructor(private actual: any) { + } + + /** + * Mock de la function chainée à expect de test d'une valeur à un epsilon près + * @param expected Valeur numérique attendue + * @param precision Précision attendue (nombre de chiffre après la virgule) + */ + public toBeCloseTo(expected: number, precision: number) { const pow = Math.pow(10, precision + 1); - const delta = Math.abs(expected - this.testResult); + const delta = Math.abs(expected - this.actual); const maxDelta = Math.pow(10, -precision) / 2; if (Math.round(delta * pow) / pow > maxDelta) { // tslint:disable-next-line:no-console - console.error("Expected " + this.testResult + " to be close to " + expected + "," + precision); + console.error("Expected " + this.actual + " to be close to " + expected + "," + precision); } return this; - }; - return this; -} + } -/** - * Mock de la function chainée à expect de test d'une valeur à un epsilon près - * @param actual Valeur numérique sortie du test - * @param expected Valeur numérique attendue - * @param precision Précision attendue (nombre de chiffre après la virgule) - */ -export function toBeCloseTo(actual: number, expected: number, precision: number) { - const pow = Math.pow(10, precision + 1); - const delta = Math.abs(expected - actual); - const maxDelta = Math.pow(10, -precision) / 2; - if (Math.round(delta * pow) / pow > maxDelta) { - // tslint:disable-next-line:no-console - console.error("Expected " + actual + " to be close to " + expected + "," + precision); + /** + * Mock de la fonction toBe de Jasmine : the actual value to be `===` to the expected value + * @param expected Objet de référence + */ + public toBe(expected: any) { + return this.actual === expected; + } + + /** + * Mock de la fonction toBe de Jasmine : the actual value to be `===` to the expected value + * @param expected Objet de référence + */ + public toEqual(expected: any) { + return this.actual === expected; } - return this; -} -/** - * Mock de la fonction toBe de Jasmine : the actual value to be `===` to the expected value - * @param actual Objet à tester - * @param expected Objet de référence - */ -export function toBe(actual: any, expected: any) { - return actual === expected; } /** - * Mock de la fonction toBe de Jasmine : the actual value to be `===` to the expected value + * Mock la function expect de Jasmine * @param actual Objet à tester - * @param expected Objet de référence */ -export function toEqual(actual: any, expected: any) { - return actual === expected; +export function expect(expected: any) { + return new Expect(expected); } diff --git a/spec/structure/test_rectangular_structure.ts b/spec/structure/test_rectangular_structure.ts index 603fd06240d11313a8b55354b85167a37c5cb3e0..9b7b60bd9560aeda382722cfcfc2660129bff53b 100644 --- a/spec/structure/test_rectangular_structure.ts +++ b/spec/structure/test_rectangular_structure.ts @@ -1,7 +1,7 @@ import { Result } from "../../src/base"; import { RectangularStructure } from "../../src/structure/rectangular_structure"; import { StructureFlowMode, StructureFlowRegime } from "../../src/structure/structure"; -import { it, toBe, toBeCloseTo } from "../mock_jasmine"; +import { expect, it } from "../mock_jasmine"; import { precDigits } from "../nubtest"; import { Describer } from "./rectangular_structure"; @@ -18,16 +18,16 @@ export function itCalcQ( it("Q(h1=" + h1 + ",W=" + W + ") should be " + Q, () => { struct.debug("struct.Calc(Q)=" + res.vCalc); - toBeCloseTo(res.vCalc, Q, precDigits); + expect(res.vCalc).toBeCloseTo(Q, precDigits); }); if (mode !== undefined) { it("Q(h1=" + h1 + ",W=" + W + ") Mode should be " + mode, () => { - toBe(res.extraVar.Mode, mode); + expect(res.extraVar.Mode).toBe(mode); }); } if (regime !== undefined) { it("Q(h1=" + h1 + ",W=" + W + ") Regime should be " + regime, () => { - toBe(res.extraVar.Regime, regime); + expect(res.extraVar.Regime).toBe(regime); }); } }