Sha256: 62d4e8d557f8f938fa405dbd17f726c2a60d6b26840ca53fa29d217d49646d56
Contents?: true
Size: 1.59 KB
Versions: 17
Compression:
Stored size: 1.59 KB
Contents
using System; using System.Linq; using System.Text; using Generators.Input; using Generators.Output; using Humanizer; using Newtonsoft.Json.Linq; namespace Generators.Exercises { public class Pov : GeneratorExercise { protected override void UpdateCanonicalData(CanonicalData canonicalData) { foreach (var canonicalDataCase in canonicalData.Cases) { canonicalDataCase.UseVariablesForInput = true; canonicalDataCase.UseVariableForExpected = true; canonicalDataCase.ExceptionThrown = canonicalDataCase.Expected is null ? typeof(ArgumentException) : null; canonicalDataCase.Input["tree"] = RenderTree(canonicalDataCase.Input["tree"]); if (canonicalDataCase.Property == "fromPov") { canonicalDataCase.Expected = RenderTree(canonicalDataCase.Expected); } } } private static UnescapedValue RenderTree(dynamic tree) { if (tree == null) { return null; } var sb = new StringBuilder(); var label = ValueFormatter.Format(tree["label"]); if (tree.ContainsKey("children")) { var children = string.Join(", ", ((object[])tree["children"]).Select(RenderTree)); sb.Append($"new Tree({label}, {children})"); } else { sb.Append($"new Tree({label})"); } return new UnescapedValue(sb.ToString()); } } }
Version data entries
17 entries across 17 versions & 1 rubygems