示例#1
0
        public static List <ShowdownTeamSet> GetTeams(string paste)
        {
            string[] lines  = paste.Split(new[] { "\n" }, StringSplitOptions.None);
            var      result = new List <ShowdownTeamSet>();

            for (int i = 0; i < lines.Length; i++)
            {
                var line = lines[i].Trim();
                if (string.IsNullOrWhiteSpace(line))
                {
                    continue;
                }

                if (!IsLineShowdownTeam(line))
                {
                    continue;
                }

                var split = line.Split(new[] { "===" }, 0);
                if (split.Length != 3)
                {
                    continue;
                }

                var split2 = split[1].Trim().Split(']');
                if (split2.Length != 2)
                {
                    continue;
                }

                var format = split2[0].Substring(1);
                var name   = split2[1].TrimStart();
                // find end

                int end = i + 1;
                while (end < lines.Length)
                {
                    if (IsLineShowdownTeam(lines[end]))
                    {
                        break;
                    }
                    end++;
                }

                var teamlines = lines.Skip(i + 1).Take(end - i - 1);
                var sets      = ShowdownParsing.GetShowdownSets(teamlines).ToList();
                if (sets.Count == 0)
                {
                    continue;
                }
                result.Add(new ShowdownTeamSet(name, sets, format));

                i = end - 1;
            }
            return(result);
        }
        /// <summary>
        /// A method to get a list of ShowdownSet(s) from a string paste
        /// Needs to be extended to hold several teams
        /// </summary>
        /// <param name="paste"></param>
        public static List <ShowdownSet> ShowdownSets(string paste)
        {
            paste = paste.Trim(); // Remove White Spaces
            if (IsTeamBackup(paste))
            {
                return(ShowdownTeamSet.GetTeams(paste).SelectMany(z => z.Team).ToList());
            }
            var lines = paste.Split(new[] { "\n" }, StringSplitOptions.None);

            return(ShowdownParsing.GetShowdownSets(lines).ToList());
        }
示例#3
0
        public void SimulatorParseMultiple()
        {
            var text  = string.Join("\r\n\r\n", Sets);
            var lines = text.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None);
            var sets  = ShowdownParsing.GetShowdownSets(lines);

            Assert.True(sets.Count() == Sets.Length);

            sets = ShowdownParsing.GetShowdownSets(Enumerable.Empty <string>());
            Assert.True(!sets.Any());

            sets = ShowdownParsing.GetShowdownSets(new [] { "", "   ", " " });
            Assert.True(!sets.Any());
        }