Skip to content

Commit a831d82

Browse files
committed
⚡ Improving perf
1 parent f1b072b commit a831d82

File tree

6 files changed

+51
-10
lines changed

6 files changed

+51
-10
lines changed

src/language/chess.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/language/chessboard.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
export function chessboard(length = 8) {
2+
let result = "";
3+
const newLines = length - 1;
4+
5+
for (let line = 0; line < length; line++) {
6+
const oddLine = line % 2;
7+
8+
for (let character = 0; character < length; character++) {
9+
result += oddLine === character % 2 ? " " : "#";
10+
}
11+
12+
if (line !== newLines) {
13+
result += "\n";
14+
}
15+
}
16+
17+
return result;
18+
}

src/language/deep_equal.test.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
import { deepEqual } from "./deep_equal.ts";
22
import { assert } from "../../deps.ts";
33

4-
const obj = { here: { is: "an" }, object: 2 };
4+
Deno.test("[deepEqual]", () => {
5+
const obj = { here: { is: "an" }, object: 2 };
56

6-
Deno.test("deepEqual", () => {
77
assert(deepEqual(obj, obj));
8+
9+
assert(deepEqual("a", "a"));
10+
11+
assert(!deepEqual(23, 34));
12+
813
assert(!deepEqual(obj, { here: 1, object: 2 }));
14+
915
assert(deepEqual(obj, { here: { is: "an" }, object: 2 }));
16+
1017
assert(!deepEqual({ a: "b" }, { c: "d" }));
18+
1119
assert(!deepEqual({ hey: "rosa", chales: "diah" }, { me: "eliaz" }));
1220
});

src/language/is_even.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ Deno.test("[isEven]", () => {
99
assert(isEven(50));
1010
assert(!isEven(75));
1111
assert(!isEven(75));
12+
1213
assertThrows(() => isEven(-3));
14+
1315
// @ts-expect-error Should throw
1416
assertThrows(() => isEven("a"));
1517
});

src/language/is_even.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
1-
export function isEven(numberToTest: number): boolean {
1+
export function isEven(numberToTest: number) {
22
if (!Number.isInteger(numberToTest) || numberToTest <= -1) {
33
throw new Error("Only positive numbers are allowed.");
44
}
55

6-
if (numberToTest === 0) {
7-
return true;
8-
}
6+
function isEvenCore(number: number): boolean {
7+
if (numberToTest === 0) {
8+
return true;
9+
}
10+
11+
if (numberToTest == 1) {
12+
return false;
13+
}
914

10-
if (numberToTest == 1) {
11-
return false;
15+
return isEvenCore(number - 2);
1216
}
1317

14-
return isEven(numberToTest - 2);
18+
return isEvenCore(numberToTest);
1519
}

src/language/sum.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
11
export function sum(...numbers: number[]) {
22
return numbers.reduce((previous, current) => (previous += current));
33
}
4+
5+
export function sumFor(...numbers: number[]) {
6+
let sum = 0;
7+
8+
for (let number of numbers) {
9+
sum += number;
10+
}
11+
12+
return sum;
13+
}

0 commit comments

Comments
 (0)