An error occurred while loading the file. Please try again.
-
Mathias Chouet authored
merged cParamsCanal and ParamsSection Structures are now only defined by their LoiDebit (no more StructureType) Session : fixed serialization of lately registered Nubs Sections are now defined by a CalculatorType and a NodeType fixed bug in findFirstSingleParameter added tests for session serialisation
7b6e5403
// tslint:disable:no-console
/**
* Mock fonction describe de Jasmine
* @param sTxt Texte de la suite de test
* @param fFun Fonction de la suite de test
*/
export function describe(sTxt: string, fFun: () => void) {
console.log(sTxt);
fFun();
}
/**
* Mock fonction xdescribe de Jasmine
* @param sTxt Texte de la suite de test
* @param fFun Fonction de la suite de test
*/
export function xdescribe(sTxt: string, fFun: () => void) {
console.log(sTxt + " ignored ***");
}
/**
* Mock fonction it de jasmine
* @param sTxt Texte à afficher pour la spec
* @param fFun Function à lancer pour la spec
*/
export function it(sTxt: string, fFun: () => void) {
console.log(sTxt);
fFun();
}
/**
* Mock fonction xit de Jasmine
* @param sTxt Texte de la suite de test
* @param fFun Fonction de la suite de test
*/
export function xit(sTxt: string, fFun: () => void) {
console.warn("*** " + sTxt + " ignored ***");
}
export function fail(m?: string) {
let s = "Test failed";
if (m !== undefined) {
s += ` (${m})`;
}
console.error(s);
}
/**
* Classe contenant les méthodes de comparaison de Jasmine.
*/
class Expect {
/**
* 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 = 0.0001) {
const pow = Math.pow(10, precision + 1);
const delta = Math.abs(expected - this.actual);
const maxDelta = Math.pow(10, -precision) / 2;
if (typeof this.actual !== "number" || Math.round(delta * pow) / pow > maxDelta) {
console.error("Expected " + this.actual + " to be close to " + expected + " with precision " + precision);
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
}
return this;
}
/**
* 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) {
const res = this.actual === expected;
if (!res) {
console.error("Expected " + this.actual + " to be " + expected);
}
return res;
}
public toBeLessThanOrEqual(expected: any) {
const res = this.actual <= expected;
if (!res) {
console.error("Expected " + this.actual + " to be less than or equal to " + expected);
}
return res;
}
/**
* Mock de la fonction toEqual de Jasmine : the actual value to be `===` to the expected value
* @param expected Objet de référence
*/
public toEqual(expected: any) {
const res = this.actual === expected;
if (!res) {
console.warn(`Test ${this.actual} 'to be equal to' ${expected} failed`);
}
return res;
}
/**
* Mock de la fonction toBeTruthy de Jasmine : the actual value should be true
* @param message message d'erreur
*/
public toBeTruthy(message?: string) {
if (!this.actual) {
if (message !== undefined) {
console.error(message);
} else {
console.error(`${this.actual} should be true`);
}
}
}
/**
* Mock de la fonction toBeFalsy de Jasmine : the actual value should be false
* @param message message d'erreur
*/
public toBeFalsy(message?: string) {
if (this.actual) {
if (message !== undefined) {
console.error(message);
} else {
console.error(`${this.actual} should be false`);
}
}
}
public toBeDefined(message?: string) {
if (this.actual === undefined) {
if (message !== undefined) {
console.error(message);
} else {
console.error(`${this.actual} should be defined`);
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
}
}
}
public toBeUndefined(message?: string) {
if (this.actual !== undefined) {
if (message !== undefined) {
console.error(message);
} else {
console.error(`${this.actual} should be undefined`);
}
}
}
public toContain(expected: any) {
const res = Array.isArray(this.actual) && this.actual.includes(expected);
if (!res) {
console.error("Expected " + this.actual + " to contain " + expected);
}
return res;
}
public toThrow(expected?: any) {
let exception: Error;
if (typeof this.actual !== "function") {
throw new Error("Actual is not a function");
}
try {
this.actual();
} catch (e) {
exception = e;
}
if (exception === undefined) {
console.error("Expected tested function to throw an error");
} else {
if (expected) {
if (exception.message !== expected.message) {
console.error(`Function throws '${exception.message}' but '${expected.message}' was expected`);
}
} else if (exception.message) {
console.error(`Function throws '${exception.message}' but no message was expected`);
}
}
}
}
/**
* Mock la function expect de Jasmine
* @param actual Objet à tester
*/
export function expect(expected: any) {
return new Expect(expected);
}