livetext 0.9.14 → 0.9.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/cmdargs.rb +93 -0
- data/lib/formatline.rb +56 -83
- data/lib/helpers.rb +142 -4
- data/lib/livetext.rb +11 -141
- data/lib/parser/file.rb +8 -0
- data/lib/parser/mixin.rb +28 -15
- data/lib/parser/set.rb +35 -26
- data/lib/parser/string.rb +19 -4
- data/lib/processor.rb +1 -4
- data/lib/standard.rb +56 -96
- data/plugin/bookish.rb +26 -22
- data/plugin/calibre.rb +1 -1
- data/plugin/livemagick.rb +10 -10
- data/plugin/markdown.rb +13 -11
- data/plugin/pyggish.rb +94 -84
- data/plugin/tutorial.rb +10 -5
- data/test/all.rb +0 -1
- data/test/snapshots/OMIT.txt +7 -8
- data/test/snapshots/clusion.txt +35 -0
- data/test/snapshots/error_inc_line_num/actual-error.txt +14 -0
- data/test/snapshots/error_inc_line_num/actual-output.txt +7 -0
- data/test/snapshots/error_inc_line_num/match-error.txt +1 -1
- data/test/snapshots/error_inc_line_num/out-sdiff.txt +14 -0
- data/test/snapshots/error_invalid_name/actual-error.txt +10 -0
- data/test/snapshots/error_invalid_name/actual-output.txt +0 -0
- data/test/snapshots/error_invalid_name/match-error.txt +1 -1
- data/test/snapshots/error_invalid_name/out-sdiff.txt +6 -0
- data/test/snapshots/error_line_num/match-error.txt +1 -1
- data/test/snapshots/error_mismatched_end/match-error.txt +1 -1
- data/test/snapshots/error_missing_end/actual-error.txt +10 -0
- data/test/snapshots/error_missing_end/actual-output.txt +0 -0
- data/test/snapshots/error_missing_end/match-error.txt +1 -1
- data/test/snapshots/error_missing_end/out-sdiff.txt +6 -0
- data/test/snapshots/error_no_such_copy/actual-error.txt +10 -0
- data/test/snapshots/error_no_such_copy/actual-output.txt +0 -0
- data/test/snapshots/error_no_such_copy/match-error.txt +1 -1
- data/test/snapshots/error_no_such_copy/out-sdiff.txt +5 -0
- data/test/snapshots/error_no_such_copy/source.lt3 +0 -1
- data/test/snapshots/error_no_such_inc/actual-error.txt +10 -0
- data/test/snapshots/error_no_such_inc/actual-output.txt +0 -0
- data/test/snapshots/error_no_such_inc/match-error.txt +1 -1
- data/test/snapshots/error_no_such_inc/out-sdiff.txt +6 -0
- data/test/snapshots/error_no_such_mixin/actual-error.txt +37 -0
- data/test/snapshots/error_no_such_mixin/actual-output.txt +0 -0
- data/test/snapshots/error_no_such_mixin/out-sdiff.txt +6 -0
- data/test/snapshots/simple_import/actual-error.txt +8 -0
- data/test/snapshots/simple_import/actual-output.txt +3 -0
- data/test/snapshots/simple_import/err-sdiff.txt +9 -0
- data/test/snapshots/simple_import/expected-error.txt +0 -0
- data/test/snapshots/simple_import/expected-output.txt +7 -0
- data/test/snapshots/simple_import/out-sdiff.txt +9 -0
- data/test/snapshots/simple_import/simple_import.rb +5 -0
- data/test/snapshots/simple_import/source.lt3 +7 -0
- data/test/snapshots/simple_include/source.lt3 +0 -1
- data/test/snapshots.rb +3 -2
- data/test/unit/all.rb +1 -0
- data/test/unit/formatline.rb +650 -0
- data/test/unit/parser/importable.rb +1 -1
- data/test/unit/parser/mixin.rb +1 -1
- data/test/unit/parser/set.rb +19 -12
- data/test/unit/parser/string.rb +14 -14
- metadata +32 -5
- data/test/formatting-tests.rb +0 -35
- data/test/formatting.rb +0 -103
- data/test/snapshots/formatting-tests.txt +0 -124
data/test/snapshots.rb
CHANGED
@@ -53,7 +53,8 @@ class TestingLivetext < MiniTest::Test
|
|
53
53
|
@match_out = File.exist?(MATCH_OUT)
|
54
54
|
@match_err = File.exist?(MATCH_ERR)
|
55
55
|
end
|
56
|
-
bad_files = (@literal_out && @match_out) || (@literal_err && @match_err)
|
56
|
+
bad_files = (@literal_out && @match_out) || (@literal_err && @match_err) ||
|
57
|
+
(! @literal_out && ! @match_out)
|
57
58
|
raise "Inconsistent structure for #@base" if bad_files
|
58
59
|
end
|
59
60
|
|
@@ -116,8 +117,8 @@ class TestingLivetext < MiniTest::Test
|
|
116
117
|
Dir.chdir(@base) do
|
117
118
|
cmd = "../../../bin/livetext #{SOURCE} >#{ACTUAL_OUT} 2>#{ACTUAL_ERR}"
|
118
119
|
system(cmd)
|
119
|
-
check_stdout
|
120
120
|
check_stderr
|
121
|
+
check_stdout
|
121
122
|
cleanup
|
122
123
|
end
|
123
124
|
end
|
data/test/unit/all.rb
CHANGED
@@ -0,0 +1,650 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
|
3
|
+
require_relative '../../lib/livetext'
|
4
|
+
|
5
|
+
class TestingLivetext < MiniTest::Test
|
6
|
+
|
7
|
+
# Some (most) methods were generated via...
|
8
|
+
|
9
|
+
=begin
|
10
|
+
TestLines = []
|
11
|
+
|
12
|
+
items = []
|
13
|
+
formatting_tests = File.open("test/snapshots/formatting-tests.txt")
|
14
|
+
loop do
|
15
|
+
4.times { items << formatting_tests.gets.chomp }
|
16
|
+
# Blank line terminates each "stanza"
|
17
|
+
raise "Oops? #{items.inspect}" unless items.last.empty?
|
18
|
+
TestLines << items
|
19
|
+
break if formatting_tests.eof?
|
20
|
+
end
|
21
|
+
|
22
|
+
STDERR.puts <<~RUBY
|
23
|
+
require 'minitest/autorun'
|
24
|
+
|
25
|
+
require_relative '../lib/livetext'
|
26
|
+
|
27
|
+
# Just another testing class. Chill.
|
28
|
+
|
29
|
+
class TestingLivetext < MiniTest::Test
|
30
|
+
RUBY
|
31
|
+
|
32
|
+
TestLines.each.with_index do |item, num|
|
33
|
+
msg, src, exp, blank = *item
|
34
|
+
# generate tests...
|
35
|
+
name = "test_formatting_#{'%02d' % (num + 1)}"
|
36
|
+
method_source = <<~RUBY
|
37
|
+
def #{name} # #{msg}
|
38
|
+
msg, src, exp = <<~STUFF.split("\\n")
|
39
|
+
#{msg}
|
40
|
+
#{src}
|
41
|
+
#{exp}
|
42
|
+
STUFF
|
43
|
+
|
44
|
+
actual = FormatLine.parse!(src)
|
45
|
+
# FIXME could simplify assert logic?
|
46
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
47
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
48
|
+
assert_match(exp, actual, msg)
|
49
|
+
else
|
50
|
+
assert_equal(exp, actual, msg)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
RUBY
|
55
|
+
STDERR.puts method_source
|
56
|
+
end
|
57
|
+
STDERR.puts "\nend"
|
58
|
+
end
|
59
|
+
=end
|
60
|
+
|
61
|
+
def test_simple_string
|
62
|
+
parse = FormatLine.new("only testing")
|
63
|
+
tokens = parse.tokenize
|
64
|
+
assert_equal tokens, [[:str, "only testing"]]
|
65
|
+
expected = "only testing"
|
66
|
+
result = parse.evaluate
|
67
|
+
assert result == expected
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_variable_interpolation
|
71
|
+
parse = FormatLine.new("File is $File and user is $User")
|
72
|
+
tokens = parse.tokenize
|
73
|
+
assert_equal tokens, [[:str, "File is "],
|
74
|
+
[:var, "File"],
|
75
|
+
[:str, " and user is "],
|
76
|
+
[:var, "User"]
|
77
|
+
]
|
78
|
+
result = parse.evaluate
|
79
|
+
expected = "File is [File is undefined] and user is [User is undefined]"
|
80
|
+
assert result == expected
|
81
|
+
end
|
82
|
+
|
83
|
+
def test_func_expansion
|
84
|
+
parse = FormatLine.new("myfunc() results in $$myfunc apparently.")
|
85
|
+
tokens = parse.tokenize
|
86
|
+
assert_equal tokens, [[:str, "myfunc() results in "],
|
87
|
+
[:func, "myfunc"],
|
88
|
+
[:str, " apparently."]
|
89
|
+
]
|
90
|
+
result = parse.evaluate
|
91
|
+
expected = "myfunc() results in [Error evaluating $$myfunc()] apparently."
|
92
|
+
assert result == expected
|
93
|
+
end
|
94
|
+
|
95
|
+
def test_func_with_colon
|
96
|
+
parse = FormatLine.new("Calling $$myfunc:foo here.")
|
97
|
+
tokens = parse.tokenize
|
98
|
+
assert_equal tokens, [[:str, "Calling "],
|
99
|
+
[:func, "myfunc"],
|
100
|
+
[:colon, "foo"],
|
101
|
+
[:str, " here."]
|
102
|
+
]
|
103
|
+
result = parse.evaluate
|
104
|
+
expected = "Calling [Error evaluating $$myfunc(foo)] here."
|
105
|
+
assert result == expected
|
106
|
+
end
|
107
|
+
|
108
|
+
def test_func_with_brackets
|
109
|
+
parse = FormatLine.new("Calling $$myfunc2[foo bar] here.")
|
110
|
+
tokens = parse.tokenize
|
111
|
+
assert_kind_of Array, tokens
|
112
|
+
assert tokens.size == 4
|
113
|
+
assert_equal tokens, [[:str, "Calling "],
|
114
|
+
[:func, "myfunc2"],
|
115
|
+
[:brackets, "foo bar"],
|
116
|
+
[:str, " here."]
|
117
|
+
]
|
118
|
+
result = parse.evaluate
|
119
|
+
expected = "Calling [Error evaluating $$myfunc2(foo bar)] here."
|
120
|
+
assert result == expected
|
121
|
+
end
|
122
|
+
|
123
|
+
def test_formatting_01 # Check output of $$date
|
124
|
+
msg, src, exp = <<~STUFF.split("\n")
|
125
|
+
Check output of $$date
|
126
|
+
Today is $$date, I guess
|
127
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
128
|
+
STUFF
|
129
|
+
|
130
|
+
actual = FormatLine.parse!(src)
|
131
|
+
# FIXME could simplify assert logic?
|
132
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
133
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
134
|
+
assert_match(exp, actual, msg)
|
135
|
+
else
|
136
|
+
assert_equal(exp, actual, msg)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
def test_formatting_02 # Check output of $$date
|
141
|
+
msg, src, exp = <<~STUFF.split("\n")
|
142
|
+
Check output of $$date
|
143
|
+
Today is $$date, I guess
|
144
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
145
|
+
STUFF
|
146
|
+
|
147
|
+
actual = FormatLine.parse!(src)
|
148
|
+
# FIXME could simplify assert logic?
|
149
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
150
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
151
|
+
assert_match(exp, actual, msg)
|
152
|
+
else
|
153
|
+
assert_equal(exp, actual, msg)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
def test_formatting_03 # Check output of $$date
|
158
|
+
msg, src, exp = <<~STUFF.split("\n")
|
159
|
+
Check output of $$date
|
160
|
+
Today is $$date, I guess
|
161
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
162
|
+
STUFF
|
163
|
+
|
164
|
+
actual = FormatLine.parse!(src)
|
165
|
+
# FIXME could simplify assert logic?
|
166
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
167
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
168
|
+
assert_match(exp, actual, msg)
|
169
|
+
else
|
170
|
+
assert_equal(exp, actual, msg)
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
def test_formatting_04 # Check output of $$date
|
175
|
+
msg, src, exp = <<~STUFF.split("\n")
|
176
|
+
Check output of $$date
|
177
|
+
Today is $$date, I guess
|
178
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
179
|
+
STUFF
|
180
|
+
|
181
|
+
actual = FormatLine.parse!(src)
|
182
|
+
# FIXME could simplify assert logic?
|
183
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
184
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
185
|
+
assert_match(exp, actual, msg)
|
186
|
+
else
|
187
|
+
assert_equal(exp, actual, msg)
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
def test_formatting_05 # Check output of $$date
|
192
|
+
msg, src, exp = <<~STUFF.split("\n")
|
193
|
+
Check output of $$date
|
194
|
+
Today is $$date, I guess
|
195
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
196
|
+
STUFF
|
197
|
+
|
198
|
+
actual = FormatLine.parse!(src)
|
199
|
+
# FIXME could simplify assert logic?
|
200
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
201
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
202
|
+
assert_match(exp, actual, msg)
|
203
|
+
else
|
204
|
+
assert_equal(exp, actual, msg)
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
def test_formatting_06 # Check output of $$date
|
209
|
+
msg, src, exp = <<~STUFF.split("\n")
|
210
|
+
Check output of $$date
|
211
|
+
Today is $$date, I guess
|
212
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
213
|
+
STUFF
|
214
|
+
|
215
|
+
actual = FormatLine.parse!(src)
|
216
|
+
# FIXME could simplify assert logic?
|
217
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
218
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
219
|
+
assert_match(exp, actual, msg)
|
220
|
+
else
|
221
|
+
assert_equal(exp, actual, msg)
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
225
|
+
def test_formatting_07 # Check output of $$date
|
226
|
+
msg, src, exp = <<~STUFF.split("\n")
|
227
|
+
Check output of $$date
|
228
|
+
Today is $$date, I guess
|
229
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
230
|
+
STUFF
|
231
|
+
|
232
|
+
actual = FormatLine.parse!(src)
|
233
|
+
# FIXME could simplify assert logic?
|
234
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
235
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
236
|
+
assert_match(exp, actual, msg)
|
237
|
+
else
|
238
|
+
assert_equal(exp, actual, msg)
|
239
|
+
end
|
240
|
+
end
|
241
|
+
|
242
|
+
def test_formatting_08 # Check output of $$date
|
243
|
+
msg, src, exp = <<~STUFF.split("\n")
|
244
|
+
Check output of $$date
|
245
|
+
Today is $$date, I guess
|
246
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
247
|
+
STUFF
|
248
|
+
|
249
|
+
actual = FormatLine.parse!(src)
|
250
|
+
# FIXME could simplify assert logic?
|
251
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
252
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
253
|
+
assert_match(exp, actual, msg)
|
254
|
+
else
|
255
|
+
assert_equal(exp, actual, msg)
|
256
|
+
end
|
257
|
+
end
|
258
|
+
|
259
|
+
def test_formatting_09 # Check output of $$date
|
260
|
+
msg, src, exp = <<~STUFF.split("\n")
|
261
|
+
Check output of $$date
|
262
|
+
Today is $$date, I guess
|
263
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
264
|
+
STUFF
|
265
|
+
|
266
|
+
actual = FormatLine.parse!(src)
|
267
|
+
# FIXME could simplify assert logic?
|
268
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
269
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
270
|
+
assert_match(exp, actual, msg)
|
271
|
+
else
|
272
|
+
assert_equal(exp, actual, msg)
|
273
|
+
end
|
274
|
+
end
|
275
|
+
|
276
|
+
def test_formatting_10 # Check output of $$date
|
277
|
+
msg, src, exp = <<~STUFF.split("\n")
|
278
|
+
Check output of $$date
|
279
|
+
Today is $$date, I guess
|
280
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
281
|
+
STUFF
|
282
|
+
|
283
|
+
actual = FormatLine.parse!(src)
|
284
|
+
# FIXME could simplify assert logic?
|
285
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
286
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
287
|
+
assert_match(exp, actual, msg)
|
288
|
+
else
|
289
|
+
assert_equal(exp, actual, msg)
|
290
|
+
end
|
291
|
+
end
|
292
|
+
|
293
|
+
def test_formatting_11 # Check output of $$date
|
294
|
+
msg, src, exp = <<~STUFF.split("\n")
|
295
|
+
Check output of $$date
|
296
|
+
Today is $$date, I guess
|
297
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
298
|
+
STUFF
|
299
|
+
|
300
|
+
actual = FormatLine.parse!(src)
|
301
|
+
# FIXME could simplify assert logic?
|
302
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
303
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
304
|
+
assert_match(exp, actual, msg)
|
305
|
+
else
|
306
|
+
assert_equal(exp, actual, msg)
|
307
|
+
end
|
308
|
+
end
|
309
|
+
|
310
|
+
def test_formatting_12 # Check output of $$date
|
311
|
+
msg, src, exp = <<~STUFF.split("\n")
|
312
|
+
Check output of $$date
|
313
|
+
Today is $$date, I guess
|
314
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
315
|
+
STUFF
|
316
|
+
|
317
|
+
actual = FormatLine.parse!(src)
|
318
|
+
# FIXME could simplify assert logic?
|
319
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
320
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
321
|
+
assert_match(exp, actual, msg)
|
322
|
+
else
|
323
|
+
assert_equal(exp, actual, msg)
|
324
|
+
end
|
325
|
+
end
|
326
|
+
|
327
|
+
def test_formatting_13 # Check output of $$date
|
328
|
+
msg, src, exp = <<~STUFF.split("\n")
|
329
|
+
Check output of $$date
|
330
|
+
Today is $$date, I guess
|
331
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
332
|
+
STUFF
|
333
|
+
|
334
|
+
actual = FormatLine.parse!(src)
|
335
|
+
# FIXME could simplify assert logic?
|
336
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
337
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
338
|
+
assert_match(exp, actual, msg)
|
339
|
+
else
|
340
|
+
assert_equal(exp, actual, msg)
|
341
|
+
end
|
342
|
+
end
|
343
|
+
|
344
|
+
def test_formatting_14 # Check output of $$date
|
345
|
+
msg, src, exp = <<~STUFF.split("\n")
|
346
|
+
Check output of $$date
|
347
|
+
Today is $$date, I guess
|
348
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
349
|
+
STUFF
|
350
|
+
|
351
|
+
actual = FormatLine.parse!(src)
|
352
|
+
# FIXME could simplify assert logic?
|
353
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
354
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
355
|
+
assert_match(exp, actual, msg)
|
356
|
+
else
|
357
|
+
assert_equal(exp, actual, msg)
|
358
|
+
end
|
359
|
+
end
|
360
|
+
|
361
|
+
def test_formatting_15 # Check output of $$date
|
362
|
+
msg, src, exp = <<~STUFF.split("\n")
|
363
|
+
Check output of $$date
|
364
|
+
Today is $$date, I guess
|
365
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
366
|
+
STUFF
|
367
|
+
|
368
|
+
actual = FormatLine.parse!(src)
|
369
|
+
# FIXME could simplify assert logic?
|
370
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
371
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
372
|
+
assert_match(exp, actual, msg)
|
373
|
+
else
|
374
|
+
assert_equal(exp, actual, msg)
|
375
|
+
end
|
376
|
+
end
|
377
|
+
|
378
|
+
def test_formatting_16 # Check output of $$date
|
379
|
+
msg, src, exp = <<~STUFF.split("\n")
|
380
|
+
Check output of $$date
|
381
|
+
Today is $$date, I guess
|
382
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
383
|
+
STUFF
|
384
|
+
|
385
|
+
actual = FormatLine.parse!(src)
|
386
|
+
# FIXME could simplify assert logic?
|
387
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
388
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
389
|
+
assert_match(exp, actual, msg)
|
390
|
+
else
|
391
|
+
assert_equal(exp, actual, msg)
|
392
|
+
end
|
393
|
+
end
|
394
|
+
|
395
|
+
def test_formatting_17 # Check output of $$date
|
396
|
+
msg, src, exp = <<~STUFF.split("\n")
|
397
|
+
Check output of $$date
|
398
|
+
Today is $$date, I guess
|
399
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
400
|
+
STUFF
|
401
|
+
|
402
|
+
actual = FormatLine.parse!(src)
|
403
|
+
# FIXME could simplify assert logic?
|
404
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
405
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
406
|
+
assert_match(exp, actual, msg)
|
407
|
+
else
|
408
|
+
assert_equal(exp, actual, msg)
|
409
|
+
end
|
410
|
+
end
|
411
|
+
|
412
|
+
def test_formatting_18 # Check output of $$date
|
413
|
+
msg, src, exp = <<~STUFF.split("\n")
|
414
|
+
Check output of $$date
|
415
|
+
Today is $$date, I guess
|
416
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
417
|
+
STUFF
|
418
|
+
|
419
|
+
actual = FormatLine.parse!(src)
|
420
|
+
# FIXME could simplify assert logic?
|
421
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
422
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
423
|
+
assert_match(exp, actual, msg)
|
424
|
+
else
|
425
|
+
assert_equal(exp, actual, msg)
|
426
|
+
end
|
427
|
+
end
|
428
|
+
|
429
|
+
def test_formatting_19 # Check output of $$date
|
430
|
+
msg, src, exp = <<~STUFF.split("\n")
|
431
|
+
Check output of $$date
|
432
|
+
Today is $$date, I guess
|
433
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
434
|
+
STUFF
|
435
|
+
|
436
|
+
actual = FormatLine.parse!(src)
|
437
|
+
# FIXME could simplify assert logic?
|
438
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
439
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
440
|
+
assert_match(exp, actual, msg)
|
441
|
+
else
|
442
|
+
assert_equal(exp, actual, msg)
|
443
|
+
end
|
444
|
+
end
|
445
|
+
|
446
|
+
def test_formatting_20 # Check output of $$date
|
447
|
+
msg, src, exp = <<~STUFF.split("\n")
|
448
|
+
Check output of $$date
|
449
|
+
Today is $$date, I guess
|
450
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
451
|
+
STUFF
|
452
|
+
|
453
|
+
actual = FormatLine.parse!(src)
|
454
|
+
# FIXME could simplify assert logic?
|
455
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
456
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
457
|
+
assert_match(exp, actual, msg)
|
458
|
+
else
|
459
|
+
assert_equal(exp, actual, msg)
|
460
|
+
end
|
461
|
+
end
|
462
|
+
|
463
|
+
def test_formatting_21 # Check output of $$date
|
464
|
+
msg, src, exp = <<~STUFF.split("\n")
|
465
|
+
Check output of $$date
|
466
|
+
Today is $$date, I guess
|
467
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
468
|
+
STUFF
|
469
|
+
|
470
|
+
actual = FormatLine.parse!(src)
|
471
|
+
# FIXME could simplify assert logic?
|
472
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
473
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
474
|
+
assert_match(exp, actual, msg)
|
475
|
+
else
|
476
|
+
assert_equal(exp, actual, msg)
|
477
|
+
end
|
478
|
+
end
|
479
|
+
|
480
|
+
def test_formatting_22 # Check output of $$date
|
481
|
+
msg, src, exp = <<~STUFF.split("\n")
|
482
|
+
Check output of $$date
|
483
|
+
Today is $$date, I guess
|
484
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
485
|
+
STUFF
|
486
|
+
|
487
|
+
actual = FormatLine.parse!(src)
|
488
|
+
# FIXME could simplify assert logic?
|
489
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
490
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
491
|
+
assert_match(exp, actual, msg)
|
492
|
+
else
|
493
|
+
assert_equal(exp, actual, msg)
|
494
|
+
end
|
495
|
+
end
|
496
|
+
|
497
|
+
def test_formatting_23 # Check output of $$date
|
498
|
+
msg, src, exp = <<~STUFF.split("\n")
|
499
|
+
Check output of $$date
|
500
|
+
Today is $$date, I guess
|
501
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
502
|
+
STUFF
|
503
|
+
|
504
|
+
actual = FormatLine.parse!(src)
|
505
|
+
# FIXME could simplify assert logic?
|
506
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
507
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
508
|
+
assert_match(exp, actual, msg)
|
509
|
+
else
|
510
|
+
assert_equal(exp, actual, msg)
|
511
|
+
end
|
512
|
+
end
|
513
|
+
|
514
|
+
def test_formatting_24 # Check output of $$date
|
515
|
+
msg, src, exp = <<~STUFF.split("\n")
|
516
|
+
Check output of $$date
|
517
|
+
Today is $$date, I guess
|
518
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
519
|
+
STUFF
|
520
|
+
|
521
|
+
actual = FormatLine.parse!(src)
|
522
|
+
# FIXME could simplify assert logic?
|
523
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
524
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
525
|
+
assert_match(exp, actual, msg)
|
526
|
+
else
|
527
|
+
assert_equal(exp, actual, msg)
|
528
|
+
end
|
529
|
+
end
|
530
|
+
|
531
|
+
def test_formatting_25 # Check output of $$date
|
532
|
+
msg, src, exp = <<~STUFF.split("\n")
|
533
|
+
Check output of $$date
|
534
|
+
Today is $$date, I guess
|
535
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
536
|
+
STUFF
|
537
|
+
|
538
|
+
actual = FormatLine.parse!(src)
|
539
|
+
# FIXME could simplify assert logic?
|
540
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
541
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
542
|
+
assert_match(exp, actual, msg)
|
543
|
+
else
|
544
|
+
assert_equal(exp, actual, msg)
|
545
|
+
end
|
546
|
+
end
|
547
|
+
|
548
|
+
def test_formatting_26 # Check output of $$date
|
549
|
+
msg, src, exp = <<~STUFF.split("\n")
|
550
|
+
Check output of $$date
|
551
|
+
Today is $$date, I guess
|
552
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
553
|
+
STUFF
|
554
|
+
|
555
|
+
actual = FormatLine.parse!(src)
|
556
|
+
# FIXME could simplify assert logic?
|
557
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
558
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
559
|
+
assert_match(exp, actual, msg)
|
560
|
+
else
|
561
|
+
assert_equal(exp, actual, msg)
|
562
|
+
end
|
563
|
+
end
|
564
|
+
|
565
|
+
def test_formatting_27 # Check output of $$date
|
566
|
+
msg, src, exp = <<~STUFF.split("\n")
|
567
|
+
Check output of $$date
|
568
|
+
Today is $$date, I guess
|
569
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
570
|
+
STUFF
|
571
|
+
|
572
|
+
actual = FormatLine.parse!(src)
|
573
|
+
# FIXME could simplify assert logic?
|
574
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
575
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
576
|
+
assert_match(exp, actual, msg)
|
577
|
+
else
|
578
|
+
assert_equal(exp, actual, msg)
|
579
|
+
end
|
580
|
+
end
|
581
|
+
|
582
|
+
def test_formatting_28 # Check output of $$date
|
583
|
+
msg, src, exp = <<~STUFF.split("\n")
|
584
|
+
Check output of $$date
|
585
|
+
Today is $$date, I guess
|
586
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
587
|
+
STUFF
|
588
|
+
|
589
|
+
actual = FormatLine.parse!(src)
|
590
|
+
# FIXME could simplify assert logic?
|
591
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
592
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
593
|
+
assert_match(exp, actual, msg)
|
594
|
+
else
|
595
|
+
assert_equal(exp, actual, msg)
|
596
|
+
end
|
597
|
+
end
|
598
|
+
|
599
|
+
def test_formatting_29 # Check output of $$date
|
600
|
+
msg, src, exp = <<~STUFF.split("\n")
|
601
|
+
Check output of $$date
|
602
|
+
Today is $$date, I guess
|
603
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
604
|
+
STUFF
|
605
|
+
|
606
|
+
actual = FormatLine.parse!(src)
|
607
|
+
# FIXME could simplify assert logic?
|
608
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
609
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
610
|
+
assert_match(exp, actual, msg)
|
611
|
+
else
|
612
|
+
assert_equal(exp, actual, msg)
|
613
|
+
end
|
614
|
+
end
|
615
|
+
|
616
|
+
def test_formatting_30 # Check output of $$date
|
617
|
+
msg, src, exp = <<~STUFF.split("\n")
|
618
|
+
Check output of $$date
|
619
|
+
Today is $$date, I guess
|
620
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
621
|
+
STUFF
|
622
|
+
|
623
|
+
actual = FormatLine.parse!(src)
|
624
|
+
# FIXME could simplify assert logic?
|
625
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
626
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
627
|
+
assert_match(exp, actual, msg)
|
628
|
+
else
|
629
|
+
assert_equal(exp, actual, msg)
|
630
|
+
end
|
631
|
+
end
|
632
|
+
|
633
|
+
def test_formatting_31 # Check output of $$date
|
634
|
+
msg, src, exp = <<~STUFF.split("\n")
|
635
|
+
Check output of $$date
|
636
|
+
Today is $$date, I guess
|
637
|
+
/Today is \\d\\d\\d\\d-\\d\\d-\\d\\d, I guess/
|
638
|
+
STUFF
|
639
|
+
|
640
|
+
actual = FormatLine.parse!(src)
|
641
|
+
# FIXME could simplify assert logic?
|
642
|
+
if exp[0] == "/" # regex! FIXME doesn't honor %r[...]
|
643
|
+
exp = Regexp.compile(exp[1..-2]) # skip slashes
|
644
|
+
assert_match(exp, actual, msg)
|
645
|
+
else
|
646
|
+
assert_equal(exp, actual, msg)
|
647
|
+
end
|
648
|
+
end
|
649
|
+
|
650
|
+
end
|