bitset_bm 1.0.0 → 1.1.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 +8 -8
- data/.travis.yml +2 -1
- data/Gemfile.lock +2 -2
- data/bitset.gemspec +1 -1
- data/ext/bitset/bitset.c +30 -10
- data/lib/bitset/version.rb +1 -1
- data/spec/bitset_spec.rb +23 -0
- metadata +2 -8
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
Y2RjOWU1MTJiNzVjYTRlODVmMTMzNWMwZTJiOTllM2ZlODZjNWZiMQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MTNlMmVlYzdjMjU0NzNhZWViZjY3ZDU5YzUwNDJiYjkzOWNiNjcyMQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MDY1ZWEwY2M3YTA1Njc5YTljM2RmYTQyMGI5MjYwMDUzZmFjNjlhNWI5ZWEy
|
10
|
+
YTRhZWNkZTg5ZWI2MDM1ZDBmNDU0YzRhZGJmNmMzYzNkZWQwNzNjNTk5NzNk
|
11
|
+
OTFlMjMzNGQ4YTFlYTNjNTEwZmEyYzFmNTYxZmNiODk3OTJlNWY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NGNlODU0ZjI1YzA4MzQ1MTY2ZGRjOGIwZjM1ODYzYzQwMzQ2OWE3NTY3MGI1
|
14
|
+
Y2I0ODdhM2ViMTc1M2M5NDI5YTQ2NWJmYzg0Y2E4YjU1YmQ3MzQ1YzhhNzZh
|
15
|
+
Y2ZlZTgyMzNmOGE5YTY0ZjY3N2NhZDU1NWEyMmFmMjhhOWM4NWU=
|
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
bitset_bm (1.
|
4
|
+
bitset_bm (1.1.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -25,5 +25,5 @@ PLATFORMS
|
|
25
25
|
DEPENDENCIES
|
26
26
|
bitset_bm!
|
27
27
|
rake (~> 10.1)
|
28
|
-
rake-compiler (
|
28
|
+
rake-compiler (>= 0.9.2)
|
29
29
|
rspec (~> 2.0)
|
data/bitset.gemspec
CHANGED
@@ -28,6 +28,6 @@ Gem::Specification.new do |s|
|
|
28
28
|
|
29
29
|
s.add_development_dependency "rspec", "~> 2.0"
|
30
30
|
s.add_development_dependency "rake", "~> 10.1"
|
31
|
-
s.add_development_dependency 'rake-compiler', '
|
31
|
+
s.add_development_dependency 'rake-compiler', '>= 0.9.2'
|
32
32
|
end
|
33
33
|
|
data/ext/bitset/bitset.c
CHANGED
@@ -104,11 +104,21 @@ static VALUE rb_bitset_aset(VALUE self, VALUE index, VALUE value) {
|
|
104
104
|
static VALUE rb_bitset_set(int argc, VALUE * argv, VALUE self) {
|
105
105
|
int i;
|
106
106
|
Bitset * bs = get_bitset(self);
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
107
|
+
|
108
|
+
if (argc == 1 && rb_obj_is_kind_of(argv[0], rb_const_get(rb_cObject, rb_intern("Array")))) {
|
109
|
+
for(i = 0; i < RARRAY_LEN(argv[0]); i++) {
|
110
|
+
VALUE index = RARRAY_PTR(argv[0])[i];
|
111
|
+
int idx = NUM2INT(index);
|
112
|
+
validate_index(bs, idx);
|
113
|
+
set_bit(bs, idx);
|
114
|
+
}
|
115
|
+
} else {
|
116
|
+
for(i = 0; i < argc; i++) {
|
117
|
+
VALUE index = argv[i];
|
118
|
+
int idx = NUM2INT(index);
|
119
|
+
validate_index(bs, idx);
|
120
|
+
set_bit(bs, idx);
|
121
|
+
}
|
112
122
|
}
|
113
123
|
return Qtrue;
|
114
124
|
}
|
@@ -116,11 +126,21 @@ static VALUE rb_bitset_set(int argc, VALUE * argv, VALUE self) {
|
|
116
126
|
static VALUE rb_bitset_clear(int argc, VALUE * argv, VALUE self) {
|
117
127
|
int i;
|
118
128
|
Bitset * bs = get_bitset(self);
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
129
|
+
|
130
|
+
if (argc == 1 && rb_obj_is_kind_of(argv[0], rb_const_get(rb_cObject, rb_intern("Array")))) {
|
131
|
+
for(i = 0; i < RARRAY_LEN(argv[0]); i++) {
|
132
|
+
VALUE index = RARRAY_PTR(argv[0])[i];
|
133
|
+
int idx = NUM2INT(index);
|
134
|
+
validate_index(bs, idx);
|
135
|
+
clear_bit(bs, idx);
|
136
|
+
}
|
137
|
+
} else {
|
138
|
+
for(i = 0; i < argc; i++) {
|
139
|
+
VALUE index = argv[i];
|
140
|
+
int idx = NUM2INT(index);
|
141
|
+
validate_index(bs, idx);
|
142
|
+
clear_bit(bs, idx);
|
143
|
+
}
|
124
144
|
}
|
125
145
|
return Qtrue;
|
126
146
|
}
|
data/lib/bitset/version.rb
CHANGED
data/spec/bitset_spec.rb
CHANGED
@@ -68,10 +68,22 @@ describe Bitset do
|
|
68
68
|
bs[1].should == true
|
69
69
|
bs[2].should == true
|
70
70
|
bs[3].should == true
|
71
|
+
bs[4].should == false
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'sets True for all given indexes when passed an array' do
|
75
|
+
bs = Bitset.new(8)
|
76
|
+
bs.set [1,2,3]
|
77
|
+
|
78
|
+
bs[1].should == true
|
79
|
+
bs[2].should == true
|
80
|
+
bs[3].should == true
|
81
|
+
bs[4].should == false
|
71
82
|
end
|
72
83
|
end
|
73
84
|
|
74
85
|
describe :clear do
|
86
|
+
|
75
87
|
it 'sets False for all given indexes' do
|
76
88
|
bs = Bitset.new(8)
|
77
89
|
bs.set 1,2,3
|
@@ -81,6 +93,17 @@ describe Bitset do
|
|
81
93
|
bs[2].should == true
|
82
94
|
bs[3].should == false
|
83
95
|
end
|
96
|
+
|
97
|
+
it 'sets False for all given indexes' do
|
98
|
+
bs = Bitset.new(8)
|
99
|
+
bs.set [1,2,3]
|
100
|
+
bs.clear [1,3]
|
101
|
+
|
102
|
+
bs[1].should == false
|
103
|
+
bs[2].should == true
|
104
|
+
bs[3].should == false
|
105
|
+
end
|
106
|
+
|
84
107
|
end
|
85
108
|
|
86
109
|
describe :set? do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bitset_bm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tyler McMullen
|
@@ -43,9 +43,6 @@ dependencies:
|
|
43
43
|
name: rake-compiler
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - ~>
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: '0.9'
|
49
46
|
- - ! '>='
|
50
47
|
- !ruby/object:Gem::Version
|
51
48
|
version: 0.9.2
|
@@ -53,9 +50,6 @@ dependencies:
|
|
53
50
|
prerelease: false
|
54
51
|
version_requirements: !ruby/object:Gem::Requirement
|
55
52
|
requirements:
|
56
|
-
- - ~>
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
version: '0.9'
|
59
53
|
- - ! '>='
|
60
54
|
- !ruby/object:Gem::Version
|
61
55
|
version: 0.9.2
|
@@ -102,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
102
96
|
version: '0'
|
103
97
|
requirements: []
|
104
98
|
rubyforge_project:
|
105
|
-
rubygems_version: 2.
|
99
|
+
rubygems_version: 2.4.5
|
106
100
|
signing_key:
|
107
101
|
specification_version: 4
|
108
102
|
summary: Bitset implementation.
|