diff options
Diffstat (limited to 'ext/librethinkdbxx/test/upstream/math_logic/add.yaml')
-rw-r--r-- | ext/librethinkdbxx/test/upstream/math_logic/add.yaml | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/ext/librethinkdbxx/test/upstream/math_logic/add.yaml b/ext/librethinkdbxx/test/upstream/math_logic/add.yaml new file mode 100644 index 00000000..e956aaa7 --- /dev/null +++ b/ext/librethinkdbxx/test/upstream/math_logic/add.yaml @@ -0,0 +1,65 @@ +desc: Tests for basic usage of the add operation +tests: + - cd: r.add(1, 1) + ot: 2 + + - js: r(1).add(1) + py: + - r.expr(1) + 1 + - 1 + r.expr(1) + - r.expr(1).add(1) + rb: + - r(1) + 1 + - r(1).add(1) + ot: 2 + + - py: r.expr(-1) + 1 + js: r(-1).add(1) + rb: (r -1) + 1 + ot: 0 + + - py: r.expr(1.75) + 8.5 + js: r(1.75).add(8.5) + rb: (r 1.75) + 8.5 + ot: 10.25 + + # Add is polymorphic on strings + - py: r.expr('') + '' + js: r('').add('') + rb: (r '') + '' + ot: '' + + - py: r.expr('abc') + 'def' + js: r('abc').add('def') + rb: (r 'abc') + 'def' + ot: 'abcdef' + + # Add is polymorphic on arrays + - cd: r.expr([1,2]) + [3] + [4,5] + [6,7,8] + js: r([1,2]).add([3]).add([4,5]).add([6,7,8]) + ot: [1,2,3,4,5,6,7,8] + + # All arithmetic operations (except mod) actually support arbitrary arguments + # but this feature can't be accessed in Python because it's operators are binary + - js: r(1).add(2,3,4,5) + ot: 15 + + - js: r('a').add('b', 'c', 'd') + ot: 'abcd' + + # Type errors + - cd: r(1).add('a') + py: r.expr(1) + 'a' + rb: r(1) + 'a' + ot: err("ReqlQueryLogicError", "Expected type NUMBER but found STRING.", [1]) + + - cd: r('a').add(1) + py: r.expr('a') + 1 + rb: r('a') + 1 + ot: err("ReqlQueryLogicError", "Expected type STRING but found NUMBER.", [1]) + + - cd: r([]).add(1) + py: r.expr([]) + 1 + rb: r([]) + 1 + ot: err("ReqlQueryLogicError", "Expected type ARRAY but found NUMBER.", [1]) + |