summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2012-05-16 13:56:41 -0700
committerYukihiro "Matz" Matsumoto <[email protected]>2012-05-16 13:56:41 -0700
commit4bd140e44a3dc6d6e2143dfaa4c5db9b7f2420b2 (patch)
tree0c123371d208a692f80197c1b0babb631302442a /test
parent25415302399055a566e4d55b6c165937943aa678 (diff)
parent0cc8dcc0ee658eca9193a5611104f6d05cb958fd (diff)
downloadmruby-4bd140e44a3dc6d6e2143dfaa4c5db9b7f2420b2.tar.gz
mruby-4bd140e44a3dc6d6e2143dfaa4c5db9b7f2420b2.zip
Merge pull request #148 from bovi/master
Add Tests for Math, Integer, Numeric and Array
Diffstat (limited to 'test')
-rw-r--r--test/assert.rb6
-rw-r--r--test/t/array.rb157
-rw-r--r--test/t/integer.rb58
-rw-r--r--test/t/math.rb63
-rw-r--r--test/t/numeric.rb25
5 files changed, 306 insertions, 3 deletions
diff --git a/test/assert.rb b/test/assert.rb
index b2ce616e0..afc39fc24 100644
--- a/test/assert.rb
+++ b/test/assert.rb
@@ -54,13 +54,13 @@ def report()
print($total_test)
print("\n")
- print(' OK: ')
+ print(' OK: ')
print($ok_test)
print("\n")
- print(' KO: ')
+ print(' KO: ')
print($ko_test)
print("\n")
- print(' Crash: ')
+ print('Crash: ')
print($kill_test)
print("\n")
end
diff --git a/test/t/array.rb b/test/t/array.rb
index 3b65a80dd..68708202b 100644
--- a/test/t/array.rb
+++ b/test/t/array.rb
@@ -35,6 +35,163 @@ assert('Array#clear', '15.2.12.5.6') do
a == []
end
+assert('Array#collect!', '15.2.12.5.7') do
+ a = [1,2,3]
+ a.collect! { |i| i + i }
+ a == [2,4,6]
+end
+
+assert('Array#concat', '15.2.12.5.8') do
+ a = [1,2]
+ b = [3,4]
+ a.concat(b) == [1,2,3,4]
+end
+
+assert('Array#delete_at', '15.2.12.5.9') do
+ a = [1,2,3]
+ a.delete_at(1)
+ a == [1,3]
+end
+
+assert('Array#each', '15.2.12.5.10') do
+ a = [1,2,3]
+ b = 0
+ a.each {|i| b += i}
+ b == 6
+end
+
+assert('Array#each_index', '15.2.12.5.11') do
+ a = [1]
+ b = nil
+ a.each_index {|i| b = i}
+ b == 0
+end
+
+assert('Array#empty?', '15.2.12.5.12') do
+ a = []
+ b = [b]
+ a.empty? and not b.empty?
+end
+
+assert('Array#first', '15.2.12.5.13') do
+ a = []
+ b = [1,2,3]
+
+ a.first == nil and b.first == 1
+end
+
+assert('Array#index', '15.2.12.5.14') do
+ a = [1,2,3]
+
+ a.index(2) == 1
+end
+
+assert('Array#initialize', '15.2.12.5.15') do
+ a = [].initialize(1)
+ b = [].initialize(2)
+ c = [].initialize(2, 1)
+ d = [].initialize(2) {|i| i}
+
+ a == [nil] and b == [nil,nil] and c == [1,1] and d == [0,1]
+end
+
+assert('Array#initialize_copy', '15.2.12.5.16') do
+ a = [1,2,3]
+ b = [].initialize_copy(a)
+
+ b == [1,2,3]
+end
+
+assert('Array#join', '15.2.12.5.17') do
+ a = [1,2,3].join
+ b = [1,2,3].join(',')
+
+ a == '123' and b == '1,2,3'
+end
+
+assert('Array#last', '15.2.12.5.18') do
+ a = [1,2,3]
+
+ a.last == 3 and [].last == nil
+end
+
+assert('Array#length', '15.2.12.5.19') do
+ a = [1,2,3]
+
+ a.length == 3
+end
+
+assert('Array#map!', '15.2.12.5.20') do
+ a = [1,2,3]
+ a.map! { |i| i + i }
+ a == [2,4,6]
+end
+
+assert('Array#pop', '15.2.12.5.21') do
+ a = [1,2,3]
+ b = a.pop
+
+ [].pop == nil and a == [1,2] and b = 3
+end
+
+assert('Array#push', '15.2.12.5.22') do
+ a = [1,2,3]
+ b = a.push(4)
+
+ a == [1,2,3,4] and b = [1,2,3,4]
+end
+
+assert('Array#replace', '15.2.12.5.23') do
+ a = [1,2,3]
+ b = [].replace(a)
+
+ b == [1,2,3]
+end
+
+assert('Array#reverse', '15.2.12.5.24') do
+ a = [1,2,3]
+ b = a.reverse
+
+ a == [1,2,3] and b == [3,2,1]
+end
+
+assert('Array#reverse!', '15.2.12.5.25') do
+ a = [1,2,3]
+ b = a.reverse!
+
+ a == [3,2,1] and b == [3,2,1]
+end
+
+assert('Array#rindex', '15.2.12.5.26') do
+ a = [1,2,3]
+
+ a.rindex(2) == 1
+end
+
+assert('Array#shift', '15.2.12.5.27') do
+ a = [1,2,3]
+ b = a.shift
+
+ [].shift == nil and a == [2,3] and b == 1
+end
+
+assert('Array#size', '15.2.12.5.28') do
+ a = [1,2,3]
+
+ a.size == 3
+end
+
+assert('Array#slice', '15.2.12.5.29') do
+ [1,2,3].[](1) == 2
+end
+
+assert('Array#unshift', '15.2.12.5.30') do
+ a = [2,3]
+ b = a.unshift(1)
+
+ a == [1,2,3] and b == [1,2,3]
+end
+
# Not ISO specified
diff --git a/test/t/integer.rb b/test/t/integer.rb
new file mode 100644
index 000000000..9f70d4a7a
--- /dev/null
+++ b/test/t/integer.rb
@@ -0,0 +1,58 @@
+##
+# Integer ISO Test
+
+assert('Integer', '15.2.8') do
+ Integer.class == Class
+end
+
+assert('Integer#+', '15.2.8.3.1') do
+ a = 1+1
+ b = 1+1.0
+
+ a == 2 and b == 2.0
+end
+
+assert('Integer#-', '15.2.8.3.2') do
+ a = 2-1
+ b = 2-1.0
+
+ a == 1 and b == 1.0
+end
+
+assert('Integer#*', '15.2.8.3.3') do
+ a = 1*1
+ b = 1*1.0
+
+ a == 1 and b == 1.0
+end
+
+assert('Integer#/', '15.2.8.3.4') do
+ a = 2/1
+ b = 2/1.0
+
+ a == 2 and b == 2.0
+end
+
+assert('Integer#%', '15.2.8.3.5') do
+ a = 1%1
+ b = 1%1.0
+ c = 2%4
+
+ a == 0 and b == 0.0 and c == 2
+end
+
+assert('Integer#<=>', '15.2.8.3.6') do
+ a = 1<=>0
+ b = 1<=>1
+ c = 1<=>2
+
+ a == 1 and b == 0 and c == -1
+end
+
+assert('Integer#==', '15.2.8.3.7') do
+ a = 1==0
+ b = 1==1
+
+ a == false and b == true
+end
+
diff --git a/test/t/math.rb b/test/t/math.rb
new file mode 100644
index 000000000..533263be2
--- /dev/null
+++ b/test/t/math.rb
@@ -0,0 +1,63 @@
+##
+# Math Test
+
+assert('Math.erf 0') do
+ Math.erf(0) == 0
+end
+
+assert('Math.exp 0') do
+ Math.exp(0) == 1.0
+end
+
+assert('Math.exp 1') do
+ Math.exp(1) == 2.718281828459045
+end
+
+assert('Math.exp 1.5') do
+ Math.exp(1.5) == 4.4816890703380645
+end
+
+assert('Math.log 1') do
+ Math.log(1) == 0
+end
+
+assert('Math.log E') do
+ Math.log(Math::E) == 1.0
+end
+
+assert('Math.log E**3') do
+ Math.log(Math::E**3) == 3.0
+end
+
+assert('Math.log2 1') do
+ Math.log2(1) == 0.0
+end
+
+assert('Math.log2 2') do
+ Math.log2(2) == 1.0
+end
+
+assert('Math.log10 1') do
+ Math.log10(1) == 0.0
+end
+
+assert('Math.log10 10') do
+ Math.log10(10) == 1.0
+end
+
+assert('Math.log10 10**100') do
+ Math.log10(10**100) == 100.0
+end
+
+assert('Math.cbrt') do
+ a = [-8, -1, 0, 1, 8].map do |i|
+ Math.cbrt(i)
+ end
+
+ a == [-2.0, -1.0, 0.0, 1.0, 2.0]
+end
+
+assert('Math.hypot') do
+ Math.hypot(3, 4) == 5.0
+end
+
diff --git a/test/t/numeric.rb b/test/t/numeric.rb
new file mode 100644
index 000000000..40b5845c0
--- /dev/null
+++ b/test/t/numeric.rb
@@ -0,0 +1,25 @@
+##
+# Numeric ISO Test
+
+assert('Numeric', '15.2.7') do
+ Numeric.class == Class
+end
+
+assert('Numeric#+@', '15.2.7.4.1') do
+ +1 == +1
+end
+
+assert('Numeric#-@', '15.2.7.4.2') do
+ -1 == -1
+end
+
+assert('Numeric#abs', '15.2.7.4.3') do
+ 1.abs == 1 and -1.abs == 1.0
+end
+
+# Not ISO specified
+
+assert('Numeric#**') do
+ 2.0**3 == 8.0
+end
+