rufus-decision 0.9 → 1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -13,15 +13,15 @@ require 'dmixin'
13
13
 
14
14
 
15
15
  class DecisionTest < Test::Unit::TestCase
16
- include DecisionTestMixin
16
+ include DecisionTestMixin
17
17
 
18
- #def setup
19
- #end
18
+ #def setup
19
+ #end
20
20
 
21
- #def teardown
22
- #end
21
+ #def teardown
22
+ #end
23
23
 
24
- CSV0 = \
24
+ CSV0 = \
25
25
  """
26
26
  ,,
27
27
  in:fx,in:fy,out:fz
@@ -31,22 +31,22 @@ c,d,1
31
31
  e,f,2
32
32
  """
33
33
 
34
- def test_csv_0
34
+ def test_csv_0
35
35
 
36
- wi = {
37
- "fx" => "c",
38
- "fy" => "d"
39
- }
40
- do_test(CSV0, wi, {}, { "fz" => "1" }, false)
36
+ wi = {
37
+ "fx" => "c",
38
+ "fy" => "d"
39
+ }
40
+ do_test(CSV0, wi, {}, { "fz" => "1" }, false)
41
41
 
42
- wi = {
43
- "fx" => "a",
44
- "fy" => "d"
45
- }
46
- do_test(CSV0, wi, {}, { "fz" => nil }, false)
47
- end
42
+ wi = {
43
+ "fx" => "a",
44
+ "fy" => "d"
45
+ }
46
+ do_test(CSV0, wi, {}, { "fz" => nil }, false)
47
+ end
48
48
 
49
- CSV0B = \
49
+ CSV0B = \
50
50
  """
51
51
 
52
52
  in:fx,in:fy,out:fz
@@ -56,163 +56,163 @@ c,d,1
56
56
  e,f,2
57
57
  """
58
58
 
59
- def test_0b
59
+ def test_0b
60
60
 
61
- wi = {
62
- "fx" => "c",
63
- "fy" => "d"
64
- }
65
- do_test(CSV0B, wi, {}, { "fz" => "1" }, false)
66
- end
61
+ wi = {
62
+ "fx" => "c",
63
+ "fy" => "d"
64
+ }
65
+ do_test(CSV0B, wi, {}, { "fz" => "1" }, false)
66
+ end
67
67
 
68
- # test 1 moved to decision_1_test.rb
68
+ # test 1 moved to decision_1_test.rb
69
69
 
70
- CSV2 = \
70
+ CSV2 = \
71
71
  """
72
72
  in:fx, in:fy, out:fz
73
73
  ,,
74
- a, b, 0
75
- c, d, 1
76
- e, f, 2
74
+ a, b, 0
75
+ c, d, 1
76
+ e, f, 2
77
77
  """
78
78
 
79
- def test_2
79
+ def test_2
80
80
 
81
- wi = {
82
- "fx" => "c",
83
- "fy" => "d"
84
- }
85
- do_test(CSV2, wi, {}, { "fz" => "1" }, false)
81
+ wi = {
82
+ "fx" => "c",
83
+ "fy" => "d"
84
+ }
85
+ do_test(CSV2, wi, {}, { "fz" => "1" }, false)
86
86
 
87
- wi = {
88
- "fx" => "a",
89
- "fy" => "d"
90
- }
91
- do_test(CSV2, wi, {}, { "fz" => nil }, false)
92
- end
87
+ wi = {
88
+ "fx" => "a",
89
+ "fy" => "d"
90
+ }
91
+ do_test(CSV2, wi, {}, { "fz" => nil }, false)
92
+ end
93
93
 
94
- CSV3 = \
94
+ CSV3 = \
95
95
  """
96
96
  in:weather, in:month, out:take_umbrella?
97
97
  ,,
98
- raining, , yes
99
- sunny, , no
100
- cloudy, june, yes
101
- cloudy, may, yes
102
- cloudy, , no
98
+ raining, , yes
99
+ sunny, , no
100
+ cloudy, june, yes
101
+ cloudy, may, yes
102
+ cloudy, , no
103
103
  """
104
104
 
