xref: /sqlite-3.40.0/test/hexlit.test (revision fce4da1b)
1# 2014-07-23
2#
3# The author disclaims copyright to this source code.  In place of
4# a legal notice, here is a blessing:
5#
6#    May you do good and not evil.
7#    May you find forgiveness for yourself and forgive others.
8#    May you share freely, never taking more than you give.
9#
10#***********************************************************************
11#
12# This file implements tests for hexadecimal literals
13
14
15set testdir [file dirname $argv0]
16source $testdir/tester.tcl
17
18proc hexlit1 {tnum val ans} {
19  do_execsql_test hexlit-$tnum "SELECT $val" $ans
20}
21
22hexlit1 100 0x0 0
23hexlit1 101 0x0000000000000000000000000000000000000000000001 1
24hexlit1 102 0x2 2
25hexlit1 103 0x4 4
26hexlit1 104 0x8 8
27hexlit1 105 0x00000000000000000000000000000000000000000000010 16
28hexlit1 103 0x20 32
29hexlit1 106 0x40 64
30hexlit1 107 0x80 128
31hexlit1 108 0x100 256
32hexlit1 109 0x200 512
33hexlit1 110 0X400 1024
34hexlit1 111 0x800 2048
35hexlit1 112 0x1000 4096
36hexlit1 113 0x2000 8192
37hexlit1 114 0x4000 16384
38hexlit1 115 0x8000 32768
39hexlit1 116 0x10000 65536
40hexlit1 117 0x20000 131072
41hexlit1 118 0x40000 262144
42hexlit1 119 0x80000 524288
43hexlit1 120 0x100000 1048576
44hexlit1 121 0x200000 2097152
45hexlit1 122 0x400000 4194304
46hexlit1 123 0x800000 8388608
47hexlit1 124 0x1000000 16777216
48hexlit1 125 0x2000000 33554432
49hexlit1 126 0x4000000 67108864
50hexlit1 127 0x8000000 134217728
51hexlit1 128 0x10000000 268435456
52hexlit1 129 0x20000000 536870912
53hexlit1 130 0x40000000 1073741824
54hexlit1 131 0x80000000 2147483648
55hexlit1 132 0x100000000 4294967296
56hexlit1 133 0x200000000 8589934592
57hexlit1 134 0x400000000 17179869184
58hexlit1 135 0x800000000 34359738368
59hexlit1 136 0x1000000000 68719476736
60hexlit1 137 0x2000000000 137438953472
61hexlit1 138 0x4000000000 274877906944
62hexlit1 139 0x8000000000 549755813888
63hexlit1 140 0x10000000000 1099511627776
64hexlit1 141 0x20000000000 2199023255552
65hexlit1 142 0x40000000000 4398046511104
66hexlit1 143 0x80000000000 8796093022208
67hexlit1 144 0x100000000000 17592186044416
68hexlit1 145 0x200000000000 35184372088832
69hexlit1 146 0x400000000000 70368744177664
70hexlit1 147 0x800000000000 140737488355328
71hexlit1 148 0x1000000000000 281474976710656
72hexlit1 149 0x2000000000000 562949953421312
73hexlit1 150 0x4000000000000 1125899906842624
74hexlit1 151 0x8000000000000 2251799813685248
75hexlit1 152 0x10000000000000 4503599627370496
76hexlit1 153 0x20000000000000 9007199254740992
77hexlit1 154 0x40000000000000 18014398509481984
78hexlit1 155 0x80000000000000 36028797018963968
79hexlit1 156 0x100000000000000 72057594037927936
80hexlit1 157 0x200000000000000 144115188075855872
81hexlit1 158 0x400000000000000 288230376151711744
82hexlit1 159 0x800000000000000 576460752303423488
83hexlit1 160 0X1000000000000000 1152921504606846976
84hexlit1 161 0x2000000000000000 2305843009213693952
85hexlit1 162 0X4000000000000000 4611686018427387904
86hexlit1 163 0x8000000000000000 -9223372036854775808
87
88hexlit1 200 0x001 1
89hexlit1 201 0X002 2
90hexlit1 202 0x003 3
91hexlit1 203 0X004 4
92hexlit1 204 0x005 5
93hexlit1 205 0X006 6
94hexlit1 206 0x007 7
95hexlit1 207 0X008 8
96hexlit1 208 0x009 9
97hexlit1 209 0x00a 10
98hexlit1 210 0x00A 10
99hexlit1 211 0x00b 11
100hexlit1 212 0x00B 11
101hexlit1 213 0x00c 12
102hexlit1 214 0x00C 12
103hexlit1 215 0x00d 13
104hexlit1 216 0x00D 13
105hexlit1 217 0x00e 14
106hexlit1 218 0x00E 14
107hexlit1 219 0x00f 15
108hexlit1 220 0x00F 15
109
110proc hexlit2 {tnum hex ans} {
111  do_execsql_test hexlit-$tnum "SELECT printf('%7e',CAST($hex AS real))" $ans
112}
113
114hexlit2 300 0x1 1.000000e+00
115hexlit2 301 0x10 1.600000e+01
116hexlit2 302 0x100 2.560000e+02
117hexlit2 303 0x1000 4.096000e+03
118hexlit2 304 0x10000 6.553600e+04
119hexlit2 305 0x100000 1.048576e+06
120hexlit2 306 0x1000000 1.677722e+07
121hexlit2 307 0x10000000 2.684355e+08
122hexlit2 308 0x100000000 4.294967e+09
123hexlit2 309 0x1000000000 6.871948e+10
124hexlit2 310 0x10000000000 1.099512e+12
125hexlit2 311 0x100000000000 1.759219e+13
126hexlit2 312 0x1000000000000 2.814750e+14
127hexlit2 313 0x10000000000000 4.503600e+15
128hexlit2 314 0x100000000000000 7.205759e+16
129hexlit2 315 0x1000000000000000 1.152922e+18
130hexlit2 316 0x10000000000000000 1.844674e+19
131hexlit2 317 0x100000000000000000 2.951479e+20
132hexlit2 318 0x1000000000000000000 4.722366e+21
133hexlit2 319 0x10000000000000000000 7.555786e+22
134hexlit2 320 0x100000000000000000000 1.208926e+24
135hexlit2 321 0x1000000000000000000000 1.934281e+25
136hexlit2 322 0x10000000000000000000000 3.094850e+26
137hexlit2 323 0x100000000000000000000000 4.951760e+27
138hexlit2 324 0x1000000000000000000000000 7.922816e+28
139hexlit2 325 0x10000000000000000000000000 1.267651e+30
140hexlit2 326 0x100000000000000000000000000 2.028241e+31
141hexlit2 327 0x1000000000000000000000000000 3.245186e+32
142hexlit2 328 0x10000000000000000000000000000 5.192297e+33
143hexlit2 329 0x100000000000000000000000000000 8.307675e+34
144
145hexlit2 400 0x7fffffffffffffff 9.223372e+18
146hexlit2 401 0x8000000000000000 -9.223372e+18
147hexlit2 402 0xffffffffffffffff -1.000000e+00
148hexlit2 403 0x10000000000000000 1.844674e+19
149
150finish_test
151