From e19798a07abe94a1a783680d9974b4ee736278b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabrice=20PENHO=C3=8BT?= Date: Mon, 6 Sep 2021 11:19:06 +0200 Subject: [PATCH] =?UTF-8?q?Cr=C3=A9ation=20d'une=20m=C3=A9thode=20statique?= =?UTF-8?q?=20pour=20tester=20si=20un=20nombre=20est=20naturel.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/freeDatas2HTML.ts | 13 +++++++++---- tests/freeDatas2HTMLSpec.ts | 29 +++++++++-------------------- 2 files changed, 18 insertions(+), 24 deletions(-) diff --git a/src/freeDatas2HTML.ts b/src/freeDatas2HTML.ts index f854357..8520ed0 100644 --- a/src/freeDatas2HTML.ts +++ b/src/freeDatas2HTML.ts @@ -3,7 +3,7 @@ const errors = require("./errors.js"); const { compare }= require('natural-orderby'); import { papaParseDatas, papaParseErrors, papaParseMeta } from "./papaParseInterfaces"; -import { domElement, selectors, sortingColumns } from "./freeDatas2HTMLInterfaces"; +import { domElement, selectors, sortingColumns, sortingFunctions } from "./freeDatas2HTMLInterfaces"; export class freeDatas2HTML { @@ -11,7 +11,7 @@ export class freeDatas2HTML private _datasSourceUrl: string = ""; private _datasSelectors: selectors[] = []; private _datasSortingColumns: sortingColumns[] = []; - private _datasSortedColumn : sortingColumns|undefined; + private _datasSortedColumn: sortingColumns|undefined; public parseMeta: papaParseMeta|undefined = undefined; public parseDatas: papaParseDatas[] = []; @@ -19,6 +19,11 @@ export class freeDatas2HTML public datasHTML: string = ""; public stopIfParseErrors: boolean = false; + public static isNaturalNumber(nb) + { + return (Number.isInteger(nb) === false || nb < 0) ? false : true; + } + set datasViewElt(elt: domElement) { let checkContainerExist=document.getElementById(elt.id); @@ -48,7 +53,7 @@ export class freeDatas2HTML checkContainerExist=document.getElementById(selectionElts[i].id); if(checkContainerExist === null) 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); else { @@ -70,7 +75,7 @@ export class freeDatas2HTML this._datasSortingColumns=[]; 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); else { diff --git a/tests/freeDatas2HTMLSpec.ts b/tests/freeDatas2HTMLSpec.ts index 44994cd..fcfec97 100644 --- a/tests/freeDatas2HTMLSpec.ts +++ b/tests/freeDatas2HTMLSpec.ts @@ -40,27 +40,16 @@ describe("freeDatas2HTML", () => expect(converter.datasSelectors.length).toEqual(1); 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.", () => - { - converter.datasSelectors=[{ datasFieldNb:2.3, id:"selector1" },{ datasFieldNb:3, id:"selector2" }]; - expect(converter.datasSelectors.length).toEqual(1); - expect(converter.datasSelectors[0].id).toEqual("selector2"); - converter.datasSelectors=[{ datasFieldNb:2, id:"selector1" },{ datasFieldNb:-1, id:"selector2" }]; - 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); - }); + // 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.", () => + { + expect(freeDatas2HTML.isNaturalNumber(-1)).toBeFalse(); + expect(freeDatas2HTML.isNaturalNumber(1.25)).toBeFalse(); + expect(freeDatas2HTML.isNaturalNumber(0)).toBeTrue(); + expect(freeDatas2HTML.isNaturalNumber(1)).toBeTrue(); + }); + it("Si un séparateur vide est fourni pour un sélecteur, il doit être ignoré.", () => { converter.datasSelectors=[{ datasFieldNb:2, id:"selector2", separator:"" }];