bin_utils 0.0.4-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,471 @@
1
+ # coding: utf-8
2
+ require 'minitest/spec'
3
+ require 'minitest/autorun'
4
+
5
+ shared_example = proc do
6
+ def src; "\x01\x02\x03\x04\xf5\xf6\xf7\xf8\xf9\x0a\x0b\x0c".force_encoding(::Encoding::BINARY) ; end
7
+ def dest; "\x01\x02".force_encoding(::Encoding::BINARY); end
8
+
9
+ it "must get integer" do
10
+ util.get_int8(src).must_equal 1
11
+ util.get_int8(src, 0).must_equal 1
12
+ util.get_int8(src, 4).must_equal 0xf5
13
+ util.get_sint8(src).must_equal 1
14
+ util.get_sint8(src, 0).must_equal 1
15
+ util.get_sint8(src, 4).must_equal(-11)
16
+
17
+ util.get_int16_le(src).must_equal 0x0201
18
+ util.get_int16_le(src, 0).must_equal 0x0201
19
+ util.get_int16_le(src, 5).must_equal 0xf7f6
20
+ util.get_sint16_le(src).must_equal 0x0201
21
+ util.get_sint16_le(src, 0).must_equal 0x0201
22
+ util.get_sint16_le(src, 5).must_equal(-2058)
23
+
24
+ util.get_int16_be(src).must_equal 0x0102
25
+ util.get_int16_be(src, 0).must_equal 0x0102
26
+ util.get_int16_be(src, 5).must_equal 0xf6f7
27
+ util.get_sint16_be(src).must_equal 0x0102
28
+ util.get_sint16_be(src, 0).must_equal 0x0102
29
+ util.get_sint16_be(src, 5).must_equal(-2313)
30
+
31
+ util.get_int24_le(src).must_equal 0x030201
32
+ util.get_int24_le(src, 0).must_equal 0x030201
33
+ util.get_int24_le(src, 5).must_equal 0xf8f7f6
34
+ util.get_sint24_le(src).must_equal 0x030201
35
+ util.get_sint24_le(src, 0).must_equal 0x030201
36
+ util.get_sint24_le(src, 5).must_equal(-460810)
37
+
38
+ util.get_int24_be(src).must_equal 0x010203
39
+ util.get_int24_be(src, 0).must_equal 0x010203
40
+ util.get_int24_be(src, 5).must_equal 0xf6f7f8
41
+ util.get_sint24_be(src).must_equal 0x010203
42
+ util.get_sint24_be(src, 0).must_equal 0x010203
43
+ util.get_sint24_be(src, 5).must_equal(-591880)
44
+
45
+ util.get_int32_le(src).must_equal 0x04030201
46
+ util.get_int32_le(src, 0).must_equal 0x04030201
47
+ util.get_int32_le(src, 4).must_equal 0xf8f7f6f5
48
+ util.get_sint32_le(src).must_equal 0x04030201
49
+ util.get_sint32_le(src, 0).must_equal 0x04030201
50
+ util.get_sint32_le(src, 4).must_equal(-117967115)
51
+
52
+ util.get_int32_be(src).must_equal 0x01020304
53
+ util.get_int32_be(src, 0).must_equal 0x01020304
54
+ util.get_int32_be(src, 4).must_equal 0xf5f6f7f8
55
+ util.get_sint32_be(src).must_equal 0x01020304
56
+ util.get_sint32_be(src, 0).must_equal 0x01020304
57
+ util.get_sint32_be(src, 4).must_equal(-168364040)
58
+
59
+ util.get_int40_le(src).must_equal 0xf504030201
60
+ util.get_int40_le(src, 0).must_equal 0xf504030201
61
+ util.get_int40_le(src, 3).must_equal 0xf8f7f6f504
62
+ util.get_sint40_le(src).must_equal(-47177334271)
63
+ util.get_sint40_le(src, 0).must_equal(-47177334271)
64
+ util.get_sint40_le(src, 3).must_equal(-30199581436)
65
+
66
+ util.get_int40_be(src).must_equal 0x01020304f5
67
+ util.get_int40_be(src, 0).must_equal 0x01020304f5
68
+ util.get_int40_be(src, 4).must_equal 0xf5f6f7f8f9
69
+ util.get_sint40_be(src).must_equal 0x01020304f5
70
+ util.get_sint40_be(src, 0).must_equal 0x01020304f5
71
+ util.get_sint40_be(src, 4).must_equal(-43101193991)
72
+
73
+ util.get_int48_le(src).must_equal 0xf6f504030201
74
+ util.get_int48_le(src, 0).must_equal 0xf6f504030201
75
+ util.get_int48_le(src, 4).must_equal 0x0af9f8f7f6f5
76
+ util.get_sint48_le(src).must_equal(-9942781984255)
77
+ util.get_sint48_le(src, 0).must_equal(-9942781984255)
78
+ util.get_sint48_le(src, 4).must_equal 0x0af9f8f7f6f5
79
+
80
+ util.get_int48_be(src).must_equal 0x01020304f5f6
81
+ util.get_int48_be(src, 0).must_equal 0x01020304f5f6
82
+ util.get_int48_be(src, 4).must_equal 0xf5f6f7f8f90a
83
+ util.get_sint48_be(src).must_equal 0x01020304f5f6
84
+ util.get_sint48_be(src, 0).must_equal 0x01020304f5f6
85
+ util.get_sint48_be(src, 4).must_equal(-11033905661686)
86
+
87
+ util.get_int56_le(src).must_equal 0xf7f6f504030201
88
+ util.get_int56_le(src, 0).must_equal 0xf7f6f504030201
89
+ util.get_int56_le(src, 4).must_equal 0x0b0af9f8f7f6f5
90
+ util.get_sint56_le(src).must_equal(-2261742595669503)
91
+ util.get_sint56_le(src, 0).must_equal(-2261742595669503)
92
+ util.get_sint56_le(src, 4).must_equal 3108293483951861
93
+
94
+ util.get_int56_be(src).must_equal 0x01020304f5f6f7
95
+ util.get_int56_be(src, 0).must_equal 0x01020304f5f6f7
96
+ util.get_int56_be(src, 4).must_equal 0xf5f6f7f8f90a0b
97
+ util.get_sint56_be(src).must_equal 0x01020304f5f6f7
98
+ util.get_sint56_be(src, 0).must_equal 0x01020304f5f6f7
99
+ util.get_sint56_be(src, 4).must_equal(-2824679849391605)
100
+
101
+ util.get_int64_le(src).must_equal 0xf8f7f6f504030201
102
+ util.get_int64_le(src, 0).must_equal 0xf8f7f6f504030201
103
+ util.get_int64_le(src, 4).must_equal 0x0c0b0af9f8f7f6f5
104
+ util.get_sint64_le(src).must_equal(-506664900861165055)
105
+ util.get_sint64_le(src, 0).must_equal(-506664900861165055)
106
+ util.get_sint64_le(src, 4).must_equal 0x0c0b0af9f8f7f6f5
107
+
108
+ util.get_int64_be(src).must_equal 0x01020304f5f6f7f8
109
+ util.get_int64_be(src, 0).must_equal 0x01020304f5f6f7f8
110
+ util.get_int64_be(src, 4).must_equal 0xf5f6f7f8f90a0b0c
111
+ util.get_sint64_be(src).must_equal 0x01020304f5f6f7f8
112
+ util.get_sint64_be(src, 0).must_equal 0x01020304f5f6f7f8
113
+ util.get_sint64_be(src, 4).must_equal(-723118041444250868)
114
+
115
+ util.get_ber(src).must_equal 1
116
+ util.get_ber(src, 0).must_equal 1
117
+ util.get_ber(src, 6).must_equal 251542666
118
+ end
119
+
120
+ def asrc; "\x01\x02\x03\x04\x05\x06\x07\x08\x09".force_encoding(::Encoding::BINARY) ; end
121
+ def msrc; "\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9".force_encoding(::Encoding::BINARY) ; end
122
+
123
+ it "must slice integer" do
124
+ s = asrc; util.slice_int8!(s).must_equal 0x01; s.must_equal asrc[1..-1]
125
+ s = msrc; util.slice_int8!(s).must_equal 0xf1; s.must_equal msrc[1..-1]
126
+ s = asrc; util.slice_sint8!(s).must_equal 0x01; s.must_equal asrc[1..-1]
127
+ s = msrc; util.slice_sint8!(s).must_equal(-15); s.must_equal msrc[1..-1]
128
+
129
+ s = asrc; util.slice_int16_le!(s).must_equal 0x0201; s.must_equal asrc[2..-1]
130
+ s = msrc; util.slice_int16_le!(s).must_equal 0xf2f1; s.must_equal msrc[2..-1]
131
+ s = asrc; util.slice_sint16_le!(s).must_equal 0x0201; s.must_equal asrc[2..-1]
132
+ s = msrc; util.slice_sint16_le!(s).must_equal(-3343); s.must_equal msrc[2..-1]
133
+
134
+ s = asrc; util.slice_int16_be!(s).must_equal 0x0102; s.must_equal asrc[2..-1]
135
+ s = msrc; util.slice_int16_be!(s).must_equal 0xf1f2; s.must_equal msrc[2..-1]
136
+ s = asrc; util.slice_sint16_be!(s).must_equal 0x0102; s.must_equal asrc[2..-1]
137
+ s = msrc; util.slice_sint16_be!(s).must_equal(-3598); s.must_equal msrc[2..-1]
138
+
139
+ s = asrc; util.slice_int24_le!(s).must_equal 0x030201; s.must_equal asrc[3..-1]
140
+ s = msrc; util.slice_int24_le!(s).must_equal 0xf3f2f1; s.must_equal msrc[3..-1]
141
+ s = asrc; util.slice_sint24_le!(s).must_equal 0x030201; s.must_equal asrc[3..-1]
142
+ s = msrc; util.slice_sint24_le!(s).must_equal(-789775); s.must_equal msrc[3..-1]
143
+
144
+ s = asrc; util.slice_int24_be!(s).must_equal 0x010203; s.must_equal asrc[3..-1]
145
+ s = msrc; util.slice_int24_be!(s).must_equal 0xf1f2f3; s.must_equal msrc[3..-1]
146
+ s = asrc; util.slice_sint24_be!(s).must_equal 0x010203; s.must_equal asrc[3..-1]
147
+ s = msrc; util.slice_sint24_be!(s).must_equal(-920845); s.must_equal msrc[3..-1]
148
+
149
+ s = asrc; util.slice_int32_le!(s).must_equal 0x04030201; s.must_equal asrc[4..-1]
150
+ s = msrc; util.slice_int32_le!(s).must_equal 0xf4f3f2f1; s.must_equal msrc[4..-1]
151
+ s = asrc; util.slice_sint32_le!(s).must_equal 0x04030201; s.must_equal asrc[4..-1]
152
+ s = msrc; util.slice_sint32_le!(s).must_equal(-185339151); s.must_equal msrc[4..-1]
153
+
154
+ s = asrc; util.slice_int32_be!(s).must_equal 0x01020304; s.must_equal asrc[4..-1]
155
+ s = msrc; util.slice_int32_be!(s).must_equal 0xf1f2f3f4; s.must_equal msrc[4..-1]
156
+ s = asrc; util.slice_sint32_be!(s).must_equal 0x01020304; s.must_equal asrc[4..-1]
157
+ s = msrc; util.slice_sint32_be!(s).must_equal(-235736076); s.must_equal msrc[4..-1]
158
+
159
+ s = asrc; util.slice_int40_le!(s).must_equal 0x0504030201; s.must_equal asrc[5..-1]
160
+ s = msrc; util.slice_int40_le!(s).must_equal 0xf5f4f3f2f1; s.must_equal msrc[5..-1]
161
+ s = asrc; util.slice_sint40_le!(s).must_equal 0x0504030201; s.must_equal asrc[5..-1]
162
+ s = msrc; util.slice_sint40_le!(s).must_equal(-43135012111); s.must_equal msrc[5..-1]
163
+
164
+ s = asrc; util.slice_int40_be!(s).must_equal 0x0102030405; s.must_equal asrc[5..-1]
165
+ s = msrc; util.slice_int40_be!(s).must_equal 0xf1f2f3f4f5; s.must_equal msrc[5..-1]
166
+ s = asrc; util.slice_sint40_be!(s).must_equal 0x0102030405; s.must_equal asrc[5..-1]
167
+ s = msrc; util.slice_sint40_be!(s).must_equal(-60348435211); s.must_equal msrc[5..-1]
168
+
169
+ s = asrc; util.slice_int48_le!(s).must_equal 0x060504030201; s.must_equal asrc[6..-1]
170
+ s = msrc; util.slice_int48_le!(s).must_equal 0xf6f5f4f3f2f1; s.must_equal msrc[6..-1]
171
+ s = asrc; util.slice_sint48_le!(s).must_equal 0x060504030201; s.must_equal asrc[6..-1]
172
+ s = msrc; util.slice_sint48_le!(s).must_equal(-9938739662095); s.must_equal msrc[6..-1]
173
+
174
+ s = asrc; util.slice_int48_be!(s).must_equal 0x010203040506; s.must_equal asrc[6..-1]
175
+ s = msrc; util.slice_int48_be!(s).must_equal 0xf1f2f3f4f5f6; s.must_equal msrc[6..-1]
176
+ s = asrc; util.slice_sint48_be!(s).must_equal 0x010203040506; s.must_equal asrc[6..-1]
177
+ s = msrc; util.slice_sint48_be!(s).must_equal(-15449199413770); s.must_equal msrc[6..-1]
178
+
179
+ s = asrc; util.slice_int56_le!(s).must_equal 0x07060504030201; s.must_equal asrc[7..-1]
180
+ s = msrc; util.slice_int56_le!(s).must_equal 0xf7f6f5f4f3f2f1; s.must_equal msrc[7..-1]
181
+ s = asrc; util.slice_sint56_le!(s).must_equal 0x07060504030201; s.must_equal asrc[7..-1]
182
+ s = msrc; util.slice_sint56_le!(s).must_equal(-2261738553347343); s.must_equal msrc[7..-1]
183
+
184
+ s = asrc; util.slice_int56_be!(s).must_equal 0x01020304050607; s.must_equal asrc[7..-1]
185
+ s = msrc; util.slice_int56_be!(s).must_equal 0xf1f2f3f4f5f6f7; s.must_equal msrc[7..-1]
186
+ s = asrc; util.slice_sint56_be!(s).must_equal 0x01020304050607; s.must_equal asrc[7..-1]
187
+ s = msrc; util.slice_sint56_be!(s).must_equal(-3954995049924873); s.must_equal msrc[7..-1]
188
+
189
+ s = asrc; util.slice_int64_le!(s).must_equal 0x0807060504030201; s.must_equal asrc[8..-1]
190
+ s = msrc; util.slice_int64_le!(s).must_equal 0xf8f7f6f5f4f3f2f1; s.must_equal msrc[8..-1]
191
+ s = asrc; util.slice_sint64_le!(s).must_equal 0x0807060504030201; s.must_equal asrc[8..-1]
192
+ s = msrc; util.slice_sint64_le!(s).must_equal(-506664896818842895); s.must_equal msrc[8..-1]
193
+
194
+ s = asrc; util.slice_int64_be!(s).must_equal 0x0102030405060708; s.must_equal asrc[8..-1]
195
+ s = msrc; util.slice_int64_be!(s).must_equal 0xf1f2f3f4f5f6f7f8; s.must_equal msrc[8..-1]
196
+ s = asrc; util.slice_sint64_be!(s).must_equal 0x0102030405060708; s.must_equal asrc[8..-1]
197
+ s = msrc; util.slice_sint64_be!(s).must_equal(-1012478732780767240); s.must_equal msrc[8..-1]
198
+
199
+ s = "\x01\x02\x03\x04"; util.slice_ber!(s).must_equal 1; s.must_equal "\x02\x03\x04"
200
+ s = "\xf1\x02\x03\x04"; util.slice_ber!(s).must_equal 14466; s.must_equal "\x03\x04"
201
+ s = "\xf1\xf2\x03\x04"; util.slice_ber!(s).must_equal 1865987; s.must_equal "\x04"
202
+ s = "\xf1\xf2\xf3\x04"; util.slice_ber!(s).must_equal 238860676; s.must_equal ""
203
+ end
204
+
205
+ it "must append integer" do
206
+ d = dest; util.append_int8!(d, 0x03); d.must_equal "\x01\x02\x03"
207
+ d = dest; util.append_int8!(d, 0xf3); d.must_equal "\x01\x02\xf3".force_encoding('binary')
208
+ d = dest; util.append_int8!(d, -13); d.must_equal "\x01\x02\xf3".force_encoding('binary')
209
+
210
+ d = dest; util.append_int16_le!(d, 0x0403); d.must_equal "\x01\x02\x03\x04"
211
+ d = dest; util.append_int16_le!(d, 0xf4f3); d.must_equal "\x01\x02\xf3\xf4".force_encoding('binary')
212
+ d = dest; util.append_int16_le!(d, -2829); d.must_equal "\x01\x02\xf3\xf4".force_encoding('binary')
213
+
214
+ d = dest; util.append_int16_be!(d, 0x0304); d.must_equal "\x01\x02\x03\x04"
215
+ d = dest; util.append_int16_be!(d, 0xf3f4); d.must_equal "\x01\x02\xf3\xf4".force_encoding('binary')
216
+ d = dest; util.append_int16_be!(d, -3084); d.must_equal "\x01\x02\xf3\xf4".force_encoding('binary')
217
+
218
+ d = dest; util.append_int24_le!(d, 0x050403); d.must_equal "\x01\x02\x03\x04\x05"
219
+ d = dest; util.append_int24_le!(d, 0xf5f4f3); d.must_equal "\x01\x02\xf3\xf4\xf5".force_encoding('binary')
220
+ d = dest; util.append_int24_le!(d, -658189); d.must_equal "\x01\x02\xf3\xf4\xf5".force_encoding('binary')
221
+
222
+ d = dest; util.append_int24_be!(d, 0x030405); d.must_equal "\x01\x02\x03\x04\x05"
223
+ d = dest; util.append_int24_be!(d, 0xf3f4f5); d.must_equal "\x01\x02\xf3\xf4\xf5".force_encoding('binary')
224
+ d = dest; util.append_int24_be!(d, -789259); d.must_equal "\x01\x02\xf3\xf4\xf5".force_encoding('binary')
225
+
226
+ d = dest; util.append_int32_le!(d, 0x06050403); d.must_equal "\x01\x02\x03\x04\x05\x06"
227
+ d = dest; util.append_int32_le!(d, 0xf6f5f4f3); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6".force_encoding('binary')
228
+ d = dest; util.append_int32_le!(d, -151653133); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6".force_encoding('binary')
229
+
230
+ d = dest; util.append_int32_be!(d, 0x03040506); d.must_equal "\x01\x02\x03\x04\x05\x06"
231
+ d = dest; util.append_int32_be!(d, 0xf3f4f5f6); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6".force_encoding('binary')
232
+ d = dest; util.append_int32_be!(d, -202050058); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6".force_encoding('binary')
233
+
234
+ d = dest; util.append_int40_le!(d, 0x0706050403); d.must_equal "\x01\x02\x03\x04\x05\x06\x07"
235
+ d = dest; util.append_int40_le!(d, 0xf7f6f5f4f3); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6\xf7".force_encoding('binary')
236
+ d = dest; util.append_int40_le!(d, -34511391501); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6\xf7".force_encoding('binary')
237
+
238
+ d = dest; util.append_int40_be!(d, 0x0304050607); d.must_equal "\x01\x02\x03\x04\x05\x06\x07"
239
+ d = dest; util.append_int40_be!(d, 0xf3f4f5f6f7); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6\xf7".force_encoding('binary')
240
+ d = dest; util.append_int40_be!(d, -51724814601); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6\xf7".force_encoding('binary')
241
+
242
+ d = dest; util.append_int48_le!(d, 0x080706050403); d.must_equal "\x01\x02\x03\x04\x05\x06\x07\x08"
243
+ d = dest; util.append_int48_le!(d, 0xf8f7f6f5f4f3); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6\xf7\xf8".force_encoding('binary')
244
+ d = dest; util.append_int48_le!(d, -7731092785933); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6\xf7\xf8".force_encoding('binary')
245
+
246
+ d = dest; util.append_int48_be!(d, 0x030405060708); d.must_equal "\x01\x02\x03\x04\x05\x06\x07\x08"
247
+ d = dest; util.append_int48_be!(d, 0xf3f4f5f6f7f8); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6\xf7\xf8".force_encoding('binary')
248
+ d = dest; util.append_int48_be!(d, -13241552537608); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6\xf7\xf8".force_encoding('binary')
249
+
250
+ d = dest; util.append_int56_le!(d, 0x09080706050403); d.must_equal "\x01\x02\x03\x04\x05\x06\x07\x08\x09"
251
+ d = dest; util.append_int56_le!(d, 0xf9f8f7f6f5f4f3); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6\xf7\xf8\xf9".force_encoding('binary')
252
+ d = dest; util.append_int56_le!(d, -1696580953049869); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6\xf7\xf8\xf9".force_encoding('binary')
253
+
254
+ d = dest; util.append_int56_be!(d, 0x03040506070809); d.must_equal "\x01\x02\x03\x04\x05\x06\x07\x08\x09"
255
+ d = dest; util.append_int56_be!(d, 0xf3f4f5f6f7f8f9); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6\xf7\xf8\xf9".force_encoding('binary')
256
+ d = dest; util.append_int56_be!(d, -3389837449627399); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6\xf7\xf8\xf9".force_encoding('binary')
257
+
258
+ d = dest; util.append_int64_le!(d, 0x0a09080706050403); d.must_equal "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a"
259
+ d = dest; util.append_int64_le!(d, 0xfaf9f8f7f6f5f4f3); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa".force_encoding('binary')
260
+ d = dest; util.append_int64_le!(d, -361984551142689549); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa".force_encoding('binary')
261
+
262
+ d = dest; util.append_int64_be!(d, 0x030405060708090a); d.must_equal "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a"
263
+ d = dest; util.append_int64_be!(d, 0xf3f4f5f6f7f8f9fa); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa".force_encoding('binary')
264
+ d = dest; util.append_int64_be!(d, -867798387104613894); d.must_equal "\x01\x02\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa".force_encoding('binary')
265
+
266
+ d = dest; util.append_ber!(d, 3); d.must_equal "\x01\x02\x03"
267
+ d = dest; util.append_ber!(d, 14724); d.must_equal "\x01\x02\xf3\x04".force_encoding('binary')
268
+ d = dest; util.append_ber!(d, 1899013); d.must_equal "\x01\x02\xf3\xf4\x05".force_encoding('binary')
269
+ d = dest; util.append_ber!(d, 243088006); d.must_equal "\x01\x02\xf3\xf4\xf5\x06".force_encoding('binary')
270
+ end
271
+
272
+ it "must append bersize and integer" do
273
+ d = dest; util.append_bersize_int8!(d, 0x03); d.must_equal "\x01\x02\x01\x03"
274
+ d = dest; util.append_bersize_int8!(d, 0xf3); d.must_equal "\x01\x02\x01\xf3".force_encoding('binary')
275
+ d = dest; util.append_bersize_int8!(d, -13); d.must_equal "\x01\x02\x01\xf3".force_encoding('binary')
276
+
277
+ d = dest; util.append_bersize_int16_le!(d, 0x0403); d.must_equal "\x01\x02\x02\x03\x04"
278
+ d = dest; util.append_bersize_int16_le!(d, 0xf4f3); d.must_equal "\x01\x02\x02\xf3\xf4".force_encoding('binary')
279
+ d = dest; util.append_bersize_int16_le!(d, -2829); d.must_equal "\x01\x02\x02\xf3\xf4".force_encoding('binary')
280
+
281
+ d = dest; util.append_bersize_int16_be!(d, 0x0304); d.must_equal "\x01\x02\x02\x03\x04"
282
+ d = dest; util.append_bersize_int16_be!(d, 0xf3f4); d.must_equal "\x01\x02\x02\xf3\xf4".force_encoding('binary')
283
+ d = dest; util.append_bersize_int16_be!(d, -3084); d.must_equal "\x01\x02\x02\xf3\xf4".force_encoding('binary')
284
+
285
+ d = dest; util.append_bersize_int24_le!(d, 0x050403); d.must_equal "\x01\x02\x03\x03\x04\x05"
286
+ d = dest; util.append_bersize_int24_le!(d, 0xf5f4f3); d.must_equal "\x01\x02\x03\xf3\xf4\xf5".force_encoding('binary')
287
+ d = dest; util.append_bersize_int24_le!(d, -658189); d.must_equal "\x01\x02\x03\xf3\xf4\xf5".force_encoding('binary')
288
+
289
+ d = dest; util.append_bersize_int24_be!(d, 0x030405); d.must_equal "\x01\x02\x03\x03\x04\x05"
290
+ d = dest; util.append_bersize_int24_be!(d, 0xf3f4f5); d.must_equal "\x01\x02\x03\xf3\xf4\xf5".force_encoding('binary')
291
+ d = dest; util.append_bersize_int24_be!(d, -789259); d.must_equal "\x01\x02\x03\xf3\xf4\xf5".force_encoding('binary')
292
+
293
+ d = dest; util.append_bersize_int32_le!(d, 0x06050403); d.must_equal "\x01\x02\x04\x03\x04\x05\x06"
294
+ d = dest; util.append_bersize_int32_le!(d, 0xf6f5f4f3); d.must_equal "\x01\x02\x04\xf3\xf4\xf5\xf6".force_encoding('binary')
295
+ d = dest; util.append_bersize_int32_le!(d, -151653133); d.must_equal "\x01\x02\x04\xf3\xf4\xf5\xf6".force_encoding('binary')
296
+
297
+ d = dest; util.append_bersize_int32_be!(d, 0x03040506); d.must_equal "\x01\x02\x04\x03\x04\x05\x06"
298
+ d = dest; util.append_bersize_int32_be!(d, 0xf3f4f5f6); d.must_equal "\x01\x02\x04\xf3\xf4\xf5\xf6".force_encoding('binary')
299
+ d = dest; util.append_bersize_int32_be!(d, -202050058); d.must_equal "\x01\x02\x04\xf3\xf4\xf5\xf6".force_encoding('binary')
300
+
301
+ d = dest; util.append_bersize_int40_le!(d, 0x0706050403); d.must_equal "\x01\x02\x05\x03\x04\x05\x06\x07"
302
+ d = dest; util.append_bersize_int40_le!(d, 0xf7f6f5f4f3); d.must_equal "\x01\x02\x05\xf3\xf4\xf5\xf6\xf7".force_encoding('binary')
303
+ d = dest; util.append_bersize_int40_le!(d, -34511391501); d.must_equal "\x01\x02\x05\xf3\xf4\xf5\xf6\xf7".force_encoding('binary')
304
+
305
+ d = dest; util.append_bersize_int40_be!(d, 0x0304050607); d.must_equal "\x01\x02\x05\x03\x04\x05\x06\x07"
306
+ d = dest; util.append_bersize_int40_be!(d, 0xf3f4f5f6f7); d.must_equal "\x01\x02\x05\xf3\xf4\xf5\xf6\xf7".force_encoding('binary')
307
+ d = dest; util.append_bersize_int40_be!(d, -51724814601); d.must_equal "\x01\x02\x05\xf3\xf4\xf5\xf6\xf7".force_encoding('binary')
308
+
309
+ d = dest; util.append_bersize_int48_le!(d, 0x080706050403); d.must_equal "\x01\x02\x06\x03\x04\x05\x06\x07\x08"
310
+ d = dest; util.append_bersize_int48_le!(d, 0xf8f7f6f5f4f3); d.must_equal "\x01\x02\x06\xf3\xf4\xf5\xf6\xf7\xf8".force_encoding('binary')
311
+ d = dest; util.append_bersize_int48_le!(d, -7731092785933); d.must_equal "\x01\x02\x06\xf3\xf4\xf5\xf6\xf7\xf8".force_encoding('binary')
312
+
313
+ d = dest; util.append_bersize_int48_be!(d, 0x030405060708); d.must_equal "\x01\x02\x06\x03\x04\x05\x06\x07\x08"
314
+ d = dest; util.append_bersize_int48_be!(d, 0xf3f4f5f6f7f8); d.must_equal "\x01\x02\x06\xf3\xf4\xf5\xf6\xf7\xf8".force_encoding('binary')
315
+ d = dest; util.append_bersize_int48_be!(d, -13241552537608); d.must_equal "\x01\x02\x06\xf3\xf4\xf5\xf6\xf7\xf8".force_encoding('binary')
316
+
317
+ d = dest; util.append_bersize_int56_le!(d, 0x09080706050403); d.must_equal "\x01\x02\x07\x03\x04\x05\x06\x07\x08\x09"
318
+ d = dest; util.append_bersize_int56_le!(d, 0xf9f8f7f6f5f4f3); d.must_equal "\x01\x02\x07\xf3\xf4\xf5\xf6\xf7\xf8\xf9".force_encoding('binary')
319
+ d = dest; util.append_bersize_int56_le!(d, -1696580953049869); d.must_equal "\x01\x02\x07\xf3\xf4\xf5\xf6\xf7\xf8\xf9".force_encoding('binary')
320
+
321
+ d = dest; util.append_bersize_int56_be!(d, 0x03040506070809); d.must_equal "\x01\x02\x07\x03\x04\x05\x06\x07\x08\x09"
322
+ d = dest; util.append_bersize_int56_be!(d, 0xf3f4f5f6f7f8f9); d.must_equal "\x01\x02\x07\xf3\xf4\xf5\xf6\xf7\xf8\xf9".force_encoding('binary')
323
+ d = dest; util.append_bersize_int56_be!(d, -3389837449627399); d.must_equal "\x01\x02\x07\xf3\xf4\xf5\xf6\xf7\xf8\xf9".force_encoding('binary')
324
+
325
+ d = dest; util.append_bersize_int64_le!(d, 0x0a09080706050403); d.must_equal "\x01\x02\x08\x03\x04\x05\x06\x07\x08\x09\x0a"
326
+ d = dest; util.append_bersize_int64_le!(d, 0xfaf9f8f7f6f5f4f3); d.must_equal "\x01\x02\x08\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa".force_encoding('binary')
327
+ d = dest; util.append_bersize_int64_le!(d, -361984551142689549); d.must_equal "\x01\x02\x08\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa".force_encoding('binary')
328
+
329
+ d = dest; util.append_bersize_int64_be!(d, 0x030405060708090a); d.must_equal "\x01\x02\x08\x03\x04\x05\x06\x07\x08\x09\x0a"
330
+ d = dest; util.append_bersize_int64_be!(d, 0xf3f4f5f6f7f8f9fa); d.must_equal "\x01\x02\x08\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa".force_encoding('binary')
331
+ d = dest; util.append_bersize_int64_be!(d, -867798387104613894); d.must_equal "\x01\x02\x08\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa".force_encoding('binary')
332
+
333
+ d = dest; util.append_bersize_ber!(d, 3); d.must_equal "\x01\x02\x01\x03"
334
+ d = dest; util.append_bersize_ber!(d, 14724); d.must_equal "\x01\x02\x02\xf3\x04".force_encoding('binary')
335
+ d = dest; util.append_bersize_ber!(d, 1899013); d.must_equal "\x01\x02\x03\xf3\xf4\x05".force_encoding('binary')
336
+ d = dest; util.append_bersize_ber!(d, 243088006); d.must_equal "\x01\x02\x04\xf3\xf4\xf5\x06".force_encoding('binary')
337
+ end
338
+
339
+ it "must append int32size little endian and integer" do
340
+ d = dest; util.append_int32size_int8_le!(d, 0x03); d.must_equal "\x01\x02\x01\x00\x00\x00\x03"
341
+ d = dest; util.append_int32size_int8_le!(d, 0xf3); d.must_equal "\x01\x02\x01\x00\x00\x00\xf3".force_encoding('binary')
342
+ d = dest; util.append_int32size_int8_le!(d, -13); d.must_equal "\x01\x02\x01\x00\x00\x00\xf3".force_encoding('binary')
343
+
344
+ d = dest; util.append_int32size_int16_le!(d, 0x0403); d.must_equal "\x01\x02\x02\x00\x00\x00\x03\x04"
345
+ d = dest; util.append_int32size_int16_le!(d, 0xf4f3); d.must_equal "\x01\x02\x02\x00\x00\x00\xf3\xf4".force_encoding('binary')
346
+ d = dest; util.append_int32size_int16_le!(d, -2829); d.must_equal "\x01\x02\x02\x00\x00\x00\xf3\xf4".force_encoding('binary')
347
+
348
+ d = dest; util.append_int32size_int24_le!(d, 0x050403); d.must_equal "\x01\x02\x03\x00\x00\x00\x03\x04\x05"
349
+ d = dest; util.append_int32size_int24_le!(d, 0xf5f4f3); d.must_equal "\x01\x02\x03\x00\x00\x00\xf3\xf4\xf5".force_encoding('binary')
350
+ d = dest; util.append_int32size_int24_le!(d, -658189); d.must_equal "\x01\x02\x03\x00\x00\x00\xf3\xf4\xf5".force_encoding('binary')
351
+
352
+ d = dest; util.append_int32size_int32_le!(d, 0x06050403); d.must_equal "\x01\x02\x04\x00\x00\x00\x03\x04\x05\x06"
353
+ d = dest; util.append_int32size_int32_le!(d, 0xf6f5f4f3); d.must_equal "\x01\x02\x04\x00\x00\x00\xf3\xf4\xf5\xf6".force_encoding('binary')
354
+ d = dest; util.append_int32size_int32_le!(d, -151653133); d.must_equal "\x01\x02\x04\x00\x00\x00\xf3\xf4\xf5\xf6".force_encoding('binary')
355
+
356
+ d = dest; util.append_int32size_int40_le!(d, 0x0706050403); d.must_equal "\x01\x02\x05\x00\x00\x00\x03\x04\x05\x06\x07"
357
+ d = dest; util.append_int32size_int40_le!(d, 0xf7f6f5f4f3); d.must_equal "\x01\x02\x05\x00\x00\x00\xf3\xf4\xf5\xf6\xf7".force_encoding('binary')
358
+ d = dest; util.append_int32size_int40_le!(d, -34511391501); d.must_equal "\x01\x02\x05\x00\x00\x00\xf3\xf4\xf5\xf6\xf7".force_encoding('binary')
359
+
360
+ d = dest; util.append_int32size_int48_le!(d, 0x080706050403); d.must_equal "\x01\x02\x06\x00\x00\x00\x03\x04\x05\x06\x07\x08"
361
+ d = dest; util.append_int32size_int48_le!(d, 0xf8f7f6f5f4f3); d.must_equal "\x01\x02\x06\x00\x00\x00\xf3\xf4\xf5\xf6\xf7\xf8".force_encoding('binary')
362
+ d = dest; util.append_int32size_int48_le!(d, -7731092785933); d.must_equal "\x01\x02\x06\x00\x00\x00\xf3\xf4\xf5\xf6\xf7\xf8".force_encoding('binary')
363
+
364
+ d = dest; util.append_int32size_int56_le!(d, 0x09080706050403); d.must_equal "\x01\x02\x07\x00\x00\x00\x03\x04\x05\x06\x07\x08\x09"
365
+ d = dest; util.append_int32size_int56_le!(d, 0xf9f8f7f6f5f4f3); d.must_equal "\x01\x02\x07\x00\x00\x00\xf3\xf4\xf5\xf6\xf7\xf8\xf9".force_encoding('binary')
366
+ d = dest; util.append_int32size_int56_le!(d, -1696580953049869); d.must_equal "\x01\x02\x07\x00\x00\x00\xf3\xf4\xf5\xf6\xf7\xf8\xf9".force_encoding('binary')
367
+
368
+ d = dest; util.append_int32size_int64_le!(d, 0x0a09080706050403); d.must_equal "\x01\x02\x08\x00\x00\x00\x03\x04\x05\x06\x07\x08\x09\x0a"
369
+ d = dest; util.append_int32size_int64_le!(d, 0xfaf9f8f7f6f5f4f3); d.must_equal "\x01\x02\x08\x00\x00\x00\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa".force_encoding('binary')
370
+ d = dest; util.append_int32size_int64_le!(d, -361984551142689549); d.must_equal "\x01\x02\x08\x00\x00\x00\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa".force_encoding('binary')
371
+
372
+ d = dest; util.append_int32size_ber_le!(d, 3); d.must_equal "\x01\x02\x01\x00\x00\x00\x03"
373
+ d = dest; util.append_int32size_ber_le!(d, 14724); d.must_equal "\x01\x02\x02\x00\x00\x00\xf3\x04".force_encoding('binary')
374
+ d = dest; util.append_int32size_ber_le!(d, 1899013); d.must_equal "\x01\x02\x03\x00\x00\x00\xf3\xf4\x05".force_encoding('binary')
375
+ d = dest; util.append_int32size_ber_le!(d, 243088006); d.must_equal "\x01\x02\x04\x00\x00\x00\xf3\xf4\xf5\x06".force_encoding('binary')
376
+ end
377
+
378
+ it "must append int32size big endian and integer" do
379
+ d = dest; util.append_int32size_int8_be!(d, 0x03); d.must_equal "\x01\x02\x00\x00\x00\x01\x03"
380
+ d = dest; util.append_int32size_int8_be!(d, 0xf3); d.must_equal "\x01\x02\x00\x00\x00\x01\xf3".force_encoding('binary')
381
+ d = dest; util.append_int32size_int8_be!(d, -13); d.must_equal "\x01\x02\x00\x00\x00\x01\xf3".force_encoding('binary')
382
+
383
+ d = dest; util.append_int32size_int16_be!(d, 0x0304); d.must_equal "\x01\x02\x00\x00\x00\x02\x03\x04"
384
+ d = dest; util.append_int32size_int16_be!(d, 0xf3f4); d.must_equal "\x01\x02\x00\x00\x00\x02\xf3\xf4".force_encoding('binary')
385
+ d = dest; util.append_int32size_int16_be!(d, -3084); d.must_equal "\x01\x02\x00\x00\x00\x02\xf3\xf4".force_encoding('binary')
386
+
387
+ d = dest; util.append_int32size_int24_be!(d, 0x030405); d.must_equal "\x01\x02\x00\x00\x00\x03\x03\x04\x05"
388
+ d = dest; util.append_int32size_int24_be!(d, 0xf3f4f5); d.must_equal "\x01\x02\x00\x00\x00\x03\xf3\xf4\xf5".force_encoding('binary')
389
+ d = dest; util.append_int32size_int24_be!(d, -789259); d.must_equal "\x01\x02\x00\x00\x00\x03\xf3\xf4\xf5".force_encoding('binary')
390
+
391
+ d = dest; util.append_int32size_int32_be!(d, 0x03040506); d.must_equal "\x01\x02\x00\x00\x00\x04\x03\x04\x05\x06"
392
+ d = dest; util.append_int32size_int32_be!(d, 0xf3f4f5f6); d.must_equal "\x01\x02\x00\x00\x00\x04\xf3\xf4\xf5\xf6".force_encoding('binary')
393
+ d = dest; util.append_int32size_int32_be!(d, -202050058); d.must_equal "\x01\x02\x00\x00\x00\x04\xf3\xf4\xf5\xf6".force_encoding('binary')
394
+
395
+ d = dest; util.append_int32size_int40_be!(d, 0x0304050607); d.must_equal "\x01\x02\x00\x00\x00\x05\x03\x04\x05\x06\x07"
396
+ d = dest; util.append_int32size_int40_be!(d, 0xf3f4f5f6f7); d.must_equal "\x01\x02\x00\x00\x00\x05\xf3\xf4\xf5\xf6\xf7".force_encoding('binary')
397
+ d = dest; util.append_int32size_int40_be!(d, -51724814601); d.must_equal "\x01\x02\x00\x00\x00\x05\xf3\xf4\xf5\xf6\xf7".force_encoding('binary')
398
+
399
+ d = dest; util.append_int32size_int48_be!(d, 0x030405060708); d.must_equal "\x01\x02\x00\x00\x00\x06\x03\x04\x05\x06\x07\x08"
400
+ d = dest; util.append_int32size_int48_be!(d, 0xf3f4f5f6f7f8); d.must_equal "\x01\x02\x00\x00\x00\x06\xf3\xf4\xf5\xf6\xf7\xf8".force_encoding('binary')
401
+ d = dest; util.append_int32size_int48_be!(d, -13241552537608); d.must_equal "\x01\x02\x00\x00\x00\x06\xf3\xf4\xf5\xf6\xf7\xf8".force_encoding('binary')
402
+
403
+ d = dest; util.append_int32size_int56_be!(d, 0x03040506070809); d.must_equal "\x01\x02\x00\x00\x00\x07\x03\x04\x05\x06\x07\x08\x09"
404
+ d = dest; util.append_int32size_int56_be!(d, 0xf3f4f5f6f7f8f9); d.must_equal "\x01\x02\x00\x00\x00\x07\xf3\xf4\xf5\xf6\xf7\xf8\xf9".force_encoding('binary')
405
+ d = dest; util.append_int32size_int56_be!(d, -3389837449627399); d.must_equal "\x01\x02\x00\x00\x00\x07\xf3\xf4\xf5\xf6\xf7\xf8\xf9".force_encoding('binary')
406
+
407
+ d = dest; util.append_int32size_int64_be!(d, 0x030405060708090a); d.must_equal "\x01\x02\x00\x00\x00\x08\x03\x04\x05\x06\x07\x08\x09\x0a"
408
+ d = dest; util.append_int32size_int64_be!(d, 0xf3f4f5f6f7f8f9fa); d.must_equal "\x01\x02\x00\x00\x00\x08\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa".force_encoding('binary')
409
+ d = dest; util.append_int32size_int64_be!(d, -867798387104613894); d.must_equal "\x01\x02\x00\x00\x00\x08\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa".force_encoding('binary')
410
+
411
+ d = dest; util.append_int32size_ber_be!(d, 3); d.must_equal "\x01\x02\x00\x00\x00\x01\x03"
412
+ d = dest; util.append_int32size_ber_be!(d, 14724); d.must_equal "\x01\x02\x00\x00\x00\x02\xf3\x04".force_encoding('binary')
413
+ d = dest; util.append_int32size_ber_be!(d, 1899013); d.must_equal "\x01\x02\x00\x00\x00\x03\xf3\xf4\x05".force_encoding('binary')
414
+ d = dest; util.append_int32size_ber_be!(d, 243088006); d.must_equal "\x01\x02\x00\x00\x00\x04\xf3\xf4\xf5\x06".force_encoding('binary')
415
+ end
416
+
417
+ it "must append string" do
418
+ d = dest; util.append_string!(d, "asdfфыва"); d.must_equal "\x01\x02asdf\xD1\x84\xD1\x8B\xD0\xB2\xD0\xB0".force_encoding('binary')
419
+ d = dest; util.append_bersize_string!(d, "asdfфыва"); d.must_equal "\x01\x02\x0casdf\xD1\x84\xD1\x8B\xD0\xB2\xD0\xB0".force_encoding('binary')
420
+ d = dest; util.append_int32size_string_le!(d, "asdfфыва"); d.must_equal "\x01\x02\x0c\x00\x00\x00asdf\xD1\x84\xD1\x8B\xD0\xB2\xD0\xB0".force_encoding('binary')
421
+ d = dest; util.append_int32size_string_be!(d, "asdfфыва"); d.must_equal "\x01\x02\x00\x00\x00\x0casdf\xD1\x84\xD1\x8B\xD0\xB2\xD0\xB0".force_encoding('binary')
422
+ end
423
+
424
+ it "must append complex" do
425
+ d0 = dest; util.append_int8_ber!(d0, 5, 500)
426
+ d1 = dest; util.append_int8!(d1, 5); util.append_ber!(d1, 500)
427
+ d0.must_equal d1
428
+ d0 = dest; util.append_ber_int8!(d0, 500, 5)
429
+ d1 = dest; util.append_ber!(d1, 500); util.append_int8!(d1, 5)
430
+ d0.must_equal d1
431
+
432
+ for _e in %w{le be}
433
+ for m1 in %w{ber int8}
434
+ for m2 in %w{int16 int24 int32}
435
+ d0 = dest; util.send(:"append_#{m1}_#{m2}_#{_e}!", d0, 251, 172)
436
+ d1 = dest; util.send(:"append_#{m1}!", d1, 251); util.send(:"append_#{m2}_#{_e}!", d1, 172)
437
+ d0.must_equal d1
438
+ d0 = dest; util.send(:"append_#{m2}_#{m1}_#{_e}!", d0, 251, 172)
439
+ d1 = dest; util.send(:"append_#{m2}_#{_e}!", d1, 251); util.send(:"append_#{m1}!", d1, 172)
440
+ d0.must_equal d1
441
+ end
442
+ end
443
+
444
+ for m1 in %w{int16 int24 int32}
445
+ for m2 in %w{int16 int24 int32}
446
+ next if m1 == m2
447
+ d0 = dest; util.send(:"append_#{m1}_#{m2}_#{_e}!", d0, 254, 199)
448
+ d1 = dest; util.send(:"append_#{m1}_#{_e}!", d1, 254); util.send(:"append_#{m2}_#{_e}!", d1, 199)
449
+ d0.must_equal d1
450
+ end
451
+ end
452
+ end
453
+ end
454
+ end
455
+
456
+ require 'bin_utils/pure_ruby'
457
+ describe 'pure_ruby' do
458
+ let(:util){ BinUtils::PureRuby }
459
+ class_eval(&shared_example)
460
+ end
461
+
462
+ begin
463
+ require 'bin_utils/bin_utils'
464
+ describe 'native' do
465
+ let(:util){ BinUtils::Native }
466
+ class_eval(&shared_example)
467
+ end
468
+ rescue LoadError
469
+ puts "NO NATIVE MODULE TESTED"
470
+ end
471
+
metadata ADDED
@@ -0,0 +1,73 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bin_utils
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.4
5
+ prerelease:
6
+ platform: java
7
+ authors:
8
+ - Sokolov Yura 'funny-falcon'
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-02-06 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake-compiler
16
+ version_requirements: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: !binary |-
21
+ MA==
22
+ none: false
23
+ requirement: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: !binary |-
28
+ MA==
29
+ none: false
30
+ prerelease: false
31
+ type: :development
32
+ description: utils for extracting binary integers from binary string and packing them back
33
+ email:
34
+ - funny.falcon@gmail.com
35
+ executables: []
36
+ extensions: []
37
+ extra_rdoc_files: []
38
+ files:
39
+ - lib/bin_utils.rb
40
+ - lib/bin_utils/pure_ruby.rb
41
+ - lib/bin_utils/version.rb
42
+ - test/benchmark.rb
43
+ - test/test_bin_utils.rb
44
+ - ext/bin_utils/bin_utils.jar
45
+ homepage: https://github.com/funny-falcon/bin_utils
46
+ licenses: []
47
+ post_install_message:
48
+ rdoc_options: []
49
+ require_paths:
50
+ - lib
51
+ - ext
52
+ required_ruby_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 1.9.1
57
+ none: false
58
+ required_rubygems_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: !binary |-
63
+ MA==
64
+ none: false
65
+ requirements: []
66
+ rubyforge_project:
67
+ rubygems_version: 1.8.24
68
+ signing_key:
69
+ specification_version: 3
70
+ summary: Faster alternative to String#unpack and Array#unpack, though not as complete as those methods
71
+ test_files:
72
+ - test/benchmark.rb
73
+ - test/test_bin_utils.rb