Packages

c++ stl style elixir bitset module

Current section

Files

Jump to
bitset test bitset_test.exs
Raw

test/bitset_test.exs

defmodule BitsetTest do
use ExUnit.Case
doctest Bitset
import Bitset
import Kernel, except: [to_string: 1]
test "bitset - new" do
assert new(0) == %Bitset{size: 0, data: <<>>}
assert new(10) == %Bitset{size: 10, data: <<0, 0::2>>}
assert new(17) == %Bitset{size: 17, data: <<0, 0, 0::1>>}
end
test "bitset - all?" do
assert not (new(10) |> set(0) |> all?())
assert not (new(10) |> set(1) |> all?())
assert not (new(10) |> set(9) |> all?())
assert new(3) |> set(0) |> set(1) |> set(2) |> all?()
end
test "bitset - any?" do
assert new(10) |> set(0) |> any?()
assert new(10) |> set(1) |> any?()
assert new(10) |> set(9) |> any?()
assert new(3) |> set(0) |> set(1) |> set(2) |> any?()
end
test "bitset - none?" do
assert not (new(10) |> set(0) |> none?())
assert not (new(10) |> set(1) |> none?())
assert not (new(10) |> set(9) |> none?())
assert not (new(3) |> set(0) |> set(1) |> set(2) |> none?())
assert new(1) |> none?()
assert new(5) |> none?()
assert new(8) |> none?()
assert new(10) |> none?()
end
test "bitset - to_string" do
assert new(10) |> set(0) |> to_string() == "0000000100"
assert new(10) |> set(1) |> to_string() == "0000001000"
# assert new(10) |> set(9) |> to_string() == "0000001000"
assert new(3) |> set(0) |> set(1) |> set(2) |> to_string() == "111"
end
end