-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstretch-character.test.js
114 lines (100 loc) · 2.83 KB
/
stretch-character.test.js
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
const assert = require(`assert`).strict;
const stretchCharacter = require(`./stretch-character`);
module.exports = function run () {
console.log(`Running tests from ${__filename}`)
const fakeSegments = {
blank: `1`,
vertical: `2`,
horizontal: `3`,
dot: `4`
}
const { blank, vertical, horizontal, dot } = fakeSegments;
/*
` _ `
`|_|`
` _|`
*/
const nine = [
`${blank}${horizontal}${blank}`,
`${vertical}${horizontal}${vertical}`,
`${blank}${horizontal}${vertical}`
];
// Stretch factor 1 does nothing to it.
assert.deepStrictEqual(stretchCharacter(nine, 1, fakeSegments), nine);
// Stretch factor 2 makes each vertical two characters high
// and each horizontal line two characters wide
/*
` __ `
`| |`
`|__|`
` |`
` __|`
*/
const twoStretchedNine = [
`${blank}${horizontal}${horizontal}${blank}`,
`${vertical}${blank}${blank}${vertical}`,
`${vertical}${horizontal}${horizontal}${vertical}`,
`${blank}${blank}${blank}${vertical}`,
`${blank}${horizontal}${horizontal}${vertical}`
];
assert.deepStrictEqual(stretchCharacter(nine, 2, fakeSegments), twoStretchedNine);
// Stretch factor 3 makes each vertical three characters high
// and each horizontal line three characters wide
/*
` ___ `
`| |`
`| |`
`|___|`
` |`
` |`
` ___|`
*/
const threeStretchedNine = [
`${blank}${horizontal}${horizontal}${horizontal}${blank}`,
`${vertical}${blank}${blank}${blank}${vertical}`,
`${vertical}${blank}${blank}${blank}${vertical}`,
`${vertical}${horizontal}${horizontal}${horizontal}${vertical}`,
`${blank}${blank}${blank}${blank}${vertical}`,
`${blank}${blank}${blank}${blank}${vertical}`,
`${blank}${horizontal}${horizontal}${horizontal}${vertical}`
];
assert.deepStrictEqual(stretchCharacter(nine, 3, fakeSegments), threeStretchedNine);
/*
` `
` • `
` • `
*/
const dots = [
`${blank}${blank}${blank}`,
`${blank}${dot}${blank}`,
`${blank}${dot}${blank}`
];
// Stretch factor 1 does nothing to it.
assert.deepStrictEqual(stretchCharacter(dots, 1, fakeSegments), dots);
// Stretch factor 2 pads it with space to make it as big as a number stretched with factor 2.
/*
` `
` `
` • `
` `
` • `
*/
const twoStretchedDots = [
`${blank}${blank}${blank}${blank}`,
`${blank}${blank}${blank}${blank}`,
`${blank}${blank}${dot}${blank}`,
`${blank}${blank}${blank}${blank}`,
`${blank}${blank}${dot}${blank}`
];
assert.deepStrictEqual(stretchCharacter(dots, 2, fakeSegments), twoStretchedDots);
// const threeStretchedDots = [
// ` `,
// ` `,
// ` `,
// ` • `,
// ` `,
// ` `,
// ` • `
// ]
// assert.deepStrictEqual(stretchCharacter(dots, 3), threeStretchedDots);
}