diff options
Diffstat (limited to 'ext/librethinkdbxx/test/upstream/times/time_arith.yaml')
-rw-r--r-- | ext/librethinkdbxx/test/upstream/times/time_arith.yaml | 197 |
1 files changed, 0 insertions, 197 deletions
diff --git a/ext/librethinkdbxx/test/upstream/times/time_arith.yaml b/ext/librethinkdbxx/test/upstream/times/time_arith.yaml deleted file mode 100644 index 7584fe8a..00000000 --- a/ext/librethinkdbxx/test/upstream/times/time_arith.yaml +++ /dev/null @@ -1,197 +0,0 @@ -desc: Test basic time arithmetic -tests: - - def: rt1 = 1375147296.681 - - def: rt2 = 1375147296.682 - - def: rt3 = 1375147297.681 - - def: rt4 = 2375147296.681 - - def: rts = [rt1, rt2, rt3, rt4] - - - def: t1 = r.epoch_time(rt1) - - def: t2 = r.epoch_time(rt2) - - def: t3 = r.epoch_time(rt3) - - def: t4 = r.epoch_time(rt4) - - def: ts = r.expr([t1, t2, t3, t4]) - - # We run into double precision with the first one - - rb: ((t2 - t1) * 1000).do{|x| (x > 0.99) & (x < 1.01)} - py: ((t2 - t1) * 1000).do(lambda x:(x > 0.99) & (x < 1.01)) - js: t2.sub(t1).mul(1000).do(r.row.gt(0.99).and(r.row.lt(1.01))) - ot: true - - cd: t3 - t1 - js: t3.sub(t1) - ot: 1 - - cd: t4 - t1 - js: t4.sub(t1) - ot: 1000000000 - - - rb: ((t1 - t2) * 1000).do{|x| (x < -0.99) & (x > -1.01)} - py: ((t1 - t2) * 1000).do(lambda x:(x < -0.99) & (x > -1.01)) - js: t1.sub(t2).mul(1000).do(r.row.lt(-0.99).and(r.row.gt(-1.01))) - ot: true - - cd: t1 - t3 - js: t1.sub(t3) - ot: -1 - - cd: t1 - t4 - js: t1.sub(t4) - ot: -1000000000 - - - rb: ts.map{|x| t1 + (x - t1)}.map{|x| x.to_epoch_time} - py: ts.map(lambda x:t1 + (x - t1)).map(lambda x:x.to_epoch_time()) - js: ts.map(t1.add(r.row.sub(t1))).map(r.row.toEpochTime()) - ot: ([rt1, rt2, rt3, rt4]) - - rb: ts.map{|x| (t1 + x) - t1}.map{|x| x.to_epoch_time} - py: ts.map(lambda x:(t1 + x) - t1).map(lambda x:x.to_epoch_time()) - js: ts.map(t1.add(r.row).sub(t1)).map(r.row.toEpochTime()) - ot: err("ReqlQueryLogicError", "Expected type NUMBER but found PTYPE<TIME>.", []) - - rb: ts.map{|x| t1 - (t1 - x)}.map{|x| x.to_epoch_time} - py: ts.map(lambda x:t1 - (t1 - x)).map(lambda x:x.to_epoch_time()) - js: ts.map(t1.sub(t1.sub(r.row))).map(r.row.toEpochTime()) - ot: ([rt1, rt2, rt3, rt4]) - - - rb: ts.map{|x| ts.map{|y| [x < y, x <= y, x.eq(y), x.ne(y), x >= y, x > y]}} - py: ts.map(lambda x:ts.map(lambda y:[x < y, x <= y, x == y, x != y, x >= y, x > y])) - js: ts.map(function(x) { return ts.map(function(y) { return [x.lt(y), x.le(y), x.eq(y), x.ne(y), x.ge(y), x.gt(y)]; }); }) - ot: ([[[false, true, true, false, true, false], - [true, true, false, true, false, false], - [true, true, false, true, false, false], - [true, true, false, true, false, false]], - [[false, false, false, true, true, true], - [false, true, true, false, true, false], - [true, true, false, true, false, false], - [true, true, false, true, false, false]], - [[false, false, false, true, true, true], - [false, false, false, true, true, true], - [false, true, true, false, true, false], - [true, true, false, true, false, false]], - [[false, false, false, true, true, true], - [false, false, false, true, true, true], - [false, false, false, true, true, true], - [false, true, true, false, true, false]]]) - - - def: - rb: datum_types = r([null, true, false, 1, "1", [1], {"1" => 1}, r.binary('')]) - py: datum_types = r.expr([null, true, false, 1, "1", [1], {"1":1}, r.binary(b'')]) - js: datum_types = r([null, true, false, 1, "1", [1], {"1":1}, r.binary(Buffer(0))]) - -# Test comparisons, from both directions (there was a problem where -# the directions had different behavior). - - rb: datum_types.map{|x| [[x, t1], [t1, x]].map{|xy| xy[0].do{|x| xy[1].do{|y| [x < y, x <= y, x.eq(y), x.ne(y), x >= y, x > y]}}}} - py: datum_types.map(lambda x:r.expr([[x, t1], [t1, x]]).map(lambda xy:xy[0].do(lambda x2:xy[1].do(lambda y:[x2 < y, x2 <= y, x2 == y, x2 != y, x2 >= y, x2 > y])))) - js: datum_types.map(function(x) { return r([[x, t1], [t1, x]]).map(function(xy) { return xy.nth(0).do(function(x) { return xy.nth(1).do(function(y) { return [x.lt(y), x.le(y), x.eq(y), x.ne(y), x.ge(y), x.gt(y)]; }); }); }); }) - ot: ([[[true, true, false, true, false, false], - [false, false, false, true, true, true]], - [[true, true, false, true, false, false], - [false, false, false, true, true, true]], - [[true, true, false, true, false, false], - [false, false, false, true, true, true]], - [[true, true, false, true, false, false], - [false, false, false, true, true, true]], - [[false, false, false, true, true, true], - [true, true, false, true, false, false]], - [[true, true, false, true, false, false], - [false, false, false, true, true, true]], - [[true, true, false, true, false, false], - [false, false, false, true, true, true]], - [[true, true, false, true, false, false], - [false, false, false, true, true, true]]]) - - - rb: ts.map{|a| ts.map{|b| ts.map{|c| b.during(a, c)}}} - py: ts.map(lambda a:ts.map(lambda b:ts.map(lambda c:b.during(a, c)))) - js: ts.map(function(a) { return ts.map(function(b) { return ts.map(function(c) { return b.during(a, c); }); }); }) - ot: ([[[false, true, true, true], - [false, false, true, true], - [false, false, false, true], - [false, false, false, false]], - [[false, false, false, false], - [false, false, true, true], - [false, false, false, true], - [false, false, false, false]], - [[false, false, false, false], - [false, false, false, false], - [false, false, false, true], - [false, false, false, false]], - [[false, false, false, false], - [false, false, false, false], - [false, false, false, false], - [false, false, false, false]]]) - - - rb: ts.map{|a| ts.map{|b| ts.map{|c| b.during(a, c, :left_bound => :open)}}} - py: ts.map(lambda a:ts.map(lambda b:ts.map(lambda c:b.during(a, c, left_bound='open')))) - js: ts.map(function(a) { return ts.map(function(b) { return ts.map(function(c) { return b.during(a, c, {leftBound:'open'}); }); }); }) - ot: ([[[false, false, false, false], - [false, false, true, true], - [false, false, false, true], - [false, false, false, false]], - [[false, false, false, false], - [false, false, false, false], - [false, false, false, true], - [false, false, false, false]], - [[false, false, false, false], - [false, false, false, false], - [false, false, false, false], - [false, false, false, false]], - [[false, false, false, false], - [false, false, false, false], - [false, false, false, false], - [false, false, false, false]]]) - - - rb: ts.map{|a| ts.map{|b| ts.map{|c| b.during(a, c, :right_bound => :closed)}}} - py: ts.map(lambda a:ts.map(lambda b:ts.map(lambda c:b.during(a, c, right_bound='closed')))) - js: ts.map(function(a) { return ts.map(function(b) { return ts.map(function(c) { return b.during(a, c, {rightBound:'closed'}); }); }); }) - ot: ([[[true, true, true, true], - [false, true, true, true], - [false, false, true, true], - [false, false, false, true]], - [[false, false, false, false], - [false, true, true, true], - [false, false, true, true], - [false, false, false, true]], - [[false, false, false, false], - [false, false, false, false], - [false, false, true, true], - [false, false, false, true]], - [[false, false, false, false], - [false, false, false, false], - [false, false, false, false], - [false, false, false, true]]]) - - - rb: ts.map{|a| ts.map{|b| ts.map{|c| b.during(a, c, :left_bound => :open, :right_bound => :closed)}}} - py: ts.map(lambda a:ts.map(lambda b:ts.map(lambda c:b.during(a, c, left_bound='open', right_bound='closed')))) - js: ts.map(function(a) { return ts.map(function(b) { return ts.map(function(c) { return b.during(a, c, {leftBound:'open', rightBound:'closed'}); }); }); }) - ot: ([[[false, false, false, false], - [false, true, true, true], - [false, false, true, true], - [false, false, false, true]], - [[false, false, false, false], - [false, false, false, false], - [false, false, true, true], - [false, false, false, true]], - [[false, false, false, false], - [false, false, false, false], - [false, false, false, false], - [false, false, false, true]], - [[false, false, false, false], - [false, false, false, false], - [false, false, false, false], - [false, false, false, false]]]) - - - rb: ts.map{|x| x.date + x.time_of_day}.map{|x| x.to_epoch_time} - py: ts.map(lambda x:x.date() + x.time_of_day()).map(lambda x:x.to_epoch_time()) - js: ts.map(r.row.date().add(r.row.timeOfDay())).map(r.row.toEpochTime()) - ot: rts - - # Test time interaction with r.js - - rb: r.epoch_time(rt1).do(r.js("(function(data){return data})")).to_epoch_time() - py: r.epoch_time(rt1).do(r.js("(function(data){return data})")).to_epoch_time() - js: r.epoch_time(rt1).do(r.js("(function(data){return data})")).toEpochTime() - ot: rt1 - - - rb: r.do(r.js("new Date('2012-08-01')")).to_iso8601() - py: r.do(r.js("new Date('2012-08-01')")).to_iso8601() - js: r.do(r.js("new Date('2012-08-01')")).toISO8601() - ot: ("2012-08-01T00:00:00+00:00") - - - rb: r.do(r.js("(function(x){doc = new Object(); doc.date = new Date('2012-08-01'); return doc;})"))["date"].to_iso8601() - py: r.do(r.js("(function(x){doc = new Object(); doc.date = new Date('2012-08-01'); return doc;})"))["date"].to_iso8601() - js: r.do(r.js("(function(x){doc = new Object(); doc.date = new Date('2012-08-01'); return doc;})"))("date").toISO8601() - ot: ("2012-08-01T00:00:00+00:00") |