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)
|