Commit 57261d20 authored by Dorchies David's avatar Dorchies David
Browse files

Close #19

Showing with 39 additions and 40 deletions
+39 -40
......@@ -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);
}
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);
});
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment