mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge pull request #305 from bovi/optional-feature
Tests are executed based on available features
This commit is contained in:
+41
-37
@@ -2,45 +2,49 @@
|
||||
# Struct
|
||||
#
|
||||
# ISO 15.2.18
|
||||
class Struct
|
||||
|
||||
##
|
||||
# Calls the given block for each element of +self+
|
||||
# and pass the respective element.
|
||||
#
|
||||
# ISO 15.2.18.4.4
|
||||
def each(&block)
|
||||
self.class.members.each{|field|
|
||||
block.call(self[field])
|
||||
}
|
||||
self
|
||||
end
|
||||
if Object.const_defined?(:Struct)
|
||||
class Struct
|
||||
|
||||
##
|
||||
# Calls the given block for each element of +self+
|
||||
# and pass the name and value of the respectiev
|
||||
# element.
|
||||
#
|
||||
# ISO 15.2.18.4.5
|
||||
def each_pair(&block)
|
||||
self.class.members.each{|field|
|
||||
block.call(field.to_sym, self[field])
|
||||
}
|
||||
self
|
||||
end
|
||||
##
|
||||
# Calls the given block for each element of +self+
|
||||
# and pass the respective element.
|
||||
#
|
||||
# ISO 15.2.18.4.4
|
||||
def each(&block)
|
||||
self.class.members.each{|field|
|
||||
block.call(self[field])
|
||||
}
|
||||
self
|
||||
end
|
||||
|
||||
##
|
||||
# Calls the given block for each element of +self+
|
||||
# and returns an array with all elements of which
|
||||
# block is not false.
|
||||
#
|
||||
# ISO 15.2.18.4.7
|
||||
def select(&block)
|
||||
ary = []
|
||||
self.class.members.each{|field|
|
||||
val = self[field]
|
||||
ary.push(val) if block.call(val)
|
||||
}
|
||||
ary
|
||||
##
|
||||
# Calls the given block for each element of +self+
|
||||
# and pass the name and value of the respectiev
|
||||
# element.
|
||||
#
|
||||
# ISO 15.2.18.4.5
|
||||
def each_pair(&block)
|
||||
self.class.members.each{|field|
|
||||
block.call(field.to_sym, self[field])
|
||||
}
|
||||
self
|
||||
end
|
||||
|
||||
##
|
||||
# Calls the given block for each element of +self+
|
||||
# and returns an array with all elements of which
|
||||
# block is not false.
|
||||
#
|
||||
# ISO 15.2.18.4.7
|
||||
def select(&block)
|
||||
ary = []
|
||||
self.class.members.each{|field|
|
||||
val = self[field]
|
||||
ary.push(val) if block.call(val)
|
||||
}
|
||||
ary
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
+107
-105
@@ -1,115 +1,117 @@
|
||||
##
|
||||
# Math Test
|
||||
|
||||
assert('Math.sin 0') do
|
||||
check_float(Math.sin(0), 0)
|
||||
end
|
||||
|
||||
assert('Math.sin PI/2') do
|
||||
check_float(Math.sin(Math::PI / 2), 1)
|
||||
end
|
||||
|
||||
|
||||
assert('Fundamental trig identities') do
|
||||
result = true
|
||||
N = 15
|
||||
N.times do |i|
|
||||
a = Math::PI / N * i
|
||||
ca = Math::PI / 2 - a
|
||||
s = Math.sin(a)
|
||||
c = Math.cos(a)
|
||||
t = Math.tan(a)
|
||||
result &= check_float(s, Math.cos(ca))
|
||||
result &= check_float(t, 1 / Math.tan(ca))
|
||||
result &= check_float(s ** 2 + c ** 2, 1)
|
||||
result &= check_float(t ** 2 + 1, (1/c) ** 2)
|
||||
result &= check_float((1/t) ** 2 + 1, (1/s) ** 2)
|
||||
if Object.const_defined?(:Math)
|
||||
assert('Math.sin 0') do
|
||||
check_float(Math.sin(0), 0)
|
||||
end
|
||||
result
|
||||
end
|
||||
|
||||
assert('Math.erf 0') do
|
||||
check_float(Math.erf(0), 0)
|
||||
end
|
||||
|
||||
assert('Math.exp 0') do
|
||||
check_float(Math.exp(0), 1.0)
|
||||
end
|
||||
|
||||
assert('Math.exp 1') do
|
||||
check_float(Math.exp(1), 2.718281828459045)
|
||||
end
|
||||
|
||||
assert('Math.exp 1.5') do
|
||||
check_float(Math.exp(1.5), 4.4816890703380645)
|
||||
end
|
||||
|
||||
assert('Math.log 1') do
|
||||
check_float(Math.log(1), 0)
|
||||
end
|
||||
|
||||
assert('Math.log E') do
|
||||
check_float(Math.log(Math::E), 1.0)
|
||||
end
|
||||
|
||||
assert('Math.log E**3') do
|
||||
check_float(Math.log(Math::E**3), 3.0)
|
||||
end
|
||||
|
||||
assert('Math.log2 1') do
|
||||
check_float(Math.log2(1), 0.0)
|
||||
end
|
||||
|
||||
assert('Math.log2 2') do
|
||||
check_float(Math.log2(2), 1.0)
|
||||
end
|
||||
|
||||
assert('Math.log10 1') do
|
||||
check_float(Math.log10(1), 0.0)
|
||||
end
|
||||
|
||||
assert('Math.log10 10') do
|
||||
check_float(Math.log10(10), 1.0)
|
||||
end
|
||||
|
||||
assert('Math.log10 10**100') do
|
||||
check_float(Math.log10(10**100), 100.0)
|
||||
end
|
||||
|
||||
assert('Math.sqrt') do
|
||||
num = [0.0, 1.0, 2.0, 3.0, 4.0]
|
||||
sqr = [0, 1, 4, 9, 16]
|
||||
result = true
|
||||
sqr.each_with_index do |v,i|
|
||||
result &= check_float(Math.sqrt(v), num[i])
|
||||
assert('Math.sin PI/2') do
|
||||
check_float(Math.sin(Math::PI / 2), 1)
|
||||
end
|
||||
result
|
||||
end
|
||||
|
||||
assert('Math.cbrt') do
|
||||
num = [-2.0, -1.0, 0.0, 1.0, 2.0]
|
||||
cub = [-8, -1, 0, 1, 8]
|
||||
result = true
|
||||
cub.each_with_index do |v,i|
|
||||
result &= check_float(Math.cbrt(v), num[i])
|
||||
assert('Fundamental trig identities') do
|
||||
result = true
|
||||
N = 15
|
||||
N.times do |i|
|
||||
a = Math::PI / N * i
|
||||
ca = Math::PI / 2 - a
|
||||
s = Math.sin(a)
|
||||
c = Math.cos(a)
|
||||
t = Math.tan(a)
|
||||
result &= check_float(s, Math.cos(ca))
|
||||
result &= check_float(t, 1 / Math.tan(ca))
|
||||
result &= check_float(s ** 2 + c ** 2, 1)
|
||||
result &= check_float(t ** 2 + 1, (1/c) ** 2)
|
||||
result &= check_float((1/t) ** 2 + 1, (1/s) ** 2)
|
||||
end
|
||||
result
|
||||
end
|
||||
|
||||
assert('Math.erf 0') do
|
||||
check_float(Math.erf(0), 0)
|
||||
end
|
||||
|
||||
assert('Math.exp 0') do
|
||||
check_float(Math.exp(0), 1.0)
|
||||
end
|
||||
|
||||
assert('Math.exp 1') do
|
||||
check_float(Math.exp(1), 2.718281828459045)
|
||||
end
|
||||
|
||||
assert('Math.exp 1.5') do
|
||||
check_float(Math.exp(1.5), 4.4816890703380645)
|
||||
end
|
||||
|
||||
assert('Math.log 1') do
|
||||
check_float(Math.log(1), 0)
|
||||
end
|
||||
|
||||
assert('Math.log E') do
|
||||
check_float(Math.log(Math::E), 1.0)
|
||||
end
|
||||
|
||||
assert('Math.log E**3') do
|
||||
check_float(Math.log(Math::E**3), 3.0)
|
||||
end
|
||||
|
||||
assert('Math.log2 1') do
|
||||
check_float(Math.log2(1), 0.0)
|
||||
end
|
||||
|
||||
assert('Math.log2 2') do
|
||||
check_float(Math.log2(2), 1.0)
|
||||
end
|
||||
|
||||
assert('Math.log10 1') do
|
||||
check_float(Math.log10(1), 0.0)
|
||||
end
|
||||
|
||||
assert('Math.log10 10') do
|
||||
check_float(Math.log10(10), 1.0)
|
||||
end
|
||||
|
||||
assert('Math.log10 10**100') do
|
||||
check_float(Math.log10(10**100), 100.0)
|
||||
end
|
||||
|
||||
assert('Math.sqrt') do
|
||||
num = [0.0, 1.0, 2.0, 3.0, 4.0]
|
||||
sqr = [0, 1, 4, 9, 16]
|
||||
result = true
|
||||
sqr.each_with_index do |v,i|
|
||||
result &= check_float(Math.sqrt(v), num[i])
|
||||
end
|
||||
result
|
||||
end
|
||||
|
||||
assert('Math.cbrt') do
|
||||
num = [-2.0, -1.0, 0.0, 1.0, 2.0]
|
||||
cub = [-8, -1, 0, 1, 8]
|
||||
result = true
|
||||
cub.each_with_index do |v,i|
|
||||
result &= check_float(Math.cbrt(v), num[i])
|
||||
end
|
||||
result
|
||||
end
|
||||
|
||||
assert('Math.hypot') do
|
||||
check_float(Math.hypot(3, 4), 5.0)
|
||||
end
|
||||
|
||||
assert('Math.frexp 1234') do
|
||||
n = 1234
|
||||
fraction, exponent = Math.frexp(n)
|
||||
check_float(Math.ldexp(fraction, exponent), n)
|
||||
end
|
||||
|
||||
assert('Math.erf 1') do
|
||||
check_float(Math.erf(1), 0.842700792949715)
|
||||
end
|
||||
|
||||
assert('Math.erfc 1') do
|
||||
check_float(Math.erfc(1), 0.157299207050285)
|
||||
end
|
||||
result
|
||||
end
|
||||
|
||||
assert('Math.hypot') do
|
||||
check_float(Math.hypot(3, 4), 5.0)
|
||||
end
|
||||
|
||||
assert('Math.frexp 1234') do
|
||||
n = 1234
|
||||
fraction, exponent = Math.frexp(n)
|
||||
check_float(Math.ldexp(fraction, exponent), n)
|
||||
end
|
||||
|
||||
assert('Math.erf 1') do
|
||||
check_float(Math.erf(1), 0.842700792949715)
|
||||
end
|
||||
|
||||
assert('Math.erfc 1') do
|
||||
check_float(Math.erfc(1), 0.157299207050285)
|
||||
end
|
||||
|
||||
+59
-56
@@ -1,61 +1,64 @@
|
||||
##
|
||||
# Struct ISO Test
|
||||
|
||||
assert('Struct', '15.2.18') do
|
||||
Struct.class == Class
|
||||
if Object.const_defined?(:Struct)
|
||||
assert('Struct', '15.2.18') do
|
||||
Struct.class == Class
|
||||
end
|
||||
|
||||
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
|
||||
end
|
||||
|
||||
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
|
||||
|
||||
+186
-184
@@ -1,189 +1,191 @@
|
||||
##
|
||||
# Time ISO Test
|
||||
|
||||
assert('Time.new', '15.2.3.3.3') do
|
||||
Time.new.class == Time
|
||||
end
|
||||
|
||||
assert('Time', '15.2.19') do
|
||||
Time.class == Class
|
||||
end
|
||||
|
||||
assert('Time superclass', '15.2.19.2') do
|
||||
Time.superclass == Object
|
||||
end
|
||||
|
||||
assert('Time.at', '15.2.19.6.1') do
|
||||
Time.at(1300000000.0)
|
||||
end
|
||||
|
||||
assert('Time.gm', '15.2.19.6.2') do
|
||||
Time.gm(2012, 12, 23)
|
||||
end
|
||||
|
||||
assert('Time.local', '15.2.19.6.3') do
|
||||
Time.local(2012, 12, 23)
|
||||
end
|
||||
|
||||
assert('Time.mktime', '15.2.19.6.4') do
|
||||
Time.mktime(2012, 12, 23)
|
||||
end
|
||||
|
||||
assert('Time.now', '15.2.19.6.5') do
|
||||
Time.now.class == Time
|
||||
end
|
||||
|
||||
assert('Time.utc', '15.2.19.6.6') do
|
||||
Time.utc(2012, 12, 23)
|
||||
end
|
||||
|
||||
assert('Time#+', '15.2.19.7.1') do
|
||||
t1 = Time.at(1300000000.0)
|
||||
t2 = t1.+(60)
|
||||
|
||||
t2.utc.asctime == "Sun Mar 13 07:07:40 UTC 2011"
|
||||
end
|
||||
|
||||
assert('Time#-', '15.2.19.7.2') do
|
||||
t1 = Time.at(1300000000.0)
|
||||
t2 = t1.-(60)
|
||||
|
||||
t2.utc.asctime == "Sun Mar 13 07:05:40 UTC 2011"
|
||||
end
|
||||
|
||||
assert('Time#<=>', '15.2.19.7.3') do
|
||||
t1 = Time.at(1300000000.0)
|
||||
t2 = Time.at(1400000000.0)
|
||||
t3 = Time.at(1500000000.0)
|
||||
|
||||
t2.<=>(t1) == 1 and
|
||||
t2.<=>(t2) == 0 and
|
||||
t2.<=>(t3) == -1 and
|
||||
t2.<=>(nil) == nil
|
||||
end
|
||||
|
||||
assert('Time#asctime', '15.2.19.7.4') do
|
||||
Time.at(1300000000.0).utc.asctime == "Sun Mar 13 07:06:40 UTC 2011"
|
||||
end
|
||||
|
||||
assert('Time#ctime', '15.2.19.7.5') do
|
||||
Time.at(1300000000.0).utc.ctime == "Sun Mar 13 07:06:40 UTC 2011"
|
||||
end
|
||||
|
||||
assert('Time#day', '15.2.19.7.6') do
|
||||
Time.gm(2012, 12, 23).day == 23
|
||||
end
|
||||
|
||||
assert('Time#dst?', '15.2.19.7.7') do
|
||||
not Time.gm(2012, 12, 23).utc.dst?
|
||||
end
|
||||
|
||||
assert('Time#getgm', '15.2.19.7.8') do
|
||||
Time.at(1300000000.0).getgm.asctime == "Sun Mar 13 07:06:40 UTC 2011"
|
||||
end
|
||||
|
||||
assert('Time#getlocal', '15.2.19.7.9') do
|
||||
t1 = Time.at(1300000000.0)
|
||||
t2 = Time.at(1300000000.0)
|
||||
t3 = t1.getlocal
|
||||
|
||||
t1 == t3 and t3 == t2.getlocal
|
||||
end
|
||||
|
||||
assert('Time#getutc', '15.2.19.7.10') do
|
||||
Time.at(1300000000.0).getutc.asctime == "Sun Mar 13 07:06:40 UTC 2011"
|
||||
end
|
||||
|
||||
assert('Time#gmt?', '15.2.19.7.11') do
|
||||
Time.at(1300000000.0).utc.gmt?
|
||||
end
|
||||
|
||||
# ATM not implemented
|
||||
# assert('Time#gmt_offset', '15.2.19.7.12') do
|
||||
|
||||
assert('Time#gmtime', '15.2.19.7.13') do
|
||||
Time.at(1300000000.0).gmtime
|
||||
end
|
||||
|
||||
# ATM not implemented
|
||||
# assert('Time#gmtoff', '15.2.19.7.14') do
|
||||
|
||||
assert('Time#hour', '15.2.19.7.15') do
|
||||
Time.gm(2012, 12, 23, 7, 6).hour == 7
|
||||
end
|
||||
|
||||
# ATM doesn't really work
|
||||
# assert('Time#initialize', '15.2.19.7.16') do
|
||||
|
||||
assert('Time#initialize_copy', '15.2.19.7.17') do
|
||||
time_tmp_2 = Time.at(7.0e6)
|
||||
time_tmp_2.clone == time_tmp_2
|
||||
end
|
||||
|
||||
assert('Time#localtime', '15.2.19.7.18') do
|
||||
t1 = Time.at(1300000000.0)
|
||||
t2 = Time.at(1300000000.0)
|
||||
|
||||
t1.localtime
|
||||
t1 == t2.getlocal
|
||||
end
|
||||
|
||||
assert('Time#mday', '15.2.19.7.19') do
|
||||
Time.gm(2012, 12, 23).mday == 23
|
||||
end
|
||||
|
||||
assert('Time#min', '15.2.19.7.20') do
|
||||
Time.gm(2012, 12, 23, 7, 6).min == 6
|
||||
end
|
||||
|
||||
assert('Time#mon', '15.2.19.7.21') do
|
||||
Time.gm(2012, 12, 23).mon == 12
|
||||
end
|
||||
|
||||
assert('Time#month', '15.2.19.7.22') do
|
||||
Time.gm(2012, 12, 23).month == 12
|
||||
end
|
||||
|
||||
assert('Times#sec', '15.2.19.7.23') do
|
||||
Time.gm(2012, 12, 23, 7, 6, 40).sec == 40
|
||||
end
|
||||
|
||||
assert('Time#to_f', '15.2.19.7.24') do
|
||||
Time.at(1300000000.0).to_f == 1300000000.0
|
||||
end
|
||||
|
||||
assert('Time#to_i', '15.2.19.7.25') do
|
||||
Time.at(1300000000.0).to_i == 1300000000
|
||||
end
|
||||
|
||||
assert('Time#usec', '15.2.19.7.26') do
|
||||
Time.at(1300000000.0).usec == 0
|
||||
end
|
||||
|
||||
assert('Time#utc', '15.2.19.7.27') do
|
||||
Time.at(1300000000.0).utc
|
||||
end
|
||||
|
||||
assert('Time#utc?', '15.2.19.7.28') do
|
||||
Time.at(1300000000.0).utc.utc?
|
||||
end
|
||||
|
||||
# ATM not implemented
|
||||
# assert('Time#utc_offset', '15.2.19.7.29') do
|
||||
|
||||
assert('Time#wday', '15.2.19.7.30') do
|
||||
Time.gm(2012, 12, 23).wday == 0
|
||||
end
|
||||
|
||||
assert('Time#yday', '15.2.19.7.31') do
|
||||
Time.gm(2012, 12, 23).yday == 357
|
||||
end
|
||||
|
||||
assert('Time#year', '15.2.19.7.32') do
|
||||
Time.gm(2012, 12, 23).year == 2012
|
||||
end
|
||||
|
||||
assert('Time#zone', '15.2.19.7.33') do
|
||||
Time.at(1300000000.0).utc.zone == 'UTC'
|
||||
if Object.const_defined?(:Time)
|
||||
assert('Time.new', '15.2.3.3.3') do
|
||||
Time.new.class == Time
|
||||
end
|
||||
|
||||
assert('Time', '15.2.19') do
|
||||
Time.class == Class
|
||||
end
|
||||
|
||||
assert('Time superclass', '15.2.19.2') do
|
||||
Time.superclass == Object
|
||||
end
|
||||
|
||||
assert('Time.at', '15.2.19.6.1') do
|
||||
Time.at(1300000000.0)
|
||||
end
|
||||
|
||||
assert('Time.gm', '15.2.19.6.2') do
|
||||
Time.gm(2012, 12, 23)
|
||||
end
|
||||
|
||||
assert('Time.local', '15.2.19.6.3') do
|
||||
Time.local(2012, 12, 23)
|
||||
end
|
||||
|
||||
assert('Time.mktime', '15.2.19.6.4') do
|
||||
Time.mktime(2012, 12, 23)
|
||||
end
|
||||
|
||||
assert('Time.now', '15.2.19.6.5') do
|
||||
Time.now.class == Time
|
||||
end
|
||||
|
||||
assert('Time.utc', '15.2.19.6.6') do
|
||||
Time.utc(2012, 12, 23)
|
||||
end
|
||||
|
||||
assert('Time#+', '15.2.19.7.1') do
|
||||
t1 = Time.at(1300000000.0)
|
||||
t2 = t1.+(60)
|
||||
|
||||
t2.utc.asctime == "Sun Mar 13 07:07:40 UTC 2011"
|
||||
end
|
||||
|
||||
assert('Time#-', '15.2.19.7.2') do
|
||||
t1 = Time.at(1300000000.0)
|
||||
t2 = t1.-(60)
|
||||
|
||||
t2.utc.asctime == "Sun Mar 13 07:05:40 UTC 2011"
|
||||
end
|
||||
|
||||
assert('Time#<=>', '15.2.19.7.3') do
|
||||
t1 = Time.at(1300000000.0)
|
||||
t2 = Time.at(1400000000.0)
|
||||
t3 = Time.at(1500000000.0)
|
||||
|
||||
t2.<=>(t1) == 1 and
|
||||
t2.<=>(t2) == 0 and
|
||||
t2.<=>(t3) == -1 and
|
||||
t2.<=>(nil) == nil
|
||||
end
|
||||
|
||||
assert('Time#asctime', '15.2.19.7.4') do
|
||||
Time.at(1300000000.0).utc.asctime == "Sun Mar 13 07:06:40 UTC 2011"
|
||||
end
|
||||
|
||||
assert('Time#ctime', '15.2.19.7.5') do
|
||||
Time.at(1300000000.0).utc.ctime == "Sun Mar 13 07:06:40 UTC 2011"
|
||||
end
|
||||
|
||||
assert('Time#day', '15.2.19.7.6') do
|
||||
Time.gm(2012, 12, 23).day == 23
|
||||
end
|
||||
|
||||
assert('Time#dst?', '15.2.19.7.7') do
|
||||
not Time.gm(2012, 12, 23).utc.dst?
|
||||
end
|
||||
|
||||
assert('Time#getgm', '15.2.19.7.8') do
|
||||
Time.at(1300000000.0).getgm.asctime == "Sun Mar 13 07:06:40 UTC 2011"
|
||||
end
|
||||
|
||||
assert('Time#getlocal', '15.2.19.7.9') do
|
||||
t1 = Time.at(1300000000.0)
|
||||
t2 = Time.at(1300000000.0)
|
||||
t3 = t1.getlocal
|
||||
|
||||
t1 == t3 and t3 == t2.getlocal
|
||||
end
|
||||
|
||||
assert('Time#getutc', '15.2.19.7.10') do
|
||||
Time.at(1300000000.0).getutc.asctime == "Sun Mar 13 07:06:40 UTC 2011"
|
||||
end
|
||||
|
||||
assert('Time#gmt?', '15.2.19.7.11') do
|
||||
Time.at(1300000000.0).utc.gmt?
|
||||
end
|
||||
|
||||
# ATM not implemented
|
||||
# assert('Time#gmt_offset', '15.2.19.7.12') do
|
||||
|
||||
assert('Time#gmtime', '15.2.19.7.13') do
|
||||
Time.at(1300000000.0).gmtime
|
||||
end
|
||||
|
||||
# ATM not implemented
|
||||
# assert('Time#gmtoff', '15.2.19.7.14') do
|
||||
|
||||
assert('Time#hour', '15.2.19.7.15') do
|
||||
Time.gm(2012, 12, 23, 7, 6).hour == 7
|
||||
end
|
||||
|
||||
# ATM doesn't really work
|
||||
# assert('Time#initialize', '15.2.19.7.16') do
|
||||
|
||||
assert('Time#initialize_copy', '15.2.19.7.17') do
|
||||
time_tmp_2 = Time.at(7.0e6)
|
||||
time_tmp_2.clone == time_tmp_2
|
||||
end
|
||||
|
||||
assert('Time#localtime', '15.2.19.7.18') do
|
||||
t1 = Time.at(1300000000.0)
|
||||
t2 = Time.at(1300000000.0)
|
||||
|
||||
t1.localtime
|
||||
t1 == t2.getlocal
|
||||
end
|
||||
|
||||
assert('Time#mday', '15.2.19.7.19') do
|
||||
Time.gm(2012, 12, 23).mday == 23
|
||||
end
|
||||
|
||||
assert('Time#min', '15.2.19.7.20') do
|
||||
Time.gm(2012, 12, 23, 7, 6).min == 6
|
||||
end
|
||||
|
||||
assert('Time#mon', '15.2.19.7.21') do
|
||||
Time.gm(2012, 12, 23).mon == 12
|
||||
end
|
||||
|
||||
assert('Time#month', '15.2.19.7.22') do
|
||||
Time.gm(2012, 12, 23).month == 12
|
||||
end
|
||||
|
||||
assert('Times#sec', '15.2.19.7.23') do
|
||||
Time.gm(2012, 12, 23, 7, 6, 40).sec == 40
|
||||
end
|
||||
|
||||
assert('Time#to_f', '15.2.19.7.24') do
|
||||
Time.at(1300000000.0).to_f == 1300000000.0
|
||||
end
|
||||
|
||||
assert('Time#to_i', '15.2.19.7.25') do
|
||||
Time.at(1300000000.0).to_i == 1300000000
|
||||
end
|
||||
|
||||
assert('Time#usec', '15.2.19.7.26') do
|
||||
Time.at(1300000000.0).usec == 0
|
||||
end
|
||||
|
||||
assert('Time#utc', '15.2.19.7.27') do
|
||||
Time.at(1300000000.0).utc
|
||||
end
|
||||
|
||||
assert('Time#utc?', '15.2.19.7.28') do
|
||||
Time.at(1300000000.0).utc.utc?
|
||||
end
|
||||
|
||||
# ATM not implemented
|
||||
# assert('Time#utc_offset', '15.2.19.7.29') do
|
||||
|
||||
assert('Time#wday', '15.2.19.7.30') do
|
||||
Time.gm(2012, 12, 23).wday == 0
|
||||
end
|
||||
|
||||
assert('Time#yday', '15.2.19.7.31') do
|
||||
Time.gm(2012, 12, 23).yday == 357
|
||||
end
|
||||
|
||||
assert('Time#year', '15.2.19.7.32') do
|
||||
Time.gm(2012, 12, 23).year == 2012
|
||||
end
|
||||
|
||||
assert('Time#zone', '15.2.19.7.33') do
|
||||
Time.at(1300000000.0).utc.zone == 'UTC'
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user