Further simplify mapset example with sorted?/1 function

This commit is contained in:
Jay Hayes
2017-02-19 07:37:57 -06:00
parent 5731f8ac3b
commit 4a9800f1f7
2 changed files with 16 additions and 11 deletions

View File

@@ -15,17 +15,22 @@ defmodule MapSets do
assert MapSet.size(new_set) == ___ assert MapSet.size(new_set) == ___
end end
koan "You cannot depend on my order" do def sorted?(set) do
set = MapSet.new(1..33) sorted = MapSet.to_list(set) |> Enum.sort
list = Enum.to_list(1..33) set == sorted
set_list = MapSet.to_list(set) end
assert (list == set_list) == ___ koan "You cannot depend on my order" do
assert (list == Enum.sort(set_list)) == ___ new_set = MapSet.new(1..33)
assert sorted?(new_set) == ___
# Note: The number "33" is actually special here. Erlang uses a different
# implementation for maps after 32 elements which does not maintain order.
# http://stackoverflow.com/a/40408469
# What do you think this answer to this assertion is?
# assert sorted?(@set) == ___
end end
# Note: The number "33" is actually special here. Erlang uses a different
# implementation for maps after 32 elements which does not maintain order.
# http://stackoverflow.com/a/40408469
koan "Does this value exist in the map set?" do koan "Does this value exist in the map set?" do
assert MapSet.member?(@set, 3) == ___ assert MapSet.member?(@set, 3) == ___

View File

@@ -6,7 +6,7 @@ defmodule MapSetsTest do
answers = [ answers = [
1, 1,
3, 3,
{:multiple, [false, true]}, false,
true, true,
{:multiple, [true, false]}, {:multiple, [true, false]},
true, true,