сollatz-сonjecture

This commit is contained in:
2024-06-26 23:06:52 -04:00
parent 4c3da6abe4
commit b62fcbc5ea
10 changed files with 266 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
defmodule CollatzConjectureTest do
use ExUnit.Case
test "zero steps for one" do
assert CollatzConjecture.calc(1) == 0
end
test "zero is an error" do
assert_raise FunctionClauseError, fn -> CollatzConjecture.calc(0) end
end
test "divide if even" do
assert CollatzConjecture.calc(16) == 4
end
test "even and odd steps" do
assert CollatzConjecture.calc(12) == 9
end
test "Large number of even and odd steps" do
assert CollatzConjecture.calc(1_000_000) == 152
end
test "start with odd step" do
assert CollatzConjecture.calc(21) == 7
end
test "more steps than starting number" do
assert CollatzConjecture.calc(7) == 16
end
test "negative value is an error " do
assert_raise FunctionClauseError, fn -> CollatzConjecture.calc(-15) end
end
test "string as input value is an error " do
assert_raise FunctionClauseError, fn -> CollatzConjecture.calc("fubar") end
end
end

View File

@@ -0,0 +1,2 @@
ExUnit.start()
ExUnit.configure(exclude: :pending, trace: true)