public void InitialState()
        {
            Prototype prototype = new Prototype();
            Alpha     alpha     = new Alpha();
            Release   release   = new Release();

            FsmSystem <State> fsm = new FsmSystem <State>();

            fsm.AddTransition(prototype, Transitions.Fix, alpha);
            fsm.AddTransition(alpha, Transitions.Optimize, release);

            fsm.SetInitialState(prototype);

            fsm.PerformTransition(Transitions.Fix);
            fsm.PerformTransition(Transitions.Optimize);

            Assert.AreEqual(fsm.GetCurrentState(), release);
        }