Skip to content

Commit e6d8ebe

Browse files
FraSangajiegillet
andauthored
Added erlang ast test in captains-log (#455)
* added erlang ast test in captains-log * crlf to lf (end of line) * fix indent * reverted test_data changes * fixed erlang & io_lib tests * fix CI build * removed io_lib comment * fix typo --------- Co-authored-by: Jeremie Gillet <jie.gillet@gmail.com>
1 parent 880e6c9 commit e6d8ebe

File tree

3 files changed

+39
-10
lines changed

3 files changed

+39
-10
lines changed

lib/elixir_analyzer/constants.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ defmodule ElixirAnalyzer.Constants do
7676
captains_log_do_not_use_enum_random: "elixir.captains-log.do_not_use_enum_random",
7777
captains_log_do_not_use_rand_uniform_real: "elixir.captains-log.do_not_use_rand_uniform_real",
7878
captains_log_use_rand_uniform: "elixir.captains-log.use_rand_uniform",
79-
captains_log_use_io_lib: "elixir.captains-log.use_io_lib",
79+
captains_log_use_erlang: "elixir.captains-log.use_erlang",
8080

8181
# Community Garden Comments
8282
community_garden_use_get_and_update: "elixir.community-garden.use_get_and_update",

lib/elixir_analyzer/test_suite/captains_log.ex

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,15 @@ defmodule ElixirAnalyzer.TestSuite.CaptainsLog do
4747
type :essential
4848
calling_fn module: CaptainsLog, name: :format_stardate
4949
called_fn module: :io_lib, name: :_
50-
comment Constants.captains_log_use_io_lib()
50+
comment Constants.captains_log_use_erlang()
51+
suppress_if "format_stardate uses :erlang", :pass
52+
end
53+
54+
assert_call "format_stardate uses :erlang" do
55+
type :essential
56+
calling_fn module: CaptainsLog, name: :format_stardate
57+
called_fn module: :erlang, name: :_
58+
comment Constants.captains_log_use_erlang()
59+
suppress_if "format_stardate uses :io_lib", :pass
5160
end
5261
end

test/elixir_analyzer/test_suite/captains_log_test.exs

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,34 @@ defmodule ElixirAnalyzer.ExerciseTest.CaptainsLogTest do
9797
end
9898
end
9999

100-
test_exercise_analysis "format_stardate uses Float.round",
101-
comments_include: [Constants.captains_log_use_io_lib()] do
102-
defmodule CaptainsLog do
103-
def format_stardate(stardate) do
104-
if is_float(stardate) do
105-
Float.round(stardate, 1) |> to_string()
106-
else
107-
raise ArgumentError
100+
describe "format_stardate uses :io_lib or :erlang" do
101+
test_exercise_analysis "format_stardate uses Float.round",
102+
comments_include: [Constants.captains_log_use_erlang()] do
103+
defmodule CaptainsLog do
104+
def format_stardate(stardate) do
105+
if is_float(stardate) do
106+
Float.round(stardate, 1) |> to_string()
107+
else
108+
raise ArgumentError
109+
end
110+
end
111+
end
112+
end
113+
114+
test_exercise_analysis "format_stardate uses :io_lib",
115+
comments_exclude: [Constants.captains_log_use_erlang()] do
116+
defmodule CaptainsLog do
117+
def format_stardate(stardate) do
118+
to_string(:io_lib.format("~.1f", [stardate]))
119+
end
120+
end
121+
end
122+
123+
test_exercise_analysis "format_stardate uses :erlang",
124+
comments_exclude: [Constants.captains_log_use_erlang()] do
125+
defmodule CaptainsLog do
126+
def format_stardate(stardate) do
127+
:erlang.float_to_binary(stardate, [{:decimals, 1}])
108128
end
109129
end
110130
end

0 commit comments

Comments
 (0)