Esempio n. 1
0
        protected override TestMethodData CreateTestMethodData(CanonicalData canonicalData, CanonicalDataCase canonicalDataCase, int index)
        {
            var testMethodData = base.CreateTestMethodData(canonicalData, canonicalDataCase, index);

            testMethodData.Options.UseVariableForExpected = true;
            testMethodData.Options.FormatExpected         = true;

            testMethodData.CanonicalDataCase.Expected = CanonicalDataValue.ExpectedToMultiLineString(testMethodData.CanonicalDataCase.Expected);

            if (testMethodData.CanonicalDataCase.Property == "verse")
            {
                testMethodData.Options.InputProperty = "number";
            }
            else
            {
                testMethodData.CanonicalDataCase.Input = new[]
                {
                    testMethodData.CanonicalDataCase.Data["beginning"],
                    testMethodData.CanonicalDataCase.Data["end"]
                }
            };

            return(testMethodData);
        }
    }
Esempio n. 2
0
        public void Regenerate(CanonicalData canonicalData)
        {
            _canonicalData = canonicalData;
            UpdateCanonicalData(canonicalData);

            ExerciseWriter.WriteToFile(this);
        }
Esempio n. 3
0
 protected override void UpdateCanonicalData(CanonicalData canonicalData)
 {
     foreach (var canonicalDataCase in canonicalData.Cases.Where(canonicalDataCase => canonicalDataCase.Property == "create"))
     {
         SetCreatePropertyData(canonicalDataCase);
     }
 }
Esempio n. 4
0
 protected override void UpdateCanonicalData(CanonicalData canonicalData)
 {
     foreach (var canonicalDataCase in canonicalData.Cases)
     {
         canonicalDataCase.Property = "IsLeapYear";
     }
 }
Esempio n. 5
0
        protected override void UpdateCanonicalData(CanonicalData canonicalData)
        {
            foreach (var canonicalDataCase in canonicalData.Cases)
            {
                canonicalDataCase.UseVariablesForInput = true;

                if (canonicalDataCase.Input.ContainsKey("set"))
                {
                    if (!(canonicalDataCase.Input["set"] is int[]))
                    {
                        canonicalDataCase.Input["set"] = new UnescapedValue("");
                    }

                    canonicalDataCase.SetConstructorInputParameters("set");
                }
                else
                {
                    if (!(canonicalDataCase.Input["set1"] is int[]))
                    {
                        canonicalDataCase.Input["set1"] = new UnescapedValue("");
                    }

                    canonicalDataCase.SetConstructorInputParameters("set1");
                    canonicalDataCase.Input["set2"] = ConvertCustomSet(canonicalDataCase.Input["set2"]);

                    if (canonicalDataCase.Property == "equal")
                    {
                        canonicalDataCase.Property = "Equals";
                    }
                }

                canonicalDataCase.Expected = ConvertCustomSet(canonicalDataCase.Expected);
            }
        }
Esempio n. 6
0
        public void Regenerate(CanonicalData canonicalData)
        {
            var testClass       = CreateTestClass(canonicalData);
            var testClassOutput = new TestClassOutput(testClass);

            testClassOutput.WriteToFile();
        }
Esempio n. 7
0
 protected override void UpdateCanonicalData(CanonicalData canonicalData)
 {
     foreach (var canonicalDataCase in canonicalData.Cases)
     {
         canonicalDataCase.UseVariableForExpected = true;
     }
 }
Esempio n. 8
0
        protected override void UpdateCanonicalData(CanonicalData canonicalData)
        {
            canonicalData.Exercise = "complex-number";

            // Ensure the Real and Imaginary methods are tested first as they're used later to assert equality between complex numbers
            canonicalData.Cases = canonicalData.Cases.OrderBy(c => c.Property == "real" || c.Property == "imaginary" ? 0 : 1).ToArray();

            foreach (var canonicalDataCase in canonicalData.Cases)
            {
                // Process expected
                if (IsComplexNumber(canonicalDataCase.Expected))
                {
                    canonicalDataCase.UseVariableForExpected = true;
                }

                canonicalDataCase.Expected = ConvertToType(canonicalDataCase.Expected);

                // Process constructor param
                var constructorParamName = canonicalDataCase.Input.ContainsKey("input") ? "input" : "z1";

                canonicalDataCase.Properties["real"]      = ConvertMathDouble(canonicalDataCase.Input[constructorParamName][0]);
                canonicalDataCase.Properties["imaginary"] = ConvertMathDouble(canonicalDataCase.Input[constructorParamName][1]);

                canonicalDataCase.SetConstructorInputParameters("real", "imaginary");
                canonicalDataCase.SetInputParameters(GetInputParameters(canonicalDataCase, constructorParamName));

                // Process function param
                var keys = canonicalDataCase.Input.Keys.ToArray();

                foreach (var key in keys)
                {
                    canonicalDataCase.Properties[key] = ConvertToType(canonicalDataCase.Properties[key]);
                }
            }
        }
