summaryrefslogtreecommitdiff
path: root/test/ruby/test_struct.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby/test_struct.rb')
-rw-r--r--test/ruby/test_struct.rb59
1 files changed, 1 insertions, 58 deletions
diff --git a/test/ruby/test_struct.rb b/test/ruby/test_struct.rb
index 85de0f23a9..af68346442 100644
--- a/test/ruby/test_struct.rb
+++ b/test/ruby/test_struct.rb
@@ -60,10 +60,6 @@ module TestStruct
assert_equal(1, o.a)
end
- def test_attrset_id
- assert_raise(ArgumentError) { Struct.new(:x=) }
- end
-
def test_members
klass = @Struct.new(:a)
o = klass.new(1)
@@ -105,7 +101,6 @@ module TestStruct
@Struct.new("KeywordInitFalse", :a, :b, keyword_init: false)
assert_raise(ArgumentError) { @Struct::KeywordInitTrue.new(1, 2) }
- assert_raise(ArgumentError) { @Struct::KeywordInitTrue.new({a: 100}, 2) }
assert_nothing_raised { @Struct::KeywordInitFalse.new(1, 2) }
assert_nothing_raised { @Struct::KeywordInitTrue.new(a: 1, b: 2) }
assert_raise(ArgumentError) { @Struct::KeywordInitTrue.new(1, b: 2) }
@@ -113,10 +108,6 @@ module TestStruct
assert_equal @Struct::KeywordInitTrue.new(a: 1, b: 2).values, @Struct::KeywordInitFalse.new(1, 2).values
assert_equal "#{@Struct}::KeywordInitFalse", @Struct::KeywordInitFalse.inspect
assert_equal "#{@Struct}::KeywordInitTrue(keyword_init: true)", @Struct::KeywordInitTrue.inspect
- # eval is needed to prevent the warning duplication filter
- k = Class.new(@Struct::KeywordInitTrue) {def initialize(b, options); super(a: options, b: b); end}
- o = assert_warn('') { k.new(42, {foo: 1, bar: 2}) }
- assert_equal(1, o.a[:foo])
@Struct.instance_eval do
remove_const(:KeywordInitTrue)
@@ -124,16 +115,6 @@ module TestStruct
end
end
- def test_struct_new_with_keyword_init_and_block
- struct = @Struct.new(:a, :b, keyword_init: true) do
- def c
- a + b
- end
- end
-
- assert_equal(3, struct.new(a: 1, b: 2).c)
- end
-
def test_initialize
klass = @Struct.new(:a)
assert_raise(ArgumentError) { klass.new(1, 2) }
@@ -151,17 +132,6 @@ module TestStruct
assert_equal([1, 2], o.each.to_a)
end
- def test_initialize_with_kw
- klass = @Struct.new(:foo, :options) do
- def initialize(foo, **options)
- super(foo, options)
- end
- end
- assert_equal({}, klass.new(42, **Hash.new).options)
- x = assert_warn('') { klass.new(1, bar: 2) }
- assert_equal 2, x.options[:bar]
- end
-
def test_each_pair
klass = @Struct.new(:a, :b)
o = klass.new(1, 2)
@@ -246,13 +216,6 @@ module TestStruct
assert_raise(ArgumentError) { o.select(1) }
end
- def test_filter
- klass = @Struct.new(:a, :b, :c, :d, :e, :f)
- o = klass.new(1, 2, 3, 4, 5, 6)
- assert_equal([1, 3, 5], o.filter {|v| v % 2 != 0 })
- assert_raise(ArgumentError) { o.filter(1) }
- end
-
def test_big_struct
klass1 = @Struct.new(*('a'..'z').map(&:to_sym))
o = klass1.new
@@ -309,7 +272,6 @@ module TestStruct
klass = @Struct.new(:a)
o = klass.new(1)
assert_kind_of(Integer, o.hash)
- assert_kind_of(String, o.hash.to_s)
end
def test_eql
@@ -397,13 +359,6 @@ module TestStruct
assert_equal({a:1, b:2, c:3, d:4, e:5, f:6}, o.to_h)
end
- def test_to_h_block
- klass = @Struct.new(:a, :b, :c, :d, :e, :f)
- o = klass.new(1, 2, 3, 4, 5, 6)
- assert_equal({"a" => 1, "b" => 4, "c" => 9, "d" => 16, "e" => 25, "f" => 36},
- o.to_h {|k, v| [k.to_s, v*v]})
- end
-
def test_question_mark_in_member
klass = @Struct.new(:a, :b?)
x = Object.new
@@ -435,25 +390,13 @@ module TestStruct
assert_nil(o.dig(:b, 0))
end
- def test_new_duplicate
+ def test_new_dupilicate
bug12291 = '[ruby-core:74971] [Bug #12291]'
assert_raise_with_message(ArgumentError, /duplicate member/, bug12291) {
@Struct.new(:a, :a)
}
end
- def test_deconstruct_keys
- klass = @Struct.new(:a, :b)
- o = klass.new(1, 2)
- assert_equal({a: 1, b: 2}, o.deconstruct_keys(nil))
- assert_equal({a: 1, b: 2}, o.deconstruct_keys([:b, :a]))
- assert_equal({a: 1}, o.deconstruct_keys([:a]))
- assert_not_send([o.deconstruct_keys([:a, :c]), :key?, :c])
- assert_raise(TypeError) {
- o.deconstruct_keys(0)
- }
- end
-
class TopStruct < Test::Unit::TestCase
include TestStruct