105
- def test_3
106
-
107
- wi = {
108
- "weather" => "raining",
109
- "month" => "december"
110
- }
111
- do_test(CSV3, wi, {}, { "take_umbrella?" => "yes" }, false)
112
-
113
- wi = {
114
- "weather" => "cloudy",
115
- "month" => "june"
116
- }
117
- do_test(CSV3, wi, {}, { "take_umbrella?" => "yes" }, false)
118
-
119
- wi = {
120
- "weather" => "cloudy",
121
- "month" => "march"
122
- }
123
- do_test(CSV3, wi, {}, { "take_umbrella?" => "no" }, false)
124
- end
105
+ def test_3
125
106
 
126
- def test_3b
107
+ wi = {
108
+ "weather" => "raining",
109
+ "month" => "december"
110
+ }
111
+ do_test(CSV3, wi, {}, { "take_umbrella?" => "yes" }, false)
127
112
 
128
- h = {}
129
- h["weather"] = "raining"
130
- h["month"] = "december"
131
- do_test(CSV3, h, {}, { "take_umbrella?" => "yes" }, false)
113
+ wi = {
114
+ "weather" => "cloudy",
115
+ "month" => "june"
116
+ }
117
+ do_test(CSV3, wi, {}, { "take_umbrella?" => "yes" }, false)
132
118
 
133
- h = {}
134
- h["weather"] = "cloudy"
135
- h["month"] = "june"
136
- do_test(CSV3, h, {}, { "take_umbrella?" => "yes" }, false)
119
+ wi = {
120
+ "weather" => "cloudy",
121
+ "month" => "march"
122
+ }
123
+ do_test(CSV3, wi, {}, { "take_umbrella?" => "no" }, false)
124
+ end
137
125
 
138
- h = {}
139
- h["weather"] = "cloudy"
140
- h["month"] = "march"
141
- do_test(CSV3, h, {}, { "take_umbrella?" => "no" }, false)
142
- end
126
+ def test_3b
143
127
 
144
- def test_3c
145
-
146
- table = Rufus::DecisionTable.new("""
147
- in:topic,in:region,out:team_member
148
- sports,europe,Alice
149
- sports,,Bob
150
- finance,america,Charly
151
- finance,europe,Donald
152
- finance,,Ernest
153
- politics,asia,Fujio
154
- politics,america,Gilbert
155
- politics,,Henry
156
- ,,Zach
157
- """)
158
-
159
- h = {}
160
- h["topic"] = "politics"
161
- table.transform! h
162
-
163
- assert_equal "Henry", h["team_member"]
164
- end
128
+ h = {}
129
+ h["weather"] = "raining"
130
+ h["month"] = "december"
131
+ do_test(CSV3, h, {}, { "take_umbrella?" => "yes" }, false)
165
132
 
166
- CSV3D = "http://spreadsheets.google.com/pub?key=pCkopoeZwCNsMWOVeDjR1TQ&output=csv&gid=0"
133
+ h = {}
134
+ h["weather"] = "cloudy"
135
+ h["month"] = "june"
136
+ do_test(CSV3, h, {}, { "take_umbrella?" => "yes" }, false)
167
137
 
168
- def test_3d
138
+ h = {}
139
+ h["weather"] = "cloudy"
140
+ h["month"] = "march"
141
+ do_test(CSV3, h, {}, { "take_umbrella?" => "no" }, false)
142
+ end
169
143
 
170
- #return unless online?
144
+ def test_3c
171
145
 
172
- h = {}
173
- h["weather"] = "raining"
174
- h["month"] = "december"
146
+ table = Rufus::DecisionTable.new("""
147
+ in:topic,in:region,out:team_member
148
+ sports,europe,Alice
149
+ sports,,Bob
150
+ finance,america,Charly
151
+ finance,europe,Donald
152
+ finance,,Ernest
153
+ politics,asia,Fujio
154
+ politics,america,Gilbert
155
+ politics,,Henry
156
+ ,,Zach
157
+ """)
175
158
 
176
- do_test(CSV3D, h, {}, { "take_umbrella?" => "yes" }, false)
159
+ h = {}
160
+ h["topic"] = "politics"
161
+ table.transform! h
177
162
 
178
- h = {}
179
- h["weather"] = "cloudy"
180
- h["month"] = "june"
163
+ assert_equal "Henry", h["team_member"]
164
+ end
181
165
 
182
- sleep 0.5 # don't request the doc too often
166
+ CSV3D = "http://spreadsheets.google.com/pub?key=pCkopoeZwCNsMWOVeDjR1TQ&output=csv&gid=0"
183
167
 
