Skip to content

Commit

Permalink
Merge pull request #1444 from aboch/bs
Browse files Browse the repository at this point in the history
Fix bitseq.SetAnyInRange
  • Loading branch information
mavenugo authored Sep 14, 2016
2 parents 74eef7e + 291de3d commit c8ce8c7
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 5 deletions.
2 changes: 1 addition & 1 deletion bitseq/sequence.go
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ func (h *Handle) getCopy() *Handle {

// SetAnyInRange atomically sets the first unset bit in the specified range in the sequence and returns the corresponding ordinal
func (h *Handle) SetAnyInRange(start, end uint64) (uint64, error) {
if end-start <= 0 || end >= h.bits {
if end < start || end >= h.bits {
return invalidPos, fmt.Errorf("invalid bit range [%d, %d]", start, end)
}
if h.Unselected() == 0 {
Expand Down
9 changes: 5 additions & 4 deletions bitseq/sequence_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -639,10 +639,6 @@ func TestSetInRange(t *testing.T) {
t.Fatalf("Expected failure. Got success with ordinal:%d", o)
}

if o, err := hnd.SetAnyInRange(5, 5); err == nil {
t.Fatalf("Expected failure. Got success with ordinal:%d", o)
}

if o, err := hnd.SetAnyInRange(0, numBits); err == nil {
t.Fatalf("Expected failure. Got success with ordinal:%d", o)
}
Expand Down Expand Up @@ -692,6 +688,11 @@ func TestSetInRange(t *testing.T) {
t.Fatalf("Unexpected failure: %v", err)
}

// set one bit using the set range with 1 bit size range
if _, err := hnd.SetAnyInRange(uint64(163*blockLen-1), uint64(163*blockLen-1)); err != nil {
t.Fatal(err)
}

// create a non multiple of 32 mask
hnd, err = NewHandle("", nil, "", 30)
if err != nil {
Expand Down

0 comments on commit c8ce8c7

Please sign in to comment.