diff --git a/lib/koans/04_numbers.ex b/lib/koans/04_numbers.ex new file mode 100644 index 0000000..d1a1b46 --- /dev/null +++ b/lib/koans/04_numbers.ex @@ -0,0 +1,72 @@ +defmodule Numbers do + require Integer + use Koans + + @intro "Numbers" + + 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 + + koan "The meaning of life in hexidecimal is 2A!" do + assert Integer.parse("2A", 16) == {___, ""} + end + + koan "I don't want this decimal point, let's round up" do + assert Float.ceil(34.25) == ___ + end + + koan "OK, I only want it to 1 decimal place" do + assert Float.ceil(34.25, 1) == ___ + end + + koan "Rounding down is what I need" do + assert Float.floor(99.99) == ___ + end + + koan "Rounding down to 2 decimal places" do + assert Float.floor(12.345, 2) == ___ + end + + koan "Just want to parse to a float" do + assert Float.parse("34.5") == {___, ""} + end + + koan "Hmm, I want to parse this but it has some strings" do + assert Float.parse("1 million dollars") == {___, " million dollars"} + end + + koan "Round the number up or down for me" do + assert Float.round(5.5) == ___ + assert Float.round(5.4) == ___ + assert Float.round(8.94, 1) == ___ + assert Float.round(-5.5674, 3) == ___ + end +end \ No newline at end of file diff --git a/lib/koans/04_atoms.ex b/lib/koans/05_atoms.ex similarity index 100% rename from lib/koans/04_atoms.ex rename to lib/koans/05_atoms.ex diff --git a/lib/koans/05_tuples.ex b/lib/koans/06_tuples.ex similarity index 100% rename from lib/koans/05_tuples.ex rename to lib/koans/06_tuples.ex diff --git a/lib/koans/06_lists.ex b/lib/koans/07_lists.ex similarity index 100% rename from lib/koans/06_lists.ex rename to lib/koans/07_lists.ex diff --git a/lib/koans/07_keyword_lists.ex b/lib/koans/08_keyword_lists.ex similarity index 100% rename from lib/koans/07_keyword_lists.ex rename to lib/koans/08_keyword_lists.ex diff --git a/lib/koans/08_maps.ex b/lib/koans/09_maps.ex similarity index 100% rename from lib/koans/08_maps.ex rename to lib/koans/09_maps.ex diff --git a/lib/koans/09_structs.ex b/lib/koans/10_structs.ex similarity index 100% rename from lib/koans/09_structs.ex rename to lib/koans/10_structs.ex diff --git a/lib/koans/10_pattern_matching.ex b/lib/koans/11_pattern_matching.ex similarity index 100% rename from lib/koans/10_pattern_matching.ex rename to lib/koans/11_pattern_matching.ex diff --git a/lib/koans/11_functions.ex b/lib/koans/12_functions.ex similarity index 100% rename from lib/koans/11_functions.ex rename to lib/koans/12_functions.ex diff --git a/lib/koans/12_enums.ex b/lib/koans/13_enums.ex similarity index 100% rename from lib/koans/12_enums.ex rename to lib/koans/13_enums.ex diff --git a/lib/koans/13_processes.ex b/lib/koans/14_processes.ex similarity index 100% rename from lib/koans/13_processes.ex rename to lib/koans/14_processes.ex diff --git a/lib/koans/14_tasks.ex b/lib/koans/15_tasks.ex similarity index 100% rename from lib/koans/14_tasks.ex rename to lib/koans/15_tasks.ex diff --git a/lib/koans/15_agents.ex b/lib/koans/16_agents.ex similarity index 100% rename from lib/koans/15_agents.ex rename to lib/koans/16_agents.ex diff --git a/lib/koans/16_integers.ex b/lib/koans/16_integers.ex deleted file mode 100644 index b8adad7..0000000 --- a/lib/koans/16_integers.ex +++ /dev/null @@ -1,41 +0,0 @@ -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 - - koan "The meaning of life in hexidecimal is 2A!" do - assert Integer.parse("2A", 16) == {___, ""} - end -end \ No newline at end of file diff --git a/test/koans/integer_koans_test.exs b/test/koans/integer_koans_test.exs deleted file mode 100644 index 18815e9..0000000 --- a/test/koans/integer_koans_test.exs +++ /dev/null @@ -1,18 +0,0 @@ -defmodule IntegerTests do - use ExUnit.Case - import TestHarness - - test "Integers" do - answers = [ - true, - true, - [5, 8, 1, 2, 7], - 1234, - '7', - "1234", - 42 - ] - - test_all(Integers, answers) - end -end diff --git a/test/koans/numbers_koans_test.exs b/test/koans/numbers_koans_test.exs new file mode 100644 index 0000000..da7445c --- /dev/null +++ b/test/koans/numbers_koans_test.exs @@ -0,0 +1,25 @@ +defmodule NumbersTests do + use ExUnit.Case + import TestHarness + + test "Numbers" do + answers = [ + true, + true, + [5, 8, 1, 2, 7], + 1234, + '7', + "1234", + 42, + 35.0, + 34.3, + 99.0, + 12.34, + {34.5, ""}, + 1.0, + {:multiple, [6.0, 5.0, 8.94, -5.567]}, + ] + + test_all(Numbers, answers) + end +end