/vendor/gems/facets-2.4.5/test/core/string/test_tab.rb
Ruby | 234 lines | 191 code | 38 blank | 5 comment | 0 complexity | 6b8e166cba8254052093d6120626c3dc MD5 | raw file
Possible License(s): GPL-3.0, GPL-2.0, IPL-1.0, AGPL-1.0, LGPL-3.0
- require 'facets/string/tab'
- require 'test/unit'
- class TC_String_Tabs < Test::Unit::TestCase
- def setup
- @tabs = <<-EOF
- \tOne tab
- \tOne space and one tab
- \t Six spaces, a tab, and a space
- EOF
- @poem1 = <<-EOF
- I must go down to the seas again
- The lonely sea and the sky
- And all I want is a tall ship
- And a star to steer her by
- EOF
- @poem2 = <<-EOF
- "Eek!"
- She cried
- As the mouse quietly scurried
- by.
- EOF
- end # def setup
- def test_tab
- a = "xyz".tab(4)
- assert_equal( ' ', a[0..3] )
- # Need to expand on this
- end
- def test_expand_tabs_1
- expected = <<-EOF
- One tab
- One space and one tab
- Six spaces, a tab, and a space
- EOF
- assert_equal(expected, @tabs.expand_tabs)
- assert_equal(expected, @tabs.expand_tabs(8))
- end
- def test_expand_tabs_2
- expected = <<-EOF
- One tab
- One space and one tab
- Six spaces, a tab, and a space
- EOF
- assert_equal(expected, @tabs.expand_tabs(4))
- end
- def test_expand_tabs_3
- expected = <<-EOF
- One tab
- One space and one tab
- Six spaces, a tab, and a space
- EOF
- assert_equal(expected, @tabs.expand_tabs(16))
- end
- def test_expand_tabs_4
- expected = <<-EOF
- One tab
- One space and one tab
- Six spaces, a tab, and a space
- EOF
- assert_equal(expected, @tabs.expand_tabs(1))
- end
- def test_expand_tabs_5
- expected = <<-EOF
- One tab
- One space and one tab
- Six spaces, a tab, and a space
- EOF
- assert_equal(expected, @tabs.expand_tabs(0))
- end
- def test_tabto
- a = "xyz".tabto(4)
- assert_equal( ' ', a[0..3] )
- # Need to expand on this
- end
- def test_indent
- a = "xyz".indent(4)
- assert_equal( ' ', a[0..3] )
- # Need to expand on this
- end
- def test_outdent_0
- assert_equal(" xyz", " xyz".outdent(-1))
- assert_equal(" xyz", " xyz".outdent(0))
- assert_equal(" xyz", " xyz".outdent(1))
- assert_equal(" xyz", " xyz".outdent(2))
- assert_equal("xyz", " xyz".outdent(3))
- assert_equal("xyz", " xyz".outdent(4))
- end
- def test_outdent_1
- expected = <<-EOF
- I must go down to the seas again
- The lonely sea and the sky
- And all I want is a tall ship
- And a star to steer her by
- EOF
- actual = @poem1.outdent(1)
- assert_equal(expected, actual)
- end
- def test_outdent_2
- expected = <<-EOF
- I must go down to the seas again
- The lonely sea and the sky
- And all I want is a tall ship
- And a star to steer her by
- EOF
- actual = @poem1.outdent(4)
- assert_equal(expected, actual)
- end
- def test_outdent_3
- expected = <<-EOF
- "Eek!"
- She cried
- As the mouse quietly scurried
- by.
- EOF
- actual = @poem2.outdent(100)
- assert_equal(expected, actual)
- end
- def test_margin
- s = %q{
- |ABC
- |123
- |TEST
- }.margin
- assert_equal( "ABC\n123\nTEST", s )
- s = %q{
- |ABC
- |123
- |TEST
- }.margin
- assert_equal( "ABC\n123\nTEST", s )
- s = %q{|ABC
- |123
- |TEST
- }.margin
- assert_equal( "ABC\n123\nTEST", s )
- s = %q{
- |ABC
- |123
- |TEST}.margin
- assert_equal( "ABC\n123\nTEST", s )
- s = %q{|ABC
- |123
- |TEST}.margin
- assert_equal( "ABC\n123\nTEST", s )
- s = %q{ |ABC
- |123
- |TEST}.margin
- assert_equal( "ABC\n123\nTEST", s )
- s = %q{ABC
- |123
- |TEST
- }.margin
- assert_equal( "ABC\n123\nTEST", s )
- end
- #
- def test_spacing
- s = %q{
- | ABC
- | 123
- | TEST
- }.margin
- assert_equal( " ABC\n 123\n TEST", s )
- s = %q{
- |ABC
- |123
- |TEST
- }.margin(1)
- assert_equal( " ABC\n 123\n TEST", s )
- s = %q{
- |ABC
- |123
- |TEST
- }.margin(2)
- assert_equal( " ABC\n 123\n TEST", s )
- s = %q{ ABC
- - 123
- - TEST
- }.margin
- assert_equal( " ABC\n 123\n TEST", s )
- end
- #
- def test_random_placement
- @volly = {}
- 100.times{ |n|
- k = []
- a = []
- 5.times{ |i|
- k << ( ( ' ' * Integer(rand*10) ) + '|' + i.to_s )
- a << ( i.to_s )
- }
- @volly[k.join("\n")] = a.join("\n")
- }
- @volly.each{ |k,v|
- assert_equal( v, k.margin )
- }
- end
- end