Exemplo n.º 1
0
        public void CanonBinaryOrFilterToMultiTags()
        {
            var canon = new FilterCanonicalizer();

            var tagFilter       = new TagFilter(Tag("A"));
            var multiTagsFilter = new MultiTagsOrFilter(Tag("B"), Tag("C"));

            var binaryFilter = new BinaryFilter(tagFilter, FilterOperator.Or, multiTagsFilter);
            var canonFilter  = binaryFilter.Canonicalize(canon);

            var expected = new MultiTagsOrFilter(Tag("A"), Tag("B"), Tag("C")).Canonicalize(canon);

            Assert.Same(expected, canonFilter);
        }
Exemplo n.º 2
0
        public void CanonMultiTagsFilter()
        {
            var canon = new FilterCanonicalizer();

            var multiTagsFilter1 = new MultiTagsOrFilter(Tag("A"), new[] { Tag("B"), Tag("C") });
            var multiTagsFilter2 = new MultiTagsOrFilter(new[] { Tag("A"), Tag("B") }, Tag("C"));
            var multiTagsFilter3 = new MultiTagsOrFilter(Tag("A"), Tag("B"), Tag("C"));
            var multiTagsFilter4 = new MultiTagsOrFilter(Tag("A"), Tag("B"), Tag("D"));

            var canonMultiTagsFilter1 = multiTagsFilter1.Canonicalize(canon);
            var canonMultiTagsFilter2 = multiTagsFilter2.Canonicalize(canon);
            var canonMultiTagsFilter3 = multiTagsFilter3.Canonicalize(canon);
            var canonMultiTagsFilter4 = multiTagsFilter4.Canonicalize(canon);

            Assert.Same(canonMultiTagsFilter1, canonMultiTagsFilter2);
            Assert.Same(canonMultiTagsFilter1, canonMultiTagsFilter3);
            Assert.NotSame(canonMultiTagsFilter1, canonMultiTagsFilter4);
        }