bitwise 0.3.0 → 0.3.1
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.
- data/VERSION +1 -1
- data/bitwise.gemspec +1 -1
- data/lib/bitwise.rb +2 -1
- data/spec/bitwise_spec.rb +10 -2
- metadata +9 -9
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.1
|
data/bitwise.gemspec
CHANGED
data/lib/bitwise.rb
CHANGED
@@ -47,6 +47,7 @@ class Bitwise
|
|
47
47
|
|
48
48
|
def get_byte(index)
|
49
49
|
@div, @mod = index.divmod(8)
|
50
|
+
raise IndexError, 'out of bounds' if @div < 0 or @div >= @value.bytesize
|
50
51
|
@byte = @value.getbyte(@div)
|
51
52
|
end
|
52
53
|
|
@@ -88,7 +89,7 @@ class Bitwise
|
|
88
89
|
array.each do |index|
|
89
90
|
set_at(index)
|
90
91
|
end
|
91
|
-
|
92
|
+
array.size
|
92
93
|
end
|
93
94
|
|
94
95
|
def indexes
|
data/spec/bitwise_spec.rb
CHANGED
@@ -12,14 +12,17 @@ describe Bitwise do
|
|
12
12
|
it "bit-based" do
|
13
13
|
@bitwise.to_bits.should == '00000000'
|
14
14
|
|
15
|
-
@bitwise.set_at
|
16
|
-
@bitwise.set_at
|
15
|
+
@bitwise.set_at(1)
|
16
|
+
@bitwise.set_at(4)
|
17
17
|
@bitwise.to_bits.should == '01001000'
|
18
18
|
@bitwise.cardinality.should == 2
|
19
19
|
|
20
20
|
@bitwise.clear_at(1)
|
21
21
|
@bitwise.to_bits.should == '00001000'
|
22
22
|
@bitwise.cardinality.should == 1
|
23
|
+
|
24
|
+
lambda { @bitwise.set_at(7) }.should_not raise_error(IndexError)
|
25
|
+
lambda { @bitwise.set_at(8) }.should raise_error(IndexError)
|
23
26
|
end
|
24
27
|
|
25
28
|
it "string-based" do
|
@@ -34,6 +37,7 @@ describe Bitwise do
|
|
34
37
|
@bitwise.to_bits.should == '011010001000000010000000'
|
35
38
|
@bitwise.indexes.should == [1, 2, 4, 8, 16]
|
36
39
|
@bitwise.cardinality.should == 5
|
40
|
+
|
37
41
|
@bitwise.set_at 10
|
38
42
|
@bitwise.to_bits.should == '011010001010000010000000'
|
39
43
|
@bitwise.indexes.should == [1, 2, 4, 8, 10, 16]
|
@@ -105,15 +109,19 @@ describe Bitwise do
|
|
105
109
|
it "indexes assignment" do
|
106
110
|
assign_indexes(1000, 10)
|
107
111
|
measure { @bitwise.indexes = @indexes }.should < 0.0001
|
112
|
+
measure { @bitwise.indexes }.should < 0.0001
|
108
113
|
|
109
114
|
assign_indexes(10_000, 100)
|
110
115
|
measure { @bitwise.indexes = @indexes }.should < 0.001
|
116
|
+
measure { @bitwise.indexes }.should < 0.001
|
111
117
|
|
112
118
|
assign_indexes(100_000, 1000)
|
113
119
|
measure { @bitwise.indexes = @indexes }.should < 0.01
|
120
|
+
measure { @bitwise.indexes }.should < 0.01
|
114
121
|
|
115
122
|
assign_indexes(1000_000, 10_000)
|
116
123
|
measure { @bitwise.indexes = @indexes }.should < 0.1
|
124
|
+
measure { @bitwise.indexes }.should < 0.1
|
117
125
|
end
|
118
126
|
|
119
127
|
it "cardinality sparse" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bitwise
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-12-13 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &2155170980 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2155170980
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
requirement: &
|
27
|
+
requirement: &2155169340 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2155169340
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: jeweler
|
38
|
-
requirement: &
|
38
|
+
requirement: &2155168600 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2155168600
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake-compiler
|
49
|
-
requirement: &
|
49
|
+
requirement: &2155167760 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2155167760
|
58
58
|
description: Fast, memory efficient bitwise operations on large binary strings
|
59
59
|
email: kenn.ejima@gmail.com
|
60
60
|
executables: []
|