victory 0.2.0 → 0.3.0
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.
- checksums.yaml +4 -4
- data/Rakefile +4 -6
- data/USAGE.md +261 -0
- data/ext/containers/bitset/LICENSE.txt +20 -0
- data/ext/containers/bitset/bitset.c +652 -0
- data/ext/containers/bitset/builtin.h +1390 -0
- data/ext/containers/bitset/exact-int.h +229 -0
- data/ext/containers/bitset/extconf.rb +4 -0
- data/ext/containers/xor_list/extconf.rb +1 -1
- data/ext/containers/xor_list/xor_list.c +1 -1
- data/extensions.rb +13 -0
- data/lib/algorithms/greedy.rb +26 -0
- data/lib/algorithms/sort.rb +1 -1
- data/lib/containers/bitset.rb +48 -0
- data/lib/containers/xor_list.rb +3 -0
- data/lib/victory/version.rb +1 -1
- data/lib/victory.rb +6 -8
- data/victory.gemspec +4 -10
- metadata +36 -12
@@ -0,0 +1,229 @@
|
|
1
|
+
/* Exact-width integer types
|
2
|
+
* Portable Snippets - https://gitub.com/nemequ/portable-snippets
|
3
|
+
* Created by Evan Nemerson <evan@nemerson.com>
|
4
|
+
*
|
5
|
+
* To the extent possible under law, the authors have waived all
|
6
|
+
* copyright and related or neighboring rights to this code. For
|
7
|
+
* details, see the Creative Commons Zero 1.0 Universal license at
|
8
|
+
* https://creativecommons.org/publicdomain/zero/1.0/
|
9
|
+
*
|
10
|
+
* This header tries to define psnip_(u)int(8|16|32|64)_t to
|
11
|
+
* appropriate types given your system. For most systems this means
|
12
|
+
* including <stdint.h> and adding a few preprocessor definitions.
|
13
|
+
*
|
14
|
+
* If you prefer, you can define any necessary types yourself.
|
15
|
+
* Snippets in this repository which rely on these types will not
|
16
|
+
* attempt to include this header if you have already defined the
|
17
|
+
* types it uses.
|
18
|
+
*/
|
19
|
+
|
20
|
+
#if !defined(PSNIP_EXACT_INT_H)
|
21
|
+
# define PSNIP_EXACT_INT_H
|
22
|
+
# if !defined(PSNIP_EXACT_INT_HAVE_STDINT)
|
23
|
+
# if defined(_STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
|
24
|
+
# define PSNIP_EXACT_INT_HAVE_STDINT
|
25
|
+
# elif defined(__has_include)
|
26
|
+
# if __has_include(<stdint.h>)
|
27
|
+
# define PSNIP_EXACT_INT_HAVE_STDINT
|
28
|
+
# endif
|
29
|
+
# elif \
|
30
|
+
defined(HAVE_STDINT_H) || \
|
31
|
+
defined(_STDINT_H_INCLUDED) || \
|
32
|
+
defined(_STDINT_H) || \
|
33
|
+
defined(_STDINT_H_)
|
34
|
+
# define PSNIP_EXACT_INT_HAVE_STDINT
|
35
|
+
# elif \
|
36
|
+
(defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))) || \
|
37
|
+
(defined(_MSC_VER) && (_MSC_VER >= 1600)) || \
|
38
|
+
(defined(__SUNPRO_C) && (__SUNPRO_C >= 0x570)) || \
|
39
|
+
(defined(__WATCOMC__) && (__WATCOMC__ >= 1250))
|
40
|
+
# define PSNIP_EXACT_INT_HAVE_STDINT
|
41
|
+
# endif
|
42
|
+
# endif
|
43
|
+
|
44
|
+
# if \
|
45
|
+
defined(__INT8_TYPE__) && defined(__INT16_TYPE__) && defined(__INT32_TYPE__) && defined(__INT64_TYPE__) && \
|
46
|
+
defined(__UINT8_TYPE__) && defined(__UINT16_TYPE__) && defined(__UINT32_TYPE__) && defined(__UINT64_TYPE__)
|
47
|
+
# define psnip_int8_t __INT8_TYPE__
|
48
|
+
# define psnip_int16_t __INT16_TYPE__
|
49
|
+
# define psnip_int32_t __INT32_TYPE__
|
50
|
+
# define psnip_int64_t __INT64_TYPE__
|
51
|
+
# define psnip_uint8_t __UINT8_TYPE__
|
52
|
+
# define psnip_uint16_t __UINT16_TYPE__
|
53
|
+
# define psnip_uint32_t __UINT32_TYPE__
|
54
|
+
# define psnip_uint64_t __UINT64_TYPE__
|
55
|
+
# elif defined(PSNIP_EXACT_INT_HAVE_STDINT)
|
56
|
+
# include <stdint.h>
|
57
|
+
# if !defined(psnip_int8_t)
|
58
|
+
# define psnip_int8_t int8_t
|
59
|
+
# endif
|
60
|
+
# if !defined(psnip_uint8_t)
|
61
|
+
# define psnip_uint8_t uint8_t
|
62
|
+
# endif
|
63
|
+
# if !defined(psnip_int16_t)
|
64
|
+
# define psnip_int16_t int16_t
|
65
|
+
# endif
|
66
|
+
# if !defined(psnip_uint16_t)
|
67
|
+
# define psnip_uint16_t uint16_t
|
68
|
+
# endif
|
69
|
+
# if !defined(psnip_int32_t)
|
70
|
+
# define psnip_int32_t int32_t
|
71
|
+
# endif
|
72
|
+
# if !defined(psnip_uint32_t)
|
73
|
+
# define psnip_uint32_t uint32_t
|
74
|
+
# endif
|
75
|
+
# if !defined(psnip_int64_t)
|
76
|
+
# define psnip_int64_t int64_t
|
77
|
+
# endif
|
78
|
+
# if !defined(psnip_uint64_t)
|
79
|
+
# define psnip_uint64_t uint64_t
|
80
|
+
# endif
|
81
|
+
# elif defined(_MSC_VER)
|
82
|
+
# if !defined(psnip_int8_t)
|
83
|
+
# define psnip_int8_t __int8
|
84
|
+
# endif
|
85
|
+
# if !defined(psnip_uint8_t)
|
86
|
+
# define psnip_uint8_t unsigned __int8
|
87
|
+
# endif
|
88
|
+
# if !defined(psnip_int16_t)
|
89
|
+
# define psnip_int16_t __int16
|
90
|
+
# endif
|
91
|
+
# if !defined(psnip_uint16_t)
|
92
|
+
# define psnip_uint16_t unsigned __int16
|
93
|
+
# endif
|
94
|
+
# if !defined(psnip_int32_t)
|
95
|
+
# define psnip_int32_t __int32
|
96
|
+
# endif
|
97
|
+
# if !defined(psnip_uint32_t)
|
98
|
+
# define psnip_uint32_t unsigned __int32
|
99
|
+
# endif
|
100
|
+
# if !defined(psnip_int64_t)
|
101
|
+
# define psnip_int64_t __int64
|
102
|
+
# endif
|
103
|
+
# if !defined(psnip_uint64_t)
|
104
|
+
# define psnip_uint64_t unsigned __int64
|
105
|
+
# endif
|
106
|
+
# else
|
107
|
+
# include <limits.h>
|
108
|
+
# if !defined(psnip_int8_t)
|
109
|
+
# if defined(CHAR_MIN) && defined(CHAR_MAX) && (CHAR_MIN == (-127-1)) && (CHAR_MAX == 127)
|
110
|
+
# define psnip_int8_t char
|
111
|
+
# elif defined(SHRT_MIN) && defined(SHRT_MAX) && (SHRT_MIN == (-127-1)) && (SHRT_MAX == 127)
|
112
|
+
# define psnip_int8_t short
|
113
|
+
# elif defined(INT_MIN) && defined(INT_MAX) && (INT_MIN == (-127-1)) && (INT_MAX == 127)
|
114
|
+
# define psnip_int8_t int
|
115
|
+
# elif defined(LONG_MIN) && defined(LONG_MAX) && (LONG_MIN == (-127-1)) && (LONG_MAX == 127)
|
116
|
+
# define psnip_int8_t long
|
117
|
+
# elif defined(LLONG_MIN) && defined(LLONG_MAX) && (LLONG_MIN == (-127-1)) && (LLONG_MAX == 127)
|
118
|
+
# define psnip_int8_t long long
|
119
|
+
# else
|
120
|
+
# error Unable to locate 8-bit signed integer type.
|
121
|
+
# endif
|
122
|
+
# endif
|
123
|
+
# if !defined(psnip_uint8_t)
|
124
|
+
# if defined(UCHAR_MAX) && (UCHAR_MAX == 255)
|
125
|
+
# define psnip_uint8_t unsigned char
|
126
|
+
# elif defined(USHRT_MAX) && (USHRT_MAX == 255)
|
127
|
+
# define psnip_uint8_t unsigned short
|
128
|
+
# elif defined(UINT_MAX) && (UINT_MAX == 255)
|
129
|
+
# define psnip_uint8_t unsigned int
|
130
|
+
# elif defined(ULONG_MAX) && (ULONG_MAX == 255)
|
131
|
+
# define psnip_uint8_t unsigned long
|
132
|
+
# elif defined(ULLONG_MAX) && (ULLONG_MAX == 255)
|
133
|
+
# define psnip_uint8_t unsigned long long
|
134
|
+
# else
|
135
|
+
# error Unable to locate 8-bit unsigned integer type.
|
136
|
+
# endif
|
137
|
+
# endif
|
138
|
+
# if !defined(psnip_int16_t)
|
139
|
+
# if defined(CHAR_MIN) && defined(CHAR_MAX) && (CHAR_MIN == (-32767-1)) && (CHAR_MAX == 32767)
|
140
|
+
# define psnip_int16_t char
|
141
|
+
# elif defined(SHRT_MIN) && defined(SHRT_MAX) && (SHRT_MIN == (-32767-1)) && (SHRT_MAX == 32767)
|
142
|
+
# define psnip_int16_t short
|
143
|
+
# elif defined(INT_MIN) && defined(INT_MAX) && (INT_MIN == (-32767-1)) && (INT_MAX == 32767)
|
144
|
+
# define psnip_int16_t int
|
145
|
+
# elif defined(LONG_MIN) && defined(LONG_MAX) && (LONG_MIN == (-32767-1)) && (LONG_MAX == 32767)
|
146
|
+
# define psnip_int16_t long
|
147
|
+
# elif defined(LLONG_MIN) && defined(LLONG_MAX) && (LLONG_MIN == (-32767-1)) && (LLONG_MAX == 32767)
|
148
|
+
# define psnip_int16_t long long
|
149
|
+
# else
|
150
|
+
# error Unable to locate 16-bit signed integer type.
|
151
|
+
# endif
|
152
|
+
# endif
|
153
|
+
# if !defined(psnip_uint16_t)
|
154
|
+
# if defined(UCHAR_MAX) && (UCHAR_MAX == 65535)
|
155
|
+
# define psnip_uint16_t unsigned char
|
156
|
+
# elif defined(USHRT_MAX) && (USHRT_MAX == 65535)
|
157
|
+
# define psnip_uint16_t unsigned short
|
158
|
+
# elif defined(UINT_MAX) && (UINT_MAX == 65535)
|
159
|
+
# define psnip_uint16_t unsigned int
|
160
|
+
# elif defined(ULONG_MAX) && (ULONG_MAX == 65535)
|
161
|
+
# define psnip_uint16_t unsigned long
|
162
|
+
# elif defined(ULLONG_MAX) && (ULLONG_MAX == 65535)
|
163
|
+
# define psnip_uint16_t unsigned long long
|
164
|
+
# else
|
165
|
+
# error Unable to locate 16-bit unsigned integer type.
|
166
|
+
# endif
|
167
|
+
# endif
|
168
|
+
# if !defined(psnip_int32_t)
|
169
|
+
# if defined(CHAR_MIN) && defined(CHAR_MAX) && (CHAR_MIN == (-2147483647-1)) && (CHAR_MAX == 2147483647)
|
170
|
+
# define psnip_int32_t char
|
171
|
+
# elif defined(SHRT_MIN) && defined(SHRT_MAX) && (SHRT_MIN == (-2147483647-1)) && (SHRT_MAX == 2147483647)
|
172
|
+
# define psnip_int32_t short
|
173
|
+
# elif defined(INT_MIN) && defined(INT_MAX) && (INT_MIN == (-2147483647-1)) && (INT_MAX == 2147483647)
|
174
|
+
# define psnip_int32_t int
|
175
|
+
# elif defined(LONG_MIN) && defined(LONG_MAX) && (LONG_MIN == (-2147483647-1)) && (LONG_MAX == 2147483647)
|
176
|
+
# define psnip_int32_t long
|
177
|
+
# elif defined(LLONG_MIN) && defined(LLONG_MAX) && (LLONG_MIN == (-2147483647-1)) && (LLONG_MAX == 2147483647)
|
178
|
+
# define psnip_int32_t long long
|
179
|
+
# else
|
180
|
+
# error Unable to locate 32-bit signed integer type.
|
181
|
+
# endif
|
182
|
+
# endif
|
183
|
+
# if !defined(psnip_uint32_t)
|
184
|
+
# if defined(UCHAR_MAX) && (UCHAR_MAX == 4294967295)
|
185
|
+
# define psnip_uint32_t unsigned char
|
186
|
+
# elif defined(USHRT_MAX) && (USHRT_MAX == 4294967295)
|
187
|
+
# define psnip_uint32_t unsigned short
|
188
|
+
# elif defined(UINT_MAX) && (UINT_MAX == 4294967295)
|
189
|
+
# define psnip_uint32_t unsigned int
|
190
|
+
# elif defined(ULONG_MAX) && (ULONG_MAX == 4294967295)
|
191
|
+
# define psnip_uint32_t unsigned long
|
192
|
+
# elif defined(ULLONG_MAX) && (ULLONG_MAX == 4294967295)
|
193
|
+
# define psnip_uint32_t unsigned long long
|
194
|
+
# else
|
195
|
+
# error Unable to locate 32-bit unsigned integer type.
|
196
|
+
# endif
|
197
|
+
# endif
|
198
|
+
# if !defined(psnip_int64_t)
|
199
|
+
# if defined(CHAR_MIN) && defined(CHAR_MAX) && (CHAR_MIN == (-9223372036854775807LL-1)) && (CHAR_MAX == 9223372036854775807LL)
|
200
|
+
# define psnip_int64_t char
|
201
|
+
# elif defined(SHRT_MIN) && defined(SHRT_MAX) && (SHRT_MIN == (-9223372036854775807LL-1)) && (SHRT_MAX == 9223372036854775807LL)
|
202
|
+
# define psnip_int64_t short
|
203
|
+
# elif defined(INT_MIN) && defined(INT_MAX) && (INT_MIN == (-9223372036854775807LL-1)) && (INT_MAX == 9223372036854775807LL)
|
204
|
+
# define psnip_int64_t int
|
205
|
+
# elif defined(LONG_MIN) && defined(LONG_MAX) && (LONG_MIN == (-9223372036854775807LL-1)) && (LONG_MAX == 9223372036854775807LL)
|
206
|
+
# define psnip_int64_t long
|
207
|
+
# elif defined(LLONG_MIN) && defined(LLONG_MAX) && (LLONG_MIN == (-9223372036854775807LL-1)) && (LLONG_MAX == 9223372036854775807LL)
|
208
|
+
# define psnip_int64_t long long
|
209
|
+
# else
|
210
|
+
# error Unable to locate 64-bit signed integer type.
|
211
|
+
# endif
|
212
|
+
# endif
|
213
|
+
# if !defined(psnip_uint64_t)
|
214
|
+
# if defined(UCHAR_MAX) && (UCHAR_MAX == 18446744073709551615ULL)
|
215
|
+
# define psnip_uint64_t unsigned char
|
216
|
+
# elif defined(USHRT_MAX) && (USHRT_MAX == 18446744073709551615ULL)
|
217
|
+
# define psnip_uint64_t unsigned short
|
218
|
+
# elif defined(UINT_MAX) && (UINT_MAX == 18446744073709551615ULL)
|
219
|
+
# define psnip_uint64_t unsigned int
|
220
|
+
# elif defined(ULONG_MAX) && (ULONG_MAX == 18446744073709551615ULL)
|
221
|
+
# define psnip_uint64_t unsigned long
|
222
|
+
# elif defined(ULLONG_MAX) && (ULLONG_MAX == 18446744073709551615ULL)
|
223
|
+
# define psnip_uint64_t unsigned long long
|
224
|
+
# else
|
225
|
+
# error Unable to locate 64-bit unsigned integer type.
|
226
|
+
# endif
|
227
|
+
# endif
|
228
|
+
# endif
|
229
|
+
#endif
|
@@ -111,7 +111,7 @@ static VALUE xor_list_each(VALUE self) {
|
|
111
111
|
static VALUE list;
|
112
112
|
static VALUE containers;
|
113
113
|
|
114
|
-
void
|
114
|
+
void Init_CXORList() {
|
115
115
|
containers = rb_define_module("Containers");
|
116
116
|
list = rb_define_class_under(containers, "XORList", rb_cObject);
|
117
117
|
rb_define_alloc_func(list, xor_list_alloc);
|
data/extensions.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
Victory::Extension = Struct.new(:path, :name)
|
2
|
+
def extensions
|
3
|
+
[
|
4
|
+
Victory::Extension.new('algorithms/string', 'CString'),
|
5
|
+
Victory::Extension.new('containers/bitset', 'CBitset'),
|
6
|
+
Victory::Extension.new('containers/deque', 'CDeque'),
|
7
|
+
Victory::Extension.new('containers/bst', 'CBst'),
|
8
|
+
Victory::Extension.new('containers/rbtree_map', 'CRBTreeMap'),
|
9
|
+
Victory::Extension.new('containers/splaytree_map', 'CSplayTreeMap'),
|
10
|
+
Victory::Extension.new('containers/xor_list', 'CXORList'),
|
11
|
+
]
|
12
|
+
end
|
13
|
+
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Greedy
|
2
|
+
module Solution
|
3
|
+
attr_reader :score, :next_solutions
|
4
|
+
end
|
5
|
+
|
6
|
+
def self.init(solution)
|
7
|
+
Engine.new(solution)
|
8
|
+
end
|
9
|
+
|
10
|
+
class Engine
|
11
|
+
def initialize(solution)
|
12
|
+
@initial_solution = solution
|
13
|
+
@solutions_history = [@initial_solution]
|
14
|
+
end
|
15
|
+
|
16
|
+
def run(iterations)
|
17
|
+
iterations.times do
|
18
|
+
@solutions_history << @solutions_history[-1].next_solutions.max_by { |solution| solution.score }
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def current_solution
|
23
|
+
@solutions_history[-1]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/algorithms/sort.rb
CHANGED
@@ -0,0 +1,48 @@
|
|
1
|
+
require "CBitset"
|
2
|
+
|
3
|
+
=begin
|
4
|
+
Copyright (c) 2011 Tyler McMullen
|
5
|
+
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
7
|
+
a copy of this software and associated documentation files (the
|
8
|
+
"Software"), to deal in the Software without restriction, including
|
9
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
10
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
11
|
+
permit persons to whom the Software is furnished to do so, subject to
|
12
|
+
the following conditions:
|
13
|
+
|
14
|
+
The above copyright notice and this permission notice shall be
|
15
|
+
included in all copies or substantial portions of the Software.
|
16
|
+
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
18
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
19
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
20
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
21
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
22
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
23
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
24
|
+
=end
|
25
|
+
|
26
|
+
class Containers::Bitset
|
27
|
+
|
28
|
+
# Return a string that represents this bitset packed into 8-bit
|
29
|
+
# characters. The first 3 bits represent the number of padding bits
|
30
|
+
# in the final byte of the string.
|
31
|
+
|
32
|
+
# You could make a good case that this is redundant with
|
33
|
+
# Marshal.dump and Marshal.load, but it does save a few bytes.
|
34
|
+
def pack
|
35
|
+
# Number of bits of zero padding in this representation.
|
36
|
+
padding_bits = (size+3) & 7
|
37
|
+
padding_bits = (padding_bits == 0) ? 0 : (8 - padding_bits)
|
38
|
+
[("%03b" % padding_bits) + self.to_s].pack("b*")
|
39
|
+
end
|
40
|
+
|
41
|
+
# Convert a string created using the pack method back into a bitset.
|
42
|
+
def self.unpack str
|
43
|
+
bits = str.unpack("b*")[0]
|
44
|
+
padding_bits = bits[0...3].to_i(2)
|
45
|
+
from_s(bits[3 .. -1 - padding_bits])
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
data/lib/victory/version.rb
CHANGED
data/lib/victory.rb
CHANGED
@@ -1,18 +1,12 @@
|
|
1
1
|
require "victory/version"
|
2
2
|
|
3
|
-
module Victory
|
4
|
-
class Error < StandardError; end
|
5
|
-
# Your code goes here...
|
6
|
-
end
|
7
|
-
|
8
3
|
module Algorithms; end
|
9
4
|
module Containers; end
|
10
5
|
|
11
|
-
require 'XORList'
|
12
|
-
|
13
6
|
require 'algorithms/search'
|
14
7
|
require 'algorithms/sort'
|
15
8
|
require 'algorithms/string'
|
9
|
+
require 'algorithms/greedy'
|
16
10
|
require 'containers/prefix_tree'
|
17
11
|
require 'containers/heap'
|
18
12
|
require 'containers/stack'
|
@@ -26,6 +20,8 @@ require 'containers/trie'
|
|
26
20
|
require 'containers/kd_tree'
|
27
21
|
require 'containers/tuple'
|
28
22
|
require 'containers/list'
|
23
|
+
require 'containers/bitset'
|
24
|
+
require 'containers/xor_list'
|
29
25
|
require 'io_helpers/reader'
|
30
26
|
require 'io_helpers/writer'
|
31
27
|
require 'include_rgl'
|
@@ -35,4 +31,6 @@ Containers::Set = Set
|
|
35
31
|
require 'ostruct'
|
36
32
|
Containers::OpenStruct = OpenStruct
|
37
33
|
require 'matrix'
|
38
|
-
Containers::Matrix = Matrix
|
34
|
+
Containers::Matrix = Matrix
|
35
|
+
require 'concurrent-ruby'
|
36
|
+
Containers::Concurrent = Concurrent
|
data/victory.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
|
2
1
|
lib = File.expand_path('../lib', __FILE__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
3
|
require 'victory/version'
|
4
|
+
require_relative 'extensions'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = 'victory'
|
@@ -25,19 +25,13 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.bindir = 'exe'
|
26
26
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
27
27
|
spec.require_paths = ['lib', 'ext']
|
28
|
-
spec.extensions =
|
29
|
-
'ext/algorithms/string/extconf.rb',
|
30
|
-
'ext/containers/bst/extconf.rb',
|
31
|
-
'ext/containers/deque/extconf.rb',
|
32
|
-
'ext/containers/rbtree_map/extconf.rb',
|
33
|
-
'ext/containers/splaytree_map/extconf.rb',
|
34
|
-
'ext/containers/xor_list/extconf.rb'
|
35
|
-
]
|
28
|
+
spec.extensions = extensions.map { |extension| "ext/#{extension.path}/extconf.rb" }
|
36
29
|
|
37
|
-
spec.add_development_dependency 'bundler', '~> 1
|
30
|
+
spec.add_development_dependency 'bundler', '~> 2.1'
|
38
31
|
spec.add_development_dependency 'minitest', '~> 5.0'
|
39
32
|
spec.add_development_dependency 'rake', '~> 10.0'
|
40
33
|
spec.add_development_dependency 'rake-compiler'
|
41
34
|
spec.add_development_dependency 'rgl', '~> 0.5.4'
|
42
35
|
spec.add_development_dependency 'rspec'
|
36
|
+
spec.add_development_dependency 'concurrent-ruby', '~> 1.1.6'
|
43
37
|
end
|
metadata
CHANGED
@@ -1,38 +1,38 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: victory
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arnold Szederjesi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-02-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
|
+
prerelease: false
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
18
|
- - "~>"
|
18
19
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1
|
20
|
+
version: '2.1'
|
20
21
|
type: :development
|
21
|
-
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1
|
26
|
+
version: '2.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: minitest
|
29
|
+
prerelease: false
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
30
31
|
requirements:
|
31
32
|
- - "~>"
|
32
33
|
- !ruby/object:Gem::Version
|
33
34
|
version: '5.0'
|
34
35
|
type: :development
|
35
|
-
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
@@ -40,13 +40,13 @@ dependencies:
|
|
40
40
|
version: '5.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
|
+
prerelease: false
|
43
44
|
requirement: !ruby/object:Gem::Requirement
|
44
45
|
requirements:
|
45
46
|
- - "~>"
|
46
47
|
- !ruby/object:Gem::Version
|
47
48
|
version: '10.0'
|
48
49
|
type: :development
|
49
|
-
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
@@ -54,13 +54,13 @@ dependencies:
|
|
54
54
|
version: '10.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake-compiler
|
57
|
+
prerelease: false
|
57
58
|
requirement: !ruby/object:Gem::Requirement
|
58
59
|
requirements:
|
59
60
|
- - ">="
|
60
61
|
- !ruby/object:Gem::Version
|
61
62
|
version: '0'
|
62
63
|
type: :development
|
63
|
-
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ">="
|
@@ -68,13 +68,13 @@ dependencies:
|
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rgl
|
71
|
+
prerelease: false
|
71
72
|
requirement: !ruby/object:Gem::Requirement
|
72
73
|
requirements:
|
73
74
|
- - "~>"
|
74
75
|
- !ruby/object:Gem::Version
|
75
76
|
version: 0.5.4
|
76
77
|
type: :development
|
77
|
-
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
@@ -82,26 +82,41 @@ dependencies:
|
|
82
82
|
version: 0.5.4
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rspec
|
85
|
+
prerelease: false
|
85
86
|
requirement: !ruby/object:Gem::Requirement
|
86
87
|
requirements:
|
87
88
|
- - ">="
|
88
89
|
- !ruby/object:Gem::Version
|
89
90
|
version: '0'
|
90
91
|
type: :development
|
91
|
-
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: concurrent-ruby
|
99
|
+
prerelease: false
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - "~>"
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 1.1.6
|
105
|
+
type: :development
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.1.6
|
97
111
|
description:
|
98
112
|
email:
|
99
113
|
- szederjesiarnold@gmail.com
|
100
114
|
executables: []
|
101
115
|
extensions:
|
102
116
|
- ext/algorithms/string/extconf.rb
|
103
|
-
- ext/containers/
|
117
|
+
- ext/containers/bitset/extconf.rb
|
104
118
|
- ext/containers/deque/extconf.rb
|
119
|
+
- ext/containers/bst/extconf.rb
|
105
120
|
- ext/containers/rbtree_map/extconf.rb
|
106
121
|
- ext/containers/splaytree_map/extconf.rb
|
107
122
|
- ext/containers/xor_list/extconf.rb
|
@@ -121,6 +136,11 @@ files:
|
|
121
136
|
- ext/algorithms/string/LICENSE.md
|
122
137
|
- ext/algorithms/string/extconf.rb
|
123
138
|
- ext/algorithms/string/string.c
|
139
|
+
- ext/containers/bitset/LICENSE.txt
|
140
|
+
- ext/containers/bitset/bitset.c
|
141
|
+
- ext/containers/bitset/builtin.h
|
142
|
+
- ext/containers/bitset/exact-int.h
|
143
|
+
- ext/containers/bitset/extconf.rb
|
124
144
|
- ext/containers/bst/LICENSE.md
|
125
145
|
- ext/containers/bst/bst.c
|
126
146
|
- ext/containers/bst/extconf.rb
|
@@ -135,9 +155,12 @@ files:
|
|
135
155
|
- ext/containers/splaytree_map/splaytree.c
|
136
156
|
- ext/containers/xor_list/extconf.rb
|
137
157
|
- ext/containers/xor_list/xor_list.c
|
158
|
+
- extensions.rb
|
159
|
+
- lib/algorithms/greedy.rb
|
138
160
|
- lib/algorithms/search.rb
|
139
161
|
- lib/algorithms/sort.rb
|
140
162
|
- lib/algorithms/string.rb
|
163
|
+
- lib/containers/bitset.rb
|
141
164
|
- lib/containers/deque.rb
|
142
165
|
- lib/containers/heap.rb
|
143
166
|
- lib/containers/kd_tree.rb
|
@@ -151,6 +174,7 @@ files:
|
|
151
174
|
- lib/containers/suffix_array.rb
|
152
175
|
- lib/containers/trie.rb
|
153
176
|
- lib/containers/tuple.rb
|
177
|
+
- lib/containers/xor_list.rb
|
154
178
|
- lib/include_rgl.rb
|
155
179
|
- lib/io_helpers/reader.rb
|
156
180
|
- lib/io_helpers/writer.rb
|
@@ -179,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
179
203
|
- !ruby/object:Gem::Version
|
180
204
|
version: '0'
|
181
205
|
requirements: []
|
182
|
-
rubygems_version: 3.0.
|
206
|
+
rubygems_version: 3.0.3
|
183
207
|
signing_key:
|
184
208
|
specification_version: 4
|
185
209
|
summary: A gem providing all useful algorithms and data structures for programming
|