From 9159c2f4739d1c96ffe562a3fafbd5e05b4061d1 Mon Sep 17 00:00:00 2001 From: GabotThomas Date: Fri, 24 Feb 2023 11:19:55 +0100 Subject: [PATCH 1/2] Finish all test --- src/animal.class.ts | 21 +++++++++++++++++++-- src/animal.interface.ts | 2 ++ src/array.ts | 11 +++++------ src/calculator.ts | 32 +++++++++++++++----------------- src/food/food.ts | 1 - src/hippopotamus.ts | 34 ++++++++++++++++++++++++++++++++-- src/vehicle.ts | 27 +++++++++++++++++---------- 7 files changed, 90 insertions(+), 38 deletions(-) diff --git a/src/animal.class.ts b/src/animal.class.ts index 63da713..cc17c6e 100644 --- a/src/animal.class.ts +++ b/src/animal.class.ts @@ -1,3 +1,4 @@ +import IAnimal from './animal.interface'; import Food from './food/food'; // Créer une class Animal qui implémente l'interface IAnimal @@ -5,8 +6,24 @@ import Food from './food/food'; // par défaut, la méthode sleep réduit le poids de l'animal de 10 // le poids d'un animal ne peut pas être négatif -export default class Animal { +export default class Animal implements IAnimal { + name: string; + weight: number; - // CODER ICI + constructor(name: string, weight: number = 0) { + this.name = name; + this.weight = weight; + } + eat(food: Food): void { + this.weight += 10; + } + + sleep(): void { + if (this.weight > 10) { + this.weight -= 10; + } else { + this.weight = 0; + } + } } diff --git a/src/animal.interface.ts b/src/animal.interface.ts index 32d5c62..521462e 100644 --- a/src/animal.interface.ts +++ b/src/animal.interface.ts @@ -6,4 +6,6 @@ import Food from './food/food'; export default interface IAnimal { // CODER ICI + eat(food: Food): string | void; + sleep(): void; } diff --git a/src/array.ts b/src/array.ts index 74d328e..9d4430c 100644 --- a/src/array.ts +++ b/src/array.ts @@ -1,25 +1,24 @@ export default class MyArray { - // Coder une méthode oddNumbers qui prend en paramètre un tableau d'entier, et renvoie un tableau uniquement composé // des entiers impairs de ce dernier oddNumbers(arr: number[]) { - return undefined + return arr.filter((number) => number % 2 !== 0); } // Coder une méthode sort qui renvoie le tableau passé en paramètre trié par ordre croissant sort(arr: number[]) { - return undefined + return arr.sort((a, b) => a - b); } // Coder une méthode boringFunction qui renvoie true si les string du tableaux ont toutes la même longueur, // ou renvoie "relou ta fonction" sinon boringFunction(arr: string[]) { - return undefined + return arr.every((str) => str.length === arr[0].length) || 'relou ta fonction'; } // Coder une méthode optionalArray qui renvoie true si les 2 arrays d'entiers passés en paramètres sont égaux, false sinon // Faire de même avec un 3e tableau passé en paramètre qui sera optionnel - optionalArray(a, b, c?) { - return undefined + optionalArray(a: number[], b: number[], c?: number[]) { + return a.toString() === b.toString() && (!c || a.toString() === c?.toString()); } } diff --git a/src/calculator.ts b/src/calculator.ts index 412d171..9850007 100644 --- a/src/calculator.ts +++ b/src/calculator.ts @@ -1,38 +1,36 @@ export default class MyCalculator { - // Coder une methode add qui prend 2 nombres en paramètre et renvoie la somme des deux - add(a, b) { - return undefined + add(a: number, b: number) { + return a + b; } // Coder une methode subtract qui prend 2 nombres en paramètre et renvoie la différence des deux - subtract(a, b) { - return undefined + subtract(a: number, b: number) { + return a - b; } // Coder une methode multiply qui prend 2 nombres en paramètre et renvoie le produit des deux - multiply(a, b) { - return undefined + multiply(a: number, b: number) { + return a * b; } // Coder une methode divide qui prend 2 nombres en paramètre et renvoie le quotient des deux - divide(a, b) { - return undefined + divide(a: number, b: number) { + return b ? a / b : 0; } // Coder une méthode power qui prend 2 nombres en paramètre et renvoie le premier élevé à la puissance de l'autre - power(a, b) { - return undefined + power(a: number, b: number) { + return a ** b; } // Coder une méthode squareRoot qui prend un nombre en paramètre et renvoie sa racine carrée - squareRoot(a) { - return undefined + squareRoot(a: number) { + return a > 0 ? Math.sqrt(a) : 0; } // Coder une fonction fléchée qui renvoie true si le chiffre en paramètre est premier, false sinon - isPrime = (a) => { - return undefined - } - + isPrime = (a: number) => { + return a % 2 === 1; + }; } diff --git a/src/food/food.ts b/src/food/food.ts index 00d8a2d..f4cee09 100644 --- a/src/food/food.ts +++ b/src/food/food.ts @@ -1,5 +1,4 @@ export default class Food { - name: string; constructor(name: string) { diff --git a/src/hippopotamus.ts b/src/hippopotamus.ts index 0c5a55b..5d57b5c 100644 --- a/src/hippopotamus.ts +++ b/src/hippopotamus.ts @@ -4,9 +4,39 @@ // l'hippopotame perd 20 de poids lorsqu'il dort // ajouter une méthode swim() qui ne renvoie rien mais baisse le poids de 50. +import Animal from './animal.class'; import Food from './food/food'; +import Meat from './food/meat'; +import Vegetable from './food/vegetable'; -export default class Hippopotamus { - +export default class Hippopotamus extends Animal { // CODER ICI + eat(food: Food): string | void { + if (food instanceof Vegetable) { + this.weight += 20; + return; + } + + if (food instanceof Meat) { + return 'beurk'; + } + + this.weight += 10; + } + + sleep(): void { + if (this.weight > 20) { + this.weight -= 20; + } else { + this.weight = 0; + } + } + + swim(): void { + if (this.weight > 50) { + this.weight -= 50; + } else { + this.weight = 0; + } + } } diff --git a/src/vehicle.ts b/src/vehicle.ts index 63e999d..8b05b94 100644 --- a/src/vehicle.ts +++ b/src/vehicle.ts @@ -1,12 +1,12 @@ import { VehicleType } from './vehicletype.enum'; export default class Vehicle { - type: VehicleType - name: string + type: VehicleType; + name: string; constructor(type: VehicleType, name: string) { - this.type = type - this.name = name + this.type = type; + this.name = name; } // Coder une méthode nois qui switchera sur le type du véhicule et renverra @@ -15,19 +15,26 @@ export default class Vehicle { // brrrrrrrrrrrrr si le vehicule est un camion // skrrrt skrrrt dans tout autre cas noise() { - return undefined + switch (this.type) { + case VehicleType.Car: + return 'vrooooom'; + case VehicleType.Moto: + return 'bep bep'; + case VehicleType.Truck: + return 'brrrrrrrrrrrrr'; + default: + return 'skrrrt skrrrt'; + } } // Coder un callback qui renverra la methode noise précedemment codée // mais transformera la valeur de retour en majuscule myCb = () => { - return undefined - } + return this.noise().toUpperCase(); + }; // Coder une méthode accelerate qui prend en paramètre un callback et renvoie la valeur de noise() concaténée au callback accelerate(cb: () => string) { - return undefined + return this.noise().concat(cb()); } - - } From bc957007ae9103d20427edcaaad5ca9d7a01016c Mon Sep 17 00:00:00 2001 From: GabotThomas Date: Fri, 24 Feb 2023 11:21:38 +0100 Subject: [PATCH 2/2] GABOT Thomas --- src/calculator.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calculator.ts b/src/calculator.ts index 9850007..4bc4268 100644 --- a/src/calculator.ts +++ b/src/calculator.ts @@ -19,7 +19,7 @@ export default class MyCalculator { return b ? a / b : 0; } - // Coder une méthode power qui prend 2 nombres en paramètre et renvoie le premier élevé à la puissance de l'autre + // Coder une méthode power qui prend 2 nombres en paramètre et renvoie le premier élevé à la puissance de l'autre. power(a: number, b: number) { return a ** b; }