diff options
Diffstat (limited to 'ext/librethinkdbxx/test/upstream/math_logic/comparison.yaml')
-rw-r--r-- | ext/librethinkdbxx/test/upstream/math_logic/comparison.yaml | 477 |
1 files changed, 0 insertions, 477 deletions
diff --git a/ext/librethinkdbxx/test/upstream/math_logic/comparison.yaml b/ext/librethinkdbxx/test/upstream/math_logic/comparison.yaml deleted file mode 100644 index 3fed54a9..00000000 --- a/ext/librethinkdbxx/test/upstream/math_logic/comparison.yaml +++ /dev/null @@ -1,477 +0,0 @@ -desc: Tests of comparison operators -tests: - - ### Numeric comparisons - - ## basic < - - - cd: r(1).lt(2) - py: - - r.expr(1) < 2 - - 1 < r.expr(2) - - r.expr(1).lt(2) - rb: - - r(1) < 2 - - r(1).lt(2) - - 1 < r(2) - ot: true - - cd: r(3).lt(2) - py: r.expr(3) < 2 - rb: r(3) < 2 - ot: false - - py: r.expr(2) < 2 - js: r(2).lt(2) - rb: r(2) < 2 - ot: false - - # All Comparisons can take an arbitrary number of arguments though - # the functionality is only available in JS at the moment - - js: r(1).lt(2, 3, 4) - ot: true - - js: r(1).lt(2, 3, 2) - ot: false - - ## basic > - - - cd: r(1).gt(2) - py: - - r.expr(1) > 2 - - 1 > r.expr(2) - - r.expr(1).gt(2) - rb: - - r(1) > 2 - - r(1).gt(2) - ot: false - - py: r.expr(3) > 2 - js: r(3).gt(2) - rb: r(3) > 2 - ot: true - - py: r.expr(2) > 2 - js: r(2).gt(2) - rb: r(2) > 2 - ot: false - - - js: r(4).gt(3, 2, 1) - ot: true - - js: r(4).gt(3, 2, 3) - ot: false - - ## basic == - - - cd: r(1).eq(2) - py: - - r.expr(1) == 2 - - 1 == r.expr(2) - - r.expr(1).eq(2) - rb: r(1).eq 2 - ot: false - - py: r.expr(3) == 2 - js: r(3).eq(2) - rb: r(3).eq 2 - ot: false - - py: r.expr(2) == 2 - js: r(2).eq(2) - rb: r(2).eq 2 - ot: true - - - js: r(1).eq(1, 1, 1) - ot: true - - js: r(1).eq(1, 2, 1) - ot: false - - ## basic != - - - cd: r(1).ne(2) - py: - - r.expr(1) != 2 - - 1 != r.expr(2) - - r.expr(1).ne(2) - rb: r(1).ne 2 - ot: true - - py: r.expr(3) != 2 - js: r(3).ne(2) - rb: r(3).ne 2 - ot: true - - py: r.expr(2) != 2 - js: r(2).ne(2) - rb: r(2).ne 2 - ot: false - - - js: r(1).ne(3, 2, 4) - ot: true - - js: r(1).ne(3, 2, 3) - ot: true - - ## basic <= - - - js: r(1).le(2) - py: - - r.expr(1) <= 2 - - 1 <= r.expr(2) - - r.expr(1).le(2) - rb: - - r(1) <= 2 - - r(1).le(2) - ot: true - - py: r.expr(3) <= 2 - js: r(3).le(2) - rb: r(3) <= 2 - ot: false - - py: r.expr(2) <= 2 - js: r(2).le(2) - rb: r(2) <= 2 - ot: true - - - js: r(1).le(1, 2, 2) - ot: true - - js: r(1).le(1, 3, 2) - ot: false - - ## basic >= - - - cd: r(1).ge(2) - py: - - r.expr(1) >= 2 - - 1 >= r.expr(2) - - r.expr(1).ge(2) - rb: - - r(1) >= 2 - - r(1).ge(2) - ot: false - - py: r.expr(3) >= 2 - js: r(3).ge(2) - rb: r(3) >= 2 - ot: true - - py: r.expr(2) >= 2 - js: r(2).ge(2) - rb: r(2) >= 2 - ot: true - - - js: r(4).ge(4, 2, 2) - ot: true - - js: r(4).ge(4, 2, 3) - ot: false - - # Comparisons for NULL - - cd: r(null).eq(null) - py: - - r.expr(null) == null - - null == r.expr(null) - ot: true - - - cd: r(null).lt(null) - py: - - r.expr(null) < null - - null < r.expr(null) - - r.expr(null).lt(null) - rb: r(null) < null - ot: false - - - cd: r(null).gt(null) - py: - - r.expr(null) > null - - null > r.expr(null) - - r.expr(null).gt(null) - rb: r(null) > null - ot: false - - # Comparisons for STRING - # STRING comparison should be lexicagraphical - - py: r.expr('a') == 'a' - cd: r('a').eq('a') - ot: true - - - py: r.expr('a') == 'aa' - cd: r('a').eq('aa') - ot: false - - - py: r.expr('a') < 'aa' - cd: r('a').lt('aa') - ot: true - - - py: r.expr('a') < 'bb' - cd: r('a').lt('bb') - ot: true - - - py: r.expr('bb') > 'a' - cd: r('bb').gt('a') - ot: true - - - py: r.expr('abcdef') < 'abcdeg' - cd: r('abcdef').lt('abcdeg') - ot: true - - - py: r.expr('abcdefg') > 'abcdeg' - cd: r('abcdefg').gt('abcdeg') - ot: false - - - py: r.expr('A quick brown fox') > 'A quick brawn fox' - js: r('A quick brown fox').gt('A quick brawn fox') - rb: r('A quick brown fox') > 'A quick brawn fox' - ot: true - - # Comparisons for ARRAY - # Also lexicographical - - - py: r.expr([1]) < [2] - js: r([1]).lt([2]) - rb: r([1]) < [2] - ot: true - - - py: r.expr([1]) > [2] - js: r([1]).gt([2]) - rb: r([1]) > [2] - ot: false - - - py: r.expr([1, 0]) < [2] - js: r([1, 0]).lt([2]) - rb: r([1, 0]) < [2] - ot: true - - - py: r.expr([1, 0]) < [1] - js: r([1, 0]).lt([1]) - rb: r([1, 0]) < [1] - ot: false - - - py: r.expr([1, 0]) > [0] - js: r([1, 0]).gt([0]) - rb: r([1, 0]) > [0] - ot: true - - - py: r.expr([1, 'a']) < [1, 'b'] - js: r([1, 'a']).lt([1, 'b']) - rb: r([1, 'a']) < [1, 'b'] - ot: true - - - py: r.expr([0, 'z']) < [1, 'b'] - js: r([0, 'z']).lt([1, 'b']) - rb: r([0, 'z']) < [1, 'b'] - ot: true - - - py: r.expr([1, 1, 1]) < [1, 0, 2] - js: r([1, 1, 1]).lt([1, 0, 2]) - rb: r([1, 1, 1]) < [1, 0, 2] - ot: false - - - py: r.expr([1, 0, 2]) < [1, 1, 1] - js: r([1, 0, 2]).lt([1, 1, 1]) - rb: r([1, 0, 2]) < [1, 1, 1] - ot: true - - # Comparisons for OBJECT - - - py: r.expr({'a':0}) == {'a':0} - cd: r({'a':0}).eq({'a':0}) - ot: true - - - py: r.expr({'a':0, 'b':1}) == {'b':1, 'a':0} - cd: r({'a':0, 'b':1}).eq({'b':1, 'a':0}) - ot: true - - - py: r.expr({'a':0, 'b':1, 'c':2}) == {'b':1, 'a':0} - cd: r({'a':0, 'b':1, 'c':2}).eq({'b':1, 'a':0}) - ot: false - - - py: r.expr({'a':0, 'b':1}) == {'b':1, 'a':0, 'c':2} - cd: r({'a':0, 'b':1}).eq({'b':1, 'a':0, 'c':2}) - ot: false - - - py: r.expr({'a':0, 'b':1, 'd':2}) == {'b':1, 'a':0, 'c':2} - cd: r({'a':0, 'b':1, 'd':2}).eq({'b':1, 'a':0, 'c':2}) - ot: false - - - py: r.expr({'a':0}) < {'b':0} - cd: r({'a':0}).lt({'b':0}) - ot: true - - - py: r.expr({'a':1}) < {'b':0} - cd: r({'a':1}).lt({'b':0}) - ot: true - - - py: r.expr({'b':1}) < {'b':0} - cd: r({'b':1}).lt({'b':0}) - ot: false - - - py: r.expr({'b':1}) < {'a':0} - cd: r({'b':1}).lt({'a':0}) - ot: false - - - py: r.expr({'a':0, 'b':1, 'c':2}) < {'a':0, 'b':1, 'c':2} - cd: r({'a':0, 'b':1, 'c':2}).lt({'a':0, 'b':1, 'c':2}) - ot: false - - - py: r.expr({'a':0, 'b':1, 'c':2, 'd':3}) < {'a':0, 'b':1, 'c':2} - cd: r({'a':0, 'b':1, 'c':2, 'd':3}).lt({'a':0, 'b':1, 'c':2}) - ot: false - - - py: r.expr({'a':0, 'b':1, 'c':2}) < {'a':0, 'b':1, 'c':2, 'd':3} - cd: r({'a':0, 'b':1, 'c':2}).lt({'a':0, 'b':1, 'c':2, 'd':3}) - ot: true - - - py: r.expr({'a':0, 'c':2}) < {'a':0, 'b':1, 'c':2} - cd: r({'a':0, 'c':2}).lt({'a':0, 'b':1, 'c':2}) - ot: false - - - py: r.expr({'a':0, 'c':2}) > {'a':0, 'b':1, 'c':2} - cd: r({'a':0, 'c':2}).gt({'a':0, 'b':1, 'c':2}) - ot: true - - # Comparisons across types - # RQL primitive types compare as if mapped to the following numbers - # MINVAL: 0 - # ARRAY: 1 - # BINARY: 2 - # BOOLEAN: 3 - # NULL: 4 - # NUMBER: 5 - # OBJECT: 6 - # STRING: 7 - # MAXVAL: 8 - - def: - py: everything = r.expr([[],r.now(),r.binary(b"\x00"),false,null,-5,{},"a",r.maxval]) - js: everything = r.expr([[],r.now(),r.binary(Buffer("\x00")),false,null,-5,{},"a",r.maxval]) - rb: everything = r.expr([[],r.now(),r.binary("\x00"),false,null,-5,{},"a",r.maxval]) - - - js: r.and(r.args(everything.map(r.lt(r.minval, r.row)))) - py: r.and_(r.args(everything.map(r.lt(r.minval, r.row)))) - rb: r.and(r.args(everything.map{|x| r.lt(r.minval, x)})) - ot: true - - - js: r.or(r.args(everything.map(r.gt(r.minval, r.row)))) - py: r.or_(r.args(everything.map(r.gt(r.minval, r.row)))) - rb: r.or(r.args(everything.map{|x| r.gt(r.minval, x)})) - ot: false - - - cd: r.eq(r.minval, r.minval) - ot: true - - - py: r.expr([]) < True - js: r([]).lt(true) - rb: r([]) < true - ot: true - - - py: r.expr([1,2]) < False - js: r([1,2]).lt(false) - rb: r([1,2]) < false - ot: true - - - py: r.expr(False) < [] - js: r(false).lt([]) - rb: r(false) < [] - ot: false - - - py: r.expr([]) < r.binary(b"\xAE") - js: r([]).lt(r.binary(Buffer("\x00"))) - rb: r([]) < r.binary("") - ot: true - - - py: r.expr([1,2]) < r.binary(b"\xAE") - js: r([1,2]).lt(r.binary(Buffer("\x00"))) - rb: r([1,2]) < r.binary("") - ot: true - - - py: True < r.expr(null) - js: r(true).lt(null) - rb: r(true) < null - ot: true - - - py: r.expr(null) > [] - js: r(null).gt([]) - rb: r(null) > [] - ot: true - - - py: r.expr(null) < 12 - js: r(null).lt(12) - rb: r(null) < 12 - ot: true - - - py: r.expr(null) < -2 - js: r(null).lt(-2) - rb: r(null) < -2 - ot: true - - - py: r.expr(-12) < {} - js: r(-12).lt({}) - rb: r(-12) < {} - ot: true - - - py: r.expr(100) < {'a':-12} - js: r(100).lt({a:-12}) - rb: r(100) < { :a => 12 } - ot: true - - - py: r.expr(r.binary(b"\xAE")) < 12 - js: r(r.binary(Buffer("\x00"))).lt(12) - rb: r(r.binary("")) < 12 - ot: false - - - py: r.binary(b"0xAE") < 'abc' - js: r.binary(Buffer("0x00")).lt('abc') - rb: r.binary("") < 'abc' - ot: true - - - py: r.binary(b"0xAE") > r.now() - js: r.binary(Buffer("0x00")).gt(r.now()) - rb: r.binary("") > r.now() - ot: false - - - cd: r.now() > 12 - js: r.now().gt(12) - ot: true - - - cd: r.now() > 'abc' - js: r.now().gt('abc') - ot: false - - - py: r.expr("abc") > {'a':-12} - js: r('abc').gt({a:-12}) - rb: r('abc') > { :a => 12 } - ot: true - - - py: r.expr("abc") > {'abc':'abc'} - js: r('abc').gt({abc:'abc'}) - rb: r('abc') > { :abc => 'abc' } - ot: true - - - py: r.expr('zzz') > 128 - js: r('zzz').gt(128) - rb: r('zzz') > 128 - ot: true - - - py: r.expr('zzz') > {} - js: r('zzz').gt({}) - rb: r('zzz') > {} - ot: true - - - py: 'zzz' > r.expr(-152) - js: r('zzz').gt(-152) - rb: r('zzz') > -152 - ot: true - - - py: 'zzz' > r.expr(null) - js: r('zzz').gt(null) - rb: r('zzz') > null - ot: true - - - py: 'zzz' > r.expr([]) - js: r('zzz').gt([]) - rb: r('zzz') > [] - ot: true - - - def: - rb: everything2 = r.expr([r.minval,[],r.now(),r.binary("\x00"),false,null,-5,{},"a"]) - py: everything2 = r.expr([r.minval,[],r.now(),r.binary(b"\x00"),false,null,-5,{},"a"]) - js: everything2 = r.expr([r.minval,[],r.now(),r.binary(Buffer("\x00")),false,null,-5,{},"a"]) - - - js: r.and(r.args(everything2.map(r.gt(r.maxval, r.row)))) - py: r.and_(r.args(everything2.map(r.gt(r.maxval, r.row)))) - rb: r.and(r.args(everything2.map{|x| r.gt(r.maxval, x)})) - ot: true - - - js: r.or(r.args(everything2.map(r.lt(r.maxval, r.row)))) - py: r.or_(r.args(everything2.map(r.lt(r.maxval, r.row)))) - rb: r.or(r.args(everything2.map{|x| r.lt(r.maxval, x)})) - ot: false - - - cd: r.eq(r.maxval, r.maxval) - ot: true |