diff options
-rw-r--r-- | src/gleam/set.gleam | 18 | ||||
-rw-r--r-- | test/gleam/set_test.gleam | 17 |
2 files changed, 35 insertions, 0 deletions
diff --git a/src/gleam/set.gleam b/src/gleam/set.gleam index d0b4f16..12bfba1 100644 --- a/src/gleam/set.gleam +++ b/src/gleam/set.gleam @@ -51,6 +51,24 @@ pub fn size(set: Set(member)) -> Int { dict.size(set.dict) } +/// Determines whether or not the set is empty. +/// +/// ## Examples +/// +/// ```gleam +/// new() |> is_empty +/// // -> True +/// ``` +/// +/// ```gleam +/// new() |> insert(1) |> is_empty +/// // -> False +/// ``` +/// +pub fn is_empty(set: Set(member)) -> Bool { + set == new() +} + /// Inserts an member into the set. /// /// This function runs in logarithmic time. diff --git a/test/gleam/set_test.gleam b/test/gleam/set_test.gleam index 94dd5da..908fe29 100644 --- a/test/gleam/set_test.gleam +++ b/test/gleam/set_test.gleam @@ -22,6 +22,23 @@ pub fn size_test() { |> should.equal(2) } +pub fn is_empty_test() { + set.new() + |> set.is_empty() + |> should.be_true() + + set.new() + |> set.insert(1) + |> set.is_empty() + |> should.be_false() + + set.new() + |> set.insert(1) + |> set.delete(1) + |> set.is_empty() + |> should.be_true() +} + pub fn contains_test() { set.new() |> set.insert(1) |