예제 #1
1
        public void Add()
        {
            var criteria = new List<IIterationStopCriterium>
                           {
                               new FailureStopCriterium(),
                               new DivergenceStopCriterium(),
                               new IterationCountStopCriterium(),
                               new ResidualStopCriterium()
                           };
            var iterator = new Iterator();
            Assert.AreEqual(0, iterator.NumberOfCriteria, "Incorrect criterium count");

            foreach (var criterium in criteria)
            {
                iterator.Add(criterium);
                Assert.IsTrue(iterator.Contains(criterium), "Missing criterium");
            }

            // Check that we have all the criteria
            Assert.AreEqual(criteria.Count, iterator.NumberOfCriteria, "Incorrect criterium count");
            var enumerator = iterator.StoredStopCriteria;
            while (enumerator.MoveNext())
            {
                var criterium = enumerator.Current;
                Assert.IsTrue(criteria.Exists(c => ReferenceEquals(c, criterium)), "Criterium missing");
            }
        }
        public void Add()
        {
            var criteria = new List <IIterationStopCriterium <Complex> >
            {
                new FailureStopCriterium(),
                new DivergenceStopCriterium(),
                new IterationCountStopCriterium(),
                new ResidualStopCriterium()
            };
            var iterator = new Iterator();

            Assert.AreEqual(0, iterator.NumberOfCriteria, "Incorrect criterium count");

            foreach (var criterium in criteria)
            {
                iterator.Add(criterium);
                Assert.IsTrue(iterator.Contains(criterium), "Missing criterium");
            }

            // Check that we have all the criteria
            Assert.AreEqual(criteria.Count, iterator.NumberOfCriteria, "Incorrect criterium count");
            var enumerator = iterator.StoredStopCriteria;

            while (enumerator.MoveNext())
            {
                var criterium = enumerator.Current;
                Assert.IsTrue(criteria.Exists(c => ReferenceEquals(c, criterium)), "Criterium missing");
            }
        }
        public void Remove()
        {
            var criteria = new List <IIterationStopCriterium <Complex> >
            {
                new FailureStopCriterium(),
                new DivergenceStopCriterium(),
                new IterationCountStopCriterium(),
                new ResidualStopCriterium()
            };
            var iterator = new Iterator(criteria);

            Assert.AreEqual(criteria.Count, iterator.NumberOfCriteria, "Incorrect criterium count");

            foreach (var criterium in criteria)
            {
                iterator.Remove(criterium);
                Assert.IsFalse(iterator.Contains(criterium), "Did not remove the criterium");
            }
        }
        public void Remove()
        {
            var criteria = new List<IIterationStopCriterium>
                {
                    new FailureStopCriterium(),
                    new DivergenceStopCriterium(),
                    new IterationCountStopCriterium(),
                    new ResidualStopCriterium()
                };
            var iterator = new Iterator(criteria);
            Assert.AreEqual(criteria.Count, iterator.NumberOfCriteria, "Incorrect criterium count");

            foreach (var criterium in criteria)
            {
                iterator.Remove(criterium);
                Assert.IsFalse(iterator.Contains(criterium), "Did not remove the criterium");
            }
        }
예제 #5
0
        /// <summary>
        /// thisがotherの子孫であるかどうかを返す.自分自身の場合もtrue.
        /// </summary>
        public virtual bool IsDescendant(MemoTag other)
        {
            var ite = new Iterator <MemoTag>(this, tag => new[] { tag.SuperTag, });

            return(ite.Contains(other));
        }
예제 #6
0
        /// <summary>
        /// thisがotherの祖先であるかどうかを返す.自分自身の場合もtrue.
        /// </summary>
        public virtual bool IsAscendant(MemoTag other)
        {
            var ite = new Iterator <MemoTag>(this, tag => tag.SubTags);

            return(ite.Contains(other));
        }