Node AddRemapNode(Random r)
        {
            var mapping = new SortedDictionary <Result, Result> ();

            var items = new Result [] { Result.Error, Result.Failure, Result.Processing, Result.Success, Result.Unknown };

            foreach (var i in items)
            {
                mapping.Add(i, RandomEnum <Result> (r));
            }
            var xx = new RemapNode(RandomName("Name", r), null, mapping);

            AddLeaf(xx, r);
            return(xx);
        }
        Result RemapAs(Result res)
        {
            IContext ctx = new SimpleContext();

            var mapping = new SortedDictionary <Result, Result> ();

            mapping [Result.Error]      = Result.Failure;
            mapping [Result.Failure]    = Result.Failure;
            mapping [Result.Processing] = Result.Failure;
            mapping [Result.Success]    = Result.Failure;
            mapping [Result.Unknown]    = Result.Failure;

            mapping [res] = Result.Success;

            Node root = new RemapNode("remap", new AlwaysCmd(res), mapping);

            Console.WriteLine("BEGIN RUN: {0}", res);
            var ret = root.Tick(ctx);

            Console.WriteLine("END-RUN..: {0}", ret);
            return(ret);
        }