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); }
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); }