From d351982b7083e0ea6f4b5343320855771256bc71 Mon Sep 17 00:00:00 2001 From: mollaret Date: Thu, 26 May 2022 16:37:56 +0200 Subject: [PATCH] add dafalgan and clean code --- .DS_Store | Bin 0 -> 6148 bytes .idea/.gitignore | 8 ++ .idea/inspectionProfiles/Project_Default.xml | 6 + .idea/misc.xml | 6 + .idea/modules.xml | 8 ++ .idea/runConfigurations.xml | 10 ++ .idea/take-home-test.iml | 9 ++ .idea/vcs.xml | 6 + index.js | 3 +- modules/entities/drug.js | 7 ++ modules/pharmarcy/pharmacy.js | 98 +++++++++++++++ modules/pharmarcy/pharmacy.test.js | 126 +++++++++++++++++++ output.txt | 2 +- pharmacy.js | 66 ---------- pharmacy.test.js | 9 -- 15 files changed, 287 insertions(+), 77 deletions(-) create mode 100644 .DS_Store create mode 100644 .idea/.gitignore create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/runConfigurations.xml create mode 100644 .idea/take-home-test.iml create mode 100644 .idea/vcs.xml create mode 100644 modules/entities/drug.js create mode 100644 modules/pharmarcy/pharmacy.js create mode 100644 modules/pharmarcy/pharmacy.test.js delete mode 100644 pharmacy.js delete mode 100644 pharmacy.test.js diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..639900d1 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 00000000..cc6b5a17 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 00000000..797acea5 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/.idea/take-home-test.iml b/.idea/take-home-test.iml new file mode 100644 index 00000000..d6ebd480 --- /dev/null +++ b/.idea/take-home-test.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..35eb1ddf --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/index.js b/index.js index 525c9de1..c524099c 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,6 @@ -import { Drug, Pharmacy } from "./pharmacy"; +import { Pharmacy } from "./modules/pharmarcy/pharmacy"; import fs from "fs"; +import { Drug } from "./modules/entities/drug"; const drugs = [ new Drug("Doliprane", 20, 30), diff --git a/modules/entities/drug.js b/modules/entities/drug.js new file mode 100644 index 00000000..ee8f4111 --- /dev/null +++ b/modules/entities/drug.js @@ -0,0 +1,7 @@ +export class Drug { + constructor(name, expiresIn, benefit) { + this.name = name; + this.expiresIn = expiresIn; + this.benefit = benefit; + } +} diff --git a/modules/pharmarcy/pharmacy.js b/modules/pharmarcy/pharmacy.js new file mode 100644 index 00000000..b9f81ea3 --- /dev/null +++ b/modules/pharmarcy/pharmacy.js @@ -0,0 +1,98 @@ +export class Pharmacy { + constructor(drugs = []) { + this.drugs = drugs; + } + updateBenefitValue() { + this.drugs.map(drugs => { + if ( + this._isNotHerbealTea(drugs) && + this._isNotFervex(drugs) && + this._isNotMagicPill(drugs) && + this._isNotDafalgan(drugs) && + drugs.benefit >= 0 && + drugs.expiresIn > 0 + ) { + this._decreaseOfOneBenefit(drugs); + this._decreaseOfOneExpireIn(drugs); + } + + if (drugs.expiresIn <= 0 && this._isNotHerbealTea(drugs)) { + this.decreaseBenefitTwice(drugs); + } + + if (!this._isNotHerbealTea(drugs)) { + if (drugs.expiresIn < 0) { + this.increaseBenefitTwice(drugs); + } + + if (drugs.expiresIn >= 0) { + this._increaseOfOneBenefit(drugs); + this._decreaseOfOneExpireIn(drugs); + } + } + + if (!this._isNotFervex(drugs)) { + if (drugs.expiresIn <= 10 && drugs.expiresIn > 5) { + this.increaseBenefitTwice(drugs); + } else if (drugs.expiresIn <= 5 && drugs.expiresIn > 0) { + this.increaseBenefitThird(drugs); + } else { + this._increaseOfOneBenefit(drugs); + } + this._decreaseOfOneExpireIn(drugs); + } + + if (!this._isNotDafalgan(drugs)) { + this.decreaseBenefitTwice(drugs); + this._decreaseOfOneExpireIn(drugs); + } + + if (drugs.benefit > 50) { + drugs.benefit = 50; + } + }); + return this.drugs; + } + + // Private Methods + + _isNotHerbealTea(drugs) { + return drugs.name !== "Herbal Tea"; + } + + _isNotFervex(drugs) { + return drugs.name !== "Fervex"; + } + + _isNotMagicPill(drugs) { + return drugs.name !== "Magic Pill"; + } + + _decreaseOfOneBenefit(drugs) { + if (drugs.benefit !== 0) drugs.benefit--; + } + + _increaseOfOneBenefit(drugs) { + drugs.benefit++; + } + + _isNotDafalgan(drugs) { + return drugs.name !== "Dafalgan"; + } + + _decreaseOfOneExpireIn(drugs) { + drugs.expiresIn--; + } + + increaseBenefitThird(drugs) { + drugs.benefit = drugs.benefit + 3; + } + + increaseBenefitTwice(drugs) { + drugs.benefit = drugs.benefit + 2; + } + + decreaseBenefitTwice(drugs) { + drugs.benefit = drugs.benefit - 2; + } +} diff --git a/modules/pharmarcy/pharmacy.test.js b/modules/pharmarcy/pharmacy.test.js new file mode 100644 index 00000000..c5187e5d --- /dev/null +++ b/modules/pharmarcy/pharmacy.test.js @@ -0,0 +1,126 @@ +import { Pharmacy } from "./pharmacy"; +import { Drug } from "../entities/drug"; + +describe("Pharmacy", () => { + it("should decrease the benefit and expiresIn", () => { + // Arrange + const pharmacy = new Pharmacy([new Drug("test", 2, 3)]); + + // Act + const res = pharmacy.updateBenefitValue(); + + // Assert + expect(res).toEqual([new Drug("test", 1, 2)]); + }); + + it("should decrease benefit twice when date expired", () => { + // Arrange + const pharmacy = new Pharmacy([new Drug("Test", -1, 10)]); + + // Act + const res = pharmacy.updateBenefitValue(); + + // Assert + expect(res).toEqual([new Drug("Test", -1, 8)]); + }); + + it("should never have benefit negative", () => { + // Arrange + const pharmacy = new Pharmacy([new Drug("Test", 3, 0)]); + + // Act + const res = pharmacy.updateBenefitValue(); + + // Assert + expect(res).toEqual([new Drug("Test", 2, 0)]); + }); + + it("should benefit increase twice after expiration date for Herbal Tea", () => { + // Arrange + const pharmacy = new Pharmacy([new Drug("Herbal Tea", -1, 10)]); + + // Act + const res = pharmacy.updateBenefitValue(); + + // Assert + expect(res).toEqual([new Drug("Herbal Tea", -1, 12)]); + }); + + it("should never have benefit more 50 for Herbal Tea", () => { + // Arrange + const pharmacy = new Pharmacy([new Drug("Herbal Tea", -1, 50)]); + + // Act + const res = pharmacy.updateBenefitValue(); + + // Assert + expect(res).toEqual([new Drug("Herbal Tea", -1, 50)]); + }); + + it("should never decrease in Benefit and never expires when drug is Magic Pill", () => { + // Arrange + const pharmacy = new Pharmacy([new Drug("Magic Pill", 3, 23)]); + + // Act + const res = pharmacy.updateBenefitValue(); + + // Assert + expect(res).toEqual([new Drug("Magic Pill", 3, 23)]); + }); + + it("should increase benefit when drug is Fervex", () => { + // Arrange + const pharmacy = new Pharmacy([new Drug("Fervex", 15, 35)]); + + // Act + const res = pharmacy.updateBenefitValue(); + + // Assert + expect(res).toEqual([new Drug("Fervex", 14, 36)]); + }); + + it("should increase benefit twice when drug is Fervex and date expired between 10 and 5 days left", () => { + // Arrange + const pharmacy = new Pharmacy([new Drug("Fervex", 6, 20)]); + + // Act + const res = pharmacy.updateBenefitValue(); + + // Assert + expect(res).toEqual([new Drug("Fervex", 5, 22)]); + }); + + it("should increase benefit three times when drug is Fervex and date expired between 5 and 0 days left", () => { + // Arrange + const pharmacy = new Pharmacy([new Drug("Fervex", 4, 20)]); + + // Act + const res = pharmacy.updateBenefitValue(); + + // Assert + expect(res).toEqual([new Drug("Fervex", 3, 23)]); + }); + + it("should decrease benefit twice when drug is Dafalgan", () => { + // Arrange + const pharmacy = new Pharmacy([new Drug("Dafalgan", 4, 6)]); + + // Act + const res = pharmacy.updateBenefitValue(); + + // Assert + expect(res).toEqual([new Drug("Dafalgan", 3, 4)]); + }); + + it("should increase benefit when drug is Herbal Tea", () => { + // Arrange + const pharmacy = new Pharmacy([new Drug("Herbal Tea", 45, 6)]); + + // Act + const res = pharmacy.updateBenefitValue(); + + // Assert + expect(res).toEqual([new Drug("Herbal Tea", 44, 7)]); + }); + +}); diff --git a/output.txt b/output.txt index d3e0f699..f9a7f023 100644 --- a/output.txt +++ b/output.txt @@ -1 +1 @@ -[{"name":"Doliprane","expiresIn":19,"benefit":29},{"name":"Herbal Tea","expiresIn":9,"benefit":6},{"name":"Fervex","expiresIn":4,"benefit":43},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":18,"benefit":28},{"name":"Herbal Tea","expiresIn":8,"benefit":7},{"name":"Fervex","expiresIn":3,"benefit":46},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":17,"benefit":27},{"name":"Herbal Tea","expiresIn":7,"benefit":8},{"name":"Fervex","expiresIn":2,"benefit":49},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":16,"benefit":26},{"name":"Herbal Tea","expiresIn":6,"benefit":9},{"name":"Fervex","expiresIn":1,"benefit":50},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":15,"benefit":25},{"name":"Herbal Tea","expiresIn":5,"benefit":10},{"name":"Fervex","expiresIn":0,"benefit":50},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":14,"benefit":24},{"name":"Herbal Tea","expiresIn":4,"benefit":11},{"name":"Fervex","expiresIn":-1,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":13,"benefit":23},{"name":"Herbal Tea","expiresIn":3,"benefit":12},{"name":"Fervex","expiresIn":-2,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":12,"benefit":22},{"name":"Herbal Tea","expiresIn":2,"benefit":13},{"name":"Fervex","expiresIn":-3,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":11,"benefit":21},{"name":"Herbal Tea","expiresIn":1,"benefit":14},{"name":"Fervex","expiresIn":-4,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":10,"benefit":20},{"name":"Herbal Tea","expiresIn":0,"benefit":15},{"name":"Fervex","expiresIn":-5,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":9,"benefit":19},{"name":"Herbal Tea","expiresIn":-1,"benefit":17},{"name":"Fervex","expiresIn":-6,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":8,"benefit":18},{"name":"Herbal Tea","expiresIn":-2,"benefit":19},{"name":"Fervex","expiresIn":-7,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":7,"benefit":17},{"name":"Herbal Tea","expiresIn":-3,"benefit":21},{"name":"Fervex","expiresIn":-8,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":6,"benefit":16},{"name":"Herbal Tea","expiresIn":-4,"benefit":23},{"name":"Fervex","expiresIn":-9,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":5,"benefit":15},{"name":"Herbal Tea","expiresIn":-5,"benefit":25},{"name":"Fervex","expiresIn":-10,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":4,"benefit":14},{"name":"Herbal Tea","expiresIn":-6,"benefit":27},{"name":"Fervex","expiresIn":-11,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":3,"benefit":13},{"name":"Herbal Tea","expiresIn":-7,"benefit":29},{"name":"Fervex","expiresIn":-12,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":2,"benefit":12},{"name":"Herbal Tea","expiresIn":-8,"benefit":31},{"name":"Fervex","expiresIn":-13,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":1,"benefit":11},{"name":"Herbal Tea","expiresIn":-9,"benefit":33},{"name":"Fervex","expiresIn":-14,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":0,"benefit":10},{"name":"Herbal Tea","expiresIn":-10,"benefit":35},{"name":"Fervex","expiresIn":-15,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":-1,"benefit":8},{"name":"Herbal Tea","expiresIn":-11,"benefit":37},{"name":"Fervex","expiresIn":-16,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":-2,"benefit":6},{"name":"Herbal Tea","expiresIn":-12,"benefit":39},{"name":"Fervex","expiresIn":-17,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":-3,"benefit":4},{"name":"Herbal Tea","expiresIn":-13,"benefit":41},{"name":"Fervex","expiresIn":-18,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":-4,"benefit":2},{"name":"Herbal Tea","expiresIn":-14,"benefit":43},{"name":"Fervex","expiresIn":-19,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":-5,"benefit":0},{"name":"Herbal Tea","expiresIn":-15,"benefit":45},{"name":"Fervex","expiresIn":-20,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":-6,"benefit":0},{"name":"Herbal Tea","expiresIn":-16,"benefit":47},{"name":"Fervex","expiresIn":-21,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":-7,"benefit":0},{"name":"Herbal Tea","expiresIn":-17,"benefit":49},{"name":"Fervex","expiresIn":-22,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":-8,"benefit":0},{"name":"Herbal Tea","expiresIn":-18,"benefit":50},{"name":"Fervex","expiresIn":-23,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":-9,"benefit":0},{"name":"Herbal Tea","expiresIn":-19,"benefit":50},{"name":"Fervex","expiresIn":-24,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":-10,"benefit":0},{"name":"Herbal Tea","expiresIn":-20,"benefit":50},{"name":"Fervex","expiresIn":-25,"benefit":0},{"name":"Magic Pill","expiresIn":15,"benefit":40}] \ No newline at end of file +[{"name":"Doliprane","expiresIn":19,"benefit":29},{"name":"Herbal Tea","expiresIn":9,"benefit":6},{"name":"Fervex","expiresIn":4,"benefit":43},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":18,"benefit":28},{"name":"Herbal Tea","expiresIn":8,"benefit":7},{"name":"Fervex","expiresIn":3,"benefit":46},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":17,"benefit":27},{"name":"Herbal Tea","expiresIn":7,"benefit":8},{"name":"Fervex","expiresIn":2,"benefit":49},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":16,"benefit":26},{"name":"Herbal Tea","expiresIn":6,"benefit":9},{"name":"Fervex","expiresIn":1,"benefit":50},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":15,"benefit":25},{"name":"Herbal Tea","expiresIn":5,"benefit":10},{"name":"Fervex","expiresIn":0,"benefit":50},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":14,"benefit":24},{"name":"Herbal Tea","expiresIn":4,"benefit":11},{"name":"Fervex","expiresIn":-1,"benefit":49},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":13,"benefit":23},{"name":"Herbal Tea","expiresIn":3,"benefit":12},{"name":"Fervex","expiresIn":-2,"benefit":48},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":12,"benefit":22},{"name":"Herbal Tea","expiresIn":2,"benefit":13},{"name":"Fervex","expiresIn":-3,"benefit":47},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":11,"benefit":21},{"name":"Herbal Tea","expiresIn":1,"benefit":14},{"name":"Fervex","expiresIn":-4,"benefit":46},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":10,"benefit":20},{"name":"Herbal Tea","expiresIn":0,"benefit":15},{"name":"Fervex","expiresIn":-5,"benefit":45},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":9,"benefit":19},{"name":"Herbal Tea","expiresIn":-1,"benefit":16},{"name":"Fervex","expiresIn":-6,"benefit":44},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":8,"benefit":18},{"name":"Herbal Tea","expiresIn":-1,"benefit":18},{"name":"Fervex","expiresIn":-7,"benefit":43},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":7,"benefit":17},{"name":"Herbal Tea","expiresIn":-1,"benefit":20},{"name":"Fervex","expiresIn":-8,"benefit":42},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":6,"benefit":16},{"name":"Herbal Tea","expiresIn":-1,"benefit":22},{"name":"Fervex","expiresIn":-9,"benefit":41},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":5,"benefit":15},{"name":"Herbal Tea","expiresIn":-1,"benefit":24},{"name":"Fervex","expiresIn":-10,"benefit":40},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":4,"benefit":14},{"name":"Herbal Tea","expiresIn":-1,"benefit":26},{"name":"Fervex","expiresIn":-11,"benefit":39},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":3,"benefit":13},{"name":"Herbal Tea","expiresIn":-1,"benefit":28},{"name":"Fervex","expiresIn":-12,"benefit":38},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":2,"benefit":12},{"name":"Herbal Tea","expiresIn":-1,"benefit":30},{"name":"Fervex","expiresIn":-13,"benefit":37},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":1,"benefit":11},{"name":"Herbal Tea","expiresIn":-1,"benefit":32},{"name":"Fervex","expiresIn":-14,"benefit":36},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":0,"benefit":8},{"name":"Herbal Tea","expiresIn":-1,"benefit":34},{"name":"Fervex","expiresIn":-15,"benefit":35},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":0,"benefit":6},{"name":"Herbal Tea","expiresIn":-1,"benefit":36},{"name":"Fervex","expiresIn":-16,"benefit":34},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":0,"benefit":4},{"name":"Herbal Tea","expiresIn":-1,"benefit":38},{"name":"Fervex","expiresIn":-17,"benefit":33},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":0,"benefit":2},{"name":"Herbal Tea","expiresIn":-1,"benefit":40},{"name":"Fervex","expiresIn":-18,"benefit":32},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":0,"benefit":0},{"name":"Herbal Tea","expiresIn":-1,"benefit":42},{"name":"Fervex","expiresIn":-19,"benefit":31},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":0,"benefit":-2},{"name":"Herbal Tea","expiresIn":-1,"benefit":44},{"name":"Fervex","expiresIn":-20,"benefit":30},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":0,"benefit":-4},{"name":"Herbal Tea","expiresIn":-1,"benefit":46},{"name":"Fervex","expiresIn":-21,"benefit":29},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":0,"benefit":-6},{"name":"Herbal Tea","expiresIn":-1,"benefit":48},{"name":"Fervex","expiresIn":-22,"benefit":28},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":0,"benefit":-8},{"name":"Herbal Tea","expiresIn":-1,"benefit":50},{"name":"Fervex","expiresIn":-23,"benefit":27},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":0,"benefit":-10},{"name":"Herbal Tea","expiresIn":-1,"benefit":50},{"name":"Fervex","expiresIn":-24,"benefit":26},{"name":"Magic Pill","expiresIn":15,"benefit":40}],[{"name":"Doliprane","expiresIn":0,"benefit":-12},{"name":"Herbal Tea","expiresIn":-1,"benefit":50},{"name":"Fervex","expiresIn":-25,"benefit":25},{"name":"Magic Pill","expiresIn":15,"benefit":40}] \ No newline at end of file diff --git a/pharmacy.js b/pharmacy.js deleted file mode 100644 index cda44c41..00000000 --- a/pharmacy.js +++ /dev/null @@ -1,66 +0,0 @@ -export class Drug { - constructor(name, expiresIn, benefit) { - this.name = name; - this.expiresIn = expiresIn; - this.benefit = benefit; - } -} - -export class Pharmacy { - constructor(drugs = []) { - this.drugs = drugs; - } - updateBenefitValue() { - for (var i = 0; i < this.drugs.length; i++) { - if ( - this.drugs[i].name != "Herbal Tea" && - this.drugs[i].name != "Fervex" - ) { - if (this.drugs[i].benefit > 0) { - if (this.drugs[i].name != "Magic Pill") { - this.drugs[i].benefit = this.drugs[i].benefit - 1; - } - } - } else { - if (this.drugs[i].benefit < 50) { - this.drugs[i].benefit = this.drugs[i].benefit + 1; - if (this.drugs[i].name == "Fervex") { - if (this.drugs[i].expiresIn < 11) { - if (this.drugs[i].benefit < 50) { - this.drugs[i].benefit = this.drugs[i].benefit + 1; - } - } - if (this.drugs[i].expiresIn < 6) { - if (this.drugs[i].benefit < 50) { - this.drugs[i].benefit = this.drugs[i].benefit + 1; - } - } - } - } - } - if (this.drugs[i].name != "Magic Pill") { - this.drugs[i].expiresIn = this.drugs[i].expiresIn - 1; - } - if (this.drugs[i].expiresIn < 0) { - if (this.drugs[i].name != "Herbal Tea") { - if (this.drugs[i].name != "Fervex") { - if (this.drugs[i].benefit > 0) { - if (this.drugs[i].name != "Magic Pill") { - this.drugs[i].benefit = this.drugs[i].benefit - 1; - } - } - } else { - this.drugs[i].benefit = - this.drugs[i].benefit - this.drugs[i].benefit; - } - } else { - if (this.drugs[i].benefit < 50) { - this.drugs[i].benefit = this.drugs[i].benefit + 1; - } - } - } - } - - return this.drugs; - } -} diff --git a/pharmacy.test.js b/pharmacy.test.js deleted file mode 100644 index f0925fc1..00000000 --- a/pharmacy.test.js +++ /dev/null @@ -1,9 +0,0 @@ -import { Drug, Pharmacy } from "./pharmacy"; - -describe("Pharmacy", () => { - it("should decrease the benefit and expiresIn", () => { - expect(new Pharmacy([new Drug("test", 2, 3)]).updateBenefitValue()).toEqual( - [new Drug("test", 1, 2)] - ); - }); -});