 
     # set a fixed seed so the test can be deterministic
     # please note the order of following assertions is important
-    seed1 = {1406, 407414, 139258}
-    seed2 = {1306, 421106, 567597}
+    seed1 = {1406, 407_414, 139_258}
+    seed2 = {1306, 421_106, 567_597}
     :rand.seed(:exsplus, seed1)
     assert Enum.random([1, 2]) == 2
     assert Enum.random([1, 2, 3]) == 1

  end

  test "filter/2" do
    assert Enum.filter(1..3, fn(x) -> rem(x, 2) == 0 end) == [2]
    assert Enum.filter(1..6, fn(x) -> rem(x, 2) == 0 end) == [2, 4, 6]

    assert Enum.filter(1..3, &match?(1, &1)) == [1]
    assert Enum.filter(1..3, &match?(x when x < 3, &1)) == [1, 2]


    assert Enum.zip([], [1]) == []
    assert Enum.zip([1], []) == []
    assert Enum.zip([], []) == []
  end

  test "zip/1" do
    assert Enum.zip([[:a, :b], [1, 2], ["foo", "bar"]]) == [{:a, 1, "foo"}, {:b, 2, "bar"}]

    assert Enum.zip([[:a, :b], [1, 2, 3, 4], ["foo", "bar", "baz", "qux"]]) ==
             [{:a, 1, "foo"}, {:b, 2, "bar"}]

    assert Enum.zip([[:a, :b, :c, :d], [1, 2], ["foo", "bar", "baz", "qux"]]) ==
             [{:a, 1, "foo"}, {:b, 2, "bar"}]

    assert Enum.zip([[:a, :b, :c, :d], [1, 2, 3, 4], ["foo", "bar"]]) ==
             [{:a, 1, "foo"}, {:b, 2, "bar"}]

    assert Enum.zip([1..10, ["foo", "bar"]]) == [{1, "foo"}, {2, "bar"}]

    assert Enum.zip([]) == []
