Sha256: e136f0beb3129162c1534dab24c94d7d0ab9e1db2521d0a9bacdcb790bcd81b5

Contents?: true

Size: 1.2 KB

Versions: 28

Compression:

Stored size: 1.2 KB

Contents

using System;
using System.Collections.Generic;
using System.Linq;
using Generators.Input;
using Generators.Output;
using Newtonsoft.Json.Linq;

namespace Generators.Exercises
{
    public class SpiralMatrix : GeneratorExercise
    {
        protected override void UpdateCanonicalData(CanonicalData canonicalData)
        {
            foreach (var canonicalDataCase in canonicalData.Cases)
            {
                canonicalDataCase.Property = "GetMatrix";
                canonicalDataCase.UseVariableForExpected = true;
                canonicalDataCase.Expected = ConvertExpected(canonicalDataCase.Expected);
            }
        }

        private dynamic ConvertExpected(dynamic expected)
        {
            var jArray = (JArray)expected;

            if (jArray.Count == 0)
                return new int[0, 0];

            var rows = jArray.Count;
            var cols = jArray[0].Count();

            var matrix = new int[rows, cols];

            for (var y = 0; y < rows; y++)
            {
                for (var x = 0; x < cols; x++)
                {
                    matrix[y, x] = jArray[y][x].ToObject<int>();
                }
            }

            return matrix;
        }
    }
}

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.179 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.178 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.177 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.176 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.175 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.174 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.173 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.172 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.171 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.170 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.169 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.167 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.166 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.165 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.164 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.163 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.162 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.161 tracks/csharp/generators/Exercises/SpiralMatrix.cs
trackler-2.2.1.160 tracks/csharp/generators/Exercises/SpiralMatrix.cs