Skip to content

Commit 2a6e0bf

Browse files
committed
Solución Reto 5 y tests
1 parent 2e70583 commit 2a6e0bf

File tree

2 files changed

+90
-0
lines changed

2 files changed

+90
-0
lines changed

retos/reto-5/main.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
function cyberReindeer(road, time) {
2+
let moves = [road]
3+
let a = 0
4+
let b = "."
5+
6+
for (let i = 1; i < time; i++) {
7+
if (i == 5) road = road.replace(/\|/g, "*")
8+
const newRoad = road.replace(/S[\.\*]/, `${b}S`)
9+
if (newRoad != road) {
10+
a++
11+
b = road[a]
12+
}
13+
road = newRoad
14+
moves.push(road)
15+
}
16+
17+
return moves;
18+
}
19+
20+
module.exports = cyberReindeer

retos/reto-5/reto5.test.ts

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
const cyberReindeer = require('./main.ts')
2+
3+
test("Test #01 - Returns an Array", () => {
4+
expect(
5+
Array.isArray(
6+
cyberReindeer('S..|...|..', 10)
7+
)
8+
).toBe(true)
9+
})
10+
11+
test("Test #02 - cyberReindeer('S..|...|..', 10)", () => {
12+
expect(cyberReindeer('S..|...|..', 10)).toStrictEqual([
13+
"S..|...|..",
14+
".S.|...|..",
15+
"..S|...|..",
16+
"..S|...|..",
17+
"..S|...|..",
18+
"...S...*..",
19+
"...*S..*..",
20+
"...*.S.*..",
21+
"...*..S*..",
22+
"...*...S.."
23+
])
24+
})
25+
26+
27+
test("Test #03 - cyberReindeer('S.|.', 4)", () => {
28+
expect(cyberReindeer('S.|.', 4)).toStrictEqual([
29+
"S.|.",
30+
".S|.",
31+
".S|.",
32+
".S|."
33+
])
34+
})
35+
36+
test("Test #04 - cyberReindeer('S.|.|.', 7)", () => {
37+
expect(cyberReindeer('S.|.|.', 7)).toStrictEqual([
38+
"S.|.|.",
39+
".S|.|.",
40+
".S|.|.",
41+
".S|.|.",
42+
".S|.|.",
43+
"..S.*.",
44+
"..*S*."
45+
])
46+
})
47+
48+
test("Test #05 - cyberReindeer('S.|..', 6)", () => {
49+
expect(cyberReindeer('S.|..', 6)).toStrictEqual([
50+
"S.|..",
51+
".S|..",
52+
".S|..",
53+
".S|..",
54+
".S|..",
55+
"..S.."
56+
])
57+
})
58+
59+
test("Test #06 - cyberReindeer('S.|.|.|......|.||.........', 8)", () => {
60+
expect(cyberReindeer('S.|.|.|......|.||.........', 8)).toStrictEqual([
61+
"S.|.|.|......|.||.........",
62+
".S|.|.|......|.||.........",
63+
".S|.|.|......|.||.........",
64+
".S|.|.|......|.||.........",
65+
".S|.|.|......|.||.........",
66+
"..S.*.*......*.**.........",
67+
"..*S*.*......*.**.........",
68+
"..*.S.*......*.**........."
69+
])
70+
})

0 commit comments

Comments
 (0)