1 ubyte[19] data = void;
2
3 alias AliasSeq(T...) = T;
4
5 foreach(T; AliasSeq!(ubyte, ushort, uint, ulong))
6 {
7 data[] = 0;
8 assert(ionPutVarInt!T(data.ptr, 0, false) == 1);
9 assert(data[0] == 0x80);
10
11 data[] = 0;
12 assert(ionPutVarInt!T(data.ptr, 1, false) == 1);
13 assert(data[0] == 0x81);
14
15 data[] = 0;
16 assert(ionPutVarInt!T(data.ptr, 1, true) == 1);
17 assert(data[0] == 0xC1);
18
19 data[] = 0;
20 assert(ionPutVarInt!T(data.ptr, 0x3F, false) == 1);
21 assert(data[0] == 0xBF);
22
23 data[] = 0;
24 assert(ionPutVarInt!T(data.ptr, 0x3F, true) == 1);
25 assert(data[0] == 0xFF);
26
27 data[] = 0;
28 assert(ionPutVarInt!T(data.ptr, 0x7F, false) == 2);
29 assert(data[0] == 0x00);
30 assert(data[1] == 0xFF);
31
32 data[] = 0;
33 assert(ionPutVarInt!T(data.ptr, 128, true) == 2);
34 assert(data[0] == 0x41);
35 assert(data[1] == 0x80);
36
37 data[] = 0;
38 assert(ionPutVarInt!T(data.ptr, 127, true) == 2);
39 assert(data[0] == 0x40);
40 assert(data[1] == 0xFF);
41
42
43 data[] = 0;
44 assert(ionPutVarInt!T(data.ptr, 3, true) == 1);
45 assert(data[0] == 0xC3);
46
47 data[] = 0;
48 assert(ionPutVarInt!T(data.ptr, 127, true) == 2);
49 assert(data[0] == 0x40);
50 assert(data[1] == 0xFF);
51
52 data[] = 0;
53 assert(ionPutVarInt!T(data.ptr, 63, true) == 1);
54 assert(data[0] == 0xFF);
55 }
56
57 data[] = 0;
58 assert(ionPutVarInt!uint(data.ptr, int.max, false) == 5);
59 assert(data[0] == 0x07);
60 assert(data[1] == 0x7F);
61 assert(data[2] == 0x7F);
62 assert(data[3] == 0x7F);
63 assert(data[4] == 0xFF);
64
65 data[] = 0;
66 assert(ionPutVarInt!uint(data.ptr, int.max, true) == 5);
67 assert(data[0] == 0x47);
68 assert(data[1] == 0x7F);
69 assert(data[2] == 0x7F);
70 assert(data[3] == 0x7F);
71 assert(data[4] == 0xFF);
72
73 data[] = 0;
74 assert(ionPutVarInt!uint(data.ptr, int.max + 1, true) == 5);
75 assert(data[0] == 0x48);
76 assert(data[1] == 0x00);
77 assert(data[2] == 0x00);
78 assert(data[3] == 0x00);
79 assert(data[4] == 0x80);
80
81 data[] = 0;
82 assert(ionPutVarInt!ulong(data.ptr, long.max >> 1, false) == 9);
83 assert(data[0] == 0x3F);
84 assert(data[1] == 0x7F);
85 assert(data[2] == 0x7F);
86 assert(data[3] == 0x7F);
87 assert(data[4] == 0x7F);
88 assert(data[5] == 0x7F);
89 assert(data[6] == 0x7F);
90 assert(data[7] == 0x7F);
91 assert(data[8] == 0xFF);
92
93 data[] = 0;
94 assert(ionPutVarInt!ulong(data.ptr, long.max, false) == 10);
95 assert(data[0] == 0x00);
96 assert(data[1] == 0x7F);
97 assert(data[2] == 0x7F);
98 assert(data[3] == 0x7F);
99 assert(data[4] == 0x7F);
100 assert(data[5] == 0x7F);
101 assert(data[6] == 0x7F);
102 assert(data[7] == 0x7F);
103 assert(data[8] == 0x7F);
104 assert(data[9] == 0xFF);
105
106 data[] = 0;
107 assert(ionPutVarInt!ulong(data.ptr, long.max, true) == 10);
108 assert(data[0] == 0x40);
109 assert(data[1] == 0x7F);
110 assert(data[2] == 0x7F);
111 assert(data[3] == 0x7F);
112 assert(data[4] == 0x7F);
113 assert(data[5] == 0x7F);
114 assert(data[6] == 0x7F);
115 assert(data[7] == 0x7F);
116 assert(data[8] == 0x7F);
117 assert(data[9] == 0xFF);
118
119 data[] = 0;
120 assert(ionPutVarInt!ulong(data.ptr, -long.min, true) == 10);
121 assert(data[0] == 0x41);
122 assert(data[1] == 0x00);
123 assert(data[2] == 0x00);
124 assert(data[3] == 0x00);
125 assert(data[4] == 0x00);
126 assert(data[5] == 0x00);
127 assert(data[6] == 0x00);
128 assert(data[7] == 0x00);
129 assert(data[8] == 0x00);
130 assert(data[9] == 0x80);
131
132 data[] = 0;
133 assert(ionPutVarInt(data.ptr, ulong.max, true) == 10);
134 assert(data[0] == 0x41);
135 assert(data[1] == 0x7F);
136 assert(data[2] == 0x7F);
137 assert(data[3] == 0x7F);
138 assert(data[4] == 0x7F);
139 assert(data[5] == 0x7F);
140 assert(data[6] == 0x7F);
141 assert(data[7] == 0x7F);
142 assert(data[8] == 0x7F);
143 assert(data[9] == 0xFF);
144
145 data[] = 0;
146 assert(ionPutVarInt(data.ptr, ulong.max, false) == 10);
147 assert(data[0] == 0x01);
148 assert(data[1] == 0x7F);
149 assert(data[2] == 0x7F);
150 assert(data[3] == 0x7F);
151 assert(data[4] == 0x7F);
152 assert(data[5] == 0x7F);
153 assert(data[6] == 0x7F);
154 assert(data[7] == 0x7F);
155 assert(data[8] == 0x7F);
156 assert(data[9] == 0xFF);