Example #1
0
        private long StartTraceBuilderProcess(long expId)
        {
            TraceBuilder traceBuilder = new TraceBuilder();

            traceBuilder.BuildTraceFromRawFile((int)expId);
            return(expId);
        }
Example #2
0
        static void Inner(Tracer tracer)
        {
            var traceBuilder = new TraceBuilder(tracer);

            var client = new HttpClient
            {
                BaseAddress = new Uri("http://service_a")
            };

            var url = $"/aworld/id/{_testId}";


            traceBuilder.WithSpanName("MainWork")
            .WithHttpCall(client, url, HttpMethod.Get)
            .TraceIt(() =>
            {
                var response = client.GetAsync(url).Result;

                if (!response.IsSuccessStatusCode)
                {
                    throw new Exception("uncovered area for the demo.");
                }

                var responseBody = response.Content.ReadAsStringAsync().Result;
                Console.WriteLine(responseBody);
            });
        }
Example #3
0
        public void SimpleTest()
        {
            var nodes = new List <Node> ();

            nodes.Add(new TemporaryNode());
            nodes.Add(new TemporaryNode());
            nodes.Add(new TemporaryNode());
            nodes.Add(new TemporaryNode());
            nodes.Add(Target.R10);

            var node = new ConditionalJumpNode(nodes [0], new ConditionalJumpNode(nodes [1], nodes [2], nodes [3]), nodes [4]);

            Console.WriteLine(node);

            var trace = new HashSet <Node> (TraceBuilder.BuildTrace(node));

            bool fine = true;

            foreach (Node n in trace)
            {
                fine &= !(n is ConditionalJumpNode);
            }

            fine &= trace.Contains(nodes [2]);
            fine &= trace.Contains(nodes [3]);
            fine &= trace.Contains(nodes [4]);

            Assert.IsTrue(fine);
        }
        static void SingleRequest(Tracer tracer)
        {
            //Guid guid = Guid.NewGuid();
            //IDictionary<string, object> keyValues = new Dictionary<string, object>();
            //keyValues.Add("MyTraceId", guid.ToString());

            var    url      = $"/api/aworld/{_testId}";
            string spanName = "MainWork";
            Guid   guid     = Guid.NewGuid();

            Console.WriteLine("guid:{0}", guid);

            var traceBuilder = new TraceBuilder(tracer);
            var client       = new HttpClient
            {
                BaseAddress = new Uri("https://localhost:44340")
            };

            traceBuilder.WithSpanName(spanName)
            .WithTag(new OpenTracing.Tag.StringTag("MyCorelationId"), guid.ToString())
            .WithHttpCall(client, url, HttpMethod.Get)
            .TraceIt(() =>
            {
                CallServiceA(client, url);
            });
        }
        public void BeginEntryAndEndLastEntry_BuildCorrectTree()
        {
            var root        = new TestEntry("root");
            var child1      = new TestEntry("child1");
            var child2      = new TestEntry("child2");
            var grandchild1 = new TestEntry("grandchild1");
            var grandchild2 = new TestEntry("grandchild2");
            var grandchild3 = new TestEntry("grandchild3");

            var builder = new TraceBuilder();

            builder.IsEnabled = true;

            builder.BeginEntry(root);
            builder.BeginEntry(child1);

            builder.BeginEntry(grandchild1);
            builder.EndLastEntry();

            builder.BeginEntry(grandchild2);
            builder.EndLastEntry();

            builder.EndLastEntry();
            builder.BeginEntry(child2);

            builder.BeginEntry(grandchild3);
            builder.EndLastEntry();

            builder.EndLastEntry();
            builder.EndLastEntry();

            CollectionAssert.AreEqual(
                new[] { root },
                builder.Root.Children.ToArray()
                );

            CollectionAssert.AreEqual(
                new[] { child1, child2 },
                root.Children.ToArray()
                );

            CollectionAssert.AreEqual(
                new[] { grandchild1, grandchild2 },
                child1.Children.ToArray()
                );

            CollectionAssert.AreEqual(
                new[] { grandchild3 },
                child2.Children.ToArray()
                );

            Assert.AreEqual(0, grandchild1.Children.Count);
            Assert.AreEqual(0, grandchild2.Children.Count);
            Assert.AreEqual(0, grandchild3.Children.Count);
        }
 /// <summary>
 ///     Initializes a new instance of the <see cref="ServiceResolveContext"/> class.
 /// </summary>
 /// <param name="resolver">the service resolver using the context</param>
 /// <param name="register">the service register</param>
 /// <param name="constructionMode">the service construction mode for the resolve</param>
 /// <param name="serviceType">the type of the service being resolved</param>
 /// <param name="parentType">the type of the parent</param>
 /// <param name="traceBuilder">
 ///     the trace builder; if <see langword="null"/> a new instance will be created.
 /// </param>
 /// <exception cref="ArgumentNullException">
 ///     thrown if the specified <paramref name="resolver"/> is <see langword="null"/>.
 /// </exception>
 /// <exception cref="ArgumentNullException">
 ///     thrown if the specified <paramref name="register"/> is <see langword="null"/>.
 /// </exception>
 /// <exception cref="ArgumentNullException">
 ///     thrown if the specified <paramref name="serviceType"/> is <see langword="null"/>.
 /// </exception>
 public ServiceResolveContext(IServiceResolver resolver, IServiceRegister register,
                              ServiceConstructionMode constructionMode, Type serviceType, Type parentType = null,
                              TraceBuilder traceBuilder = null)
 {
     ParentType       = parentType;
     ConstructionMode = GetServiceConstructionMode(constructionMode, resolver);
     Resolver         = resolver ?? throw new ArgumentNullException(nameof(resolver));
     Register         = register ?? throw new ArgumentNullException(nameof(register));
     ServiceType      = serviceType ?? throw new ArgumentNullException(nameof(serviceType));
     TraceBuilder     = traceBuilder ?? new TraceBuilder();
 }
