Я пытаюсь проверить алгоритм, который создает HashDict, но я не могу получить свой «ожидаемый» фактически равным моим «фактическим». Например,Как сравнить литерал Dict с построенным Dict?
iex> expected = HashDict.new([ key: 12 ])
#HashDict<[foo: 12]>
iex> actual = Dict.put(HashDict.new, "key", 12)
#HashDict<[{"foo", 12}]>
я могу получить второй «стиль» HashDict
в буквальном, объявив его в гораздо более тупым способом:
iex> HashDict.new([ { "key", 12 } ])
#HashDict<[{"foo", 12}]>
Мне очень нравится простой Dict буквального синтаксис для моего тестовый пример, но моя реализация рекурсивно редуцирует Dict. Как я могу сделать их равными?
Это, безусловно, работает. Благодарю. К сожалению, это означает, что мои тестовые примеры не дают очень информативных сообщений об ошибках. –
'' ключ "' это не то же самое, что ': key'. Нет никакого способа сделать их равными. Вы можете конвертировать один в другой, чтобы они были одинаковыми. – Travis