public void EmptyInputTest()
        {
            var wordCounter = new WordCounter(string.Empty);
            var result = wordCounter.Count();

            Assert.AreEqual(0, result.Count);
        }
        public void IgnoreCaseTest()
        {
            var wordCounter = new WordCounter("This this thiS");
            var result = wordCounter.Count();

            Assert.AreEqual(1, result.Count);
            Assert.AreEqual(3, result["this"]);
        }
        public void NumbersInWordsTest()
        {
            var wordCounter = new WordCounter("a a123 a");
            var result = wordCounter.Count();

            Assert.AreEqual(1, result.Count);
            Assert.AreEqual(3, result["a"]);
        }
        public void MultipleLineInputTest()
        {
            var wordCounter = new WordCounter("This is a test.\r\nThis is a test.\nThis is a test.");
            var result = wordCounter.Count();

            Assert.AreEqual(4, result.Count);
            Assert.AreEqual(3, result["this"]);
            Assert.AreEqual(3, result["is"]);
            Assert.AreEqual(3, result["a"]);
            Assert.AreEqual(3, result["test"]);
        }
Ejemplo n.º 5
0
        public void WordCounter_IgnoresCase()
        {
            string[] inputData = new[] { "one", "two", "three", "One" };
            IWordCounter counter = new WordCounter();
            var result = counter.Count(inputData);

            Assert.AreEqual(3, result.Keys.Count);

            Assert.AreEqual(2, result["one"]);
            Assert.AreEqual(1, result["two"]);
            Assert.AreEqual(1, result["three"]);
        }
        public void GeneralCountTest()
        {
            var wordCounter = new WordCounter("This is a statement, and so is this.");
            var result = wordCounter.Count();

            Assert.AreEqual(6, result.Count);
            Assert.AreEqual(2, result["this"]);
            Assert.AreEqual(2, result["is"]);
            Assert.AreEqual(1, result["a"]);
            Assert.AreEqual(1, result["statement"]);
            Assert.AreEqual(1, result["and"]);
            Assert.AreEqual(1, result["so"]);
        }
Ejemplo n.º 7
0
        public List <XmlNode> GetAvailableSegments(ApplicationSettings settings, out int words)
        {
            words     = 0;
            _settings = settings;

            XmlNodeList _segmentNodesList;

            _segmentNodesList = _doc.SelectNodes("/o:xliff/o:file/o:body//o:trans-unit/o:seg-source//o:mrk[@mtype='seg']", _nsmgr);
            _segments         = new List <XmlNode>(_segmentNodesList.Cast <XmlNode>());
            _segmentMap       = new Dictionary <XmlNode, int>(_segments.Count);

            int            requiredSegments = GetSegmentLimit(settings);
            List <XmlNode> remaining        = _segments.Where(n => WordCounter.Count(n.InnerText) >= settings.MinWords && WordCounter.Count(n.InnerText) <= settings.MaxWords).ToList();

            // need to preserve original positions while remaining shrinks
            Dictionary <XmlNode, int> segmentIndexMap = new Dictionary <XmlNode, int>(_segments.Count);

            for (int i = 0; i < _segments.Count; ++i)
            {
                segmentIndexMap.Add(_segments[i], i);
            }

            while (remaining.Count > 0 && _segmentMap.Count < requiredSegments)
            {
                int     position = _rnd.Next(remaining.Count);
                XmlNode segment  = remaining[position];

                position = segmentIndexMap[segment];
                if (IsValidSegment(segment))
                {
                    _segmentMap.Add(segment, position);
                }
                remaining.Remove(segment);
                if (_settings.LimitByWords)
                {
                    int segmentWordCount = WordCounter.Count(segment.InnerText);
                    words += segmentWordCount;
                    if (words > settings.TotalWords)
                    {
                        break;
                    }
                }
            }
            return(_segmentMap.Keys.ToList <XmlNode>());
        }
Ejemplo n.º 8
0
 private CountData GetSegmentWordCount(ISegmentPair segmentPair)
 {
     return(_wordCounter.Count(segmentPair.Source));
 }
Ejemplo n.º 9
0
        public void TestNull()
        {
            var results = WordCounter.Count(null);

            Assert.IsNull(results);
        }
Ejemplo n.º 10
0
        public void TestWordLessThan4Letters()
        {
            var results = WordCounter.Count(string.Empty);

            Assert.AreEqual(results.Count, 0);
        }
Ejemplo n.º 11
0
        public void TestEmpty()
        {
            var results = WordCounter.Count(string.Empty);

            Assert.AreEqual(results.Count, 0);
        }
Ejemplo n.º 12
0
        public override void ProcessParagraphUnit(IParagraphUnit paragraphUnit)
        {
            if (paragraphUnit.IsStructure)
            {
                return;
            }

            foreach (var pair in paragraphUnit.SegmentPairs)
            {
                if (settings.UseSource)
                {
                    var source = pair.Source;

                    var plainText = new PlainTextExtractor().GetPlainText(source);

                    segmentCountInfo.Add(new SegmentCountInfo(source.Properties.TranslationOrigin, wordCounter.Count(source), source.Properties.IsLocked, plainText.Count(char.IsWhiteSpace)));
                }
                else
                {
                    var target = pair.Target;

                    var plainText = new PlainTextExtractor().GetPlainText(target);

                    segmentCountInfo.Add(new SegmentCountInfo(target.Properties.TranslationOrigin, wordCounter.Count(target), target.Properties.IsLocked, plainText.Count(char.IsWhiteSpace)));
                }
            }
        }
Ejemplo n.º 13
0
        public void ShouldReturnZeroWhenEmptyText()
        {
            var wordCounter = new WordCounter();

            Assert.Equal(0, wordCounter.Count(null));
        }