2017-11-02 07:05:11 -07:00

145 lines
4.3 KiB
YAML

desc: date/time api (#977)
tests:
# Type shims -- see shim.yaml
- def: rt1 = 1375147296.6812
- def: t1 = r.epoch_time(rt1)
- def: t2 = r.epoch_time(rt1 + 1000)
# Arithmetic
- cd: (t1 + 1000).to_epoch_time()
js: t1.add(1000).toEpochTime()
ot: (1375148296.681)
- cd: (t1 - 1000).to_epoch_time()
js: t1.sub(1000).toEpochTime()
ot: (1375146296.681)
- cd: (t1 - (t1 - 1000))
js: t1.sub(t1.sub(1000))
ot: 1000
# Comparisons
- cd: (t1 < t1)
js: t1.lt(t1)
ot: false
- cd: (t1 <= t1)
js: t1.le(t1)
ot: true
- cd: (t1.eq(t1))
py: (t1 == t1)
ot: true
- cd: (t1.ne(t1))
py: (t1 != t1)
ot: false
- cd: (t1 >= t1)
js: t1.ge(t1)
ot: true
- cd: (t1 > t1)
js: t1.gt(t1)
ot: false
- cd: (t1 < t2)
js: t1.lt(t2)
ot: true
- cd: (t1 <= t2)
js: t1.le(t2)
ot: true
- cd: (t1.eq(t2))
py: (t1 == t2)
ot: false
- cd: (t1.ne(t2))
py: (t1 != t2)
ot: true
- cd: (t1 >= t2)
js: t1.ge(t2)
ot: false
- cd: (t1 > t2)
js: t1.gt(t2)
ot: false
# Predicates
- cd: t1.during(t1, t1 + 1000)
js: t1.during(t1, t1.add(1000))
ot: true
- rb: t1.during(t1, t1 + 1000, :left_bound => :open)
py: t1.during(t1, t1 + 1000, left_bound='open')
js: t1.during(t1, t1.add(1000), {leftBound:'open'})
ot: false
- cd: t1.during(t1, t1)
ot: false
- rb: t1.during(t1, t1, :right_bound => :closed)
py: t1.during(t1, t1, right_bound='closed')
js: t1.during(t1, t1, {rightBound:'closed'})
ot: true
# Time Zone Manipulation -- see timezones.yaml
# Portion Retrieval
- cd: t1.date().to_epoch_time()
ot: 1375142400
- cd: t1.time_of_day()
ot: (4896.681)
- cd: t1.year()
ot: 2013
- cd: t1.month()
ot: 7
- cd: t1.day()
ot: 30
- cd: t1.day_of_week()
ot: 2
- cd: t1.day_of_year()
ot: 211
- cd: t1.hours()
ot: 1
- cd: t1.minutes()
ot: 21
- cd: t1.seconds()
ot: 36.681
# Construction/Conversion
- cd: r.time(2013, r.july, 29, 23, 30, 0.1, "-07:00").to_epoch_time()
ot: (1375165800.1)
- cd: r.time(2013, r.july, 29, 23, 30, 0.1, "-07:00").timezone()
ot: ("-07:00")
- cd: r.time(2013, r.july, 29, 23, 30, 0.1).to_epoch_time()
ot: err("ReqlQueryLogicError", "Got 6 arguments to TIME (expected 4 or 7).", [])
- cd: r.time(2013, r.july, 29, 23, 30, 0.1).timezone()
ot: err("ReqlQueryLogicError", "Got 6 arguments to TIME (expected 4 or 7).", [])
- cd: r.time(2013, r.july, 29, 23, 30).to_epoch_time()
ot: err("ReqlQueryLogicError", "Got 5 arguments to TIME (expected 4 or 7).", [])
- cd: r.time(2013, r.july, 29, 23).to_epoch_time()
ot: err("ReqlQueryLogicError", "Expected type STRING but found NUMBER.", [])
- cd: r.time(2013, r.july, 29, "-07:00").to_epoch_time()
ot: 1375081200
- cd: r.time(2013, r.july, 29, "-07:00").timezone()
ot: ("-07:00")
- cd: r.time(2013, r.july, 29).to_epoch_time()
ot: err("ReqlCompileError", "Expected between 4 and 7 arguments but found 3.", [])
- cd: r.time(2013, r.july, 29).timezone()
ot: err("ReqlCompileError", "Expected between 4 and 7 arguments but found 3.", [])
- cd: r.iso8601("2013-07-30T20:56:05-07:00").to_epoch_time()
js: r.ISO8601("2013-07-30T20:56:05-07:00").to_epoch_time()
ot: 1375242965
- cd: r.epoch_time(1375242965).in_timezone("-07:00").to_iso8601()
js: r.epochTime(1375242965).inTimezone("-07:00").toISO8601()
ot: ("2013-07-30T20:56:05-07:00")
- cd: r.now().type_of()
ot: ("PTYPE<TIME>")
- cd: (r.now() - r.now())
js: r.now().sub(r.now())
ot: 0
# Default Time Zones
- cd: r.iso8601("2013-07-30T20:56:05").to_iso8601()
js: r.ISO8601("2013-07-30T20:56:05").toISO8601()
ot: err("ReqlQueryLogicError", "ISO 8601 string has no time zone, and no default time zone was provided.", [])
- cd: r.iso8601("2013-07-30T20:56:05", :default_timezone => '-07').to_iso8601()
py: r.iso8601("2013-07-30T20:56:05", default_timezone='-07').to_iso8601()
js: r.ISO8601("2013-07-30T20:56:05", {"default_timezone":"-07"}).toISO8601()
ot: ("2013-07-30T20:56:05-07:00")
- cd: r.expr([r.monday, r.tuesday, r.wednesday, r.thursday, r.friday, r.saturday, r.sunday])
ot: ([1, 2, 3, 4, 5, 6, 7])
- cd: r.expr([r.january, r.february, r.march, r.april, r.may, r.june,
r.july, r.august, r.september, r.october, r.november, r.december])
ot: ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])