Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | 2x 20x 20x 13x 2x 1x 1x 1x 1x 1x 2x 1x 2x | import { CurrencyInterface } from "./currency";
export interface MoneyInterface {
getAmount(): number;
getCurrency(): CurrencyInterface;
add(money: MoneyInterface): void;
substract(money: MoneyInterface): void;
multiply(multiplier: number): void;
isEqualTo(money: MoneyInterface): boolean;
greaterThan(money: MoneyInterface): boolean;
greaterOrEqualThan(money: MoneyInterface): boolean;
lowerThan(money: MoneyInterface): boolean;
lowerOrEqualThan(money: MoneyInterface): boolean;
}
export class Money implements MoneyInterface {
protected amount: number;
protected currency: CurrencyInterface;
public constructor(amount: number, currency: CurrencyInterface) {
this.amount = amount;
this.currency = currency;
}
public getAmount(): number {
return this.amount;
}
public getCurrency(): CurrencyInterface {
return this.currency;
}
public add(money: MoneyInterface): void {
this.amount += money.getAmount();
}
public substract(money: MoneyInterface): void {
this.amount -= money.getAmount();
}
public multiply(multiplier: number): void {
this.amount *= multiplier;
}
public isEqualTo(money: MoneyInterface): boolean {
return this.amount === money.getAmount() && this.currency === money.getCurrency();
}
public greaterThan(money: MoneyInterface): boolean {
return this.amount > money.getAmount();
}
public greaterOrEqualThan(money: MoneyInterface): boolean {
return this.amount >= money.getAmount();
}
public lowerThan(money: MoneyInterface): boolean {
return this.amount < money.getAmount();
}
public lowerOrEqualThan(money: MoneyInterface): boolean {
return this.amount <= money.getAmount();
}
}
|