summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2012-05-28 15:46:10 -0700
committerYukihiro "Matz" Matsumoto <[email protected]>2012-05-28 15:46:10 -0700
commit2d73abd84405b5096d367bd6654907ae5d9905dc (patch)
treeb0e0ecd589ae7bb58ac4805bf3c4e802fff85a5e /test
parentec3944d9c05fc5553469375661dbdaba42a57303 (diff)
parentb19575e5ac1e15c83797a0d8974bc4cc02b83fe6 (diff)
downloadmruby-2d73abd84405b5096d367bd6654907ae5d9905dc.tar.gz
mruby-2d73abd84405b5096d367bd6654907ae5d9905dc.zip
Merge pull request #202 from bovi/add-docu
Add Test Cases (Literals, Enumerable, Exceptions, misc)
Diffstat (limited to 'test')
-rw-r--r--test/t/argumenterror.rb12
-rw-r--r--test/t/array.rb42
-rw-r--r--test/t/bs_block.rb1
-rw-r--r--test/t/bs_literal.rb1
-rw-r--r--test/t/enumerable.rb29
-rw-r--r--test/t/false.rb1
-rw-r--r--test/t/float.rb1
-rw-r--r--test/t/hash.rb1
-rw-r--r--test/t/indexerror.rb1
-rw-r--r--test/t/integer.rb1
-rw-r--r--test/t/kernel.rb1
-rw-r--r--test/t/literals.rb49
-rw-r--r--test/t/localjumperror.rb1
-rw-r--r--test/t/module.rb1
-rw-r--r--test/t/nameerror.rb1
-rw-r--r--test/t/nil.rb1
-rw-r--r--test/t/nomethoderror.rb1
-rw-r--r--test/t/numeric.rb1
-rw-r--r--test/t/object.rb1
-rw-r--r--test/t/proc.rb1
-rw-r--r--test/t/range.rb1
-rw-r--r--test/t/rangeerror.rb1
-rw-r--r--test/t/regexperror.rb1
-rw-r--r--test/t/runtimeerror.rb1
-rw-r--r--test/t/standarderror.rb1
-rw-r--r--test/t/string.rb1
-rw-r--r--test/t/struct.rb1
-rw-r--r--test/t/symbol.rb1
-rw-r--r--test/t/time.rb1
-rw-r--r--test/t/true.rb1
-rw-r--r--test/t/typeerror.rb1
31 files changed, 126 insertions, 33 deletions
diff --git a/test/t/argumenterror.rb b/test/t/argumenterror.rb
index be1dec974..ca998f8de 100644
--- a/test/t/argumenterror.rb
+++ b/test/t/argumenterror.rb
@@ -2,6 +2,14 @@
# ArgumentError ISO Test
assert('ArgumentError', '15.2.24') do
- ArgumentError.class == Class
-end
+ e2 = nil
+ a = []
+ begin
+ # this will cause an exception due to the wrong arguments
+ a[]
+ rescue => e1
+ e2 = e1
+ end
+ ArgumentError.class == Class and e2.class == ArgumentError
+end
diff --git a/test/t/array.rb b/test/t/array.rb
index 3b9dfedfb..dba1b035d 100644
--- a/test/t/array.rb
+++ b/test/t/array.rb
@@ -22,11 +22,47 @@ assert('Array#<<', '15.2.12.5.3') do
end
assert('Array#[]', '15.2.12.5.4') do
- [1,2,3].[](1) == 2
+ e2 = nil
+ e3 = nil
+ a = Array.new
+ begin
+ # this will cause an exception due to the wrong arguments
+ a.[]()
+ rescue => e1
+ e2 = e1
+ end
+ begin
+ # this will cause an exception due to the wrong arguments
+ a.[](1,2,3)
+ rescue => e1
+ e3 = e1
+ end
+
+ [1,2,3].[](1) == 2 and
+ e2.class == ArgumentError and
+ e3.class == ArgumentError
end
assert('Array#[]=', '15.2.12.5.5') do
- [1,2,3].[]=(1,4) == [1, 4, 3]
+ e2 = nil
+ e3 = nil
+ a = Array.new
+ begin
+ # this will cause an exception due to the wrong arguments
+ a.[]=()
+ rescue => e1
+ e2 = e1
+ end
+ begin
+ # this will cause an exception due to the wrong arguments
+ a.[]=(1,2,3,4)
+ rescue => e1
+ e3 = e1
+ end
+
+ [1,2,3].[]=(1,4) == [1, 4, 3] and
+ e2.class == ArgumentError and
+ e3.class == ArgumentError
end
assert('Array#clear', '15.2.12.5.6') do
@@ -193,5 +229,3 @@ assert('Array#unshift', '15.2.12.5.30') do
end
# Not ISO specified
-
-
diff --git a/test/t/bs_block.rb b/test/t/bs_block.rb
index acbade449..b290cb914 100644
--- a/test/t/bs_block.rb
+++ b/test/t/bs_block.rb
@@ -388,4 +388,3 @@ assert('BS Block [ruby-core:14395]') do
t = Controller.new
t.test_for_bug
end
-
diff --git a/test/t/bs_literal.rb b/test/t/bs_literal.rb
index b1ae3a5d6..842d8704c 100644
--- a/test/t/bs_literal.rb
+++ b/test/t/bs_literal.rb
@@ -36,4 +36,3 @@ end
assert('BS Literal 9') do
Fixnum == 1234.class
end
-
diff --git a/test/t/enumerable.rb b/test/t/enumerable.rb
index 909531045..de0bb5a34 100644
--- a/test/t/enumerable.rb
+++ b/test/t/enumerable.rb
@@ -72,3 +72,32 @@ assert('Enumerable#min', '15.3.2.2.14') do
a.min {|i1,i2| i1.length <=> i2.length} == 'c'
end
+assert('Enumerable#member?', '15.3.2.2.15') do
+ [1,2,3,4,5,6,7,8,9].member?(5) and
+ not [1,2,3,4,5,6,7,8,9].member?(0)
+end
+
+assert('Enumerable#partion', '15.3.2.2.16') do
+ [0,1,2,3,4,5,6,7,8,9].partition do |i|
+ i % 2 == 0
+ end == [[0,2,4,6,8], [1,3,5,7,9]]
+end
+
+assert('Enumerable#reject', '15.3.2.2.17') do
+ [0,1,2,3,4,5,6,7,8,9].reject do |i|
+ i % 2 == 0
+ end == [1,3,5,7,9]
+end
+
+assert('Enumerable#select', '15.3.2.2.18') do
+ [1,2,3,4,5,6,7,8,9].select() {|i| i%2 == 0} == [2,4,6,8]
+end
+
+assert('Enumerable#sort', '15.3.2.2.19') do
+ [7,3,1,2,6,4].sort == [1,2,3,4,6,7] and
+ [7,3,1,2,6,4].sort {|e1,e2| e2<=>e1} == [7,6,4,3,2,1]
+end
+
+assert('Enumerable#to_a', '15.3.2.2.20') do
+ [1].to_a == [1]
+end
diff --git a/test/t/false.rb b/test/t/false.rb
index 3fd885a7f..c2db283c8 100644
--- a/test/t/false.rb
+++ b/test/t/false.rb
@@ -24,4 +24,3 @@ end
assert('FalseClass#|', '15.2.6.3.4') do
FalseClass.new.|(true) and not FalseClass.new.|(false)
end
-
diff --git a/test/t/float.rb b/test/t/float.rb
index fd87bb04f..fc87a5b22 100644
--- a/test/t/float.rb
+++ b/test/t/float.rb
@@ -99,4 +99,3 @@ end
assert('Float#truncate', '15.2.9.3.15') do
3.123456789.truncate == 3
end
-
diff --git a/test/t/hash.rb b/test/t/hash.rb
index bb2ef1209..af662688a 100644
--- a/test/t/hash.rb
+++ b/test/t/hash.rb
@@ -224,4 +224,3 @@ assert('Hash#values', '15.2.13.4.28') do
a.values == ['abc_value']
end
-
diff --git a/test/t/indexerror.rb b/test/t/indexerror.rb
index dcf9d283b..d0cb81f32 100644
--- a/test/t/indexerror.rb
+++ b/test/t/indexerror.rb
@@ -4,4 +4,3 @@
assert('IndexError', '15.2.33') do
IndexError.class == Class
end
-
diff --git a/test/t/integer.rb b/test/t/integer.rb
index 5e73b41b5..8c112861a 100644
--- a/test/t/integer.rb
+++ b/test/t/integer.rb
@@ -168,4 +168,3 @@ assert('Integer#upto', '15.2.8.3.27') do
end
a == 6
end
-
diff --git a/test/t/kernel.rb b/test/t/kernel.rb
index eda07074b..cd1f2d99e 100644
--- a/test/t/kernel.rb
+++ b/test/t/kernel.rb
@@ -122,4 +122,3 @@ assert('Kernel#to_s', '15.3.1.2.46') do
# TODO looks strange..
to_s == ''
end
-
diff --git a/test/t/literals.rb b/test/t/literals.rb
new file mode 100644
index 000000000..92f9bd755
--- /dev/null
+++ b/test/t/literals.rb
@@ -0,0 +1,49 @@
+##
+# Literals ISO Test
+
+assert('Literals Numerical', '8.7.6.2') do
+ # signed and unsigned integer
+ 1 == 1 and -1 == -1 and +1 == +1 and
+ # signed and unsigned float
+ 1.0 == 1.0 and -1.0 == -1.0 and
+ # binary
+ 0b10000000 == 128 and 0B10000000 == 128
+ # octal
+ 0o10 == 8 and 0O10 == 8 and 0_10 == 8
+ # hex
+ 0xff == 255 and 0Xff == 255 and
+ # decimal
+ 0d999 == 999 and 0D999 == 999 and
+ # decimal seperator
+ 10_000_000 == 10000000 and 1_0 == 10 and
+ # integer with exponent
+ 1e1 == 10.0 and 1e-1 == 0.1 and 1e+1 == 10.0
+ # float with exponent
+ 1.0e1 == 10.0 and 1.0e-1 == 0.1 and 1.0e+1 == 10.0
+end
+
+#assert('Literals Strings Single Quoted', '8.7.6.3.2') do
+# creates segmentation fault for now
+# 'abc' == 'abc' and '\'' == '\'' and '\\' == '\\'
+#end
+
+assert('Literals Strings Double Quoted', '8.7.6.3.3') do
+ a = "abc"
+
+ "abc" == "abc" and "\"" == "\"" and "\\" == "\\" and
+ "#{a}" == "abc"
+end
+
+#creates segmentation fault for now
+#assert('Literals Strings Quoted Non-Expanded', '8.7.6.3.4') do
+# a = %q{abc}
+# b = %q(abc)
+# c = %q[abc]
+# d = %q<abc>
+# e = %/abc/
+# f = %/ab\/c/
+
+# a == 'abc' and b == 'abc' and c == 'abc' and d == 'abc' and
+# e == 'abc' and f 'ab/c'
+#end
+
diff --git a/test/t/localjumperror.rb b/test/t/localjumperror.rb
index 132acd81e..9d1df9594 100644
--- a/test/t/localjumperror.rb
+++ b/test/t/localjumperror.rb
@@ -7,4 +7,3 @@ end
# TODO 15.2.25.2.1 LocalJumpError#exit_value
# TODO 15.2.25.2.2 LocalJumpError#reason
-
diff --git a/test/t/module.rb b/test/t/module.rb
index f9efa553a..854be75a5 100644
--- a/test/t/module.rb
+++ b/test/t/module.rb
@@ -8,4 +8,3 @@ end
# TODO not implemented ATM assert('Module.constants', '15.2.2') do
# TODO not implemented ATM assert('Module.nesting', '15.2.2') do
-
diff --git a/test/t/nameerror.rb b/test/t/nameerror.rb
index 23158fce2..67451ecf8 100644
--- a/test/t/nameerror.rb
+++ b/test/t/nameerror.rb
@@ -12,4 +12,3 @@ assert('NameError#initialize', '15.2.31.2.2') do
e.class == NameError and e.message == 'a'
end
-
diff --git a/test/t/nil.rb b/test/t/nil.rb
index 9a4855a62..3188a9516 100644
--- a/test/t/nil.rb
+++ b/test/t/nil.rb
@@ -24,4 +24,3 @@ end
assert('NilClass#to_s', '15.2.4.3.5') do
NilClass.new.to_s == ''
end
-
diff --git a/test/t/nomethoderror.rb b/test/t/nomethoderror.rb
index 4c4fb3fdf..9eb122158 100644
--- a/test/t/nomethoderror.rb
+++ b/test/t/nomethoderror.rb
@@ -11,4 +11,3 @@ assert('NoMethodError', '15.2.32') do
NoMethodError.class == Class and e2.class == NoMethodError
end
-
diff --git a/test/t/numeric.rb b/test/t/numeric.rb
index 40b5845c0..924889a0e 100644
--- a/test/t/numeric.rb
+++ b/test/t/numeric.rb
@@ -22,4 +22,3 @@ end
assert('Numeric#**') do
2.0**3 == 8.0
end
-
diff --git a/test/t/object.rb b/test/t/object.rb
index 8d9938a48..96929031b 100644
--- a/test/t/object.rb
+++ b/test/t/object.rb
@@ -4,4 +4,3 @@
assert('Object', '15.2.1') do
Object.class == Class
end
-
diff --git a/test/t/proc.rb b/test/t/proc.rb
index 68d8ca8f6..6d98cb40c 100644
--- a/test/t/proc.rb
+++ b/test/t/proc.rb
@@ -42,4 +42,3 @@ assert('Proc#call', '15.2.17.4.3') do
a == 1 and a2 == 5
end
-
diff --git a/test/t/range.rb b/test/t/range.rb
index 42677e72e..05bac8779 100644
--- a/test/t/range.rb
+++ b/test/t/range.rb
@@ -62,4 +62,3 @@ assert('Range#member?', '15.2.14.4.11') do
a.member?(5) and not a.member?(20)
end
-
diff --git a/test/t/rangeerror.rb b/test/t/rangeerror.rb
index da8e9bf88..7edb5d2d9 100644
--- a/test/t/rangeerror.rb
+++ b/test/t/rangeerror.rb
@@ -4,4 +4,3 @@
assert('RangeError', '15.2.26') do
RangeError.class == Class
end
-
diff --git a/test/t/regexperror.rb b/test/t/regexperror.rb
index 2ce2edd7f..b8f8c2c1f 100644
--- a/test/t/regexperror.rb
+++ b/test/t/regexperror.rb
@@ -2,4 +2,3 @@
# RegexpError ISO Test
# TODO broken ATM assert('RegexpError', '15.2.27') do
-
diff --git a/test/t/runtimeerror.rb b/test/t/runtimeerror.rb
index b410dd64f..9157293cd 100644
--- a/test/t/runtimeerror.rb
+++ b/test/t/runtimeerror.rb
@@ -12,4 +12,3 @@ assert('RuntimeError', '15.2.28') do
RuntimeError.class == Class and e2.class == RuntimeError
end
-
diff --git a/test/t/standarderror.rb b/test/t/standarderror.rb
index f6c63ac12..550c337c1 100644
--- a/test/t/standarderror.rb
+++ b/test/t/standarderror.rb
@@ -4,4 +4,3 @@
assert('StandardError', '15.2.23') do
StandardError.class == Class
end
-
diff --git a/test/t/string.rb b/test/t/string.rb
index 7fd48761c..76df18aaf 100644
--- a/test/t/string.rb
+++ b/test/t/string.rb
@@ -319,4 +319,3 @@ assert('String#upcase!', '15.2.10.5.43') do
a == 'ABC'
end
-
diff --git a/test/t/struct.rb b/test/t/struct.rb
index 04279d532..c41319f8a 100644
--- a/test/t/struct.rb
+++ b/test/t/struct.rb
@@ -4,4 +4,3 @@
assert('Struct', '15.2.18') do
Struct.class == Class
end
-
diff --git a/test/t/symbol.rb b/test/t/symbol.rb
index 325c8d990..e9c310971 100644
--- a/test/t/symbol.rb
+++ b/test/t/symbol.rb
@@ -20,4 +20,3 @@ end
assert('Symbol#to_sym', '15.2.11.3.4') do
:abc.to_sym == :abc
end
-
diff --git a/test/t/time.rb b/test/t/time.rb
index 9ad0e4aff..22fc2e7c3 100644
--- a/test/t/time.rb
+++ b/test/t/time.rb
@@ -71,4 +71,3 @@ end
assert('Time#new') do
Time.new.class == Time
end
-
diff --git a/test/t/true.rb b/test/t/true.rb
index af4caeeec..bb648a7cd 100644
--- a/test/t/true.rb
+++ b/test/t/true.rb
@@ -24,4 +24,3 @@ end
assert('TrueClass#|', '15.2.5.3.4') do
TrueClass.new.|(true) and TrueClass.new.|(false)
end
-
diff --git a/test/t/typeerror.rb b/test/t/typeerror.rb
index 12cf64e70..c4434aa24 100644
--- a/test/t/typeerror.rb
+++ b/test/t/typeerror.rb
@@ -4,4 +4,3 @@
assert('TypeError', '15.2.29') do
TypeError.class == Class
end
-