Example #7
0
        public void Test_1()
        {
            Prepare();

            var trace = TraceBuilder.CalculateTrace(model);

            Assert.AreEqual(0, trace.Points[1].X);
            Assert.AreEqual(1, trace.Points[1].Y);

            Assert.AreEqual(0, trace.Points[2].X);
            Assert.AreEqual(2, trace.Points[2].Y);
        }
Example #8
0
        //--- Class Methods ---
        public static IRollbarClient Create(RollbarConfiguration configuration)
        {
            var frame      = new FrameCollectionBuilder();
            var exception  = new ExceptionInfoBuilder();
            var trace      = new TraceBuilder(exception, frame);
            var traceChain = new TraceChainBuilder(trace);
            var body       = new BodyBuilder(trace, traceChain);
            var title      = new TitleBuilder();
            var data       = new DataBuilder(configuration, body, title);

            return(new RollbarClient(configuration, new PayloadBuilder(configuration, data)));
        }
Example #9
0
        private void function2(string FirstName, string LastName)
        {
            Console.WriteLine("function 2");
            IEnumerable <MethodBase> methods = TraceBuilder.Build();

            bool wasFirst = false;

            Console.WriteLine();
            Console.WriteLine("Trace stack:");

            foreach (var method in methods)
            {
                if (!wasFirst)
                {
                    wasFirst = method.Name == LastName;
                }

                if (wasFirst)
                {
                    ParameterInfo[] parameters = method.GetParameters();

                    Console.WriteLine("Function: " + method.Name);
                    Console.Write("Parameters: ");

                    for (int i = 0; i < parameters.Length; i++)
                    {
                        if (i > 0)
                        {
                            Console.Write(", ");
                        }
                        Console.Write(string.Format("\t{0}: {1}", parameters[i].Name, parameters[i].ParameterType.ToString()));
                    }

                    Console.WriteLine();
                }

                if (method.Name == FirstName)
                {
                    break;
                }
            }
        }
Example #10
0
        private static void AddSide(Model _answer, int turn,
                                    List <Block> blocks, List <RouteSide> sides,
                                    ref int i, out TraceBuilder.Result trace, ref int startI)
        {
            var firstTurn = GetTurnElements(blocks);

            _answer.Order.AddRange(firstTurn);

            for (int j = 0; j < firstTurn.Count; j++)
            {
                _answer.Topology.Add(new TopologyItem(i, i + 1, turn));
                i++;
            }

            trace = TraceBuilder.CalculateTrace(_answer);
            sides.Add(new RouteSide(trace.Points[startI], startI, 4, turn, firstTurn.Count));

            for (int j = 0; j < firstTurn.Count; j++)
            {
                sides[sides.Count - 1].details.Add(trace.Points[startI]);
                startI++;
            }
        }
Example #11
0
        public void Start()
        {
            Iteration = 0;

            while (true)
            {
                if (Token.IsCancellationRequested)
                {
                    var model = Model.Copy(Best.Model);
                    model.Blocks.Clear();
                    model.Blocks.AddRange(_model.Blocks);

                    OnStepEvent?.Invoke(this, new FinalAnswer(model, _checker.Solve(model)));

                    throw new OperationCanceledException("Работа алгоритма остановлена в связи с отменой задачи");
                }

                if (Bots.Count(_ => !_.IsDead) == 0)
                {
                    NextGeneration();

                    continue;
                }

                for (var i = 0; i < Bots.Count; i++)
                {
                    var bot = Bots[i];

                    if (bot.IsDead)
                    {
                        continue;
                    }

                    ExecuteCommand(bot);

                    bot.Cur++;

                    var answer = bot.Root.ConvertToModel(bot.Current.Model);
                    var price  = _checker.Solve(answer);
                    var trace  = TraceBuilder.CalculateTrace(answer);

                    if (trace.Exceptions.Any() ||
                        price.Result < -1000) // TODO: const MIN_PRICE
                    {
                        bot.IsDead = true;
                    }

                    if (Math.Abs(price.Result - bot.Current.Price.Result) < Constants.Precision)
                    {
                        bot.DeadLoops++;

                        if (bot.DeadLoops > 100)
                        {
                            bot.IsDead = true;
                        }
                    }
                    else
                    {
                        bot.DeadLoops = 0;
                    }

                    bot.Current = new FinalAnswer(answer, price);

                    //OnStepEvent?.Invoke(this, bot.Current);

                    if (price > bot.Best.Price)
                    {
                        bot.Best = bot.Current;

                        if (price > Best.Price)
                        {
                            Best = bot.Best;
                            OnStepEvent?.Invoke(this, Best);
                        }
                    }
                }

                OnStepEvent?.Invoke(this, Best);

                Iteration++;
            }
        }