~ubuntu-branches/ubuntu/quantal/ruby1.9.1/quantal

« back to all changes in this revision

Viewing changes to test/csv/test_table.rb

  • Committer: Bazaar Package Importer
  • Author(s): Lucas Nussbaum
  • Date: 2011-09-24 19:16:17 UTC
  • mfrom: (1.1.8 upstream) (13.1.7 experimental)
  • Revision ID: james.westby@ubuntu.com-20110924191617-o1qz4rcmqjot8zuy
Tags: 1.9.3~rc1-1
* New upstream release: 1.9.3 RC1.
  + Includes load.c fixes. Closes: #639959.
* Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
#  Copyright 2005 James Edward Gray II. You can redistribute or modify this code
8
8
#  under the terms of Ruby's license.
9
9
 
10
 
require "test/unit"
11
 
 
12
 
require "csv"
13
 
 
14
 
class TestCSVTable < Test::Unit::TestCase
 
10
require_relative "base"
 
11
 
 
12
class TestCSV::Table < TestCSV
 
13
  extend DifferentOFS
 
14
 
15
15
  def setup
 
16
    super
16
17
    @rows  = [ CSV::Row.new(%w{A B C}, [1, 2, 3]),
17
18
               CSV::Row.new(%w{A B C}, [4, 5, 6]),
18
19
               CSV::Row.new(%w{A B C}, [7, 8, 9]) ]
253
254
    # with options
254
255
    assert_equal( csv.gsub(",", "|").gsub("\n", "\r\n"),
255
256
                  @table.to_csv(col_sep: "|", row_sep: "\r\n") )
256
 
    assert_equal( csv.lines.to_a[1..-1].join,
 
257
    assert_equal( csv.lines.to_a[1..-1].join(''),
257
258
                  @table.to_csv(:write_headers => false) )
258
259
 
259
260
    # with headers
272
273
    assert_equal(CSV::Row.new(%w[A B C], [13, 14, 15]), @table[-1])
273
274
  end
274
275
 
275
 
  def test_delete
 
276
  def test_delete_mixed
276
277
    ##################
277
278
    ### Mixed Mode ###
278
279
    ##################
288
289
    2,3
289
290
    8,9
290
291
    END_RESULT
 
292
  end
291
293
 
 
294
  def test_delete_column
292
295
    ###################
293
296
    ### Column Mode ###
294
297
    ###################
295
 
    setup
296
298
    @table.by_col!
297
299
 
298
300
    assert_equal(@rows.map { |row| row[0] }, @table.delete(0))
305
307
    5
306
308
    8
307
309
    END_RESULT
 
310
  end
308
311
 
 
312
  def test_delete_row
309
313
    ################
310
314
    ### Row Mode ###
311
315
    ################
312
 
    setup
313
316
    @table.by_row!
314
317
 
315
318
    assert_equal(@rows[1], @table.delete(1))
328
331
    table = CSV.parse(data, :headers => true)
329
332
    assert_equal(["ra2", nil, "rb2"], table.delete("col2"))
330
333
  end
331
 
  
332
 
  def test_delete_if
 
334
 
 
335
  def test_delete_if_row
333
336
    ######################
334
337
    ### Mixed/Row Mode ###
335
338
    ######################
341
344
    A,B,C
342
345
    4,5,6
343
346
    END_RESULT
 
347
  end
344
348
 
 
349
  def test_delete_if_column
345
350
    ###################
346
351
    ### Column Mode ###
347
352
    ###################
348
 
    setup
349
353
    @table.by_col!
350
354
 
351
355
    assert_equal(@table, @table.delete_if { |h, v| h > "A" })