184
- do_test(CSV3D, h, {}, { "take_umbrella?" => "yes" }, false)
168
+ def test_3d
185
169
 
186
- h = {}
187
- h["weather"] = "cloudy"
188
- h["month"] = "march"
170
+ #return unless online?
189
171
 
190
- sleep 0.5 # don't request the doc too often
172
+ h = {}
173
+ h["weather"] = "raining"
174
+ h["month"] = "december"
191
175
 
192
- do_test(CSV3D, h, {}, { "take_umbrella?" => "no" }, false)
193
- end
176
+ do_test(CSV3D, h, {}, { "take_umbrella?" => "yes" }, false)
194
177
 
195
- def test_3e
196
-
197
- table = Rufus::DecisionTable.new("""
198
- in:topic,in:region,out:team_member
199
- sports,europe,Alice
200
- """)
201
-
202
- h0 = {}
203
- h0["topic"] = "politics"
204
- h1 = table.transform! h0
205
-
206
- assert_equal h0.object_id, h1.object_id
207
-
208
- h0 = {}
209
- h0["topic"] = "politics"
210
- h1 = table.transform h0
211
-
212
- assert_not_equal h0.object_id, h1.object_id
213
- end
178
+ h = {}
179
+ h["weather"] = "cloudy"
180
+ h["month"] = "june"
181
+
182
+ sleep 0.5 # don't request the doc too often
183
+
184
+ do_test(CSV3D, h, {}, { "take_umbrella?" => "yes" }, false)
185
+
186
+ h = {}
187
+ h["weather"] = "cloudy"
188
+ h["month"] = "march"
189
+
190
+ sleep 0.5 # don't request the doc too often
191
+
192
+ do_test(CSV3D, h, {}, { "take_umbrella?" => "no" }, false)
193
+ end
194
+
195
+ def test_3e
196
+
197
+ table = Rufus::DecisionTable.new("""
198
+ in:topic,in:region,out:team_member
199
+ sports,europe,Alice
200
+ """)
201
+
202
+ h0 = {}
203
+ h0["topic"] = "politics"
204
+ h1 = table.transform! h0
205
+
206
+ assert_equal h0.object_id, h1.object_id
214
207
 
215
- # CSV4 = \
208
+ h0 = {}
209
+ h0["topic"] = "politics"
210
+ h1 = table.transform h0
211
+
212
+ assert_not_equal h0.object_id, h1.object_id
213
+ end
214
+
215
+ # CSV4 = \
216
216
  #'''
217
217
  #"in:weather", "in:month", "out:take_umbrella?"
218
218
  #"","",""
@@ -223,58 +223,58 @@ cloudy, , no
223
223
  #"cloudy","","no"
224
224
  #'''
225
225
 
226
- #def test_4
227
- # h = {}
228
- # h["weather"] = "raining"
229
- # h["month"] = "december"
230
- # do_test(CSV4, h, { "take_umbrella?" => "yes" }, false)
231
- # h = {}
232
- # h["weather"] = "cloudy"
233
- # h["month"] = "june"
234
- # do_test(CSV4, h, { "take_umbrella?" => "yes" }, false)
235
- # h = {}
236
- # h["weather"] = "cloudy"
237
- # h["month"] = "march"
238
- # do_test(CSV4, h, { "take_umbrella?" => "no" }, false)
239
- #end
240
-
241
- CSV5 = \
226
+ #def test_4
227
+ # h = {}
228
+ # h["weather"] = "raining"
229
+ # h["month"] = "december"
230
+ # do_test(CSV4, h, { "take_umbrella?" => "yes" }, false)
231
+ # h = {}
232
+ # h["weather"] = "cloudy"
233
+ # h["month"] = "june"
234
+ # do_test(CSV4, h, { "take_umbrella?" => "yes" }, false)
235
+ # h = {}
236
+ # h["weather"] = "cloudy"
237
+ # h["month"] = "march"
238
+ # do_test(CSV4, h, { "take_umbrella?" => "no" }, false)
239
+ #end
240
+
241
+ CSV5 = \
242
242
  """
243
243
  through,ignorecase,,
244
244
  ,,,
245
245
  in:fx, in:fy, out:fX, out:fY
246
246
  ,,,
247
- a, , true,
248
- , a, , true
249
- b, , false,
250
- , b, , false
247
+ a, , true,
248
+ , a, , true
249
+ b, , false,
250
+ , b, , false
251
251
  """
