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');
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
{

View File

@ -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:"" }];