2016-01-27 11:37:02 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
require 'test/unit'
|
|
|
|
require '-test-/string'
|
2016-01-27 12:04:47 +00:00
|
|
|
require 'rbconfig/sizeof'
|
2016-01-27 11:37:02 +00:00
|
|
|
|
|
|
|
class Test_StringCapacity < Test::Unit::TestCase
|
2016-02-17 03:21:35 +00:00
|
|
|
def capa(str)
|
|
|
|
Bug::String.capacity(str)
|
|
|
|
end
|
|
|
|
|
2016-01-27 11:37:02 +00:00
|
|
|
def test_capacity_embeded
|
|
|
|
size = RbConfig::SIZEOF['void*'] * 3 - 1
|
2016-02-17 03:21:35 +00:00
|
|
|
assert_equal size, capa('foo')
|
2016-01-27 11:37:02 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def test_capacity_shared
|
2016-02-17 03:21:35 +00:00
|
|
|
assert_equal 0, capa(:abcdefghijklmnopqrstuvwxyz.to_s)
|
2016-01-27 11:37:02 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def test_capacity_normal
|
2016-02-17 03:21:35 +00:00
|
|
|
assert_equal 128, capa('1'*128)
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_s_new_capacity
|
|
|
|
assert_equal("", String.new(capacity: 1000))
|
|
|
|
assert_equal(String, String.new(capacity: 1000).class)
|
|
|
|
assert_equal(10000, capa(String.new(capacity: 10000)))
|
|
|
|
|
|
|
|
assert_equal("", String.new(capacity: -1000))
|
|
|
|
assert_equal(capa(String.new(capacity: -10000)), capa(String.new(capacity: -1000)))
|
2016-01-27 11:37:02 +00:00
|
|
|
end
|
|
|
|
end
|