252
252
 
253
- def test_5
254
-
255
- wi = {
256
- "fx" => "a",
257
- "fy" => "a"
258
- }
259
- do_test(CSV5, wi, {}, { "fX" => "true", "fY" => "true" }, false)
260
-
261
- wi = {
262
- "fx" => "a",
263
- "fy" => "b"
264
- }
265
- do_test(CSV5, wi, {}, { "fX" => "true", "fY" => "false" }, false)
266
-
267
- wi = {
268
- "fx" => "A",
269
- "fy" => "b"
270
- }
271
- do_test(CSV5, wi, {}, { "fX" => "true", "fY" => "false" }, false)
272
- end
253
+ def test_5
254
+
255
+ wi = {
256
+ "fx" => "a",
257
+ "fy" => "a"
258
+ }
259
+ do_test(CSV5, wi, {}, { "fX" => "true", "fY" => "true" }, false)
273
260
 
274
- #
275
- # TEST 6
261
+ wi = {
262
+ "fx" => "a",
263
+ "fy" => "b"
264
+ }
265
+ do_test(CSV5, wi, {}, { "fX" => "true", "fY" => "false" }, false)
276
266
 
277
- CSV6 = \
267
+ wi = {
268
+ "fx" => "A",
269
+ "fy" => "b"
270
+ }
271
+ do_test(CSV5, wi, {}, { "fX" => "true", "fY" => "false" }, false)
272
+ end
273
+
274
+ #
275
+ # TEST 6
276
+
277
+ CSV6 = \
278
278
  """
279
279
  ,
280
280
  in:fx, out:fy
@@ -284,23 +284,23 @@ in:fx, out:fy
284
284
  ,c
285
285
  """
286
286
 
287
- def test_6
287
+ def test_6
288
288
 
289
- wi = {
290
- "fx" => "5"
291
- }
292
- do_test(CSV6, wi, {}, { "fy" => "a" }, false)
289
+ wi = {
290
+ "fx" => "5"
291
+ }
292
+ do_test(CSV6, wi, {}, { "fy" => "a" }, false)
293
293
 
294
- wi = {
295
- "fx" => "100.0001"
296
- }
297
- do_test(CSV6, wi, {}, { "fy" => "c" }, false)
298
- end
294
+ wi = {
295
+ "fx" => "100.0001"
296
+ }
297
+ do_test(CSV6, wi, {}, { "fy" => "c" }, false)
298
+ end
299
299
 
300
- #
301
- # TEST 7
300
+ #
301
+ # TEST 7
302
302
 
303
- CSV7 = \
303
+ CSV7 = \
304
304
  """
305
305
  ,
306
306
  in:fx, out:fy
@@ -310,25 +310,25 @@ in:fx, out:fy
310
310
  ,c
311
311
  """
312
312
 
313
- def test_7
313
+ def test_7
314
314
 
315
- wi = {
316
- "fx" => "5"
317
- }
318
- do_test(CSV7, wi, {}, { "fy" => "c" }, false)
315
+ wi = {
316
+ "fx" => "5"
317
+ }
318
+ do_test(CSV7, wi, {}, { "fy" => "c" }, false)
319
319
 
320
- wi = {
321
- "fx" => "10"
322
- }
323
- do_test(CSV7, wi, {}, { "fy" => "b" }, false)
320
+ wi = {
321
+ "fx" => "10"
322
+ }
323
+ do_test(CSV7, wi, {}, { "fy" => "b" }, false)
324
324
 
325
- wi = {
326
- "fx" => "10a"
327
- }
328
- do_test(CSV7, wi, {}, { "fy" => "a" }, false)
329
- end
325
+ wi = {
326
+ "fx" => "10a"
327
+ }
328
+ do_test(CSV7, wi, {}, { "fy" => "a" }, false)
329
+ end
330
330
 
331
- CSV8 = \
331
+ CSV8 = \
332
332
  """
333
333
  in:efx,in:efy,out:efz
334
334
  a,b,0
@@ -336,12 +336,12 @@ c,d,1
336
336
  e,f,2
337
337
  """
338
338
 
339
- def test_8
339
+ def test_8
340
340
 
