hamming
This commit is contained in:
41
elixir/hamming/test/hamming_test.exs
Normal file
41
elixir/hamming/test/hamming_test.exs
Normal file
@@ -0,0 +1,41 @@
|
||||
defmodule HammingTest do
|
||||
use ExUnit.Case
|
||||
|
||||
test "empty strands" do
|
||||
assert Hamming.hamming_distance(~c"", ~c"") == {:ok, 0}
|
||||
end
|
||||
|
||||
test "single letter identical strands" do
|
||||
assert Hamming.hamming_distance(~c"A", ~c"A") == {:ok, 0}
|
||||
end
|
||||
|
||||
test "single letter different strands" do
|
||||
assert Hamming.hamming_distance(~c"G", ~c"T") == {:ok, 1}
|
||||
end
|
||||
|
||||
test "long identical strands" do
|
||||
assert Hamming.hamming_distance(~c"GGACTGAAATCTG", ~c"GGACTGAAATCTG") == {:ok, 0}
|
||||
end
|
||||
|
||||
test "long different strands" do
|
||||
assert Hamming.hamming_distance(~c"GGACGGATTCTG", ~c"AGGACGGATTCT") == {:ok, 9}
|
||||
end
|
||||
|
||||
test "disallow first strand longer" do
|
||||
assert {:error, "strands must be of equal length"} =
|
||||
Hamming.hamming_distance(~c"AATG", ~c"AAA")
|
||||
end
|
||||
|
||||
test "disallow second strand longer" do
|
||||
assert {:error, "strands must be of equal length"} =
|
||||
Hamming.hamming_distance(~c"ATA", ~c"AGTG")
|
||||
end
|
||||
|
||||
test "disallow empty first strand" do
|
||||
assert {:error, "strands must be of equal length"} = Hamming.hamming_distance(~c"", ~c"G")
|
||||
end
|
||||
|
||||
test "disallow empty second strand" do
|
||||
assert {:error, "strands must be of equal length"} = Hamming.hamming_distance(~c"G", ~c"")
|
||||
end
|
||||
end
|
||||
2
elixir/hamming/test/test_helper.exs
Normal file
2
elixir/hamming/test/test_helper.exs
Normal file
@@ -0,0 +1,2 @@
|
||||
ExUnit.start()
|
||||
ExUnit.configure(exclude: :pending, trace: true)
|
||||
Reference in New Issue
Block a user