public void OrQueries()
        {
            QueryBuilder builder = new QueryBuilder(typeof(TradeLike));

            DomainDescription domainAll = new DomainDescription(typeof(TradeLike));

            domainAll.IsFullyLoaded = true;

            OrQuery q = builder.GetManyWhere("VALUEDATE > 20100101");

            Assert.IsTrue(q.IsSubsetOf(domainAll));

            DomainDescription complexDomain = new DomainDescription(typeof(TradeLike));
            AtomicQuery       q2            = builder.MakeAtomicQuery("Folder", "AAA");
            AtomicQuery       q4            = builder.MakeAtomicQuery("ValueDate", QueryOperator.Gt, new DateTime(2001, 1, 1));

            complexDomain.AddOrReplace(q2);
            complexDomain.AddOrReplace(q4);
            OrQuery qq = builder.GetManyWhere("FOLDER = AAA, VALUEDATE > 20010101");

            Assert.IsTrue(qq.IsSubsetOf(complexDomain));

            OrQuery qqq = builder.GetManyWhere("VALUEDATE >= 20010101");

            Assert.IsFalse(qqq.IsSubsetOf(complexDomain));

            AtomicQuery q3  = builder.MakeAtomicQuery("Folder", "BBB");
            AndQuery    q33 = builder.MakeAndQuery(q3);

            qq.Elements.Add(q33);
            //the query is now (FOLDER = AAA AND VALUEDATE > 20010101) OR (FOLDER = BBB ) ans is not a subset
            //any more
            Assert.IsFalse(qq.IsSubsetOf(complexDomain));
        }