コード例 #1
0
        public override string ToString()
        {
            var sources = string.Join(", ", SourceNodes.Select(x => x.GetType().Name));
            var targets = string.Join(", ", TargetNodes.Select(x => x.GetType().Name));

            return($"{ThisNode.GetType().Name}, Builder='{Builder.Name}', Sources=[{sources}], Targets=[{targets}]");
        }
コード例 #2
0
        private void SelectCircuit()
        {
            _circuit = CircuitBuilder.CreateCircuit(SelectedCircuit);

            if (_circuit == null)
            {
                ConsoleOutput.Add("Circuit is not valid.");
                return;
            }

            SourceNodes.Clear();
            foreach (Source source in _circuit.GetSourceNodes())
            {
                SourceNodes.Add(source);
            }
            Nodes.Clear();
            foreach (Node node in _circuit.GetNodes())
            {
                Nodes.Add(node);
            }
            ProbeNodes.Clear();
            foreach (Node node in _nodes.Where(n => n.TypeName == "PROBE").ToList())
            {
                ProbeNodes.Add(node);
            }
        }
コード例 #3
0
        /// <summary>
        /// Gets the random arguments.
        /// </summary>
        /// <returns></returns>
        protected override StopTimeInfo[] GetRandomArguments()
        {
            var sourceNode = SourceNodes.GetRandomElement();
            var randomPath = new List <StopTimeInfo>
            {
                sourceNode.Data
            };
            var currentNode = sourceNode;

            while (currentNode.Data.StopDto.Name.TrimToLower() != Destination.Name.TrimToLower())
            {
                var randomNeighborNode = GetRandomNeighborNodeExceptExisting(currentNode, randomPath.ToArray());
                if (randomNeighborNode == null)
                {
                    break;
                }

                randomPath.Add(randomNeighborNode.Data);
                currentNode = randomNeighborNode;
            }

            return(randomPath.ToArray());
        }
コード例 #4
0
 public InputOutputMap AddSourceNode(ISourceNode source)
 {
     SourceNodes.Add(source);
     return(this);
 }