diff options
Diffstat (limited to 'assessments/semiprimes/server/test')
-rw-r--r-- | assessments/semiprimes/server/test/server_test.exs | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/assessments/semiprimes/server/test/server_test.exs b/assessments/semiprimes/server/test/server_test.exs index 4fa9b617bfd9..f327efb33abb 100644 --- a/assessments/semiprimes/server/test/server_test.exs +++ b/assessments/semiprimes/server/test/server_test.exs @@ -2,7 +2,32 @@ defmodule ServerTest do use ExUnit.Case doctest Server - test "greets the world" do - assert Server.hello() == :world + describe "semiprime" do + test "returns the factors when the number is semiprime" do + # Semiprimes below 30 + [ + {4, [2, 2]}, + {6, [2, 3]}, + {9, [3, 3]}, + {10, [2, 5]}, + {14, [2, 7]}, + {15, [3, 5]}, + {21, [3, 7]}, + {22, [2, 11]}, + {25, [5, 5]}, + {26, [2, 13]} + ] + |> Enum.each(fn {input, expected} -> + assert Server.semiprime(input) == expected + end) + end + + test "returns nothing when the number is a composite number" do + # Composite numbers below 30 + [1, 2, 3, 5, 7, 8, 11, 12, 13, 16, 17, 18, 19, 20, 23, 24, 27, 28, 29] + |> Enum.each(fn x -> + assert Server.semiprime(x) == nil + end) + end end end |