Esempio n. 1
0
        public void NextStatesTest1()
        {
            const int MaxRepeatCount = 1;

            for (int minRepeatCount = 0; minRepeatCount <= MaxRepeatCount; minRepeatCount++)
            {
                Vocabulary context = new Vocabulary(new string[] { "AB" }, minRepeatCount, MaxRepeatCount);

                State[] states = context.InitialState.NextStates().Values.ToArray();
                Assert.AreEqual(1, states.Length);

                Context.ContextState state = states[0] as Context.ContextState;
                Assert.AreEqual('A', state.Char);
                Assert.IsFalse(state.WordEnd);
                Assert.IsFalse(state.ContextWordEnd);
                Assert.AreEqual(1, state.RepeatCount);
                Assert.AreEqual(1.0f, state.CharProbability);
                Assert.AreEqual(0.0f, state.WordEndProbability);

                states = state.NextStates().Values.ToArray();
                Assert.AreEqual(1, states.Length);

                state = states[0] as Context.ContextState;
                Assert.AreEqual('B', state.Char);
                Assert.IsTrue(state.WordEnd);
                Assert.IsTrue(state.ContextWordEnd);
                Assert.AreEqual(1, state.RepeatCount);
                Assert.AreEqual(1.0f, state.CharProbability);
                Assert.AreEqual(1.0f, state.WordEndProbability);

                Assert.IsNull(state.NextStates());
            }
        }
Esempio n. 2
0
        public void InitialStateMethodTest1()
        {
            Charset charset = new Charset("0Az", 0, 2);

            Context.ContextState state = charset.InitialState as Context.ContextState;

            Assert.AreEqual((char)0, state.Char);
            Assert.IsFalse(state.WordEnd);
            Assert.IsTrue(state.ContextWordEnd);
            Assert.AreEqual(0, state.RepeatCount);
            Assert.AreEqual(0.0f, state.CharProbability);
            Assert.AreEqual(0.0f, state.WordEndProbability);
        }
Esempio n. 3
0
        public void NextStatesTest3()
        {
            const string Characters = "AB";
            Charset      charset    = new Charset(Characters, 2, 2);

            State[] states = charset.InitialState.NextStates().Values.ToArray();

            Assert.AreEqual(2, states.Length);

            for (int i = 0; i < states.Length; i++)
            {
                Context.ContextState state = states[i] as Context.ContextState;

                Assert.AreEqual(Characters[i], state.Char);
                Assert.IsFalse(state.WordEnd);
                Assert.IsFalse(state.ContextWordEnd);
                Assert.AreEqual(1, state.RepeatCount);
                Assert.AreEqual(0.5f, state.CharProbability);
                Assert.AreEqual(1.0f, state.WordEndProbability);

                State[] states2 = state.NextStates().Values.ToArray();

                Assert.AreEqual(2, states.Length);

                for (int j = 0; j < states2.Length; j++)
                {
                    Context.ContextState state2 = states2[j] as Context.ContextState;

                    Assert.AreEqual(Characters[j], state2.Char);
                    Assert.IsTrue(state2.WordEnd);
                    Assert.IsTrue(state2.ContextWordEnd);
                    Assert.AreEqual(2, state2.RepeatCount);
                    Assert.AreEqual(0.5f, state2.CharProbability);
                    Assert.AreEqual(1.0f, state2.WordEndProbability);

                    Assert.IsNull(state2.NextStates());
                }
            }
        }