testing - 用于测试比较的 Elixir 最佳数据结构

标签 testing elixir

我有两个数组输出,我需要在其中迭代每个结构,并比较源匹配的计数。比较需要小于或等于。我的输出源看起来像这样:

output_1: [%{source: "facebook", count: 3}, %{count: 1, source: "linkedin"}]

output_2: [%{source: "facebook", count: 2}, %{count: 1, source: "linkedin"}]

为了使 Enumerables 的比较最简单和最有效,最好实现什么数据结构?

最佳答案

如果不能保证您的顺序,我的首选方法是将引用列表变成 map 并按来源进行比较。

iex> output_1 = [%{source: "facebook", count: 3}, %{count: 1, source: "linkedin"}]
[%{count: 3, source: "facebook"}, %{count: 1, source: "linkedin"}]
iex> output_2 = [%{source: "facebook", count: 2}, %{count: 1, source: "linkedin"}]
[%{count: 2, source: "facebook"}, %{count: 1, source: "linkedin"}]
iex> limits = Map.new(output_1, &{&1.source, &1.count})
%{"facebook" => 3, "linkedin" => 1}
iex> Enum.all?(output_2, & &1.count <= limits[&1.source])
true

关于testing - 用于测试比较的 Elixir 最佳数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56632971/

相关文章:

ruby-on-rails - Rails 新手——Webrat 方法在集成测试中不起作用

ruby-on-rails - 您如何测试 Rails 邮件程序凭据是否有效?

elixir - 如何从管道函数链中捕获值?

elixir - 产生新进程是否使用elixir中的所有CPU内核

elixir - 使用 shell 脚本调用 Elixir 方法

python - 使用测试数据库在 "test-mode"中运行服务器

javascript - 在 Enzyme 中测试 DOM

测试自定义 Hook - 未包含在行为警告中

elixir - 是否假设您在更新 config.exs 后运行 mix deps.compile?

error-handling - 在 Action 回退中使用相同的错误来区分错误 View