341
- assert_equal CSV8.strip, Rufus::DecisionTable.new(CSV8).to_csv.strip
342
- end
341
+ assert_equal CSV8.strip, Rufus::DecisionTable.new(CSV8).to_csv.strip
342
+ end
343
343
 
344
- CSV9 = \
344
+ CSV9 = \
345
345
  """
346
346
  in:fx,in:fy,out:fz
347
347
  a,b,0
@@ -349,38 +349,38 @@ c,d,${r: 1 + 2}
349
349
  e,f,2
350
350
  """
351
351
 
352
- def test_9
352
+ def test_9
353
353
 
354
- wi = {
355
- "fx" => "c",
356
- "fy" => "d"
357
- }
358
- do_test(CSV9, wi, { :ruby_eval => true }, { "fz" => "3" }, false)
359
- end
354
+ wi = {
355
+ "fx" => "c",
356
+ "fy" => "d"
357
+ }
358
+ do_test(CSV9, wi, { :ruby_eval => true }, { "fz" => "3" }, false)
359
+ end
360
360
 
361
- CSV10 = \
361
+ CSV10 = \
362
362
  """
363
363
  in:fx,in:fx,out:fz
364
364
  >90,<92,ok
365
365
  ,,bad
366
366
  """
367
367
 
368
- def test_10
368
+ def test_10
369
369
 
370
- wi = { "fx" => "91" }
371
- do_test(CSV10, wi, {}, { "fz" => "ok" }, false)
370
+ wi = { "fx" => "91" }
371
+ do_test(CSV10, wi, {}, { "fz" => "ok" }, false)
372
372
 
373
- wi = { "fx" => "95" }
374
- do_test(CSV10, wi, {}, { "fz" => "bad" }, false)
373
+ wi = { "fx" => "95" }
374
+ do_test(CSV10, wi, {}, { "fz" => "bad" }, false)
375
375
 
376
- wi = { "fx" => "81" }
377
- do_test(CSV10, wi, {}, { "fz" => "bad" }, false)
378
- end
376
+ wi = { "fx" => "81" }
377
+ do_test(CSV10, wi, {}, { "fz" => "bad" }, false)
378
+ end
379
379
 
380
- #
381
- # Fu Zhang's test case
380
+ #
381
+ # Fu Zhang's test case
382
382
 
383
- CSV11 = \
383
+ CSV11 = \
384
384
  '''
385
385
  through
386
386
  in:f1,in:f1,in:f2,in:f3,out:o1,out:e1,out:e2
@@ -392,88 +392,88 @@ in:f1,in:f1,in:f2,in:f3,out:o1,out:e1,out:e2
392
392
  <100,>=95,,>2.0,"Invalid",,
393
393
  '''
394
394
 
395
- def test_11
395
+ def test_11
396
396
 
397
- wi = { "f1" => 97, "f2" => 5 }
398
- do_test CSV11, wi, {}, { "o1" => "Expection1" }, false
399
- end
397
+ wi = { "f1" => 97, "f2" => 5 }
398
+ do_test CSV11, wi, {}, { "o1" => "Expection1" }, false
399
+ end
400
400
 
401
- #
402
- # 'accumulate'
401
+ #
402
+ # 'accumulate'
403
403
 
404
- CSV12 = \
404
+ CSV12 = \
405
405
  """
406
406
  accumulate
407
407
  ,,,
408
408
  in:fx, in:fy, out:fX, out:fY
409
409
  ,,,
410
- a, , red, green
411
- , a, blue, purple
412
- b, , yellow, beige
413
- , b, white, kuro
410
+ a, , red, green
411
+ , a, blue, purple
412
+ b, , yellow, beige
413
+ , b, white, kuro
414
414
  """
415
415
 
416
- def test_12
416
+ def test_12
417
417
 
418
- wi = { "fx" => "a", "fy" => "a" }
419
- do_test CSV12, wi, {}, { "fX" => "red;blue", "fY" => "green;purple" }, false
418
+ wi = { "fx" => "a", "fy" => "a" }
419
+ do_test CSV12, wi, {}, { "fX" => "red;blue", "fY" => "green;purple" }, false
420
420
 
421
- wi = { "fx" => "a", "fy" => "a", "fX" => "BLACK" }
422
- do_test CSV12, wi, {}, {
423
- "fX" => "BLACK;red;blue", "fY" => "green;purple" }, false
421
+ wi = { "fx" => "a", "fy" => "a", "fX" => "BLACK" }
422
+ do_test CSV12, wi, {}, {
423
+ "fX" => "BLACK;red;blue", "fY" => "green;purple" }, false
424
424
 
