| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 |
- desc: Tests r.default
- tests:
- - cd: r.expr(1).default(2)
- ot: 1
- - cd: r.expr(null).default(2)
- ot: 2
- - cd: r.expr({})['b'].default(2)
- js: r.expr({})('b').default(2)
- ot: 2
- - cd: r.expr(r.expr('a')['b']).default(2)
- js: r.expr(r.expr('a')('b')).default(2)
- ot: err("ReqlQueryLogicError", "Cannot perform bracket on a non-object non-sequence `\"a\"`.", [])
- - rb: r.expr([]).reduce{|a,b| a+b}.default(2)
- py: r.expr([]).reduce(lambda a,b:a+b).default(2)
- js: r.expr([]).reduce(function(a,b){return a+b}).default(2)
- ot: 2
- - rb: r.expr([]).union([]).reduce{|a,b| a+b}.default(2)
- py: r.expr([]).union([]).reduce(lambda a,b:a+b).default(2)
- js: r.expr([]).union([]).reduce(function(a,b){return a+b}).default(2)
- ot: 2
- - rb: r.expr('a').reduce{|a,b| a+b}.default(2)
- py: r.expr('a').reduce(lambda a,b:a+b).default(2)
- js: r.expr('a').reduce(function(a,b){return a+b}).default(2)
- ot: err("ReqlQueryLogicError", "Cannot convert STRING to SEQUENCE", [])
- - cd: (r.expr(null) + 5).default(2)
- js: (r.expr(null).add(5)).default(2)
- ot: 2
- - cd: (5 + r.expr(null)).default(2)
- js: (r.expr(5).add(null)).default(2)
- ot: 2
- - cd: (5 - r.expr(null)).default(2)
- js: (r.expr(5).sub(null)).default(2)
- ot: 2
- - cd: (r.expr(null) - 5).default(2)
- js: (r.expr(null).sub(5)).default(2)
- ot: 2
- - cd: (r.expr('a') + 5).default(2)
- js: (r.expr('a').add(5)).default(2)
- ot: err("ReqlQueryLogicError", "Expected type STRING but found NUMBER.", [])
- - cd: (5 + r.expr('a')).default(2)
- js: (r.expr(5).add('a')).default(2)
- ot: err("ReqlQueryLogicError", "Expected type NUMBER but found STRING.", [])
- - cd: (r.expr('a') - 5).default(2)
- js: (r.expr('a').sub(5)).default(2)
- ot: err("ReqlQueryLogicError", "Expected type NUMBER but found STRING.", [])
- - cd: (5 - r.expr('a')).default(2)
- js: (r.expr(5).sub('a')).default(2)
- ot: err("ReqlQueryLogicError", "Expected type NUMBER but found STRING.", [])
- - cd: r.expr(1).default(r.error())
- ot: 1
- - cd: r.expr(null).default(r.error())
- ot: (null)
- - cd: r.expr({})['b'].default(r.error())
- js: r.expr({})('b').default(r.error())
- ot: err("ReqlNonExistenceError", "No attribute `b` in object:", [])
- - rb: r.expr([]).reduce{|a,b| a+b}.default(r.error)
- py: r.expr([]).reduce(lambda a,b:a+b).default(r.error)
- js: r.expr([]).reduce(function(a,b){return a+b}).default(r.error)
- ot: err("ReqlNonExistenceError", "Cannot reduce over an empty stream.", [])
- - rb: r.expr([]).union([]).reduce{|a,b| a+b}.default(r.error)
- py: r.expr([]).union([]).reduce(lambda a,b:a+b).default(r.error)
- js: r.expr([]).union([]).reduce(function(a,b){return a+b}).default(r.error)
- ot: err("ReqlNonExistenceError", "Cannot reduce over an empty stream.", [])
- - cd: (r.expr(null) + 5).default(r.error)
- js: (r.expr(null).add(5)).default(r.error)
- ot: err("ReqlNonExistenceError", "Expected type NUMBER but found NULL.", [])
- - cd: (5 + r.expr(null)).default(r.error)
- js: (r.expr(5).add(null)).default(r.error)
- ot: err("ReqlNonExistenceError", "Expected type NUMBER but found NULL.", [])
- - cd: (5 - r.expr(null)).default(r.error)
- js: (r.expr(5).sub(null)).default(r.error)
- ot: err("ReqlNonExistenceError", "Expected type NUMBER but found NULL.", [])
- - cd: (r.expr(null) - 5).default(r.error)
- js: (r.expr(null).sub(5)).default(r.error)
- ot: err("ReqlNonExistenceError", "Expected type NUMBER but found NULL.", [])
- - rb: r.expr(1).default{|e| e}
- py: r.expr(1).default(lambda e:e)
- js: r.expr(1).default(function(e){return e})
- ot: 1
- - cd: r.expr(null).default{|e| e}
- py: r.expr(null).default(lambda e:e)
- js: r.expr(null).default(function(e){return e})
- ot: (null)
- - cd: r.expr({})['b'].default{|e| e}
- py: r.expr({})['b'].default(lambda e:e)
- js: r.expr({})('b').default(function(e){return e})
- ot: "No attribute `b` in object:\n{}"
- - cd: r.expr([]).reduce{|a,b| a+b}.default{|e| e}
- py: r.expr([]).reduce(lambda a,b:a+b).default(lambda e:e)
- js: r.expr([]).reduce(function(a,b){return a+b}).default(function(e){return e})
- ot: ("Cannot reduce over an empty stream.")
- - cd: r.expr([]).union([]).reduce{|a,b| a+b}.default{|e| e}
- py: r.expr([]).union([]).reduce(lambda a,b:a+b).default(lambda e:e)
- js: r.expr([]).union([]).reduce(function(a,b){return a+b}).default(function(e){return e})
- ot: ("Cannot reduce over an empty stream.")
- - cd: (r.expr(null) + 5).default{|e| e}
- py: (r.expr(null) + 5).default(lambda e:e)
- js: (r.expr(null).add(5)).default(function(e){return e})
- ot: ("Expected type NUMBER but found NULL.")
- - cd: (5 + r.expr(null)).default{|e| e}
- py: (5 + r.expr(null)).default(lambda e:e)
- js: (r.expr(5).add(null)).default(function(e){return e})
- ot: ("Expected type NUMBER but found NULL.")
- - cd: (5 - r.expr(null)).default{|e| e}
- py: (5 - r.expr(null)).default(lambda e:e)
- js: (r.expr(5).sub(null)).default(function(e){return e})
- ot: ("Expected type NUMBER but found NULL.")
- - cd: (r.expr(null) - 5).default{|e| e}
- py: (r.expr(null) - 5).default(lambda e:e)
- js: (r.expr(null).sub(5)).default(function(e){return e})
- ot: ("Expected type NUMBER but found NULL.")
- - def: arr = r.expr([{'a':1},{'a':null},{}]).order_by('a')
- - cd: arr.filter{|x| x['a'].eq(1)}
- py: arr.filter(lambda x:x['a'].eq(1))
- js: arr.filter(function(x){return x('a').eq(1)})
- ot: [{'a':1}]
- - cd: arr.filter(:default => false){|x| x['a'].eq(1)}
- py: arr.filter(lambda x:x['a'].eq(1), default=False)
- js: arr.filter(function(x){return x('a').eq(1)}, {'default':false})
- ot: [{'a':1}]
- - cd: arr.filter(:default => true){|x| x['a'].eq(1)}
- py: arr.filter(lambda x:x['a'].eq(1), default=True)
- js: arr.filter(function(x){return x('a').eq(1)}, {'default':true})
- ot: [{}, {'a':1}]
- # `null` compares not equal to 1 with no error
- - cd: arr.filter(:default => r.js('true')){|x| x['a'].eq(1)}
- py: arr.filter(lambda x:x['a'].eq(1), default=r.js('true'))
- js: arr.filter(function(x) { return x('a').eq(1) }, { 'default':r.js('true') })
- ot: [{}, {'a':1}]
- - cd: arr.filter(:default => r.js('false')){|x| x['a'].eq(1)}
- py: arr.filter(lambda x:x['a'].eq(1), default=r.js('false'))
- js: arr.filter(function(x) { return x('a').eq(1) }, { 'default':r.js('false') })
- ot: [{'a':1}]
- - cd: arr.filter(:default => r.error){|x| x['a'].eq(1)}
- py: arr.filter(lambda x:x['a'].eq(1), default=r.error())
- js: arr.filter(function(x){return x('a').eq(1)}, {'default':r.error()})
- ot: err("ReqlNonExistenceError", "No attribute `a` in object:", [])
- - cd: r.expr(false).do{|d| arr.filter(:default => d){|x| x['a'].eq(1)}}
- py: r.expr(False).do(lambda d:arr.filter(lambda x:x['a'].eq(1), default=d))
- js: r.expr(false).do(function(d){return arr.filter(function(x){return x('a').eq(1)}, {default:d})})
- ot: [{'a':1}]
- - cd: r.expr(true).do{|d| arr.filter(:default => d){|x| x['a'].eq(1)}}.orderby('a')
- py: r.expr(True).do(lambda d:arr.filter(lambda x:x['a'].eq(1), default=d)).order_by('a')
- js: r.expr(true).do(function(d){return arr.filter(function(x){return x('a').eq(1)}, {default:d})}).orderBy('a')
- ot: [{}, {'a':1}]
- # `null` compares not equal to 1 with no error
- - cd: arr.filter{|x| x['a'].default(0).eq(1)}
- py: arr.filter(lambda x:x['a'].default(0).eq(1))
- js: arr.filter(function(x){return x('a').default(0).eq(1)})
- ot: [{'a':1}]
- - cd: arr.filter{|x| x['a'].default(1).eq(1)}.orderby('a')
- py: arr.filter(lambda x:x['a'].default(1).eq(1)).order_by('a')
- js: arr.filter(function(x){return x('a').default(1).eq(1)}).orderBy('a')
- ot: ([{}, {'a':null}, {'a':1}])
- - cd: arr.filter{|x| x['a'].default(r.error).eq(1)}
- py: arr.filter(lambda x:x['a'].default(r.error()).eq(1))
- js: arr.filter(function(x){return x('a').default(r.error()).eq(1)})
- ot: [{'a':1}]
- # gets caught by `filter` default
- - cd: r.expr(0).do{|i| arr.filter{|x| x['a'].default(i).eq(1)}}
- py: r.expr(0).do(lambda i:arr.filter(lambda x:x['a'].default(i).eq(1)))
- js: r.expr(0).do(function(i){return arr.filter(function(x){return x('a').default(i).eq(1)})})
- ot: [{'a':1}]
- - cd: r.expr(1).do{|i| arr.filter{|x| x['a'].default(i).eq(1)}}.orderby('a')
- py: r.expr(1).do(lambda i:arr.filter(lambda x:x['a'].default(i).eq(1))).order_by('a')
- js: r.expr(1).do(function(i){return arr.filter(function(x){return x('a').default(i).eq(1)})}).orderBy('a')
- ot: ([{},{'a':null},{'a':1}])
- - cd: arr.filter{|x| x['a'].eq(1).or(x['a']['b'].eq(2))}
- py: arr.filter(lambda x:r.or_(x['a'].eq(1), x['a']['b'].eq(2)))
- js: arr.filter(function(x){return x('a').eq(1).or(x('a')('b').eq(2))})
- ot: [{'a':1}]
- - cd: arr.filter(:default => false){|x| x['a'].eq(1).or(x['a']['b'].eq(2))}
- py: arr.filter(lambda x:r.or_(x['a'].eq(1), x['a']['b'].eq(2)), default=False)
- js: arr.filter(function(x){return x('a').eq(1).or(x('a')('b').eq(2))}, {default:false})
- ot: [{'a':1}]
- - cd: arr.filter(:default => true){|x| x['a'].eq(1).or(x['a']['b'].eq(2))}.orderby('a')
- py: arr.filter(lambda x:r.or_(x['a'].eq(1), x['a']['b'].eq(2)), default=True).order_by('a')
- js: arr.filter(function(x){return x('a').eq(1).or(x('a')('b').eq(2))}, {default:true}).orderBy('a')
- ot: ([{}, {'a':null}, {'a':1}])
- - cd: arr.filter(:default => r.error){|x| x['a'].eq(1).or(x['a']['b'].eq(2))}
- py: arr.filter(lambda x:r.or_(x['a'].eq(1), x['a']['b'].eq(2)), default=r.error())
- js: arr.filter(function(x){return x('a').eq(1).or(x('a')('b').eq(2))}, {default:r.error()})
- ot: err("ReqlNonExistenceError", "No attribute `a` in object:", [])
- - cd: r.table_create('default_test')
- ot: partial({'tables_created':1})
- - cd: r.table('default_test').insert(arr)
- ot: ({'deleted':0,'replaced':0,'generated_keys':arrlen(3,uuid()),'unchanged':0,'errors':0,'skipped':0,'inserted':3})
- - def: tbl = r.table('default_test').order_by('a').pluck('a')
- - cd: tbl.filter{|x| x['a'].eq(1)}
- py: tbl.filter(lambda x:x['a'].eq(1))
- js: tbl.filter(function(x){return x('a').eq(1)})
- ot: [{'a':1}]
- - cd: tbl.filter(:default => false){|x| x['a'].eq(1)}
- py: tbl.filter(lambda x:x['a'].eq(1), default=False)
- js: tbl.filter(function(x){return x('a').eq(1)}, {'default':false})
- ot: [{'a':1}]
- - cd: tbl.filter(:default => true){|x| x['a'].eq(1)}
- py: tbl.filter(lambda x:x['a'].eq(1), default=True)
- js: tbl.filter(function(x){return x('a').eq(1)}, {'default':true})
- ot: [{}, {'a':1}]
- # `null` compares not equal to 1 with no error
- - cd: tbl.filter(:default => r.error){|x| x['a'].eq(1)}
- py: tbl.filter(lambda x:x['a'].eq(1), default=r.error())
- js: tbl.filter(function(x){return x('a').eq(1)}, {'default':r.error()})
- ot: err("ReqlNonExistenceError", "No attribute `a` in object:", [])
- - cd: r.expr(false).do{|d| tbl.filter(:default => d){|x| x['a'].eq(1)}}
- py: r.expr(False).do(lambda d:tbl.filter(lambda x:x['a'].eq(1), default=d))
- js: r.expr(false).do(function(d){return tbl.filter(function(x){return x('a').eq(1)}, {default:d})})
- ot: [{'a':1}]
- - cd: r.expr(true).do{|d| tbl.filter(:default => d){|x| x['a'].eq(1)}}.orderby('a')
- py: r.expr(True).do(lambda d:tbl.filter(lambda x:x['a'].eq(1), default=d)).order_by('a')
- js: r.expr(true).do(function(d){return tbl.filter(function(x){return x('a').eq(1)}, {default:d})}).orderBy('a')
- ot: [{}, {'a':1}]
- # `null` compares not equal to 1 with no error
- - cd: tbl.filter{|x| x['a'].default(0).eq(1)}
- py: tbl.filter(lambda x:x['a'].default(0).eq(1))
- js: tbl.filter(function(x){return x('a').default(0).eq(1)})
- ot: [{'a':1}]
- - cd: tbl.filter{|x| x['a'].default(1).eq(1)}.orderby('a')
- py: tbl.filter(lambda x:x['a'].default(1).eq(1)).order_by('a')
- js: tbl.filter(function(x){return x('a').default(1).eq(1)}).orderBy('a')
- ot: ([{}, {'a':null}, {'a':1}])
- - cd: tbl.filter{|x| x['a'].default(r.error).eq(1)}
- py: tbl.filter(lambda x:x['a'].default(r.error()).eq(1))
- js: tbl.filter(function(x){return x('a').default(r.error()).eq(1)})
- ot: [{'a':1}]
- # gets caught by `filter` default
- - cd: r.expr(0).do{|i| tbl.filter{|x| x['a'].default(i).eq(1)}}
- py: r.expr(0).do(lambda i:tbl.filter(lambda x:x['a'].default(i).eq(1)))
- js: r.expr(0).do(function(i){return tbl.filter(function(x){return x('a').default(i).eq(1)})})
- ot: [{'a':1}]
- - cd: r.expr(1).do{|i| tbl.filter{|x| x['a'].default(i).eq(1)}}.orderby('a')
- py: r.expr(1).do(lambda i:tbl.filter(lambda x:x['a'].default(i).eq(1))).order_by('a')
- js: r.expr(1).do(function(i){return tbl.filter(function(x){return x('a').default(i).eq(1)})}).orderBy('a')
- ot: ([{},{'a':null},{'a':1}])
- - cd: tbl.filter{|x| x['a'].eq(1).or(x['a']['b'].eq(2))}
- py: tbl.filter(lambda x:r.or_(x['a'].eq(1), x['a']['b'].eq(2)))
- js: tbl.filter(function(x){return x('a').eq(1).or(x('a')('b').eq(2))})
- ot: [{'a':1}]
- - cd: tbl.filter(:default => false){|x| x['a'].eq(1).or(x['a']['b'].eq(2))}
- py: tbl.filter(lambda x:r.or_(x['a'].eq(1), x['a']['b'].eq(2)), default=False)
- js: tbl.filter(function(x){return x('a').eq(1).or(x('a')('b').eq(2))}, {default:false})
- ot: [{'a':1}]
- - cd: tbl.filter(:default => true){|x| x['a'].eq(1).or(x['a']['b'].eq(2))}.orderby('a')
- py: tbl.filter(lambda x:r.or_(x['a'].eq(1), x['a']['b'].eq(2)), default=True).order_by('a')
- js: tbl.filter(function(x){return x('a').eq(1).or(x('a')('b').eq(2))}, {default:true}).orderBy('a')
- ot: ([{}, {'a':null}, {'a':1}])
- - cd: tbl.filter(:default => r.error){|x| x['a'].eq(1).or(x['a']['b'].eq(2))}
- py: tbl.filter(lambda x:r.or_(x['a'].eq(1), x['a']['b'].eq(2)), default=r.error())
- js: tbl.filter(function(x){return x('a').eq(1).or(x('a')('b').eq(2))}, {default:r.error()})
- ot: err("ReqlNonExistenceError", "No attribute `a` in object:", [])
- - cd: r.table_drop('default_test')
- ot: partial({'tables_dropped':1})
|