summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-06-18 09:09:00 +0900
committerYukihiro Matsumoto <[email protected]>2012-06-18 09:09:00 +0900
commitf88a8399149f9b949f31f960d56d486a423efefa (patch)
treed7e0d7558f42daaaad941a84168d5a98708c5111 /test
parent742c4fb86f321f24f3da722bfb49adf56067cc4e (diff)
downloadmruby-f88a8399149f9b949f31f960d56d486a423efefa.tar.gz
mruby-f88a8399149f9b949f31f960d56d486a423efefa.zip
add Struct tests
Diffstat (limited to 'test')
-rw-r--r--test/t/struct.rb50
1 files changed, 50 insertions, 0 deletions
diff --git a/test/t/struct.rb b/test/t/struct.rb
index 798cf6728..5a74c6205 100644
--- a/test/t/struct.rb
+++ b/test/t/struct.rb
@@ -9,3 +9,53 @@ assert('Struct superclass', '15.2.18.2') do
Struct.superclass == Object
end
+assert('Struct.new', '15.2.18.3.1') do
+ c = Struct.new(:m1, :m2)
+ c.superclass == Struct and
+ c.members == [:m1,:m2]
+end
+
+assert('Struct#[]', '15.2.18.4.2') do
+ c = Struct.new(:m1, :m2)
+ cc = c.new(1,2)
+ cc[:m1] == 1 and cc["m2"] == 2
+end
+
+assert('Struct#[]=', '15.2.18.4.3') do
+ c = Struct.new(:m1, :m2)
+ cc = c.new(1,2)
+ cc[:m1] = 3
+ cc[:m1] == 3
+end
+
+assert('Struct#each', '15.2.18.4.4') do
+ c = Struct.new(:m1, :m2)
+ cc = c.new(1,2)
+ a = []
+ cc.each{|x|
+ a << x
+ }
+ a[0] == 1 and a[1] == 2
+end
+
+assert('Struct#each_pair', '15.2.18.4.5') do
+ c = Struct.new(:m1, :m2)
+ cc = c.new(1,2)
+ a = []
+ cc.each_pair{|k,v|
+ a << [k,v]
+ }
+ a[0] == [:m1, 1] and a[1] == [:m2, 2]
+end
+
+assert('Struct#members', '15.2.18.4.6') do
+ c = Struct.new(:m1, :m2)
+ cc = c.new(1,2)
+ cc.members == [:m1,:m2]
+end
+
+assert('Struct#select', '15.2.18.4.7') do
+ c = Struct.new(:m1, :m2)
+ cc = c.new(1,2)
+ cc.select{|v| v % 2 == 0} == [2]
+end