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