@jdeighan/coffee-utils 4.1.6 → 4.1.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,130 +0,0 @@
1
- # indent.test.coffee
2
-
3
- import assert from 'assert'
4
-
5
- import {UnitTester} from '@jdeighan/coffee-utils/test'
6
- import {isInteger} from '@jdeighan/coffee-utils'
7
- import {
8
- indentLevel, indentation, undented, splitLine,
9
- indented, tabify, untabify,
10
- } from '@jdeighan/coffee-utils/indent'
11
-
12
- simple = new UnitTester()
13
-
14
- # ---------------------------------------------------------------------------
15
-
16
- simple.equal 16, indentLevel("abc"), 0
17
- simple.equal 17, indentLevel("\tabc"), 1
18
- simple.equal 18, indentLevel("\t\tabc"), 2
19
-
20
- # ---------------------------------------------------------------------------
21
-
22
- simple.equal 22, indentation(0), ''
23
- simple.equal 23, indentation(1), "\t"
24
- simple.equal 24, indentation(2), "\t\t"
25
-
26
- # ---------------------------------------------------------------------------
27
-
28
- simple.equal 28, undented("abc"), "abc"
29
- simple.equal 29, undented("\tabc"), "abc"
30
- simple.equal 30, undented("\t\tabc"), "abc"
31
- simple.equal 31, undented("\t\tabc", 0), "\t\tabc"
32
- simple.equal 32, undented("\t\tabc", 1), "\tabc"
33
- simple.equal 33, undented("\t\tabc", 2), "abc"
34
-
35
- # ---------------------------------------------------------------------------
36
-
37
- simple.equal 37, undented("\t\tfirst\n\t\tsecond\n\t\t\tthird\n"),
38
- "first\nsecond\n\tthird\n",
39
-
40
- # ---------------------------------------------------------------------------
41
-
42
- simple.equal 42, splitLine("abc"), [0, "abc"]
43
- simple.equal 43, splitLine("\tabc"), [1, "abc"]
44
- simple.equal 44, splitLine("\t\tabc"), [2, "abc"]
45
- simple.equal 45, splitLine("\t\t\t"), [0, ""]
46
-
47
- # ---------------------------------------------------------------------------
48
-
49
- simple.equal 49, indented("abc", 0), "abc"
50
- simple.equal 50, indented("abc", 1), "\tabc"
51
- simple.equal 51, indented("abc", 2), "\t\tabc"
52
-
53
- # --- empty lines, indented, should just be empty lines
54
- simple.equal 54, indented("abc\n\ndef", 2), "\t\tabc\n\n\t\tdef"
55
-
56
- (() ->
57
- str = "main\n\toverflow: auto\n\nnav\n\toverflow: auto"
58
- exp = "\tmain\n\t\toverflow: auto\n\n\tnav\n\t\toverflow: auto"
59
- simple.equal 59, indented(str, 1), exp
60
- )()
61
-
62
- # --- indented also handles arrays, so test them, too
63
-
64
- # --- empty lines, indented, should just be empty lines
65
- simple.equal 65, indented(['abc','','def'], 2), '\t\tabc\n\n\t\tdef'
66
-
67
- (() ->
68
- lLines = ['main','\toverflow: auto','','nav','\toverflow: auto']
69
- lExp = '\tmain\n\t\toverflow: auto\n\n\tnav\n\t\toverflow: auto'
70
- simple.equal 70, indented(lLines, 1), lExp
71
- )()
72
-
73
- # ---------------------------------------------------------------------------
74
-
75
- (() ->
76
- prefix = ' ' # 3 spaces
77
-
78
- simple.equal 78, tabify("""
79
- first line
80
- #{prefix}second line
81
- #{prefix}#{prefix}third line
82
- """, 3), """
83
- first line
84
- \tsecond line
85
- \t\tthird line
86
- """
87
- )()
88
-
89
- # ---------------------------------------------------------------------------
90
- # you don't need to tell it number of spaces
91
-
92
- (() ->
93
- prefix = ' ' # 3 spaces
94
-
95
- simple.equal 95, tabify("""
96
- first line
97
- #{prefix}second line
98
- #{prefix}#{prefix}third line
99
- """), """
100
- first line
101
- \tsecond line
102
- \t\tthird line
103
- """
104
- )()
105
-
106
- # ---------------------------------------------------------------------------
107
-
108
- (() ->
109
- prefix = ' ' # 3 spaces
110
-
111
- simple.equal 111, untabify("""
112
- first line
113
- \tsecond line
114
- \t\tthird line
115
- """, 3), """
116
- first line
117
- #{prefix}second line
118
- #{prefix}#{prefix}third line
119
- """
120
- )()
121
-
122
- # ---------------------------------------------------------------------------
123
-
124
- simple.equal 124, indented("export name = undef", 1), "\texport name = undef"
125
- simple.equal 125, indented("export name = undef", 2), "\t\texport name = undef"
126
-
127
- # ---------------------------------------------------------------------------
128
- # make sure indentLevel() works for blocks
129
-
130
- simple.equal 130, indentLevel("\t\tabc\n\t\tdef\n\t\t\tghi"), 2
@@ -1,136 +0,0 @@
1
- // Generated by CoffeeScript 2.6.1
2
- // indent.test.coffee
3
- var simple;
4
-
5
- import assert from 'assert';
6
-
7
- import {
8
- UnitTester
9
- } from '@jdeighan/coffee-utils/test';
10
-
11
- import {
12
- isInteger
13
- } from '@jdeighan/coffee-utils';
14
-
15
- import {
16
- indentLevel,
17
- indentation,
18
- undented,
19
- splitLine,
20
- indented,
21
- tabify,
22
- untabify
23
- } from '@jdeighan/coffee-utils/indent';
24
-
25
- simple = new UnitTester();
26
-
27
- // ---------------------------------------------------------------------------
28
- simple.equal(16, indentLevel("abc"), 0);
29
-
30
- simple.equal(17, indentLevel("\tabc"), 1);
31
-
32
- simple.equal(18, indentLevel("\t\tabc"), 2);
33
-
34
- // ---------------------------------------------------------------------------
35
- simple.equal(22, indentation(0), '');
36
-
37
- simple.equal(23, indentation(1), "\t");
38
-
39
- simple.equal(24, indentation(2), "\t\t");
40
-
41
- // ---------------------------------------------------------------------------
42
- simple.equal(28, undented("abc"), "abc");
43
-
44
- simple.equal(29, undented("\tabc"), "abc");
45
-
46
- simple.equal(30, undented("\t\tabc"), "abc");
47
-
48
- simple.equal(31, undented("\t\tabc", 0), "\t\tabc");
49
-
50
- simple.equal(32, undented("\t\tabc", 1), "\tabc");
51
-
52
- simple.equal(33, undented("\t\tabc", 2), "abc");
53
-
54
- // ---------------------------------------------------------------------------
55
- simple.equal(37, undented("\t\tfirst\n\t\tsecond\n\t\t\tthird\n"), "first\nsecond\n\tthird\n");
56
-
57
- // ---------------------------------------------------------------------------
58
- simple.equal(42, splitLine("abc"), [0, "abc"]);
59
-
60
- simple.equal(43, splitLine("\tabc"), [1, "abc"]);
61
-
62
- simple.equal(44, splitLine("\t\tabc"), [2, "abc"]);
63
-
64
- simple.equal(45, splitLine("\t\t\t"), [0, ""]);
65
-
66
- // ---------------------------------------------------------------------------
67
- simple.equal(49, indented("abc", 0), "abc");
68
-
69
- simple.equal(50, indented("abc", 1), "\tabc");
70
-
71
- simple.equal(51, indented("abc", 2), "\t\tabc");
72
-
73
- // --- empty lines, indented, should just be empty lines
74
- simple.equal(54, indented("abc\n\ndef", 2), "\t\tabc\n\n\t\tdef");
75
-
76
- (function() {
77
- var exp, str;
78
- str = "main\n\toverflow: auto\n\nnav\n\toverflow: auto";
79
- exp = "\tmain\n\t\toverflow: auto\n\n\tnav\n\t\toverflow: auto";
80
- return simple.equal(59, indented(str, 1), exp);
81
- })();
82
-
83
- // --- indented also handles arrays, so test them, too
84
-
85
- // --- empty lines, indented, should just be empty lines
86
- simple.equal(65, indented(['abc', '', 'def'], 2), '\t\tabc\n\n\t\tdef');
87
-
88
- (function() {
89
- var lExp, lLines;
90
- lLines = ['main', '\toverflow: auto', '', 'nav', '\toverflow: auto'];
91
- lExp = '\tmain\n\t\toverflow: auto\n\n\tnav\n\t\toverflow: auto';
92
- return simple.equal(70, indented(lLines, 1), lExp);
93
- })();
94
-
95
- // ---------------------------------------------------------------------------
96
- (function() {
97
- var prefix;
98
- prefix = ' '; // 3 spaces
99
- return simple.equal(78, tabify(`first line
100
- ${prefix}second line
101
- ${prefix}${prefix}third line`, 3), `first line
102
- \tsecond line
103
- \t\tthird line`);
104
- })();
105
-
106
- // ---------------------------------------------------------------------------
107
- // you don't need to tell it number of spaces
108
- (function() {
109
- var prefix;
110
- prefix = ' '; // 3 spaces
111
- return simple.equal(95, tabify(`first line
112
- ${prefix}second line
113
- ${prefix}${prefix}third line`), `first line
114
- \tsecond line
115
- \t\tthird line`);
116
- })();
117
-
118
- // ---------------------------------------------------------------------------
119
- (function() {
120
- var prefix;
121
- prefix = ' '; // 3 spaces
122
- return simple.equal(111, untabify(`first line
123
- \tsecond line
124
- \t\tthird line`, 3), `first line
125
- ${prefix}second line
126
- ${prefix}${prefix}third line`);
127
- })();
128
-
129
- // ---------------------------------------------------------------------------
130
- simple.equal(124, indented("export name = undef", 1), "\texport name = undef");
131
-
132
- simple.equal(125, indented("export name = undef", 2), "\t\texport name = undef");
133
-
134
- // ---------------------------------------------------------------------------
135
- // make sure indentLevel() works for blocks
136
- simple.equal(130, indentLevel("\t\tabc\n\t\tdef\n\t\t\tghi"), 2);
@@ -1,315 +0,0 @@
1
- # log.test.coffee
2
-
3
- import {undef} from '@jdeighan/coffee-utils'
4
- import {arrayToBlock} from '@jdeighan/coffee-utils/block'
5
- import {UnitTester} from '@jdeighan/coffee-utils/test'
6
- import {
7
- stringify, setStringifier, log, setLogger, tamlStringify,
8
- } from '@jdeighan/coffee-utils/log'
9
-
10
- simple = new UnitTester()
11
-
12
- # ---------------------------------------------------------------------------
13
-
14
- class LogTester extends UnitTester
15
-
16
- transformValue: (lLines) ->
17
- return arrayToBlock(lLines)
18
- normalize: (text) ->
19
- return text
20
-
21
- tester = new LogTester()
22
-
23
- # ---------------------------------------------------------------------------
24
-
25
- lLines = undef
26
- setLogger (str) -> lLines.push(str)
27
-
28
- # ---------------------------------------------------------------------------
29
-
30
- (() ->
31
- lLines = []
32
- log 'enter myfunc'
33
- tester.equal 33, lLines, """
34
- enter myfunc
35
- """
36
- )()
37
-
38
- # ---------------------------------------------------------------------------
39
-
40
- (() ->
41
- lLines = []
42
- log 'abc'
43
- log 'def'
44
- log 'ghi'
45
- tester.equal 45, lLines, """
46
- abc
47
- def
48
- ghi
49
- """
50
- )()
51
-
52
- # ---------------------------------------------------------------------------
53
- # test logging various small objects
54
-
55
- (() ->
56
- lLines = []
57
- log 'abc'
58
- log 'name', undef
59
- tester.equal 59, lLines, """
60
- abc
61
- name = undef
62
- """
63
- )()
64
-
65
- (() ->
66
- lLines = []
67
- log 'abc'
68
- log 'name', 42
69
- tester.equal 68, lLines, """
70
- abc
71
- name = 42
72
- """
73
- )()
74
-
75
- (() ->
76
- lLines = []
77
- log 'abc'
78
- log 'name', 'John'
79
- tester.equal 79, lLines, """
80
- abc
81
- name = 'John'
82
- """
83
- )()
84
-
85
- (() ->
86
- lLines = []
87
- log 'abc'
88
- log 'name', {a: 1, b: 'xyz'}
89
- tester.equal 89, lLines, """
90
- abc
91
- name = {"a":1,"b":"xyz"}
92
- """
93
- )()
94
-
95
- (() ->
96
- lLines = []
97
- log 'abc'
98
- log 'name', ['a', 42, [1,2]]
99
- tester.equal 99, lLines, """
100
- abc
101
- name = ["a",42,[1,2]]
102
- """
103
- )()
104
-
105
- # ---------------------------------------------------------------------------
106
- # test logging various large objects
107
-
108
- (() ->
109
- lLines = []
110
- log 'abc'
111
- log 'name', """
112
- This is a rather long bit of
113
- text which changes
114
- how it's displayed
115
- """
116
- tester.equal 116, lLines, """
117
- abc
118
- name:
119
- ==========================================
120
- This is a rather long bit of
121
- text which changes
122
- how it's displayed
123
- ==========================================
124
- """
125
- )()
126
-
127
- (() ->
128
- lLines = []
129
- log 'abc'
130
- log 'name', {
131
- fname: 'John',
132
- lname: 'Deighan',
133
- age: 68,
134
- home: 'Blacksburg, VA',
135
- }
136
- tester.equal 134, lLines, """
137
- abc
138
- name:
139
- ---
140
- fname: John
141
- lname: Deighan
142
- age: 68
143
- home: Blacksburg, VA
144
- """
145
- )()
146
-
147
- (() ->
148
- lLines = []
149
- log 'abc'
150
- log 'name', [
151
- 68,
152
- 'a rather long string of text',
153
- {a:1, b:2}
154
- ]
155
- tester.equal 153, lLines, """
156
- abc
157
- name:
158
- ---
159
- - 68
160
- - a rather long string of text
161
- -
162
- a: 1
163
- b: 2
164
- """
165
- )()
166
-
167
- # ---------------------------------------------------------------------------
168
- # test providing a prefix
169
-
170
- (() ->
171
- lLines = []
172
- log 'name', undef, {prefix: '<-->', logItem: true}
173
- tester.equal 171, lLines, """
174
- <-->name = undef
175
- """
176
- )()
177
-
178
- (() ->
179
- lLines = []
180
- log 'name', 42, {prefix: '<-->', logItem: true}
181
- tester.equal 179, lLines, """
182
- <-->name = 42
183
- """
184
- )()
185
-
186
- (() ->
187
- lLines = []
188
- log 'name', 'John', {prefix: '<-->', logItem: true}
189
- tester.equal 187, lLines, """
190
- <-->name = 'John'
191
- """
192
- )()
193
-
194
- (() ->
195
- lLines = []
196
- log 'name', {a: 1, b: 'xyz'}, {prefix: '<-->', logItem: true}
197
- tester.equal 195, lLines, """
198
- <-->name = {"a":1,"b":"xyz"}
199
- """
200
- )()
201
-
202
- (() ->
203
- lLines = []
204
- log 'name', ['a', 42, [1,2]], {prefix: '<-->', logItem: true}
205
- tester.equal 203, lLines, """
206
- <-->name = ["a",42,[1,2]]
207
- """
208
- )()
209
-
210
- (() ->
211
- lLines = []
212
- log 'name', """
213
- This is a rather long bit of
214
- text which changes
215
- how it's displayed
216
- """, {prefix: '<-->', logItem: true}
217
- tester.equal 215, lLines, """
218
- <-->name:
219
- ==========================================
220
- This is a rather long bit of
221
- text which changes
222
- how it's displayed
223
- ==========================================
224
- """
225
- )()
226
-
227
- (() ->
228
- lLines = []
229
- log 'name', {
230
- fname: 'John',
231
- lname: 'Deighan',
232
- age: 68,
233
- home: 'Blacksburg, VA',
234
- }, {prefix: '<-->', logItem: true}
235
- tester.equal 231, lLines, """
236
- <-->name:
237
- ---
238
- fname: John
239
- lname: Deighan
240
- age: 68
241
- home: Blacksburg, VA
242
- """
243
- )()
244
-
245
- (() ->
246
- lLines = []
247
- log 'name', [
248
- 68,
249
- 'a rather long string of text',
250
- {a:1, b:2}
251
- ], {prefix: '<-->', logItem: true}
252
- tester.equal 248, lLines, """
253
- <-->name:
254
- ---
255
- - 68
256
- - a rather long string of text
257
- -
258
- a: 1
259
- b: 2
260
- """
261
- )()
262
-
263
- # ---------------------------------------------------------------------------
264
-
265
- simple.equal 261, tamlStringify({a:"word", b:"blind"}), """
266
- ---
267
- a: word
268
- b: blind
269
- """
270
- simple.equal 266, stringify({a:"word", b:"blind"}), """
271
- ---
272
- a: word
273
- b: blind
274
- """
275
-
276
- setStringifier(JSON.stringify)
277
-
278
- simple.equal 274, stringify({a:"word", b:"blind"}),
279
- '{"a":"word","b":"blind"}'
280
-
281
- setStringifier(tamlStringify)
282
-
283
- simple.equal 279, stringify({a:"word", b:"blind"}), """
284
- ---
285
- a: word
286
- b: blind
287
- """
288
-
289
- # ---------------------------------------------------------------------------
290
-
291
- (() ->
292
- lItems = []
293
- setLogger (item) -> lItems.push(item)
294
- log 'a'
295
- log 'b'
296
- log 'c'
297
- setLogger() # reset
298
-
299
- simple.equal 295, lItems, ['a','b','c']
300
- )()
301
-
302
- (() ->
303
- lItems = []
304
- setLogger (item) -> lItems.push(item)
305
- log 'a'
306
- log 'b'
307
- log 'c'
308
- setLogger() # reset
309
-
310
- simple.equal 306, lItems, ['a','b','c']
311
- )()
312
-
313
- simple.fails 309, () -> error("an error message")
314
-
315
- # ---------------------------------------------------------------------------