summaryrefslogtreecommitdiff
path: root/ext/librethinkdbxx/test/upstream/datum/number.yaml
blob: 09c48d15af76c7390b1970fc2702431a2cc1ebfa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# desc will be included in a comment to help identify test groups
desc: Tests of conversion to and from the RQL number type
tests:

    # Simple integers
    - cd: r.expr(1)
      js:
        - r(1)
        - r.expr(1)
      rb:
        - r 1
        - r(1)
        - r.expr(1)
      ot: 1
    - cd: r.expr(-1)
      js: 
        - r(-1)
        - r.expr(-1)
      rb:
        - r -1
        - r(-1)
        - r.expr(-1)
      ot: -1
    - cd: r.expr(0)
      js:
        - r(0)
        - r.expr(0)
      rb:
        - r 0
        - r(0)
        - r.expr(0)
      ot: 0

    # Floats
    - cd: r.expr(1.0)
      js:
        - r(1.0)
        - r.expr(1.0)
      rb:
        - r 1.0
        - r(1.0)
        - r.expr(1.0)
      ot: 1.0
    - cd: r.expr(1.5)
      js:
        - r(1.5)
        - r.expr(1.5)
      rb:
        - r 1.5
        - r(1.5)
        - r.expr(1.5)
      ot: 1.5
    - cd: r.expr(-0.5)
      js:
        - r(-0.5)
        - r.expr(-0.5)
      rb:
        - r -0.5
        - r(-0.5)
        - r.expr(-0.5)
      ot: -0.5
    - cd: r.expr(67498.89278)
      js:
       - r(67498.89278)
       - r.expr(67498.89278)
      rb:
       - r 67498.89278
       - r(67498.89278)
       - r.expr(67498.89278)
      ot: 67498.89278

    # Big numbers
    - cd: r.expr(1234567890)
      js:
        - r(1234567890)
        - r.expr(1234567890)
      rb:
        - r 1234567890
        - r(1234567890)
        - r.expr(1234567890)
      ot: 1234567890

    - cd: r.expr(-73850380122423)
      js:
        - r.expr(-73850380122423)
        - r(-73850380122423)
      rb:
        - r -73850380122423
        - r.expr(-73850380122423)
        - r(-73850380122423)
      ot: -73850380122423

    # Test that numbers round-trip correctly
    - py:
        cd: r.expr(1234567890123456789012345678901234567890)
        ot: float(1234567890123456789012345678901234567890)
      js:
        cd: r.expr(1234567890123456789012345678901234567890)
        ot: 1234567890123456789012345678901234567890
    - cd: r.expr(123.4567890123456789012345678901234567890)
      ot: 123.4567890123456789012345678901234567890

    - cd: r.expr(1).type_of()
      ot: 'NUMBER'

    # test coercions
    - cd: r.expr(1).coerce_to('string')
      ot: '1'

    - cd: r.expr(1).coerce_to('number')
      ot: 1

    # The drivers now convert to an int (where relevant) if we think the result
    # looks like an int (result % 1.0 == 0.0)
    - py: r.expr(1.0)
      rb: r 1.0
      ot: int_cmp(1)

    - py: r.expr(45)
      rb: r 45
      ot: int_cmp(45)

    - py: r.expr(1.2)
      rb: r 1.2
      ot: float_cmp(1.2)