Example #1
0
        public void CanonDependentsFilter()
        {
            var canon = new FilterCanonicalizer();

            var tagFilter1 = new TagFilter(Tag("A"));
            var tagFilter2 = new TagFilter(Tag("A"));
            var tagFilter3 = new TagFilter(Tag("B"));

            var dependentsFilter1 = new DependentsFilter(tagFilter1);
            var dependentsFilter2 = new DependentsFilter(tagFilter2);
            var dependentsFilter3 = new DependentsFilter(tagFilter3);

            var canonDependentsFilter1 = dependentsFilter1.Canonicalize(canon);
            var canonDependentsFilter2 = dependentsFilter2.Canonicalize(canon);
            var canonDependentsFilter3 = dependentsFilter3.Canonicalize(canon);

            Assert.Same(canonDependentsFilter1, canonDependentsFilter2);
            Assert.NotSame(canonDependentsFilter1, canonDependentsFilter3);

            var canonTagFilter = tagFilter1.Canonicalize(canon);
            var canonFilter1   = canonDependentsFilter1 as DependentsFilter;
            var canonFilter2   = canonDependentsFilter2 as DependentsFilter;

            Assert.NotNull(canonFilter1);
            Assert.NotNull(canonFilter2);
            Assert.Same(canonFilter1.Inner, canonTagFilter);
            Assert.Same(canonFilter2.Inner, canonTagFilter);
        }
Example #2
0
        public void CanonNegatingFilter()
        {
            var canon = new FilterCanonicalizer();

            var tagFilter1 = new TagFilter(Tag("A"));
            var tagFilter2 = new TagFilter(Tag("A"));
            var tagFilter3 = new TagFilter(Tag("B"));

            var negatingFilter1 = new NegatingFilter(tagFilter1);
            var negatingFilter2 = new NegatingFilter(tagFilter2);
            var negatingFilter3 = new NegatingFilter(tagFilter3);

            var canonNegatingFilter1 = negatingFilter1.Canonicalize(canon);
            var canonNegatingFilter2 = negatingFilter2.Canonicalize(canon);
            var canonNegatingFilter3 = negatingFilter3.Canonicalize(canon);

            Assert.Same(canonNegatingFilter1, canonNegatingFilter2);
            Assert.NotSame(canonNegatingFilter1, canonNegatingFilter3);

            var canonTagFilter = tagFilter1.Canonicalize(canon);
            var canonFilter1   = canonNegatingFilter1 as NegatingFilter;
            var canonFilter2   = canonNegatingFilter2 as NegatingFilter;

            Assert.NotNull(canonFilter1);
            Assert.NotNull(canonFilter2);
            Assert.Same(canonFilter1.Inner, canonTagFilter);
            Assert.Same(canonFilter2.Inner, canonTagFilter);
        }
Example #3
0
        public void CanonTagFilter()
        {
            var canon = new FilterCanonicalizer();

            var tagFilter1 = new TagFilter(Tag("A"));
            var tagFilter2 = new TagFilter(Tag("A"));
            var tagFilter3 = new TagFilter(Tag("B"));

            var canonTagFilter1 = tagFilter1.Canonicalize(canon);
            var canonTagFilter2 = tagFilter2.Canonicalize(canon);
            var canonTagFilger3 = tagFilter3.Canonicalize(canon);

            Assert.Same(canonTagFilter1, canonTagFilter2);
            Assert.NotSame(canonTagFilter1, canonTagFilger3);
        }