From cc3232a31f322fbb4d99bec5f3341887e0819b4b Mon Sep 17 00:00:00 2001 From: Mahmut Surekci Date: Tue, 24 May 2016 17:29:18 +0100 Subject: [PATCH] Added very basic koans for integers --- lib/koans/16_integers.ex | 37 +++++++++++++++++++++++++++++++ lib/runner.ex | 1 + test/koans/integer_koans_test.exs | 17 ++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 lib/koans/16_integers.ex create mode 100644 test/koans/integer_koans_test.exs diff --git a/lib/koans/16_integers.ex b/lib/koans/16_integers.ex new file mode 100644 index 0000000..745dbfd --- /dev/null +++ b/lib/koans/16_integers.ex @@ -0,0 +1,37 @@ +defmodule Integers do + require Integer + use Koans + + @intro "Integers" + + koan "Are you odd?" do + assert Integer.is_odd(3) == ___ + end + + koan "Actually you might be even" do + assert Integer.is_even(4) == ___ + end + + koan "Let's grab the individual digits in a list" do + individual_digits = Integer.digits(58127) + assert individual_digits == ___ + end + + koan "Oh no! I need it back together" do + number = Integer.undigits([1, 2, 3, 4]) + + assert number == ___ + end + + koan "I think I need my number as a char" do + char_digit = Integer.to_char_list(7) + + assert char_digit == ___ + end + + koan "Actually I want my number as a string" do + string_digit = Integer.to_string(1234) + + assert string_digit == ___ + end +end \ No newline at end of file diff --git a/lib/runner.ex b/lib/runner.ex index 401db50..a174869 100644 --- a/lib/runner.ex +++ b/lib/runner.ex @@ -15,6 +15,7 @@ defmodule Runner do Processes, Tasks, Agents, + Integers, ] def koan?(koan), do: Enum.member?(@modules, koan) diff --git a/test/koans/integer_koans_test.exs b/test/koans/integer_koans_test.exs new file mode 100644 index 0000000..2ca196a --- /dev/null +++ b/test/koans/integer_koans_test.exs @@ -0,0 +1,17 @@ +defmodule IntegerTests do + use ExUnit.Case + import TestHarness + + test "Integers" do + answers = [ + true, + false, + [5, 8, 1, 2, 7], + 1234, + '7', + "1234", + ] + + test_all(Integers, answers) + end +end