From b68fbb6fd0a086010ea0b210523ca96acf8a487f Mon Sep 17 00:00:00 2001 From: CORONA Nikola <git config --local user.email> Date: Wed, 23 Apr 2025 11:26:34 +0200 Subject: [PATCH] TD5 Exercice 4 --- TD5 Test/Exercice.test.ts | 41 +++++++++++++++++++++++----- TD5 Test/MesMaths.ts | 57 ++++++++++++++++++++++++++------------- 2 files changed, 73 insertions(+), 25 deletions(-) diff --git a/TD5 Test/Exercice.test.ts b/TD5 Test/Exercice.test.ts index 91720d9..66b96f0 100644 --- a/TD5 Test/Exercice.test.ts +++ b/TD5 Test/Exercice.test.ts @@ -1,7 +1,10 @@ -import { multAdd, puissanceMult } from "./MesMaths.ts"; +import { multAdd, puissanceMult,creeInitiales, ErreurPuissanceMult } from "./MesMaths.ts"; import { assertEquals } from "jsr:@std/assert/equals"; +import { assertThrows } from "jsr:@std/assert/throws"; import { assertAlmostEquals } from "jsr:@std/assert/almost-equals"; +// Exercice 1 + Deno.test("cas général", () => { assertEquals(multAdd(3, 8), 24); }); @@ -14,11 +17,37 @@ Deno.test("multiplication par un nombre négatif", () => { Deno.test("multiplication par 2 nombre négatif", () => { assertEquals(multAdd(-8, -8), 64); }); -Deno.test("Puissance par un nombre négatif", () => { - assertEquals(puissanceMult(-5, 9), -1953125); -}); -Deno.test("Puissance par un nombre négatif", () => { - assertEquals(puissanceMult(5, -9), -1953125); + +//Exercice 2 + +Deno.test("puissanceMult cas normaux", () => { + assertEquals(puissanceMult(2, 3), 8); + assertEquals(puissanceMult(5, 0), 1); + assertEquals(puissanceMult(0, 5), 0); + assertEquals(puissanceMult(-2, 3), -8); + assertEquals(puissanceMult(3, 1), 3); + }); + + Deno.test("puissanceMult erreur exposant négatif", () => { + assertThrows( + () => puissanceMult(3, -2), + ErreurPuissanceMult, + "L'exposant ne peut pas être négatif." + ); + }); + + Deno.test("puissanceMult erreur exposant non entier", () => { + assertThrows( + () => puissanceMult(2, 3.14), + ErreurPuissanceMult, + "Le second paramètre doit être un entier." + ); + }); + +// Exercice 3 + +Deno.test("Teste de la fonction creeInitiales avec Nikola Corona", () => { + assertEquals(creeInitiales("corona","nikola"),"CN") }); diff --git a/TD5 Test/MesMaths.ts b/TD5 Test/MesMaths.ts index 72a9de0..a60a851 100644 --- a/TD5 Test/MesMaths.ts +++ b/TD5 Test/MesMaths.ts @@ -1,36 +1,55 @@ +// Exercice 1 + export function multAdd(x: number, y: number): number { let resultat = 0; let inf = 0; - if (y < 0){ - y = -y - inf = 1 ; + if (y < 0) { + y = -y; + inf = 1; } for (let i = 0; i < y; i++) { - resultat += x; + resultat += x; } - if (inf === 1 ) return -resultat ; + if (inf === 1) return -resultat; else return resultat; - } +} - export function puissanceMult(x: number, y: number): number { - let val = 1; - let inf = 0; - if (y < 0){ - y = -y - inf = 1 ; +// Exercice 2 + +export function puissanceMult(x: number, y: number): number { + if (!Number.isInteger(y)) { + throw new ErreurPuissanceMult("Le second paramètre doit être un entier."); + } + if (y < 0) { + throw new ErreurPuissanceMult("L'exposant ne peut pas être négatif."); } + + let val = 1; for (let i = 0; i < y; i++) { - val *= x; + val *= x; } - if (inf === 1 ) return -val ; - else return val; + return val; + } - } +export class ErreurPuissanceMult extends Error { + constructor(msg: string) { + super(msg); + this.name = "ErreurPuissanceMult"; + } + } + +// 1) on doit tester pour y negatif car il renvoit 1 -// 1) on doit tester pour y negatif car il renvoit 1 - const x = 2.1; const y = 3.14; console.log("Number.isInteger(x) =", Number.isInteger(x)); -console.log("Number.isInteger(y) =", Number.isInteger(y)); \ No newline at end of file +console.log("Number.isInteger(y) =", Number.isInteger(y)); + +// Exercice 3 + +export function creeInitiales(nom: string, prenom: string): string { + return nom[0].toUpperCase() + prenom[0].toUpperCase(); +} + +console.log(creeInitiales("corona","nikola")) -- GitLab