Skip to content

Commit 3d8e91a

Browse files
committed
Adding tests for "Blunder - episode 1".
1 parent 19df119 commit 3d8e91a

27 files changed

+627
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010
- Tests for "Horse-racing duals".
1111
- Tests for "MIME type".
1212
- Tests for "Temperatures".
13+
- Tests for "Blunder - episode 1".
1314

1415
## [1.0.0] - 2022-02-26
1516
### Added
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/**
2+
* The "Blunder - episode 1" puzzle.
3+
*/
4+
function execute(readline) {
5+
var inputs = readline().split(' ');
6+
const L = parseInt(inputs[0]);
7+
const C = parseInt(inputs[1]);
8+
for (let i = 0; i < L; i++) {
9+
const row = readline();
10+
}
11+
12+
// Write an answer using console.log()
13+
// To debug: console.error('Debug messages...');
14+
15+
console.log('answer');
16+
}
17+
18+
export { execute };
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
import { assert } from 'chai';
2+
import sinon from 'sinon';
3+
import File from '../../../File.js';
4+
import { assertOutputAnswer } from '../../../assertOutputAnswer.js';
5+
import { execute } from '../../../../lib/training/medium/blunderEpisode1/blunderEpisode1.js';
6+
7+
/**
8+
* Tests for the "Blunder - episode 1" puzzle.
9+
*/
10+
suite('Blunder - episode 1', function() {
11+
const sandbox = sinon.createSandbox();
12+
13+
setup(function () {
14+
sandbox.stub(console, "log");
15+
});
16+
17+
teardown(function () {
18+
sandbox.restore();
19+
});
20+
21+
22+
test('Simple moves', function() {
23+
let inputFile = new File('./test/training/medium/blunderEpisode1/input/01 - simple moves.txt');
24+
25+
execute(inputFile.readline.bind(inputFile));
26+
27+
assertOutputAnswer('./test/training/medium/blunderEpisode1/output/01 - simple moves.txt');
28+
});
29+
30+
test('Obstacles', function() {
31+
let inputFile = new File('./test/training/medium/blunderEpisode1/input/02 - obstacles.txt');
32+
33+
execute(inputFile.readline.bind(inputFile));
34+
35+
assertOutputAnswer('./test/training/medium/blunderEpisode1/output/02 - obstacles.txt');
36+
});
37+
38+
test('Priorities', function() {
39+
let inputFile = new File('./test/training/medium/blunderEpisode1/input/03 - priorities.txt');
40+
41+
execute(inputFile.readline.bind(inputFile));
42+
43+
assertOutputAnswer('./test/training/medium/blunderEpisode1/output/03 - priorities.txt');
44+
});
45+
46+
test('Straight line', function() {
47+
let inputFile = new File('./test/training/medium/blunderEpisode1/input/04 - straight line.txt');
48+
49+
execute(inputFile.readline.bind(inputFile));
50+
51+
assertOutputAnswer('./test/training/medium/blunderEpisode1/output/04 - straight line.txt');
52+
});
53+
54+
test('Path modifier', function() {
55+
let inputFile = new File('./test/training/medium/blunderEpisode1/input/05 - path modifier.txt');
56+
57+
execute(inputFile.readline.bind(inputFile));
58+
59+
assertOutputAnswer('./test/training/medium/blunderEpisode1/output/05 - path modifier.txt');
60+
});
61+
62+
test('Breaker mode', function() {
63+
let inputFile = new File('./test/training/medium/blunderEpisode1/input/06 - breaker mode.txt');
64+
65+
execute(inputFile.readline.bind(inputFile));
66+
67+
assertOutputAnswer('./test/training/medium/blunderEpisode1/output/06 - breaker mode.txt');
68+
});
69+
70+
test('Inverter', function() {
71+
let inputFile = new File('./test/training/medium/blunderEpisode1/input/07 - inverter.txt');
72+
73+
execute(inputFile.readline.bind(inputFile));
74+
75+
assertOutputAnswer('./test/training/medium/blunderEpisode1/output/07 - inverter.txt');
76+
});
77+
78+
test('Teleport', function() {
79+
let inputFile = new File('./test/training/medium/blunderEpisode1/input/08 - teleport.txt');
80+
81+
execute(inputFile.readline.bind(inputFile));
82+
83+
assertOutputAnswer('./test/training/medium/blunderEpisode1/output/08 - teleport.txt');
84+
});
85+
86+
test('Broken wall?', function() {
87+
let inputFile = new File('./test/training/medium/blunderEpisode1/input/09 - broken wall.txt');
88+
89+
execute(inputFile.readline.bind(inputFile));
90+
91+
assertOutputAnswer('./test/training/medium/blunderEpisode1/output/09 - broken wall.txt');
92+
});
93+
94+
test('All together', function() {
95+
let inputFile = new File('./test/training/medium/blunderEpisode1/input/10 - all together.txt');
96+
97+
execute(inputFile.readline.bind(inputFile));
98+
99+
assertOutputAnswer('./test/training/medium/blunderEpisode1/output/10 - all together.txt');
100+
});
101+
102+
test('LOOP', function() {
103+
let inputFile = new File('./test/training/medium/blunderEpisode1/input/11 - LOOP.txt');
104+
105+
execute(inputFile.readline.bind(inputFile));
106+
107+
assertOutputAnswer('./test/training/medium/blunderEpisode1/output/11 - LOOP.txt');
108+
});
109+
110+
test('Multiple loops?', function() {
111+
let inputFile = new File('./test/training/medium/blunderEpisode1/input/12 - multiple loops.txt');
112+
113+
execute(inputFile.readline.bind(inputFile));
114+
115+
assertOutputAnswer('./test/training/medium/blunderEpisode1/output/12 - multiple loops.txt');
116+
});
117+
});
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
5 5
2+
#####
3+
#@ #
4+
# #
5+
# $#
6+
#####
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
8 8
2+
########
3+
# @ #
4+
# X#
5+
# XXX #
6+
# XX #
7+
# XX #
8+
# $#
9+
########
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
8 8
2+
########
3+
# $#
4+
# #
5+
# #
6+
# @ #
7+
# #
8+
# #
9+
########
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
8 8
2+
########
3+
# #
4+
# @ #
5+
# XX #
6+
# XX #
7+
# XX #
8+
# $#
9+
########
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
10 10
2+
##########
3+
# #
4+
# S W #
5+
# #
6+
# $ #
7+
# #
8+
#@ #
9+
# #
10+
#E N #
11+
##########
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
10 10
2+
##########
3+
# @ #
4+
# B #
5+
#XXX #
6+
# B #
7+
# BXX$#
8+
#XXXXXXXX#
9+
# #
10+
# #
11+
##########
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
10 10
2+
##########
3+
# I #
4+
# #
5+
# $#
6+
# @#
7+
# #
8+
# I#
9+
# #
10+
# #
11+
##########

0 commit comments

Comments
 (0)