public void test_QueryA_NoConstraints_B_after_C()
        {
            var p = new QueryProcessorUniqueComponents(Query.createFromString("[SEQ(AND(B,C),D),[B,C,D],n(X)]"), irrelevantTimeWindow);

            Assert.Empty(p.createPBCAnyMatchConstraints(new EventType("B"), new List <EventType>()
            {
                new EventType("C")
            }));
        }
        public void test_QueryA_IsPredConstraint_C_after_D()
        {
            var p      = new QueryProcessorUniqueComponents(Query.createFromString("[SEQ(AND(B,C),D),[B,C,D],n(X)]"), irrelevantTimeWindow);
            var actual = p.createPBCAnyMatchConstraints(new EventType("C"), new List <EventType>()
            {
                new EventType("D")
            });

            Assert.Equal(1, actual.Count);
            Assert.IsType(typeof(SequenceConstraint), actual[0]);
            Assert.Equal(new EventType("D"), (actual[0] as SequenceConstraint).bufferType);
            Assert.Equal(SequenceType.IsPredecessor, (actual[0] as SequenceConstraint).sequenceType);
            Assert.Equal(new EventType("C"), (actual[0] as SequenceConstraint).candidateType);
        }