Esempio n. 9
0
 protected override void UpdateCanonicalData(CanonicalData canonicalData)
 {
     foreach (var canonicalDataCase in canonicalData.Cases)
     {
         canonicalDataCase.ExceptionThrown = canonicalDataCase.Expected is bool?typeof(ArgumentOutOfRangeException) : null;
     }
 }
Esempio n. 10
0
        protected override void UpdateCanonicalData(CanonicalData canonicalData)
        {
            foreach (var canonicalDataCase in canonicalData.Cases)
            {
                canonicalDataCase.UseVariablesForConstructorParameters = true;
                canonicalDataCase.SetConstructorInputParameters("board");
                canonicalDataCase.Property       = "result";
                canonicalDataCase.Input["board"] = ToMultiLineString(canonicalDataCase.Input["board"]);

                //convert to enum
                switch (canonicalDataCase.Expected)
                {
                case "X":
                    canonicalDataCase.Expected = new UnescapedValue("ConnectWinner.Black");
                    break;

                case "O":
                    canonicalDataCase.Expected = new UnescapedValue("ConnectWinner.White");
                    break;

                case "":
                    canonicalDataCase.Expected = new UnescapedValue("ConnectWinner.None");
                    break;
                }
            }
        }
Esempio n. 11
0
 protected override void UpdateCanonicalData(CanonicalData canonicalData)
 {
     foreach (var canonicalDataCase in canonicalData.Cases)
     {
         canonicalDataCase.ExceptionThrown = canonicalDataCase.Input["number"] <= 0 ? typeof(ArgumentException) : null;
     }
 }
Esempio n. 12
0
 protected override void UpdateCanonicalData(CanonicalData canonicalData)
 {
     foreach (var canonicalDataCase in canonicalData.Cases)
     {
         canonicalDataCase.Input["factors"] = ConvertHelper.ToArray <int>(canonicalDataCase.Input["factors"]);
     }
 }
Esempio n. 13
0
        protected override void UpdateCanonicalData(CanonicalData canonicalData)
        {
            foreach (var canonicalDataCase in canonicalData.Cases)
            {
                if (canonicalDataCase.Property != PropertyEqual)
                {
                    canonicalDataCase.SetConstructorInputParameters(ParamHour, ParamMinute);
                }
                else
                {
                    canonicalDataCase.SetConstructorInputParameters(ParamClock1);

                    var result = (Dictionary <string, object>)canonicalDataCase.Properties[ParamClock2];
                    canonicalDataCase.Properties[ParamClock2] = new UnescapedValue($"new Clock({result[ParamHour]}, {result[ParamMinute]})");
                }

                if (canonicalDataCase.Property == PropertyCreate)
                {
                    canonicalDataCase.Property = PropertyToString;
                }
                else if (canonicalDataCase.Property == PropertyEqual)
                {
                    canonicalDataCase.Property = PropertyEquals;
                }
            }
        }
Esempio n. 14
0
 protected override void UpdateCanonicalData(CanonicalData canonicalData)
 {
     foreach (var canonicalDataCase in canonicalData.Cases)
     {
         canonicalDataCase.ExceptionThrown = canonicalDataCase.Expected is long?null : typeof(ArgumentException);
     }
 }
Esempio n. 15
0
        protected override void UpdateCanonicalData(CanonicalData canonicalData)
        {
            foreach (var canonicalDataCase in canonicalData.Cases)
            {
                canonicalDataCase.UseVariablesForInput   = true;
                canonicalDataCase.UseVariableForTested   = true;
                canonicalDataCase.UseVariableForExpected = true;
                canonicalDataCase.UseVariablesForConstructorParameters = true;

                canonicalDataCase.SetConstructorInputParameters("grid");

                canonicalDataCase.Input["grid"] = ConvertHelper.ToMultiLineString(canonicalDataCase.Input["grid"]);

                var expectedDictionary = canonicalDataCase.Expected as IDictionary <string, dynamic>;

                var expected = new List <string>
                {
                    "new Dictionary<string, ((int, int), (int, int))?>",
                    "{"
                };

                expected.AddRange(expectedDictionary.Select(((kv, i) => $"    [\"{kv.Key}\"] = {FormatPosition(kv.Value)}{(i < expectedDictionary.Count - 1 ? "," : "")}")));
                expected.Add("}");

                canonicalDataCase.Expected = new UnescapedValue(string.Join("\n", expected));
            }
        }
Esempio n. 16
0
 protected virtual TestMethodData CreateTestMethodData(CanonicalData canonicalData, CanonicalDataCase canonicalDataCase, int index)
 => new TestMethodData
 {
     CanonicalData     = canonicalData,
     CanonicalDataCase = canonicalDataCase,
     Index             = index,
     Options           = CreateTestMethodOptions(canonicalData, canonicalDataCase, index)
 };
