mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-02-14 15:01:57 +00:00
107 lines
4.3 KiB
YAML
107 lines
4.3 KiB
YAML
desc: Tests the RQL `map` function
|
|
tests:
|
|
# Type_of
|
|
- js: r.range().map(r.range(), function(x, y){return [x, y]}).type_of()
|
|
py: r.range().map(r.range(), lambda x, y:(x, y)).type_of()
|
|
rb: r.range().map(r.range()){|x, y| [x, y]}.type_of()
|
|
ot: 'STREAM'
|
|
|
|
- js: r.range().map(r.expr([]), function(x, y){return [x, y]}).type_of()
|
|
py: r.range().map(r.expr([]), lambda x, y:(x, y)).type_of()
|
|
rb: r.range().map(r.expr([])){|x, y| [x, y]}.type_of()
|
|
ot: 'STREAM'
|
|
|
|
- js: r.expr([]).map(r.expr([]), function(x, y){return [x, y]}).type_of()
|
|
py: r.expr([]).map(r.expr([]), lambda x, y:(x, y)).type_of()
|
|
rb: r.expr([]).map(r.expr([])){|x, y| [x, y]}.type_of()
|
|
ot: 'ARRAY'
|
|
|
|
# Arity
|
|
- js: r.range(3).map(function(){return 0})
|
|
py: r.range(3).map(lambda:0)
|
|
rb: r.map(r.range(3)){0}
|
|
ot: [0, 0, 0]
|
|
|
|
- js: r.range(3).map(r.range(4), function(){return 0})
|
|
py: r.range(3).map(r.range(4), lambda x,y:0)
|
|
rb: r.range(3).map(r.range(4)){0}
|
|
ot: [0, 0, 0]
|
|
|
|
- js: r.expr([1]).map(function(x){return [x]})
|
|
py: r.expr([1]).map(lambda x:(x,))
|
|
rb: r.map(r.expr([1])){|x| [x]}
|
|
ot: [[1]]
|
|
|
|
- js: r.expr([1]).map(r.expr([1]), function(x, y){return [x, y]})
|
|
py: r.expr([1]).map(r.expr([1]), lambda x, y:(x, y))
|
|
rb: r.map(r.expr([1]), r.expr([1])){|x, y| [x, y]}
|
|
ot: [[1, 1]]
|
|
|
|
- js: r.expr([1]).map(r.expr([1]), r.expr([1]), function(x, y, z){return [x, y, z]})
|
|
py: r.expr([1]).map(r.expr([1]), r.expr([1]), lambda x, y, z:(x, y, z))
|
|
rb: r.map(r.expr([1]), r.expr([1]), r.expr([1])){|x, y, z| [x, y, z]}
|
|
ot: [[1, 1, 1]]
|
|
|
|
# Incorrect arity
|
|
- js: r.expr([1]).map(function(x, y){return [x, y]})
|
|
py: r.expr([1]).map(lambda x, y:(x, y))
|
|
rb: r.map(r.expr([1])){|x, y| [x, y]}
|
|
ot: err("ReqlQueryLogicError", "The function passed to `map` expects 2 arguments, but 1 sequence was found.", [])
|
|
|
|
- js: r.expr([1]).map(r.expr([1]), function(x){return [x]})
|
|
py: r.expr([1]).map(r.expr([1]), lambda x:(x,))
|
|
rb: r.map(r.expr([1]), r.expr([1])){|x| [x]}
|
|
ot: err("ReqlQueryLogicError", "The function passed to `map` expects 1 argument, but 2 sequences were found.", [])
|
|
|
|
# Length
|
|
- js: r.range().map(r.expr([]), function(x, y){return [x, y]})
|
|
py: r.range().map(r.expr([]), lambda x, y:(x, y))
|
|
rb: r.map(r.range(), r.expr([])){|x, y| [x, y]}
|
|
ot: []
|
|
|
|
- js: r.expr([1, 2]).map(r.expr([1, 2, 3, 4]), function(x, y){return [x, y]})
|
|
py: r.expr([1, 2]).map(r.expr([1, 2, 3, 4]), lambda x, y:(x, y))
|
|
rb: r.map(r.expr([1, 2]), r.expr([1, 2, 3, 4])){|x, y| [x, y]}
|
|
ot: [[1, 1], [2, 2]]
|
|
|
|
- js: r.range(2).map(r.range(4), function(x, y){return [x, y]})
|
|
py: r.range(2).map(r.range(4), lambda x, y:(x, y))
|
|
rb: r.map(r.range(2), r.range(4)){|x, y| [x, y]}
|
|
ot: [[0, 0], [1, 1]]
|
|
|
|
- js: r.range().map(r.expr([1, 2, 3, 4]), function(x, y){return [x, y]})
|
|
py: r.range().map(r.expr([1, 2, 3, 4]), lambda x, y:(x, y))
|
|
rb: r.map(r.range(), r.expr([1, 2, 3, 4])){|x, y| [x, y]}
|
|
ot: [[0, 1], [1, 2], [2, 3], [3, 4]]
|
|
|
|
# Javascript
|
|
- cd: r.range(3).map(r.range(5), r.js("(function(x, y){return [x, y];})"))
|
|
ot: [[0, 0], [1, 1], [2, 2]]
|
|
|
|
# Types
|
|
- js: r.range().map(r.expr(1), function(x, y){return [x, y]})
|
|
py: r.range().map(r.expr(1), lambda x, y:(x, y))
|
|
rb: r.map(r.range(), r.expr(1)){|x, y| [x, y]}
|
|
ot: err("ReqlQueryLogicError", "Cannot convert NUMBER to SEQUENCE", [])
|
|
|
|
# Range interaction
|
|
- js: r.range().map(r.range(), function(x, y){return [x, y]}).count()
|
|
py: r.range().map(r.range(), lambda x, y:(x, y)).count()
|
|
rb: r.map(r.range(), r.range()){|x, y| [x, y]}.count()
|
|
ot: err("ReqlQueryLogicError", "Cannot use an infinite stream with an aggregation function (`reduce`, `count`, etc.) or coerce it to an array.", [])
|
|
|
|
# Prefix notation
|
|
- js: r.map(r.range(3), function(x){return [x]})
|
|
py: r.map(r.range(3), lambda x:(x,))
|
|
rb: r.map(r.range(3), lambda {|x| [x]})
|
|
ot: [[0], [1], [2]]
|
|
|
|
- js: r.map(r.range(3), r.row.add(1))
|
|
py: r.map(r.range(3), r.row + 1)
|
|
ot: [1, 2, 3]
|
|
|
|
- js: r.map(r.range(3), r.range(5), function(x, y){return [x, y]})
|
|
py: r.map(r.range(3), r.range(5), lambda x, y:(x, y))
|
|
rb: r.map(r.range(3), r.range(5)){|x, y| [x, y]}
|
|
ot: [[0, 0], [1, 1], [2, 2]]
|