diff --git a/SAE/sae b/SAE/sae new file mode 160000 index 0000000000000000000000000000000000000000..e796556a52454114b55d1d4f244e7bbda8394db4 --- /dev/null +++ b/SAE/sae @@ -0,0 +1 @@ +Subproject commit e796556a52454114b55d1d4f244e7bbda8394db4 diff --git a/deno.lock b/deno.lock new file mode 100644 index 0000000000000000000000000000000000000000..04a47e6cf035a8715889c90479017c6101902c6d --- /dev/null +++ b/deno.lock @@ -0,0 +1,24 @@ +{ + "version": "4", + "specifiers": { + "jsr:@std/assert@*": "1.0.12", + "jsr:@std/assert@^1.0.12": "1.0.12", + "jsr:@std/internal@^1.0.6": "1.0.6" + }, + "jsr": { + "@std/assert@1.0.12": { + "integrity": "08009f0926dda9cbd8bef3a35d3b6a4b964b0ab5c3e140a4e0351fbf34af5b9a", + "dependencies": [ + "jsr:@std/internal" + ] + }, + "@std/internal@1.0.6": { + "integrity": "9533b128f230f73bd209408bb07a4b12f8d4255ab2a4d22a1fd6d87304aca9a4" + } + }, + "workspace": { + "dependencies": [ + "jsr:@std/assert@^1.0.12" + ] + } +} diff --git a/qualdev/qualdev/Point.ts b/qualdev/qualdev/Point.ts new file mode 100644 index 0000000000000000000000000000000000000000..889f3e8f4e26863d1a0d8ebc2ef61ea7cbbb40f9 --- /dev/null +++ b/qualdev/qualdev/Point.ts @@ -0,0 +1,35 @@ +export class Point { + private _x: number; + private _y: number; + + constructor(x = 0, y = 0) { + this._x = x; + this._y = y; + } + + get x(): number { + return this._x; + } + + set x(value : number) { + this._x = value; + } + + get y(): number { + return this._y; + } + + set y(value : number) { + this._y = value; + } + + deplacer(x: number, y: number): void { + this._x += x; + this._y += y; + } + + public distance(p: Point): number { + return Math.sqrt((this._x - p._x) ** 2 + (this._y - p._y) ** 2); + } + +} diff --git a/qualdev/qualdev/Test/Point.test.ts b/qualdev/qualdev/Test/Point.test.ts new file mode 100644 index 0000000000000000000000000000000000000000..fd981406d4b7045af0309174e49c56a8ab0fd669 --- /dev/null +++ b/qualdev/qualdev/Test/Point.test.ts @@ -0,0 +1,8 @@ +import { Point } from "../Point.ts"; +import { assertEquals } from "jsr:@std/assert/equals"; + +Deno.test("constructeur par défaut", () => { + const p = new Point(); + assertEquals(p.x, 0); + assertEquals(p.y, 0); +}); diff --git a/qualdev/qualdev/Test/deno.json b/qualdev/qualdev/Test/deno.json new file mode 100644 index 0000000000000000000000000000000000000000..6dffbccf75a0e8cc66c21227bd84ae95c1d18ed9 --- /dev/null +++ b/qualdev/qualdev/Test/deno.json @@ -0,0 +1,5 @@ +{ + "imports": { + "@std/assert": "jsr:@std/assert@^1.0.12" + } +} diff --git a/qualdev/qualdev/Test/deno.lock b/qualdev/qualdev/Test/deno.lock new file mode 100644 index 0000000000000000000000000000000000000000..04a47e6cf035a8715889c90479017c6101902c6d --- /dev/null +++ b/qualdev/qualdev/Test/deno.lock @@ -0,0 +1,24 @@ +{ + "version": "4", + "specifiers": { + "jsr:@std/assert@*": "1.0.12", + "jsr:@std/assert@^1.0.12": "1.0.12", + "jsr:@std/internal@^1.0.6": "1.0.6" + }, + "jsr": { + "@std/assert@1.0.12": { + "integrity": "08009f0926dda9cbd8bef3a35d3b6a4b964b0ab5c3e140a4e0351fbf34af5b9a", + "dependencies": [ + "jsr:@std/internal" + ] + }, + "@std/internal@1.0.6": { + "integrity": "9533b128f230f73bd209408bb07a4b12f8d4255ab2a4d22a1fd6d87304aca9a4" + } + }, + "workspace": { + "dependencies": [ + "jsr:@std/assert@^1.0.12" + ] + } +} diff --git a/qualdev/qualdev/Test/mesMaths.test.ts b/qualdev/qualdev/Test/mesMaths.test.ts new file mode 100644 index 0000000000000000000000000000000000000000..30a9b508b7a3d73d21db91ea19d1dbb5b2f2da46 --- /dev/null +++ b/qualdev/qualdev/Test/mesMaths.test.ts @@ -0,0 +1,12 @@ +import { multAdd } from "../mesMaths.ts"; +import { assertEquals } from "jsr:@std/assert/equals"; + +Deno.test("cas général", () => { + assertEquals(multAdd(3, 8), 24); +}); +Deno.test("multiplication par 0", () => { + assertEquals(multAdd(3, 0), 0); +}); +Deno.test("multiplication par un nombre négatif", () => { + assertEquals(multAdd(3, -8), -24); +}); diff --git a/qualdev/qualdev/Test/puissanceMult.test.ts b/qualdev/qualdev/Test/puissanceMult.test.ts new file mode 100644 index 0000000000000000000000000000000000000000..cf1dccb71f416931239ea1493bc34b121d990849 --- /dev/null +++ b/qualdev/qualdev/Test/puissanceMult.test.ts @@ -0,0 +1,9 @@ +import { ErreurPuissanceMult, puissanceMult } from "../mesMaths.ts"; +import { assertEquals } from "jsr:@std/assert/equals"; +import { assertThrows } from "jsr:@std/assert/throws"; + +Deno.test("cas général", () => assertEquals(puissanceMult(3, 2), 9)); +Deno.test("cas si x négatif", () => assertEquals(puissanceMult(-3, 2), 9)); +Deno.test("cas si y négatif", () => assertThrows(()=>{puissanceMult(3,-3)},ErreurPuissanceMult,"y ne peut pas etre négatif")); +Deno.test("cas si deux nombres négatifs", () => assertThrows(()=>{puissanceMult(-3,-3)},ErreurPuissanceMult,"y ne peut pas etre négatif")); +Deno.test("cas si nombre nul", () => assertEquals(puissanceMult(-1, 0), 1)); diff --git a/qualdev/qualdev/ex1/FizzBuzzle.ts b/qualdev/qualdev/ex1/FizzBuzzle.ts new file mode 100644 index 0000000000000000000000000000000000000000..11ad25ca958bbb92b77d617ad4a845f0a6e24d3e --- /dev/null +++ b/qualdev/qualdev/ex1/FizzBuzzle.ts @@ -0,0 +1,17 @@ +export function getFizzBuzzle(i: number) { + if ((i % 3 === 0) && (i % 5 === 0)) { + return "FizzBuzzle"; + } else if (i % 3 === 0) { + return "Fizz"; + } else if (i % 5 === 0) { + return "Buzzle"; + } else { + return i; + } +} + +export function fizzBuzzle(n: number): void { + for (let i = 1; i <= n; i++) { + console.log(getFizzBuzzle(i)); + } +} diff --git a/qualdev/qualdev/ex1/Test/FizzBuzzle.test.ts b/qualdev/qualdev/ex1/Test/FizzBuzzle.test.ts new file mode 100644 index 0000000000000000000000000000000000000000..2cab93de820b41426193eebfd867307901485124 --- /dev/null +++ b/qualdev/qualdev/ex1/Test/FizzBuzzle.test.ts @@ -0,0 +1,14 @@ +import { getFizzBuzzle } from "../FizzBuzzle.ts"; +import { assertEquals } from "jsr:@std/assert/equals"; +Deno.test("Cas si i est un multiple de 3", () => { + assertEquals(getFizzBuzzle(6), "Fizz"); +}); +Deno.test("Cas si i est un multiple de 3", () => { + assertEquals(getFizzBuzzle(10), "Buzzle"); +}); +Deno.test("Cas si i est un multiple de 3 et 5", () => { + assertEquals(getFizzBuzzle(15), "FizzBuzzle"); +}); +Deno.test("Cas si i n'est pas un multiple de 3 et 5", () => { + assertEquals(getFizzBuzzle(11), 11); +}); diff --git a/qualdev/qualdev/ex2/FizzBuzzleSpoutnik.ts b/qualdev/qualdev/ex2/FizzBuzzleSpoutnik.ts new file mode 100644 index 0000000000000000000000000000000000000000..4c33d39b74eb202cace1d91ab41a599b3361f06e --- /dev/null +++ b/qualdev/qualdev/ex2/FizzBuzzleSpoutnik.ts @@ -0,0 +1,25 @@ +export function getFizzBuzzleSpoutnik(i: number) { + if ((i % 3 === 0) && (i % 5 === 0) && (i % 4 === 0)) { + return "FizzBuzzleSpoutnik"; + } else if ((i % 3 === 0) && (i % 4 === 0)) { + return "FizzSpoutnik"; + } else if ((i % 3 === 0) && (i % 5 === 0)) { + return "FizzBuzzle"; + } else if ((i % 4 === 0) && (i % 5 === 0)) { + return "BuzzleSpoutnik"; + } else if (i % 3 === 0) { + return "Fizz"; + } else if (i % 5 === 0) { + return "Buzzle"; + } else if (i % 4 === 0) { + return "Spoutnik"; + } else { + return i; + } +} + +export function fizzBuzzleSpoutnik(n: number): void { + for (let i = 1; i <= n; i++) { + console.log(getFizzBuzzleSpoutnik(i)); + } +} diff --git a/qualdev/qualdev/ex2/Test/FizzBuzzleSpoutnik.test.ts b/qualdev/qualdev/ex2/Test/FizzBuzzleSpoutnik.test.ts new file mode 100644 index 0000000000000000000000000000000000000000..d95861350bddfe2bffed842a4d339c7ff5fe7f58 --- /dev/null +++ b/qualdev/qualdev/ex2/Test/FizzBuzzleSpoutnik.test.ts @@ -0,0 +1,23 @@ +import { getFizzBuzzleSpoutnik } from "../FizzBuzzleSpoutnik.ts"; +import { assertEquals } from "jsr:@std/assert/equals"; +Deno.test("Cas si i est un multiple de 3", () => { + assertEquals(getFizzBuzzleSpoutnik(6), "Fizz"); +}); +Deno.test("Cas si i est un multiple de 3", () => { + assertEquals(getFizzBuzzleSpoutnik(10), "Buzzle"); +}); +Deno.test("Cas si i est un multiple de 3 et 5", () => { + assertEquals(getFizzBuzzleSpoutnik(15), "FizzBuzzle"); +}); +Deno.test("Cas si i n'est pas un multiple de 3 et 5", () => { + assertEquals(getFizzBuzzleSpoutnik(11), 11); +}); +Deno.test("Cas si i n'est pas un multiple de 3, 4 et 5", () => { + assertEquals(getFizzBuzzleSpoutnik(120), "FizzBuzzleSpoutnik"); +}); +Deno.test("Cas si i n'est pas un multiple de 3 et 4", () => { + assertEquals(getFizzBuzzleSpoutnik(24), "FizzSpoutnik"); +}); +Deno.test("Cas si i n'est pas un multiple de 4 et 5", () => { + assertEquals(getFizzBuzzleSpoutnik(40), "BuzzleSpoutnik"); +}); diff --git a/qualdev/qualdev/math.ts b/qualdev/qualdev/math.ts new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/qualdev/qualdev/mesMaths.ts b/qualdev/qualdev/mesMaths.ts new file mode 100644 index 0000000000000000000000000000000000000000..ee535bcda9c02c79d751945c3bb8335a5efb0f11 --- /dev/null +++ b/qualdev/qualdev/mesMaths.ts @@ -0,0 +1,47 @@ +export function multAdd(x: number, y: number): number { + let resultat = 0; + if (x < 0 && y > 0) { + x = -x; + for (let i = 0; i < y; i++) { + resultat += x; + } + return -resultat; + } + if (x > 0 && y < 0) { + y = -y; + for (let i = 0; i < y; i++) { + resultat += x; + } + return -resultat; + } + if (x < 0 && y < 0) { + x = -x; + y = -y; + for (let i = 0; i < y; i++) { + resultat += x; + } + return resultat; + } + for (let i = 0; i < y; i++) { + resultat += x; + } + return resultat; +} + +export class ErreurPuissanceMult extends Error { + constructor(msg: string){ + super(msg); + this.name = "ErreurPuissanceMult"; + } +} + +export function puissanceMult(x: number, y: number): number { + if (y < 0){ + throw new ErreurPuissanceMult("y ne peut pas etre négatif") + } + let val = 1; + for (let i = 0; i < y; i++) { + val *= x; + } + return val; +} diff --git a/qualdev/qualdev/test.ts b/qualdev/qualdev/test.ts deleted file mode 100644 index a65ab5742c62c2782e02118b93b160bf4fdc6b12..0000000000000000000000000000000000000000 --- a/qualdev/qualdev/test.ts +++ /dev/null @@ -1,2 +0,0 @@ -console.log("1"); -console.log("2"); \ No newline at end of file