public void Check3()
        {
            this.model.AddState (string.Empty);
            this.model.AddState (string.Empty);
            this.model.AddState (string.Empty);
            this.model.AddTransition (0, 1);
            this.model.AddTransition (1, 2);
            this.model.AddTransition (2, 0);

            var closure = new ModelClosure (this.model);
            AssertHelper.ModelEquals (this.model, closure);
        }
        public void Check4()
        {
            this.model.AddState (string.Empty);
            this.model.AddState (string.Empty);
            this.model.AddState (string.Empty);
            this.model.AddTransition (0, 1);
            this.model.AddTransition (1, 2);
            this.model.AddTransition (0, 2);

            var closure1 = new ModelClosure (this.model);
            var closure2 = new ModelClosure (closure1);
            AssertHelper.ModelEquals (closure1, closure2);
        }
        public void Check1()
        {
            this.model.AddState (string.Empty);
            this.model.AddState (string.Empty);
            this.model.AddState (string.Empty);
            this.model.AddTransition (0, 1);
            this.model.AddTransition (2, 1);

            var closure = new ModelClosure (this.model);
            Assert.AreEqual (this.model.StatesCount, closure.StatesCount);
            Assert.IsTrue (ModelTotalityChecker.Check (closure));
            AssertHelper.IsSubmodel (this.model, closure);
            Assert.IsTrue (closure.Transitions (1).Count > 0);
        }