Skip to content

Commit d581f7a

Browse files
authored
Improve coverage for several protocol implementations (#14409)
1 parent 51fbf99 commit d581f7a

File tree

5 files changed

+39
-14
lines changed

5 files changed

+39
-14
lines changed

lib/elixir/test/elixir/calendar/duration_test.exs

+4
Original file line numberDiff line numberDiff line change
@@ -432,4 +432,8 @@ defmodule DurationTest do
432432
) ==
433433
"1year-2month-3day-4h-5min-6s"
434434
end
435+
436+
test "inspect/1" do
437+
assert inspect(%Duration{hour: 5, minute: 3}) == "%Duration{hour: 5, minute: 3}"
438+
end
435439
end

lib/elixir/test/elixir/json_test.exs

+1
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ defmodule JSONTest do
6767
end
6868

6969
test "atoms" do
70+
assert protocol_encode(:another) == "\"another\""
7071
assert protocol_encode([nil, false, true, :another]) == "[null,false,true,\"another\"]"
7172
end
7273

lib/elixir/test/elixir/stream_test.exs

+4
Original file line numberDiff line numberDiff line change
@@ -1464,6 +1464,10 @@ defmodule StreamTest do
14641464
assert Enum.zip(list, list) == Enum.zip(stream, stream)
14651465
end
14661466

1467+
test "inspect/1" do
1468+
"#Stream<[enum: 1..10, funs: " <> _ = Stream.map(1..10, & &1) |> inspect()
1469+
end
1470+
14671471
defp lazy?(stream) do
14681472
match?(%Stream{}, stream) or is_function(stream, 2)
14691473
end

lib/elixir/test/elixir/version_test.exs

+24-14
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,14 @@ defmodule VersionTest do
118118
assert %Version{major: 1, minor: 0, patch: 0} |> Version.to_string() == "1.0.0"
119119
end
120120

121+
test "to_string/1 via protocol" do
122+
assert Version.parse!("1.0.0") |> to_string() == "1.0.0"
123+
end
124+
125+
test "inspect/1" do
126+
assert Version.parse!("1.0.0") |> inspect() == "%Version{major: 1, minor: 0, patch: 0}"
127+
end
128+
121129
test "match?/2 with invalid versions" do
122130
assert_raise Version.InvalidVersionError, fn ->
123131
Version.match?("foo", "2.3.0")
@@ -317,22 +325,24 @@ defmodule VersionTest do
317325
assert Version.match?("0.7.0", req)
318326
end
319327

320-
test "compile_requirement/1" do
321-
{:ok, req} = Version.parse_requirement("1.2.3")
322-
assert req == Version.compile_requirement(req)
323-
end
328+
describe "requirement" do
329+
test "compile_requirement/1" do
330+
{:ok, req} = Version.parse_requirement("1.2.3")
331+
assert req == Version.compile_requirement(req)
324332

325-
test "compile requirement" do
326-
{:ok, req} = Version.parse_requirement("1.2.3")
327-
req = Version.compile_requirement(req)
333+
assert Version.match?("1.2.3", req)
334+
refute Version.match?("1.2.4", req)
328335

329-
assert Version.match?("1.2.3", req)
330-
refute Version.match?("1.2.4", req)
336+
assert Version.parse_requirement("1 . 2 . 3") == :error
337+
assert Version.parse_requirement("== >= 1.2.3") == :error
338+
assert Version.parse_requirement("1.2.3 and or 4.5.6") == :error
339+
assert Version.parse_requirement(">= 1") == :error
340+
assert Version.parse_requirement("1.2.3 >=") == :error
341+
end
331342

332-
assert Version.parse_requirement("1 . 2 . 3") == :error
333-
assert Version.parse_requirement("== >= 1.2.3") == :error
334-
assert Version.parse_requirement("1.2.3 and or 4.5.6") == :error
335-
assert Version.parse_requirement(">= 1") == :error
336-
assert Version.parse_requirement("1.2.3 >=") == :error
343+
test "inspect/1" do
344+
assert Version.parse_requirement!("1.0.0") |> inspect() ==
345+
"Version.parse_requirement!(\"1.0.0\")"
346+
end
337347
end
338348
end

lib/iex/test/iex/info_test.exs

+6
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,12 @@ defmodule IEx.InfoTest do
247247
assert get_key(info, "Reference modules") == "Range"
248248
end
249249

250+
test "maps" do
251+
info = Info.info(%{foo: "bar"})
252+
assert get_key(info, "Data type") == "Map"
253+
assert get_key(info, "Reference modules") == "Map"
254+
end
255+
250256
test "structs" do
251257
info = Info.info(%Foo{})
252258
assert get_key(info, "Data type") == "IEx.InfoTest.Foo"

0 commit comments

Comments
 (0)