diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2012-05-16 13:56:41 -0700 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2012-05-16 13:56:41 -0700 |
| commit | 4bd140e44a3dc6d6e2143dfaa4c5db9b7f2420b2 (patch) | |
| tree | 0c123371d208a692f80197c1b0babb631302442a | |
| parent | 25415302399055a566e4d55b6c165937943aa678 (diff) | |
| parent | 0cc8dcc0ee658eca9193a5611104f6d05cb958fd (diff) | |
| download | mruby-4bd140e44a3dc6d6e2143dfaa4c5db9b7f2420b2.tar.gz mruby-4bd140e44a3dc6d6e2143dfaa4c5db9b7f2420b2.zip | |
Merge pull request #148 from bovi/master
Add Tests for Math, Integer, Numeric and Array
| -rw-r--r-- | test/assert.rb | 6 | ||||
| -rw-r--r-- | test/t/array.rb | 157 | ||||
| -rw-r--r-- | test/t/integer.rb | 58 | ||||
| -rw-r--r-- | test/t/math.rb | 63 | ||||
| -rw-r--r-- | test/t/numeric.rb | 25 |
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 + |
