Example #1
0
        public void PopulatePairGraph(List <string> pairs)
        {
            var pairs_parsed = pairs.Select(p => new KeyValuePair <string, string>(p.Split(':')[0], p.Split(':')[1]));

            ActualPairs = pairs_parsed.ToList();

            pairs_parsed = pairs_parsed.Concat(pairs_parsed.Select(p => new KeyValuePair <string, string>(p.Value, p.Key)));

            foreach (var pair in pairs_parsed)
            {
                string right = pair.Value;

                if (!PairGraph.ContainsKey(pair.Key))
                {
                    PairGraph.Add(pair.Key, new HashSet <string>());
                }

                if (!PairGraph.ContainsKey(right))
                {
                    PairGraph.Add(right, new HashSet <string>());
                }

                PairGraph[pair.Key].Add(right);
                PairGraph[right].Add(pair.Key);

                Currencies.Add(pair.Key);
                Currencies.Add(right);
            }
        }
Example #2
0
 private void GetWay_Click(object sender, EventArgs e)
 {
     try
     {
         List <Pair> pairs = Pair.PairsFromString(Input.Text);
         PairGraph   graph = new PairGraph(pairs);
         List <int>  Way   = graph.GetMaxWay();
         MessageBox.Show(String.Join(" ", Way));
     }
     catch (Exception)
     {
         MessageBox.Show("Error");
     }
 }
        public void PopulatePairGraph(List <string> pairs)
        {
            var pairs_parsed = pairs.Select(p => new KeyValuePair <string, string>(p.Split(':')[0], p.Split(':')[1]));

            ActualPairs = pairs_parsed.ToList();

            pairs_parsed = pairs_parsed.Concat(pairs_parsed.Select(p => new KeyValuePair <string, string>(p.Value, p.Key)));

            foreach (var pair in pairs_parsed)
            {
                string left  = pair.Key;
                string right = pair.Value;

                if (left.Length > 3)
                {
                    if (!TickerTranslations.ContainsKey(left.Substring(0, 3)))
                    {
                        TickerTranslations.Add(left.Substring(0, 3), left);
                    }
                    left = left.Substring(0, 3);
                }

                if (right.Length > 3)
                {
                    if (!TickerTranslations.ContainsKey(right.Substring(0, 3)))
                    {
                        TickerTranslations.Add(right.Substring(0, 3), right);
                    }
                    right = right.Substring(0, 3);
                }

                if (!PairGraph.ContainsKey(left))
                {
                    PairGraph.Add(left, new HashSet <string>());
                }

                if (!PairGraph.ContainsKey(right))
                {
                    PairGraph.Add(right, new HashSet <string>());
                }

                PairGraph[left].Add(right);
                PairGraph[right].Add(left);

                Currencies.Add(left);
                Currencies.Add(right);
            }
        }