Example #1
0
        static void Main(string[] args)
        {
            var before   = "a or (a or b)";
            var after    = "a or b";
            var examples = new List <Tuple <string, string> >()
            {
                Tuple.Create(before, after)
            };
            var refazer        = new Refazer4Python();
            var transformation = refazer.LearnTransformations(examples.ToList()).First();

            foreach (var mistake in examples)
            {
                var output = refazer.Apply(transformation, mistake.Item1);
                Console.Out.WriteLine("");
                var isFixed = false;
                foreach (var newCode in output)
                {
                    var unparser = new Unparser();
                    isFixed = mistake.Item2.Equals(newCode);
                    if (isFixed)
                    {
                        break;
                    }
                }
                Console.WriteLine("Before: " + mistake.Item1);
                Console.WriteLine("Expected After: " + mistake.Item2);
                Console.WriteLine("Actual After: " + output.FirstOrDefault());
                Console.WriteLine(isFixed);
            }
        }
Example #2
0
        /// <summary>
        /// Creates refazer
        /// </summary>
        /// <returns></returns>
        private Core.Refazer BuildRefazer()
        {
            var pathToGrammar = System.Web.Hosting.HostingEnvironment.MapPath(@"~/Content/");
            var pathToDslLib  = System.Web.Hosting.HostingEnvironment.MapPath(@"~/bin");
            var refazer       = new Refazer4Python(pathToGrammar, pathToDslLib);

            return(refazer);
        }
Example #3
0
        public static void AssertCorrectTransformation(IEnumerable <Tuple <string, string> > examples)
        {
            var refazer        = new Refazer4Python();
            var transformation = refazer.LearnTransformations(examples.ToList()).First();

            foreach (var mistake in examples)
            {
                var output = refazer.Apply(transformation, mistake.Item1);
                Console.Out.WriteLine("");
                var isFixed = false;
                foreach (var newCode in output)
                {
                    var unparser = new Unparser();
                    isFixed = mistake.Item2.Equals(newCode);
                    if (isFixed)
                    {
                        break;
                    }
                }
                Assert.IsTrue(isFixed);
            }
        }