Création d'une méthode statique pour tester si un nombre est naturel.

This commit is contained in:
Fabrice PENHOËT 2021-09-06 11:19:06 +02:00
parent 551b4c821f
commit e19798a07a
2 changed files with 18 additions and 24 deletions

View File

@ -3,7 +3,7 @@ const errors = require("./errors.js");
const { compare }= require('natural-orderby'); const { compare }= require('natural-orderby');
import { papaParseDatas, papaParseErrors, papaParseMeta } from "./papaParseInterfaces"; import { papaParseDatas, papaParseErrors, papaParseMeta } from "./papaParseInterfaces";
import { domElement, selectors, sortingColumns } from "./freeDatas2HTMLInterfaces"; import { domElement, selectors, sortingColumns, sortingFunctions } from "./freeDatas2HTMLInterfaces";
export class freeDatas2HTML export class freeDatas2HTML
{ {
@ -11,7 +11,7 @@ export class freeDatas2HTML
private _datasSourceUrl: string = ""; private _datasSourceUrl: string = "";
private _datasSelectors: selectors[] = []; private _datasSelectors: selectors[] = [];
private _datasSortingColumns: sortingColumns[] = []; private _datasSortingColumns: sortingColumns[] = [];
private _datasSortedColumn : sortingColumns|undefined; private _datasSortedColumn: sortingColumns|undefined;
public parseMeta: papaParseMeta|undefined = undefined; public parseMeta: papaParseMeta|undefined = undefined;
public parseDatas: papaParseDatas[] = []; public parseDatas: papaParseDatas[] = [];
@ -19,6 +19,11 @@ export class freeDatas2HTML
public datasHTML: string = ""; public datasHTML: string = "";
public stopIfParseErrors: boolean = false; public stopIfParseErrors: boolean = false;
public static isNaturalNumber(nb)
{
return (Number.isInteger(nb) === false || nb < 0) ? false : true;
}
set datasViewElt(elt: domElement) set datasViewElt(elt: domElement)
{ {
let checkContainerExist=document.getElementById(elt.id); let checkContainerExist=document.getElementById(elt.id);
@ -48,7 +53,7 @@ export class freeDatas2HTML
checkContainerExist=document.getElementById(selectionElts[i].id); checkContainerExist=document.getElementById(selectionElts[i].id);
if(checkContainerExist === null) if(checkContainerExist === null)
console.error(errors.elementNotFound+selectionElts[i].id); console.error(errors.elementNotFound+selectionElts[i].id);
else if(Number.isInteger(selectionElts[i].datasFieldNb) === false || selectionElts[i].datasFieldNb < 0) else if(freeDatas2HTML.isNaturalNumber(selectionElts[i].datasFieldNb) === false)
console.error(errors.needNaturalNumber); console.error(errors.needNaturalNumber);
else else
{ {
@ -70,7 +75,7 @@ export class freeDatas2HTML
this._datasSortingColumns=[]; this._datasSortingColumns=[];
for(let i = 0; i < sortingColumns.length; i++) for(let i = 0; i < sortingColumns.length; i++)
{ {
if(Number.isInteger(sortingColumns[i].datasFieldNb) === false || sortingColumns[i].datasFieldNb < 0) if(freeDatas2HTML.isNaturalNumber(sortingColumns[i].datasFieldNb) === false)
console.error(errors.needNaturalNumber); console.error(errors.needNaturalNumber);
else else
{ {

View File

@ -41,24 +41,13 @@ describe("freeDatas2HTML", () =>
expect(converter.datasSelectors[0].id).toEqual("selector2"); expect(converter.datasSelectors[0].id).toEqual("selector2");
}); });
it("Ne doit accepter que les sélecteurs pour lesquels les numéros de colonne fourrnis sont des nombres naturels.", () => // Utile pour tester les valeurs fournies pour les numéros de colonne
it("Doit retourner un booléen indiquant si un nombre est naturel ou non.", () =>
{ {
converter.datasSelectors=[{ datasFieldNb:2.3, id:"selector1" },{ datasFieldNb:3, id:"selector2" }]; expect(freeDatas2HTML.isNaturalNumber(-1)).toBeFalse();
expect(converter.datasSelectors.length).toEqual(1); expect(freeDatas2HTML.isNaturalNumber(1.25)).toBeFalse();
expect(converter.datasSelectors[0].id).toEqual("selector2"); expect(freeDatas2HTML.isNaturalNumber(0)).toBeTrue();
converter.datasSelectors=[{ datasFieldNb:2, id:"selector1" },{ datasFieldNb:-1, id:"selector2" }]; expect(freeDatas2HTML.isNaturalNumber(1)).toBeTrue();
expect(converter.datasSelectors.length).toEqual(1);
expect(converter.datasSelectors[0].id).toEqual("selector1");
});
it("Ne doit accepter que les colonnes de classement pour lesquelles les numéros fournis sont des nombres naturels.", () =>
{
converter.datasSortingColumns=[{ datasFieldNb:2.3 },{ datasFieldNb:3 }];
expect(converter.datasSortingColumns.length).toEqual(1);
converter.datasSortingColumns=[{ datasFieldNb:2 },{ datasFieldNb:-1 }];
expect(converter.datasSortingColumns.length).toEqual(1);
converter.datasSortingColumns=[{ datasFieldNb:2 },{ datasFieldNb:3 }];
expect(converter.datasSortingColumns.length).toEqual(2);
}); });
it("Si un séparateur vide est fourni pour un sélecteur, il doit être ignoré.", () => it("Si un séparateur vide est fourni pour un sélecteur, il doit être ignoré.", () =>