mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge pull request #148 from bovi/master
Add Tests for Math, Integer, Numeric and Array
This commit is contained in:
+3
-3
@@ -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
|
||||
|
||||
+157
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user