exercism/elixir/secret-handshake/secret_handshake_test.exs

73 lines
1.8 KiB
Elixir

if !System.get_env("EXERCISM_TEST_EXAMPLES") do
Code.load_file("secret_handshake.exs", __DIR__)
end
ExUnit.start()
ExUnit.configure(trace: true, exclude: :pending)
defmodule SecretHandshakeTest do
use ExUnit.Case
describe "Create a handshake for a number" do
# @tag :pending
test "wink for 1" do
assert SecretHandshake.commands(1) == ["wink"]
end
# @tag :pending
test "double blink for 10" do
assert SecretHandshake.commands(2) == ["double blink"]
end
# @tag :pending
test "close your eyes for 100" do
assert SecretHandshake.commands(4) == ["close your eyes"]
end
# @tag :pending
test "jump for 1000" do
assert SecretHandshake.commands(8) == ["jump"]
end
# @tag :pending
test "combine two actions" do
assert SecretHandshake.commands(3) == ["wink", "double blink"]
end
# @tag :pending
test "reverse two actions" do
assert SecretHandshake.commands(19) == ["double blink", "wink"]
end
# @tag :pending
test "reversing one action gives the same action" do
assert SecretHandshake.commands(24) == ["jump"]
end
# @tag :pending
test "reversing no actions still gives no actions" do
assert SecretHandshake.commands(16) == []
end
# @tag :pending
test "all possible actions" do
assert SecretHandshake.commands(15) == ["wink", "double blink", "close your eyes", "jump"]
end
# @tag :pending
test "reverse all possible actions" do
assert SecretHandshake.commands(31) == ["jump", "close your eyes", "double blink", "wink"]
end
# @tag :pending
test "do nothing for zero" do
assert SecretHandshake.commands(0) == []
end
# @tag :pending
test "do nothing if lower 5 bits not set" do
assert SecretHandshake.commands(32) == []
end
end
end