public void TestWindowSizeOne() {
            var windowFeatureGenerator = new WindowFeatureGenerator(
                new IdentityFeatureGenerator(), 1, 1);

            const int testTokenIndex = 2;

            var features = new List<string>();

            windowFeatureGenerator.CreateFeatures(features, testSentence, testTokenIndex, null);

            Assert.AreEqual(3, features.Count);
        }
        public void TestWindowAtBeginOfSentence() {
            var windowFeatureGenerator = new WindowFeatureGenerator(new IdentityFeatureGenerator(), 1, 0);

            const int testTokenIndex = 0;

            var features = new List<string>();

            windowFeatureGenerator.CreateFeatures(features, testSentence, testTokenIndex, null);

            Assert.AreEqual(1, features.Count);

            Assert.AreEqual(features[0], testSentence[testTokenIndex]);
        }
        public void TestWindowAtEndOfSentence() {
            var windowFeatureGenerator = new WindowFeatureGenerator(
                new IdentityFeatureGenerator(), 0, 1);

            var testTokenIndex = testSentence.Length - 1;

            var features = new List<string>();

            windowFeatureGenerator.CreateFeatures(features, testSentence, testTokenIndex, null);

            Assert.AreEqual(1, features.Count);

            Assert.AreEqual(features[0], testSentence[testTokenIndex]);
        }
        public void TestForCorrectFeatures() {
            var windowFeatureGenerator = new WindowFeatureGenerator(
                new IdentityFeatureGenerator(), 2, 2);

            const int testTokenIndex = 3;

            var features = new List<string>();

            windowFeatureGenerator.CreateFeatures(features, testSentence, testTokenIndex, null);

            Assert.AreEqual(5, features.Count);

            Assert.True(features.Contains(WindowFeatureGenerator.PREV_PREFIX + "2" +
                                          testSentence[testTokenIndex - 2]));
            Assert.True(features.Contains(WindowFeatureGenerator.PREV_PREFIX + "1" +
                                          testSentence[testTokenIndex - 1]));

            Assert.True(features.Contains(testSentence[testTokenIndex]));

            Assert.True(features.Contains(WindowFeatureGenerator.NEXT_PREFIX + "1" +
                                          testSentence[testTokenIndex + 1]));
            Assert.True(features.Contains(WindowFeatureGenerator.NEXT_PREFIX + "2" +
                                          testSentence[testTokenIndex + 2]));
        }