425
- wi = { "fx" => "a", "fy" => "a", "fX" => [ "BLACK", "BLUE" ] }
426
- do_test CSV12, wi, {}, {
427
- "fX" => "BLACK;BLUE;red;blue", "fY" => "green;purple" }, false
428
- end
425
+ wi = { "fx" => "a", "fy" => "a", "fX" => [ "BLACK", "BLUE" ] }
426
+ do_test CSV12, wi, {}, {
427
+ "fX" => "BLACK;BLUE;red;blue", "fY" => "green;purple" }, false
428
+ end
429
429
 
430
- def test_to_ruby_range
431
-
432
- dt = Rufus::DecisionTable.new ",\n,"
433
- class << dt
434
- public :to_ruby_range
435
- end
436
-
437
- assert_not_nil dt.to_ruby_range("99..100")
438
- assert_not_nil dt.to_ruby_range("99...100")
439
- assert_not_nil dt.to_ruby_range("99.12..100.56")
440
- assert_nil dt.to_ruby_range("99....100")
441
- assert_nil dt.to_ruby_range("9a9..100")
442
- assert_nil dt.to_ruby_range("9a9..1a00")
443
-
444
- assert_equal dt.to_ruby_range("a..z"), 'a'..'z'
445
- assert_equal dt.to_ruby_range("a..Z"), 'a'..'Z'
446
- assert_equal dt.to_ruby_range("a...z"), 'a'...'z'
447
- assert_nil dt.to_ruby_range("a..%")
448
-
449
- r = dt.to_ruby_range "4..6"
450
- assert r.include?(5)
451
- assert r.include?("5")
452
- assert (not r.include?(7))
453
- assert (not r.include?("7"))
454
- end
430
+ def test_to_ruby_range
455
431
 
456
- #
457
- # Testing ranges
432
+ dt = Rufus::DecisionTable.new ",\n,"
433
+ class << dt
434
+ public :to_ruby_range
435
+ end
458
436
 
459
- CSV13 = \
437
+ assert_not_nil dt.to_ruby_range("99..100")
438
+ assert_not_nil dt.to_ruby_range("99...100")
439
+ assert_not_nil dt.to_ruby_range("99.12..100.56")
440
+ assert_nil dt.to_ruby_range("99....100")
441
+ assert_nil dt.to_ruby_range("9a9..100")
442
+ assert_nil dt.to_ruby_range("9a9..1a00")
443
+
444
+ assert_equal dt.to_ruby_range("a..z"), 'a'..'z'
445
+ assert_equal dt.to_ruby_range("a..Z"), 'a'..'Z'
446
+ assert_equal dt.to_ruby_range("a...z"), 'a'...'z'
447
+ assert_nil dt.to_ruby_range("a..%")
448
+
449
+ r = dt.to_ruby_range "4..6"
450
+ assert r.include?(5)
451
+ assert r.include?("5")
452
+ assert (not r.include?(7))
453
+ assert (not r.include?("7"))
454
+ end
455
+
456
+ #
457
+ # Testing ranges
458
+
459
+ CSV13 = \
460
460
  """
461
461
  in:fx,out:fz
462
462
  90..92,ok
463
463
  ,bad
464
464
  """
465
465
 
466
- def test_13
466
+ def test_13
467
467
 
468
- wi = { "fx" => "91" }
469
- do_test CSV13, wi, {}, { "fz" => "ok" }, false
468
+ wi = { "fx" => "91" }
469
+ do_test CSV13, wi, {}, { "fz" => "ok" }, false
470
470
 
471
- wi = { "fx" => "95" }
472
- do_test CSV13, wi, {}, { "fz" => "bad" }, false
471
+ wi = { "fx" => "95" }
472
+ do_test CSV13, wi, {}, { "fz" => "bad" }, false
473
473
 
474
- wi = { "fx" => "81" }
475
- do_test CSV13, wi, {}, { "fz" => "bad" }, false
476
- end
474
+ wi = { "fx" => "81" }
475
+ do_test CSV13, wi, {}, { "fz" => "bad" }, false
476
+ end
477
477
 
478
478
  end
479
479