diff --git a/lib/koans/10_map_sets.ex b/lib/koans/10_map_sets.ex index f4a0977..5b7318c 100644 --- a/lib/koans/10_map_sets.ex +++ b/lib/koans/10_map_sets.ex @@ -15,17 +15,22 @@ defmodule MapSets do assert MapSet.size(new_set) == ___ end - koan "You cannot depend on my order" do - set = MapSet.new(1..33) - list = Enum.to_list(1..33) - set_list = MapSet.to_list(set) - - assert (list == set_list) == ___ - assert (list == Enum.sort(set_list)) == ___ + def sorted?(set) do + sorted = MapSet.to_list(set) |> Enum.sort + set == sorted + end + + koan "You cannot depend on my order" do + 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 - # 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 assert MapSet.member?(@set, 3) == ___ diff --git a/test/koans/map_sets_koans_test.exs b/test/koans/map_sets_koans_test.exs index ec6f134..b8f53a7 100644 --- a/test/koans/map_sets_koans_test.exs +++ b/test/koans/map_sets_koans_test.exs @@ -6,7 +6,7 @@ defmodule MapSetsTest do answers = [ 1, 3, - {:multiple, [false, true]}, + false, true, {:multiple, [true, false]}, true,