Sha256: 130ec0434db6a6eb5cd9002269786c1cfe146a3ca73a2ee088560bd054bcfdd6

Contents?: true

Size: 1.97 KB

Versions: 28

Compression:

Stored size: 1.97 KB

Contents

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

namespace Generators.Exercises
{
    public class Tournament : GeneratorExercise
    {
        protected override void UpdateCanonicalData(CanonicalData canonicalData)
        {
            foreach (var canonicalDataCase in canonicalData.Cases)
            {
                canonicalDataCase.Property = "RunTally";
                canonicalDataCase.TestedMethodType = TestedMethodType.Static;
                canonicalDataCase.UseVariablesForInput = true;
                canonicalDataCase.UseVariableForExpected = true;
                canonicalDataCase.Input["rows"] = ConvertHelper.ToMultiLineString(canonicalDataCase.Input["rows"], "");
                canonicalDataCase.Expected = ConvertHelper.ToMultiLineString(canonicalDataCase.Expected);
            }
        }

        protected override HashSet<string> AddAdditionalNamespaces()
        {
            return new HashSet<string>
            {
                typeof(Array).Namespace,
                typeof(System.String).Namespace,
                typeof(System.IO.Stream).Namespace,
                typeof(System.Text.UTF8Encoding).Namespace
            };
        }

        protected override string RenderTestMethodBodyAssert(TestMethodBody testMethodBody)
        {
            string template = @"Assert.Equal(expected, RunTally(rows));";
            return TemplateRenderer.RenderInline(template, new { });
        }

        protected override string[] RenderAdditionalMethods()
        {
            var methods = @"
private string RunTally(string input)
{
    var encoding = new UTF8Encoding();

    using (var inStream = new MemoryStream(encoding.GetBytes(input)))
    using (var outStream = new MemoryStream())
    {
        Tournament.Tally(inStream, outStream);
        return encoding.GetString(outStream.ToArray());
    }
}";
            return methods.Split("", System.StringSplitOptions.None);
        }
    }
}

Version data entries

28 entries across 28 versions & 1 rubygems

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