66 lines
1.6 KiB
Elixir
66 lines
1.6 KiB
Elixir
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
|