desc: Tests of converstion to and from the RQL string type
tests:

    # Simple strings
    - py: r.expr('str')
      js: [r('str'), r.expr('str')]
      rb: r 'str'
      ot: "'str'"
    - cd: r.expr("str")
      js: [r("str"), r.expr("str")]
      ot: "\"str\""

    # Unicode
    - py: # Python supports unicode strings with the u'' pattern
        cd: r.expr(u'str')
        ot: u'str'
      cd: []
    - py:
        cd: "r.expr(u'こんにちは')"
        ot: "u'こんにちは'"
      rb:
        cd: "r 'こんにちは'"
        ot: "'こんにちは'"
      js: []

    - cd: r.expr('foo').type_of()
      ot: "'STRING'"

    # test coercions
    - cd: r.expr('foo').coerce_to('string')
      ot: ('foo')
    - cd: r.expr('-1.2').coerce_to('NUMBER')
      ot: -1.2
    - cd: r.expr('--1.2').coerce_to('NUMBER')
      ot: err("RqlRuntimeError", "Could not coerce `--1.2` to NUMBER.", [])
    - cd: r.expr('-1.2-').coerce_to('NUMBER')
      ot: err("RqlRuntimeError", "Could not coerce `-1.2-` to NUMBER.", [])
    - cd: r.expr('0xa').coerce_to('NUMBER')
      ot: 10
    - cd: r.expr('inf').coerce_to('NUMBER')
      ot: |
        err("RqlRuntimeError", "Non-finite number: inf", [])
