Skip to content

Commit 2ab8b22

Browse files
committed
Adding tests for "Mayan calculation".
1 parent 68cbc06 commit 2ab8b22

27 files changed

+647
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88
### Added
99
- Tests for "Conway sequence".
1010
- Tests for "Dwarfs standing on the shoulders of giants".
11+
- Tests for "Mayan calculation".
1112

1213
## [1.1.0] - 2022-02-28
1314
### Added
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/**
2+
* The "Mayan calculation" puzzle.
3+
*/
4+
function execute(readline) {
5+
var inputs = readline().split(' ');
6+
const L = parseInt(inputs[0]);
7+
const H = parseInt(inputs[1]);
8+
for (let i = 0; i < H; i++) {
9+
const numeral = readline();
10+
}
11+
const S1 = parseInt(readline());
12+
for (let i = 0; i < S1; i++) {
13+
const num1Line = readline();
14+
}
15+
const S2 = parseInt(readline());
16+
for (let i = 0; i < S2; i++) {
17+
const num2Line = readline();
18+
}
19+
const operation = readline();
20+
21+
// Write an answer using console.log()
22+
// To debug: console.error('Debug messages...');
23+
24+
console.log('result');
25+
}
26+
27+
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/mayanCalculation/mayanCalculation.js';
6+
7+
/**
8+
* Tests for the "Mayan calculation" puzzle.
9+
*/
10+
suite('Mayan calculation', 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 addition', function() {
23+
let inputFile = new File('./test/training/medium/mayanCalculation/input/01 - simple addition.txt');
24+
25+
execute(inputFile.readline.bind(inputFile));
26+
27+
assertOutputAnswer('./test/training/medium/mayanCalculation/output/01 - simple addition.txt');
28+
});
29+
30+
test('Addition with carry', function() {
31+
let inputFile = new File('./test/training/medium/mayanCalculation/input/02 - addition with carry.txt');
32+
33+
execute(inputFile.readline.bind(inputFile));
34+
35+
assertOutputAnswer('./test/training/medium/mayanCalculation/output/02 - addition with carry.txt');
36+
});
37+
38+
test('Multiplication', function() {
39+
let inputFile = new File('./test/training/medium/mayanCalculation/input/03 - multiplication.txt');
40+
41+
execute(inputFile.readline.bind(inputFile));
42+
43+
assertOutputAnswer('./test/training/medium/mayanCalculation/output/03 - multiplication.txt');
44+
});
45+
46+
test('Simple subtraction', function() {
47+
let inputFile = new File('./test/training/medium/mayanCalculation/input/04 - simple subtraction.txt');
48+
49+
execute(inputFile.readline.bind(inputFile));
50+
51+
assertOutputAnswer('./test/training/medium/mayanCalculation/output/04 - simple subtraction.txt');
52+
});
53+
54+
test('Subtraction', function() {
55+
let inputFile = new File('./test/training/medium/mayanCalculation/input/05 - subtraction.txt');
56+
57+
execute(inputFile.readline.bind(inputFile));
58+
59+
assertOutputAnswer('./test/training/medium/mayanCalculation/output/05 - subtraction.txt');
60+
});
61+
62+
test('Simple division', function() {
63+
let inputFile = new File('./test/training/medium/mayanCalculation/input/06 - simple division.txt');
64+
65+
execute(inputFile.readline.bind(inputFile));
66+
67+
assertOutputAnswer('./test/training/medium/mayanCalculation/output/06 - simple division.txt');
68+
});
69+
70+
test('Division', function() {
71+
let inputFile = new File('./test/training/medium/mayanCalculation/input/07 - division.txt');
72+
73+
execute(inputFile.readline.bind(inputFile));
74+
75+
assertOutputAnswer('./test/training/medium/mayanCalculation/output/07 - division.txt');
76+
});
77+
78+
test('Great multiplication', function() {
79+
let inputFile = new File('./test/training/medium/mayanCalculation/input/08 - great multiplication.txt');
80+
81+
execute(inputFile.readline.bind(inputFile));
82+
83+
assertOutputAnswer('./test/training/medium/mayanCalculation/output/08 - great multiplication.txt');
84+
});
85+
86+
test('Zero', function() {
87+
let inputFile = new File('./test/training/medium/mayanCalculation/input/09 - zero.txt');
88+
89+
execute(inputFile.readline.bind(inputFile));
90+
91+
assertOutputAnswer('./test/training/medium/mayanCalculation/output/09 - zero.txt');
92+
});
93+
94+
test('Missing power', function() {
95+
let inputFile = new File('./test/training/medium/mayanCalculation/input/10 - missing power.txt');
96+
97+
execute(inputFile.readline.bind(inputFile));
98+
99+
assertOutputAnswer('./test/training/medium/mayanCalculation/output/10 - missing power.txt');
100+
});
101+
102+
test('Base 20', function() {
103+
let inputFile = new File('./test/training/medium/mayanCalculation/input/11 - base 20.txt');
104+
105+
execute(inputFile.readline.bind(inputFile));
106+
107+
assertOutputAnswer('./test/training/medium/mayanCalculation/output/11 - base 20.txt');
108+
});
109+
110+
test('Other symbols', function() {
111+
let inputFile = new File('./test/training/medium/mayanCalculation/input/12 - other symbols.txt');
112+
113+
execute(inputFile.readline.bind(inputFile));
114+
115+
assertOutputAnswer('./test/training/medium/mayanCalculation/output/12 - other symbols.txt');
116+
});
117+
});
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
4 4
2+
.oo.o...oo..ooo.oooo....o...oo..ooo.oooo....o...oo..ooo.oooo....o...oo..ooo.oooo
3+
o..o................____________________________________________________________
4+
.oo.....................................________________________________________
5+
............................................................____________________
6+
4
7+
o...
8+
....
9+
....
10+
....
11+
4
12+
o...
13+
....
14+
....
15+
....
16+
+
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
4 4
2+
.oo.o...oo..ooo.oooo....o...oo..ooo.oooo....o...oo..ooo.oooo....o...oo..ooo.oooo
3+
o..o................____________________________________________________________
4+
.oo.....................................________________________________________
5+
............................................................____________________
6+
4
7+
ooo.
8+
____
9+
____
10+
____
11+
4
12+
ooo.
13+
....
14+
....
15+
....
16+
+
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
4 4
2+
.oo.o...oo..ooo.oooo....o...oo..ooo.oooo....o...oo..ooo.oooo....o...oo..ooo.oooo
3+
o..o................____________________________________________________________
4+
.oo.....................................________________________________________
5+
............................................................____________________
6+
4
7+
....
8+
____
9+
....
10+
....
11+
4
12+
....
13+
____
14+
....
15+
....
16+
*
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
4 4
2+
.oo.o...oo..ooo.oooo....o...oo..ooo.oooo....o...oo..ooo.oooo....o...oo..ooo.oooo
3+
o..o................____________________________________________________________
4+
.oo.....................................________________________________________
5+
............................................................____________________
6+
4
7+
oo..
8+
____
9+
....
10+
....
11+
4
12+
oo..
13+
....
14+
....
15+
....
16+
-
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
4 4
2+
.oo.o...oo..ooo.oooo....o...oo..ooo.oooo....o...oo..ooo.oooo....o...oo..ooo.oooo
3+
o..o................____________________________________________________________
4+
.oo.....................................________________________________________
5+
............................................................____________________
6+
8
7+
o...
8+
____
9+
....
10+
....
11+
ooo.
12+
....
13+
....
14+
....
15+
4
16+
oo..
17+
____
18+
....
19+
....
20+
-
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
4 4
2+
.oo.o...oo..ooo.oooo....o...oo..ooo.oooo....o...oo..ooo.oooo....o...oo..ooo.oooo
3+
o..o................____________________________________________________________
4+
.oo.....................................________________________________________
5+
............................................................____________________
6+
4
7+
ooo.
8+
____
9+
....
10+
....
11+
4
12+
oooo
13+
....
14+
....
15+
....
16+
/
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
4 4
2+
.oo.o...oo..ooo.oooo....o...oo..ooo.oooo....o...oo..ooo.oooo....o...oo..ooo.oooo
3+
o..o................____________________________________________________________
4+
.oo.....................................________________________________________
5+
............................................................____________________
6+
12
7+
oooo
8+
....
9+
....
10+
....
11+
ooo.
12+
____
13+
....
14+
....
15+
.oo.
16+
o..o
17+
.oo.
18+
....
19+
4
20+
....
21+
____
22+
____
23+
....
24+
/

0 commit comments

Comments
 (0)