Esempio n. 17
0
 protected override void UpdateCanonicalData(CanonicalData canonicalData)
 {
     foreach (var canonicalDataCase in canonicalData.Cases)
     {
         canonicalDataCase.TestedMethodType = TestedMethodType.Extension;
         canonicalDataCase.Property         = "ToRoman";
     }
 }
Esempio n. 18
0
 protected override void UpdateCanonicalData(CanonicalData canonicalData)
 {
     foreach (var canonicalDataCase in canonicalData.Cases)
     {
         canonicalDataCase.UseVariableForExpected = true;
         canonicalDataCase.Expected = ConvertHelper.ToMultiLineString(canonicalDataCase.Expected);
     }
 }
Esempio n. 19
0
 protected override void UpdateCanonicalData(CanonicalData canonicalData)
 {
     foreach (var canonicalDataCase in canonicalData.Cases)
     {
         canonicalDataCase.Properties["input"]  = canonicalDataCase.Properties["input"].Replace("\\", "\\\\");
         canonicalDataCase.UseVariablesForInput = true;
     }
 }
Esempio n. 20
0
        protected TestMethodBody(CanonicalDataCase canonicalDataCase, CanonicalData canonicalData)
        {
            CanonicalDataCase = canonicalDataCase;
            CanonicalData     = canonicalData;

            Data = new TestMethodBodyData(this);
            InitializeTemplateParameters();
        }
Esempio n. 21
0
 protected override void UpdateCanonicalData(CanonicalData canonicalData)
 {
     foreach (var canonicalDataCase in canonicalData.Cases)
     {
         canonicalDataCase.Property        = "InEnglish";
         canonicalDataCase.ExceptionThrown = canonicalDataCase.Expected is long?typeof(ArgumentOutOfRangeException) : null;
     }
 }
Esempio n. 22
0
 protected override void UpdateCanonicalData(CanonicalData canonicalData)
 {
     foreach (var canonicalDataCase in canonicalData.Cases)
     {
         canonicalDataCase.UseVariablesForInput = true;
         canonicalDataCase.ExceptionThrown      = canonicalDataCase.Expected is null ? typeof(ArgumentException) : null;
     }
 }
Esempio n. 23
0
 protected override void UpdateCanonicalData(CanonicalData canonicalData)
 {
     foreach (var canonicalDataCase in canonicalData.Cases)
     {
         canonicalDataCase.UseVariableForExpected = true;
         canonicalDataCase.ExceptionThrown        = canonicalDataCase.Input["limit"] < 2 ? typeof(ArgumentOutOfRangeException) : null;
     }
 }
Esempio n. 24
0
 protected override void UpdateCanonicalData(CanonicalData canonicalData)
 {
     foreach (var canonicalDataCase in canonicalData.Cases)
     {
         canonicalDataCase.UseVariablesForInput = true;
         canonicalDataCase.Properties["input"]  = ConvertInput(canonicalDataCase.Properties["input"]);
     }
 }
Esempio n. 25
0
 protected override void UpdateCanonicalData(CanonicalData canonicalData)
 {
     foreach (var canonicalDataCase in canonicalData.Cases)
     {
         canonicalDataCase.SetInputParameters("basket");
         canonicalDataCase.UseVariablesForInput = true;
     }
 }
Esempio n. 26
0
 protected override void UpdateCanonicalData(CanonicalData canonicalData)
 {
     foreach (var canonicalDataCase in canonicalData.Cases)
     {
         canonicalDataCase.UseVariablesForConstructorParameters = true;
         canonicalDataCase.SetConstructorInputParameters("array");
     }
 }
Esempio n. 27
0
 protected override void UpdateCanonicalData(CanonicalData canonicalData)
 {
     foreach (var canonicalDataCase in canonicalData.Cases)
     {
         var nationality = canonicalDataCase.Expected as string;
         canonicalDataCase.Expected = new UnescapedValue($"Nationality.{nationality.Humanize()}");
     }
 }
Esempio n. 28
0
        protected override TestMethodOptions CreateTestMethodOptions(CanonicalData canonicalData, CanonicalDataCase canonicalDataCase, int index)
        {
            var testMethodOptions = base.CreateTestMethodOptions(canonicalData, canonicalDataCase, index);

            testMethodOptions.InputProperty = "phrase";

            return(testMethodOptions);
        }
Esempio n. 29
0
 protected override void UpdateCanonicalData(CanonicalData canonicalData)
 {
     foreach (var canonicalDataCase in canonicalData.Cases)
     {
         // Prefix the test name with encode/decode because both functions are tested with the same cases
         canonicalDataCase.Description = $"{canonicalDataCase.Property} {canonicalDataCase.Description}";
     }
 }
Esempio n. 30
0
        protected override TestMethodOptions CreateTestMethodOptions(CanonicalData canonicalData, CanonicalDataCase canonicalDataCase, int index)
        {
            var testMethodOptions = base.CreateTestMethodOptions(canonicalData, canonicalDataCase, index);

            testMethodOptions.ThrowExceptionWhenExpectedValueEquals = x => x is bool;

            return(testMethodOptions);
        }