add set all Treu and all False

This commit is contained in:
daniel.w 2024-09-05 11:03:52 +08:00
parent 1ee022c237
commit 73ba2660c0
2 changed files with 40 additions and 0 deletions

View File

@ -150,3 +150,23 @@ func (b Bitmap) UpdateFrom(newBitmap Bitmap) Bitmap {
return b return b
} }
// SetAllTrue 將 Bitmap 中的所有位設置為 true1
func (b Bitmap) SetAllTrue() Bitmap {
// 將 Bitmap 中的每個 byte 設置為 0xFF表示所有 bit 都為 1
for i := range b {
b[i] = 0xFF
}
return b
}
// SetAllFalse 將 Bitmap 中的所有位設置為 false0
func (b Bitmap) SetAllFalse() Bitmap {
// 將 Bitmap 中的每個 byte 設置為 0表示所有 bit 都為 0
for i := range b {
b[i] = 0
}
return b
}

View File

@ -135,3 +135,23 @@ func TestBitmap_UpdateFrom(t *testing.T) {
}) })
} }
} }
func TestBitmap_SetAllTrueAndSetAllFalse(t *testing.T) {
bitmap := MakeBitmapWithBitSize(128)
// 測試 SetAllTrue
bitmap.SetAllTrue()
for i := 0; i < bitmap.BitSize(); i++ {
if !bitmap.IsTrue(uint32(i)) {
t.Errorf("Expected bit %d to be true, but got false", i)
}
}
// 測試 SetAllFalse
bitmap.SetAllFalse()
for i := 0; i < bitmap.BitSize(); i++ {
if bitmap.IsTrue(uint32(i)) {
t.Errorf("Expected bit %d to be false, but got true", i)
}
}
}