Repository navigation
Expand file tree
/
Copy patht.lua
More file actions
125 lines (94 loc) · 3.63 KB
/
Copy patht.lua
File metadata and controls
125 lines (94 loc) · 3.63 KB
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
local int64 = require "int64"
local cjson = require "cjson"
local u64 = int64.unsigned("1111111111")
local i64 = int64.signed("1111111111")
print("compare int64 and uint64: ", u64 == i64)
print("compare signed 1 < signed 2 : ", int64.signed(1) < int64.signed(2))
print("compare signed 1 <= signed 2 : ", int64.signed(1) <= int64.signed(2))
print("compare signed 1 == signed 2 : ", int64.signed(1) == int64.signed(2))
print("compare signed 1 == signed 2 : ", int64.signed(1) == int64.signed(2))
print("compare signed 1 == signed 1 : ", int64.signed(1) == int64.signed(1))
print("compare signed 1 ~= signed 2 : ", int64.signed(1) ~= int64.signed(2))
print("compare signed 1 < unsigned 2 : ", int64.signed(1) < int64.unsigned(2))
print("compare signed 1 <= unsigned 2 : ", int64.signed(1) <= int64.unsigned(2))
print("compare signed 1 == unsigned 2 : ", int64.signed(1) == int64.unsigned(2))
print("compare signed 1 == unsigned 2 : ", int64.signed(1) == int64.unsigned(2))
print("compare signed 1 == unsigned 1 : ", int64.signed(1) == int64.unsigned(1))
print("compare signed 1 ~= unsigned 2 : ", int64.signed(1) ~= int64.unsigned(2))
print("compare signed 1 == number 1 : ", int64.signed(1) == 1)
print("compare unsigned 1 == number 1 : ", int64.unsigned(1) == 1)
print("compare number 1 == signed 1 : ", 1 == int64.signed(1))
print("compare number 1 == unsigned 1 : ", 1 == int64.unsigned(1))
local t = {
a = int64.signed("999999999999999999"),
b = int64.signed("999999999999999")
}
local j = cjson.encode(t)
print(j)
local jj = cjson.decode(j)
print("-----")
print(jj.a)
print(jj.b)
print("-----")
assert(t.a == int64.signed(jj.a))
assert(t.b == int64.signed(jj.b))
local json = [[
{
"a": 99999999999999,
"b": 9999999999999999,
"c": 9999999999999999999,
"d": -99999999999999,
"e": -9999999999999999,
"f": -9199999999999999998,
"g": 9000000000000000009,
"h": -9199999999999999099
}
]]
local dec = cjson.decode(json)
print("=======")
print(dec.a)
print(dec.b)
print(dec.c)
print(dec.d)
print(dec.e)
print(dec.f)
print(dec.g)
print(dec.h)
print("=======")
local a = int64.signed("999999999999999999")
local b = int64.signed(999999999999999)
print(a)
print(b)
print(a+b)
print(a-b)
print(a*b)
print(a/b)
local a1 = int64.unsigned("9999999999999999999")
local b1 = int64.unsigned(99999999999999)
print(a1)
print(b1)
print(a1+b1)
print(a1-b1)
print(a1*b1)
print(a1/b1)
print("concat: " .. a1 .. ":" .. b1)
print("signed 10 + unsigned 10 ", int64.signed(10) + int64.unsigned(10))
print("unsigned 10 + signed 10 ", int64.unsigned(10) + int64.signed(10))
print("signed -10 + unsigned 10 ", int64.signed(-10) + int64.unsigned(10))
print("unsigned 10 + signed -10 ", int64.unsigned(10) + int64.signed(-10))
print("unsigned 10 + signed -20 ", int64.unsigned(10) + int64.signed(-20))
print("signed -10 + unsigned 5 ", int64.signed(-10) + int64.unsigned(5))
print("number 10 + signed 10 ", 10 + int64.signed(10))
print("number 10 + unsigned 10 ", 10 + int64.unsigned(10))
print("number 1 < signed 10 ", 1 < int64.signed(10))
print("signed 10 < number 20", int64.signed(10) < 20)
print("number 1 + signed 1 ", 1 + int64.signed(1))
print("signed 1 + number 1 ", int64.signed(1) + 1)
print("number 1 + unsigned 1 ", 1 + int64.unsigned(1))
print("unsigned 1 + number 1 ", int64.unsigned(1) + 1)
print("unsigned 1 + number 1 + signed 1", int64.unsigned(1) + 1 + int64.signed(1))
print("signed(1):compare(1) ", int64.signed(1):compare(1))
print("signed(1):compare(0) ", int64.signed(1):compare(0))
print("signed(1):compare(2) ", int64.signed(1):compare(2))
print("tonumber(signed(\"9999999999999999\")) ", int64.signed("9999999999999999"):tonumber())
int64.signed("0")