コード例 #1
0
        public void EnsureMatch(EnsureSmallTalkMatchData matchData)
        {
            var serviceCollection = new ServiceCollection();

            ContainerProvider.RegisterTypes(serviceCollection);
            var serviceProvider = serviceCollection.BuildServiceProvider();

            var st       = serviceProvider.GetService <ISmallTalksDetector>();
            var analysis = st.DetectAsync(matchData.Input).Result;

            var count = matchData.ExpectedMatches.Sum(m => m.Count);

            foreach (ExpectedSmallTalkMatch expectedMatch in matchData.ExpectedMatches)
            {
                var stMatchesCount = analysis.Matches.Where(m => m.SmallTalk.Equals(expectedMatch.Name, StringComparison.OrdinalIgnoreCase)).Count();
                Assert.That(expectedMatch.Count == stMatchesCount, () => $"The phrase '{matchData.Input}' doesn't contains {expectedMatch.Count} {expectedMatch.Name} smalltalks. Found {stMatchesCount} instead.");
            }
            Assert.That(count == analysis.MatchesCount, () => $"The phrase '{matchData.Input}' doesn't contain {count} small talks. Found {analysis.MatchesCount} instead. ");
        }
コード例 #2
0
        public static IEnumerable <TestCaseData> GetEnsureMatchDatav2()
        {
            List <TestCaseData> testCaseListv2 = new List <TestCaseData>();

            using (var reader = new StreamReader("EnsureMatchSourcev2.tsv"))
            {
                string line = "";
                while ((line = reader.ReadLine()) != null)
                {
                    if (string.IsNullOrWhiteSpace(line))
                    {
                        continue;
                    }
                    var matchData = new EnsureSmallTalkMatchData {
                        ExpectedMatches = new List <ExpectedSmallTalkMatch>()
                    };
                    var parts = line.Split("\t");
                    var input = parts[0];

                    matchData.Input = input;

                    var expectedParts = parts[1].Split(',');
                    foreach (var part in expectedParts)
                    {
                        var match = part.Split(':');
                        var name  = match[0].Trim();
                        var count = Convert.ToInt32(match[1].Trim());
                        matchData.ExpectedMatches.Add(new ExpectedSmallTalkMatch
                        {
                            Name  = name,
                            Count = count
                        });
                    }
                    testCaseListv2.Add(new TestCaseData(matchData));
                }
            }

            foreach (var testCasev2 in testCaseListv2)
            {
                yield return(testCasev2);
            }
        }