1
exercism fetch elixir spiral-matrix

Spiral Matrix

Given the size, return a square matrix of numbers in spiral order.

The matrix should be filled with natural numbers, starting from 1 in the top-left corner, increasing in an inward, clockwise spiral order, like these examples:

Spiral matrix of size 3
1
2
3
1 2 3
8 9 4
7 6 5
Spiral matrix of size 4
1
2
3
4
 1  2  3 4
 12 13 14 5
 11 16 15 6
 10  9  8 7

Running tests

Execute the tests with:

1
$ elixir spiral_matrix_test.exs

Pending tests

In the test suites, all but the first test have been skipped.

Once you get a test passing, you can unskip the next one by commenting out the relevant @tag :pending with a # symbol.

For example:

1
2
3
4
# @tag :pending
test "shouting" do
  assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
end

Or, you can enable all the tests by commenting out the ExUnit.configure line in the test suite.

1
# ExUnit.configure exclude: :pending, trace: true

For more detailed information about the Elixir track, please see the help page.

Source

Reddit r/dailyprogrammer challenge #320 [Easy] Spiral Ascension. spiral ascension

Submitting Incomplete Solutions

It's possible to submit an incomplete solution so you can see how others have completed the exercise.